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

📄 dormqdlg.cpp

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

#include "stdafx.h"
#include "Student.h"
#include "DormQdlg.h"

#include "Student.h"
#include "DormSet.h"
#include "StudentSet.h"
#include "Stu_classSet.h"

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

/////////////////////////////////////////////////////////////////////////////
// CDormQdlg dialog


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


void CDormQdlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CDormQdlg)
	DDX_Control(pDX, IDC_LIST_ClASSQ, m_stuQuery_List);
	DDX_Text(pDX, IDC_EDIT_NAME, m_name);
	DDX_Text(pDX, IDC_EDIT_NO, m_stu_no);
	//}}AFX_DATA_MAP
}


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

/////////////////////////////////////////////////////////////////////////////
// CDormQdlg message handlers

void CDormQdlg::OnBtnQuery() 
{
	// TODO: Add your control notification handler code here
	UpdateData();
	CDialog::OnCancel();
    CStudentApp *dl;
	CDormSet pdorm,pdorm1;
    CStudentSet pstu;
    CString strSQL,strSQL1;
	try{
		if(!m_stu_no.IsEmpty()){
			strSQL="select * from dormitory where pdorm.m_Dorm_no=(select student.Dorm_no where pstu.m_Stu_no=m_stu_no )";
		}
		    
		else{
			if(m_name.IsEmpty()){
				AfxMessageBox("请输入要查询的名称或学号");
			return;
			}
			strSQL="select * from dormitory where pdorm_no=(select student.Dorm_no where pstu.m_Name=m_name)";
		}
	strSQL1="select Class_no from stu_class where Stu_no=NNNNN";//NNNN是登录用户的学号
	//AfxMessageBox("打开数据库!");
	if(!pdorm.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL))
	{
		 AfxMessageBox("打开数据库失败!");
		return;
	}	
	if(!pdorm1.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL1))
	{
		 AfxMessageBox("打开数据库失败!");
		return;
	}
	m_stuQuery_List.DeleteAllItems();//将表中原有的记录全部删掉
	int i=0;
	CString str;
	if((dl->m_curKind==1)||((dl->m_curKind==0)&(pdorm.m_Class_no==pdorm1.m_Class_no))){//登录用户是老师或者两学生属于同一个班
	while(!pdorm.IsEOF())
	{
	    m_stuQuery_List.InsertItem(i,pdorm.m_Dorm_no);
		m_stuQuery_List.SetItemText(i,1,pdorm.m_Build_no);
		m_stuQuery_List.SetItemText(i,2,pdorm.m_Apartment_no);
		m_stuQuery_List.SetItemText(i,3,pdorm.m_Sex);
		str.Format("%s",pdorm.m_Stu_num);
		m_stuQuery_List.SetItemText(i,4,str);
		m_stuQuery_List.SetItemText(i,5,pdorm.m_Manager);
		m_stuQuery_List.SetItemText(i,6,pdorm.m_Phone);
		m_stuQuery_List.SetItemText(i,7,pdorm.m_Class_no);
		i++;
		pdorm.MoveNext();
	}//while
	pdorm.Close();
	pdorm1.Close();
	}//try
}//if
	catch(CDBException *pe){
		AfxMessageBox(pe->m_strError);
		pe->Delete();
	}
	
}

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

void CDormQdlg::OnBtnDelete() 
{
	// TODO: Add your control notification handler code here
		int i =	m_stuQuery_List.GetSelectionMark();
	if(i<0)
	{
		AfxMessageBox("请选择一条记录进行查看!");
		return;
	}
	CString strSQL;
    strSQL.Format("select * from dormitory where Dorm_no= '%s' ",m_stuQuery_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 CDormQdlg::RefreshData(){
	m_stuQuery_List.DeleteAllItems();
	m_stuQuery_List.SetRedraw(FALSE);

	UpdateData(TRUE);
	CString strSQL;
	strSQL="select * from dormitory";
	if(!m_recordset.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL))
	{
		MessageBox("打开数据库失败!","数据库错误",MB_OK);
		return ;
	}	
	int i=0;
	while(!m_recordset.IsEOF())
		{
	    m_stuQuery_List.InsertItem(i,m_recordset.m_Dorm_no);
        m_stuQuery_List.SetItemText(i,1,m_recordset.m_Build_no);
        m_stuQuery_List.SetItemText(i,1,m_recordset.m_Apartment_no);
        m_stuQuery_List.SetItemText(i,1,m_recordset.m_Sex);
		m_stuQuery_List.SetItemText(i,1,m_recordset.m_Manager);
		m_stuQuery_List.SetItemText(i,1,m_recordset.m_Phone);
	    i++;
		m_recordset.MoveNext();
	}
	m_recordset.Close();
	m_stuQuery_List.SetRedraw(TRUE);
}

BOOL CDormQdlg::OnInitDialog() 
{
	CDialog::OnInitDialog();

	m_stuQuery_List.InsertColumn(0,"编号");
	m_stuQuery_List.InsertColumn(1,"楼号");
	m_stuQuery_List.InsertColumn(2,"房间编号");
	m_stuQuery_List.InsertColumn(3,"性别");
    m_stuQuery_List.InsertColumn(4,"人数");
	m_stuQuery_List.InsertColumn(5,"舍长编号");
	m_stuQuery_List.InsertColumn(6,"电话号码");
	m_stuQuery_List.InsertColumn(7,"所在班级");

	m_stuQuery_List.SetColumnWidth(0,60);
	m_stuQuery_List.SetColumnWidth(1,60);
	m_stuQuery_List.SetColumnWidth(2,80);
    m_stuQuery_List.SetColumnWidth(3,60);
	m_stuQuery_List.SetColumnWidth(4,60);
	m_stuQuery_List.SetColumnWidth(6,80);
	m_stuQuery_List.SetColumnWidth(7,80);


	m_stuQuery_List.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);
	
	// TODO: Add extra initialization here
	
	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 + -