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

📄 classqdlg.cpp

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

#include "stdafx.h"
#include "Student.h"
#include "ClassQdlg.h"

#include "ClassSet.h"
#include "StudentSet.h"
#include "TeacherSet.h"

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

/////////////////////////////////////////////////////////////////////////////
// CClassQdlg dialog


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


void CClassQdlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CClassQdlg)
	DDX_Control(pDX, IDC_LIST_ClASSQ, m_classoomQ_list);
	DDX_Text(pDX, IDC_EDIT_CLASS_NO, m_class_no);
	DDV_MaxChars(pDX, m_class_no, 4);
	DDX_Text(pDX, IDC_EDIT_NAME, m_name);
	DDV_MaxChars(pDX, m_name, 40);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CClassQdlg, CDialog)
	//{{AFX_MSG_MAP(CClassQdlg)
	ON_BN_CLICKED(IDC_BTN_QUERY, OnBtnQuery)
	ON_BN_CLICKED(IDC_BTN_DELETE, OnBtnDelete)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CClassQdlg message handlers

void CClassQdlg::OnBtnQuery() 
{
	
		// TODO: Add your control notification handler code here
	//输入班级名称或班级号进行查询
	UpdateData();
	CDialog::OnCancel();
    CStudentSet pstu;
	CClassSet pclass;
    CTeacherSet pteacher;
	//CDlgLogin *dl;
    CString strSQL;
	try{
		if(!m_class_no.IsEmpty()){
			strSQL="select class.Class_no,class.Name,student.Name,teacher.name from class,student,teacher where pclass.m_Class_no=m_class_no and pstu.m_Stu_no=(select Monitor from class where pclass.m_Class_no=m_class_no ) and pteacher.m_Teacher_no=(select manager from class where pclass.m_Class_no=m_class_no )"; 
		}
		    
		else{
			if(m_name.IsEmpty()){
				AfxMessageBox("请输入要查询的班级名或班级号!");
				return;
			}
			
			strSQL="select class.Class_no,class.Name,student.Name,teacher.name from class,student,teacher where pclass.m_Name=m_name and pstu.m_Stu_no=(select Monitor from class where pclass.m_Name=m_name ) and pteacher.m_Teacher_no=(select manager from class where pclass.m_Name=m_name )"; 
		}
	//AfxMessageBox("打开数据库!");
	if(!pclass.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL))
	{
		 AfxMessageBox("打开数据库失败!");
		return;
	}
	m_classoomQ_list.DeleteAllItems();//将表中原有的记录全部删掉
	int i=0;
	
	while(!pclass.IsEOF())
	{
	    m_classoomQ_list.InsertItem(i,pclass.m_Class_no);
		m_classoomQ_list.SetItemText(i,1,pclass.m_Name);
		m_classoomQ_list.SetItemText(i,2,pstu.m_Name);
		m_classoomQ_list.SetItemText(i,3,pteacher.m_Name);
		i++;
		pclass.MoveNext();
	}
	pclass.Close();
	}
	catch(CDBException *pe){
		AfxMessageBox(pe->m_strError);
		pe->Delete();
	}
}

BOOL CClassQdlg::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
	//初始化学生基本信息表
	m_classoomQ_list.InsertColumn(0,"班级号");
	m_classoomQ_list.InsertColumn(1,"班级名");
	m_classoomQ_list.InsertColumn(2,"班长姓名");
	m_classoomQ_list.InsertColumn(3,"班主任姓名");
    

	m_classoomQ_list.SetColumnWidth(0,100);
	m_classoomQ_list.SetColumnWidth(1,100);
	m_classoomQ_list.SetColumnWidth(2,100);
    m_classoomQ_list.SetColumnWidth(3,100);

	m_classoomQ_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
}

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

void CClassQdlg::OnBtnDelete() 
{
	// TODO: Add your control notification handler code here
	int i =	m_classoomQ_list.GetSelectionMark();
	if(i<0)
	{
		AfxMessageBox("请选择一条记录进行查看!");
		return;
	}
	CString strSQL;
    strSQL.Format("select * from class where Class_no= '%s' ",m_classoomQ_list.GetItemText(i,0));

	

	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 CClassQdlg::RefreshData(){
	m_classoomQ_list.DeleteAllItems();
	m_classoomQ_list.SetRedraw(FALSE);

	UpdateData(TRUE);
	CString strSQL;
	strSQL="select * from class";
	if(!m_recordset.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL))
	{
		MessageBox("打开数据库失败!","数据库错误",MB_OK);
		return ;
	}	
	int i=0;
	while(!m_recordset.IsEOF())
	{
		m_classoomQ_list.InsertItem(i,m_recordset.m_Class_no);
        m_classoomQ_list.SetItemText(i,1,m_recordset.m_Name);
        m_classoomQ_list.SetItemText(i,1,m_recordset.m_Monitor);
       m_classoomQ_list.SetItemText(i,1,m_recordset.m_Manager);
	    i++;
		m_recordset.MoveNext();
	}
	m_recordset.Close();
	m_classoomQ_list.SetRedraw(TRUE);
}

⌨️ 快捷键说明

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