⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 stu_classqdlg.cpp

📁 这是一个学生管理系统 包含学生基本信息 选课信息 宿舍信息 教师信息 课程信息 班机信息 教师信息等录入 查询 修改删除等强大功能
💻 CPP
字号:
// Stu_classQdlg.cpp : implementation file
//

#include "stdafx.h"
#include "Student.h"
#include "Stu_classQdlg.h"

#include "StudentSet.h"
#include "ClassSet.h"
#include "Stu_classSet.h"

#include <CTime>
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CStu_classQdlg dialog


CStu_classQdlg::CStu_classQdlg(CWnd* pParent /*=NULL*/)
	: CDialog(CStu_classQdlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CStu_classQdlg)
	m_no = _T("");
	m_name = _T("");
	//}}AFX_DATA_INIT
}


void CStu_classQdlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CStu_classQdlg)
	DDX_Control(pDX, IDC_LIST_STU_COURSEQ, m_stuQery_List);
	DDX_Text(pDX, IDC_EDIT_NO, m_no);
	DDV_MaxChars(pDX, m_no, 8);
	DDX_Text(pDX, IDC_EDIT_NAME, m_name);
	DDV_MaxChars(pDX, m_name, 40);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CStu_classQdlg, CDialog)
	//{{AFX_MSG_MAP(CStu_classQdlg)
	ON_BN_CLICKED(IDC_BTN_DELETE, OnBtnDelete)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CStu_classQdlg message handlers

void CStu_classQdlg::OnBtnDelete() 
{
	// TODO: Add your control notification handler code here
    
	int i =m_stuQery_List.GetSelectionMark();
	if(i<0)
	{
		AfxMessageBox("请选择一条记录进行查看!");
		return;
	}
	CString strSQL;
    strSQL.Format("select * from stu_class where Stu_no= '%s' ",m_stuQery_List.GetItemText(i,0));
	CString strTemp;
	   m_recordset.GetFieldValue("Inputtime",strTemp);
		int m_year=atoi(strTemp.Left(4));
		int m_month=atoi(strTemp.Mid(5,2));
		int m_day=atoi(strTemp.Right(2));
		bool flag=IsDate(m_year,m_month,m_day);

	if(!m_recordset.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL))
	{
		AfxMessageBox("打开数据库失败!");
		return ;
	}
	if(m_kind=0&&flag)   //只有老师才可删除并且在一周内
	    m_recordset.Delete();
	else
      AfxMessageBox("此操作者无权删除!");

	m_recordset.Close();
	RefreshData();
	
}
void CStu_classQdlg::RefreshData(){
	m_stuQery_List.DeleteAllItems();
	m_stuQery_List.SetRedraw(FALSE);

	UpdateData(TRUE);
	CString strSQL;
	strSQL="select * from stu_class";
	if(!m_recordset.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL))
	{
		MessageBox("打开数据库失败!","数据库错误",MB_OK);
		return ;
	}	
	int i=0;
	while(!m_recordset.IsEOF())
	{
		

		m_stuQery_List.InsertItem(i,m_recordset.m_Stu_no);
        m_stuQery_List.SetItemText(i,1,m_recordset.m_Class_no);
	    i++;
		m_recordset.MoveNext();
	}
	m_recordset.Close();
	m_stuQery_List.SetRedraw(TRUE);
}
BOOL CStu_classQdlg::IsDate(int y,int m,int d){   //判断是否超过一周
	
		if(m == 1 || m == 3 || m == 5 || m == 7 || m == 8 || m == 10)
		{
			if(d<25)   d+=7;
			else {m++;   d=(d+7)%31;}
		}
		else if(m == 12)
		{
			if(d<25)   d+=7;
			else {y++;   m=1;   d=(d+7)%31;}
		}
		else if(m == 4 || m == 6 || m == 9 || m == 11)
		{
			if(d<24)   d+=7;
			else {m++;   d=(d+7)%30;}
		}
		else if(m == 2)
		{
			if(d<22)   d+=7;
			else if((y%4 == 0 && y%100 != 0) || y%400 == 0)
			{
				if(d == 22)   d=29;
				else {m=3;  d=(d+7)%29;}
			}
			else {m=3;  d=(d+7)%28;}
		}
	
	
	CTime time;
	int year=time.GetYear();
	int month=time.GetMonth();
	int day=time.GetDay();
	if((year < y) || (year == y && month < m) || (year == y && month == m && day<=d))
		return true;
	return false;
}

void CStu_classQdlg::OnOK() 
{
	// TODO: Add extra validation here
	
	UpdateData();

    CStudentSet pstu;
	CStu_classSet pstuclass;
	CClassSet pclass;

	//CDlgLogin *dl;
    CString strSQL;
	try{
		if(!m_no.IsEmpty())
		    strSQL="select student.Name,student.Sno,class.Name  from student,stu_class where pstu.m_Stu_no=m_no and pclass.Class_no=(select pstuclass.Class_no from stu_class where pstuclass.Stu_no=m_no)";
			//m_no:文本框传入的值;pstu.m_Stu_no:表中的学号
		else{
			if(m_name.IsEmpty()){
				AfxMessageBox("请输入要查询学生姓名或学号!");
				return;
			}
			
			strSQL="select student.Name,student.Stu_no,class.Name  from student,class where pstu.Name=m_name and pclass.Class_no=(select pstuclass.Class_no from stu_class where pstuclass.Stu_no=(select Stu_no from student where pstu.Name=m_name))";
		}
	//AfxMessageBox("打开数据库!");
	if(!pstuclass.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL))
	{
		 AfxMessageBox("打开数据库失败!");
		return;
	}
	m_stuQery_List.DeleteAllItems();//将表中原有的记录全部删掉
	int i=0;
	while(!pstuclass.IsEOF())
	{
	    m_stuQery_List.InsertItem(i,pstu.m_Stu_no);
		m_stuQery_List.SetItemText(i,1,pstu.m_Name);
		m_stuQery_List.SetItemText(i,2,pclass.m_Name);
		i++;
		pstuclass.MoveNext();
	}
	pstuclass.Close();
	}
	catch(CDBException *pe){
		AfxMessageBox(pe->m_strError);
		pe->Delete();
	}
	//CDialog::OnOK();
}

void CStu_classQdlg::OnCancel() 
{
	// TODO: Add extra cleanup here
	
	CDialog::OnCancel();
}

BOOL CStu_classQdlg::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
	m_stuQery_List.InsertColumn(0,"学号");
	m_stuQery_List.InsertColumn(1,"姓名");
    m_stuQery_List.InsertColumn(2,"班级名");

	m_stuQery_List.SetColumnWidth(0,100);
	m_stuQery_List.SetColumnWidth(1,100);
	m_stuQery_List.SetColumnWidth(1,100);

	m_stuQery_List.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);	

	
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -