人员管理系统 52页

  • 649.25 KB
  • 2022-05-17 10:56:22 发布

人员管理系统

  • 52页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
人员管理系统1.系统设计的目的和意义22.系统总框架图23.软件功能描述24.软件代码的设计34.1数据结构描述与定义34.2模块设计45.软件使用说明66.测试结果与分析77.比较有特色的函数128.存在的不足与计策139.课程设计总结14附录:源程序清单(核心部分)15 1.系统设计的目的和意义采纳面向对象设计思想,治理2类人员。教师信息(姓名,编号,年龄,职称,学历,籍贯,工作日期),学生信息(姓名,年龄,学号,籍贯,入学日期)。完整输入/输出设计,写入ACCESS文件,分别建立两个表信息,一个储备教师信息,一个储备学生信息。采纳工程文件方式组织程序。能进行增、删、查、改等操作。初始完成密码认证框的编写。外观设计风格各异2.系统总框架图登录主菜单登录用户管理学生管理教师管理帮助3.软件功能描述治理2类人员:教师信息(姓名,编号,年龄,职称,学历,籍贯,工作日期),学生信息(姓名,年龄,学号,籍贯,入学日期)。完整输入/输出设计,写入ACCESS文件。能进行增、册k查、改等操作。采纳友好的用户界面。治理用户:添加、删除、修改密码等操作。 1.软件代码的设计4.1数据结构描述与定义①ACCESS表表password:Puser文本Ppassword文本Pisadmin是/否表student:Sname文本Sno文本Sage文本Snative文本Setime文本表teacher:Tname文本Tno文本Tage文本Ttitle文本Tdegree文本Tnative文本Twtime文本②MFC类classCUserSet:publicCRecordset〃用户数据定义(CStringm_Puser;CStringm_Ppassword;BOOLm_Pisadmin;}classCStudentSet:publicCRecordset〃学生数据定义CStringm_Sname;CStringm_Sno; CStringm_Sage; CStringm_Snative;CStringm_Setime;}〃教师数据定义classCTeacherSet:publicCRecordset(CStringm_Tname;CStringm_Tno;CStringm_Tage;CStringm_Ttitle;CStringm_Tdegree;CStringm_Tnative;CStringm_Twtime;)4.2模块设计系统共分成七个模块,分别是:用户登录模块,用户治理模块,学生信息查询模块,学生信息编辑模块,教师信息查询模块,教师信息编辑模块,关心模块。①用户登录模块 ②用户治理模块结束③查询模块(学生信息查询,教师信息查询) ④编辑模块(学生信息编辑,教师信息编辑):病;4.软件使用说明登录系统时可依照ACCESS表password查看用户名和密码。无需建立ODBCo登录成功后显示主菜单,有系统治理,学生信息治理,教师信息治理和关心。在系统治理中,你能够进行用户治理,注销/重新登录和退出系统。在学生信息治理中,你能够进行学生信息查询和添加/修改信息。教师信息治理中,你能够进行教师信息查询和添加/修改信息。在关心中,你能够查看软件的相关内容。专门提醒:假如你的登录是非治理员,那么你将没有用户治理,添加/修改信息等操作八口”在用户治理中,你能够修改密码,新增用户,删除用户。在信息查询中,你能够通过编号查询或姓名查询。能够同时输入或不输,若不输则显示全部信息。在添加/修改信息中,你能够对信息进行添加,修改,删除等操作。 4.测试结果与分析运行程序,显示登录界面。(治理员建议使用:用户名“weiheng”,密码“1234”。非治理员建议使用:用户名“ww”,密码“1234”。)成功登录后显示主界面。然后依照菜单内容依次运行. 返回登录界面.人员饯理笨铳这是用户信息界而。以治理员身份进入该界面。图为创建一个用户“bbb”的操作°人员eai系统 这是学生信息查询界面。若不输入查询项查询,则显示所有数据。、关钳理年校泰能二受学生信彼*生=设WZ0^)@学”信我宣制图为依照学生学号查询。zGT©®学生信区也出 显示,添加,修改,删除一体化,依照所需要的操作进行操作.图为教师信息查询。操作方法如同学生信息查询1f人也东线 图为教师信息编辑。操作方法如同学生信息编辑人员管理系妹图为关心界面. 4.比较有特色的函数①显示全部信息函数,以下是显示全部教师信息函数。voidCTeachcreDlg::OnTeonall()(nvctlList.DeleteAllItemsO;m_ctlList.SetRedraw(FALSE);UpdateData(TRUE);CStringstrSQL;strSQL.Format(Mselect*fromteacher"*);if(!m_recordset.Open(AFX_DB_USE_DEFAULT_TYPEstrSQL))(MessageBoxC打开数据库失败!/数据库错误”.MB」CONSTOP);return;)inti=0;while(!m_recordset.IsEOF()){m-ctlList.InsertltenXi.nvrecordset.nvTno);m_ctlList.SetItemText(i,1jn_recordset.m_Tnamc);in_ctlList.SetIten】Text(i,2.in_recordset.m_Tage);nvctlList.SetItcmText(i,3jn_recordset.m_Ttitle);m_ctlList.SetItcmText(i,4jn_recordset.m_Tdegree);ni_ctlList.SetIteniText(i,5,m_recordset.m_Tnative);ni_ctlList.SetItemText(i,6.m_recordset.m_Twlime);i++;m_recordset.MoveNext();)m_recordset.Close();nvctlList.SetRedraw(TRUE);)②查询函数,以下是学生信息查询函数voidCStudentDlg::OnSsearch()(UpdateData(TRUE);nvctlList.DeleteAllItemsO;nvctlList.SetRedraw(FALSE);CStringstr=Hselect*fromstudent”;UpdateData(true);if(!m_recordset.Open(AFX_DB_USE_DEFAULT_TYPE_T(str))){MessagcBoxC打开数据库失败!〈微据库错误”,MB」CONSTOP);return; )inti=0;while(!m_recordset.IsEOF0){if((m_recordset.ni_Sno==noralSnollm_valSno==,H,)&&(m_recordset.m_Sname==m-valSnaniellm_valSname==,,M))(m_ctlList.InsertItem(i,m_recordset.m_Sno);nvctlList.SetltemlextCi,1.m_recordset.m_Sname);nvctlList.SetItemlext(i,2.m_recordset.m_Sage);nvctlList.SetItemText(i3^ni_recordset.m_Snative);nvctlList.SetItemText(i,4,m_recordset.m_Setime);i++;)m_recordset.MoveNext();)m_recordset.Close();m_ctlList.SetRedraw(TRUE);)4.存在的不足与计策一开始做的程序,界面简单,显示信息单调,分不清一般用户和治理员的区别。改进后,加入了图片和皮肤系统提供了友好的界面,采纳列表控件进行对多组数据的显示,同时添加依照是否是治理员进行操作判定。5.课程设计总结在这次课程设计中,我学到了专门多。拿到课题是觉得依旧专门简单的,即便加入身份验证功能。无非确实是三张ACCESS表,一张储存用户名和密码,一张储存学生信息,还有一张储存教师信息。创建对话框也就三个,分别对应。内容简单,功能也满足要求,然而缺乏创新。因此在此基础上乂加入了注册和修改密码。反复改,反复改,不知不觉的一个工程做了好几遍。当我把所有我能想到的东西都加到里面去后,依旧觉得少了点什么。这一直觉来自于看了一个人做的图书治理系统,在界面上比我优化,在功能上比我先进,尽管他做的不是和我一个系统。 看到比自己好的,不自觉地开始改进。第一是创建ODBC,从需要自己创建ODBC开始到程序生成ODBC,感受专门复杂,事实上也就几行代码的问题。其次是皮肤,没有皮肤觉得界面太难看。尽管是下载的文件,然而添到里面去也是一个难事,还要添加一个SkinPlusPlus.ho再有确实是采纳列表控件,只要会了方法,输出信息专门方便。原先我程序思想是在学生信息中分为查询、添加、修改、删除等模块,现在进行统一,查询依旧查询系统,添加、修改和删除融合成一个编辑系统。教师也是一样。在关于用户,也不局限于一旦创建只能修改密码,现在还能够注销账号。最后是各个功能的衔接,用菜单来调用。同时依照是否是治理员进行判定某些操作是否可用。这次课程设计同时也使我对MFC有了更深刻的认识。再也不是局限于那几个控件和某些类的派生。对不同文件之间的联系,.h和.cpp之间的联系有了更深层次的明白得。往常因为知识的匮乏,总是纳闷各个文件之间是如何样作用的,现在尽管不是十分的了解.,但差不多能感受到其中的奥妙所在,让我感受到C++的无穷魅力。附录:源程序清单(核心部分)文件:wh.cpp#include"*stdafx.hMinclude"wh.h**#include“MainFnn.h”#include"whDoc.h",#include°whView.hMinclude“LoginDlg.h”#includeHSkinPlusPlus.hH#ifdef.DEBUG#definenewDEBUG.NEW#undefTHIS_HLEstaticcharTHIS_FILE[1=_HLE_:#endifBEGIN_MESSAGE_MAP(CWhApp.CWinApp)ON_COMMAND(ID_APP_ABOUT.OnAppAbout)ON_COMMAND(ID_FILE_NEW,CWinApp::OnFileNew) ON_COMMAND(ID_FILE_OPEN,CWinApp::OnFileOpen)END_MESSAGE_MAP()CWhApp::CWhApp()()CWhApptheApp;BOOLCWhApp::InitInstance()(AfxEnableControlContainerO:SQLConfigDataSource(NULL.ODBC_ADD_DSN,〃通过程序创建ODBC^MicrosoftAccessDriver(♦.mdb)*","DSN=WhODBCM "Description=Hotel,,°FileTvpe=AccessOu°DBQ=.\Wh.mdbO);#ifdef_AFXDLLEnable3dControls():#elseEnable3dConlrolsSlalic():#endifSelRegistryKeyGT("LocalAppWizard-GeneratedApplications(*));LoadStdProfileSettings(O);InitializeSkin(_T(MXPCorona.sskH)):CLoginDlgloginDIg;if(loginDlg.DoModal(W=IDOK)returnFALSE:CSingleDocTemplate*pDocTemplate;pDocTemplate=newCSingleDoclemplale(IDR_MAINFRAME,RUNTIME_CLASS(CWhDoc),RUNTIME_CLASS(CMainFrame),RUNTIME_CLASS(CWhView));AddDocTemplate(pDocTemplate):CCommandLinelnfocindlnfo:ParseCommandLine(cmdInfb);if(!ProcessShellCominand(cmdInfo))returnFALSE:in_pMainWnd->ShowWindow(SW_SIIOW):in_pMainWnd->UpdateWindow():in_pMainWnd->SetWindowText(HA员治理系统”);〃加载皮肤〃先显示登录界面〃显示主菜单标题returnTRUE:}classCAboutDlg:publicCDialog{public: CAboutDlg();enum{IDD=IDD.ABOUTBOX};protected:virtualvoidDoDataExchange(CDataExchange*pDX);protected:DECLARE_MESSAGE_MAP()};CAboutDIg::CAboutDlg():CDialog(CAboutDlg::IDD)()voidCAboutDlg::DoDataExchange(CDataExchaiige*pDX)(CDialog::DoDataExchange(pDX);}BEGIN_MESSAGE_MAP(CAboutDlg,CDialog)END_MESSAGE_MAP()voidCWhApp::OnAppAboul(){CAboutDlgaboutDlg;aboutDlg.DoModaK);)文件:UserSet.cppincludeMstdafx.hHinclude”wh.h”#includeHUserSet.hM#ifdef_DEBUG#definenewDEBUG.NEW#undefTHIS_FILEstaticcharTHIS_FILE|]=_HLE_:#endifIMPLEMENT_DYNAMIC(CUserSet.CRecordset)CUserSet::CUserSet(CDatabase*pdb):CRecordset(pdb)(m_Puser=_T(,H,);m_Ppassword=_TO;m_Pisadmin=FALSE: m_nFields=3;mjiDefaullType=snapshot:}CStringCUserSet::GetDefaultConnect()(return_T(ODBC:DSN=WhODBCH);}CStringCUserSet::GetDefaultSQU)(return_T(password]H);}voidCUserSet::DoFieldExchange(CFieldExchange*pFX){pFX->SelFieldType(CFieldExchange::outputColumn);RFX_Text(pFX,.TCIPuser]"*),m.Puser);RFX_Text(pFX._T("[Ppassword「),m_Ppassword);RFX_Bool(pFX,_T(”[Pisadmin])m_Pisadmin);#ifdef_DEBUGvoidCUserSet::AssertValid()const(CRecordset::AssertValid();}voidCUserSet::Dump(CDumpContext&de)const(CRecordset::Dump(dc);}#endif文件:StudentSet.epp#include"*stdafx.hMinclude“wh.h”#include"StudentSet.h",#ifdef.DEBUG#definenewDEBUG_NEV#undefTHIS_HLEstaticcharTHIS_FILEU=_FILE_:#endifIMPLEMENT_DYNAMIC(CStudentSet.CRecordset)CStudeniSet::CStudenlSet(CDatabase*pdb):CRecordset(pdb){m_Sname=_T「);#ifdefDEBUG m_Sno=_T(,H,);m_Sage=_T("");m_Snalive=m_Selime=_T(MM);m_nFields=5;m_nDefaullType=snapshot:)CStringCStudentSet::GetDefaultConnect()(return_T(ODBC:DSN=WhODBC");)CStringCStudentSet::GelDefauItSQL()(return_T("|student]”);)voidCStudentSel::DoFieldExchange(CFieldExchange*pFX)(pFX->SetFieldType(CFieldExchange::outpulColumn);RFX_Text(pFX,_T("[Sname「),m_Sname);RFX_Texi(pFX,.T("1Sno]MXm_Sno);RFX_Text(pFX,_T(”[Sage]“).m.Sage);RFX_Text(pFX,_T("[Snaiive「),ni_Snative):RFX_Text(pFX,_TnSetime「).m_Setime);)#ifdef.DEBUGvoidCStudentSel::AssertValid()const(CRecordset::AssertValid();)voidCStudentSet::Dump(CDumpContext&de)const(CRecordset::Dump(dc);)#endif文件:TeacherSet.cpp#includeMstdafx.hMinclude"wh.hHinclude"TeacherSet.hH#ifdefDEBUG #definenewDEBUG_NEW#undefTHIS_FILEstaticcharTHIS_FILE[|=_FILE_:#endifIMPLEMENT_DYNAMIC(CTeacherSet.CRecordset)CTeacherSet::CTeacherSet(CDalabase*pdb):CRecordset(pdb)(m_Tname=m_Tno=_T「);m_Tage=_TCH,);m_TtitIe=_T(HH);m_Tdegree=_T(,M,);m.Tnative=m_Twtime=m_nFields=7;m_nDefaullType=snapshot:)CStringCTeacherSet::GetDefaultConnect()(return_TCODBC:DSN=WhODBC");)CStringCTeacherSet::GetDefaultSQU)(return_T("[teacher『);)voidCleacherSet::DoFieldExchange(CFieldExchange*pFX){pFX->SetFieldType(CFieldExchange::outputColumn);RFX_Text(pFX,_T(TTnan】e「).m_Tname):RFX_Text(pFX,_T("[Tno「).m_Tno);RFX_Text(pFX,_T(”[Tage「),m.Tage):RFX_Text(pFX,.TCITtitle]").m.Ttitle);RFX_Text(pFX._TnTdegree「),m_Tdegree):RFXJIbxt(pFX,.T(M(Tnative]H),m.Tnative);RFX_Text(pFX,_T("[Tworktin】e「),m.Twtinie):}#ifdefDEBUGvoidCTeacherSet::AssertValid()const (CRecordset::AssertValid();)voidCleacherSet::Dunip(CDumpContext&de)const(CRecordset::Dump(dc);)#endif文件:LoginDlg.eppincludeMstdafx.hM#include"wh.h"include"LoginDlg.h",includeHUserSet.hH#ifdef.DEBUG#definenewDEBUG.NEW#undefTHIS_HLEstaticcharTHIS_FILE[1=_HLE_:#endifCLoginDlg::CLoginDlg(CWnd*pParenl):CDialog(CLoginDlg::IDD,pParent){ni_valPass=m_valUser=_T(,H,);)voidCLoginDlg::DoDataExchange(CDataExchange*pDX)(CDialog::DoDataExchange(pDX);DDX_Conlrol(pDX.IDC_LUSER.m_ctlUser);DDX_ConlroI(pDX.IDC_LPASS,m_ctlPass);DDX_Texi(pDX.IDC_LPASS.m_va!Pass);DDX_CBSlring(pDX.IDC_LUSER.m.valUser):)BEGIN_MESSAGE_MAP(CLoginDlg.CDialog)ON_BN_CLICKED(IDC_LOK.OnLok)END_MESSAGE_MAP()voidCLoginDlg::OnLok()(CUserSetrecordset:CStringstrSQL: UpdateData(TRUE):if(m_valUser.IsEmpiy()){MessageBox「请输入用户名!”您的访问出借CMBJCONEXCLAMATION);m_ctlUser.SelFocus();return;}if(m_valPass.IsEinpty())〃检查密码是否输入{MessageBox。请输入密码!丁"您的访问出错了!MB」CONEXCLAMATION):m_cllPass.SetFocus();return;}CWhApp*ptheApp=(CWhApp*)AfxGetAppO;slrSQL.FormaU"select*frompasswordwherePuser=%s*ANDPpassword=,%sHin_valUserjn_valPass);if(!recordset.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL)){MessageBox("打开数据库失败!1丁数据库错误”,MB_ICONSTOP);return:)if(recordsel.GetRecordCount()==0){recordset.CloseO:MessageBox,密码错误,请重新输入!“Areyoutrickingme”MBJCONSTOP);m_valPass=MO;m_cllPass.SetFocus();UpdateData(FALSE);)else{ptheApp->m_bIsAdmin=recordsei.m_Pisadmin;recordset.CloseO;CDialog::OnOK();))BOOLCLoginDlg::OnInilDialog()(CDialog::OnInitDialog();CUserSetrecordset:CStringstrSQL: UpdateData(TRUE):strSQL=Hselect♦frompassword";if(!recordset.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL)){MessageBoxd打开数据库失败!/数据库错误,returnFALSE:}while(irecordset.IsEOFO){m_ctlUser.AddString(recordset.m_Puser);recordset.MoveNextO;}recordset.Close。:returnTRUE;}voidCLoginDlg::OnCancel()(CDialog::OnCanceK);)文件:UserDlg.cppinclude°stdafx.hMinclude”wh.h”#include"UserDlg.h"#ifdef_DEBUG#definenewDEBUG_NEV#undefTHIS_HLEstaticcharTHIS_FILEU=_FILE_:#endifCUserDlg::CUserDlg(CWnd*pParent/*=NULL*/):CDialog(CUserDlg::IDD,pParent)(m_bIsAdmin=FALSE;m_valPass=in_valRePass=m_valUser=_T("");}voidCUserDlg::DoDataExchange(CDataExchange*pDX)CDialog::DoDataExchange(pDX): DDX_Control(pDX,IDC.UUSER,m.ctlUser):DDX_Control(pDX.IDC_UPASS.m_ctlPass);DDX_Conlrol(pDX.IDC.ULIST,m.cllList):DDX_Check(pDX.IDC.UCHECK.m_bIsAdmin);DDX_Text(pDX.IDC_UPASS,m_valPass):DDX_Text(pDX.IDC_UREPASS.in_valRePass);DDX_Text(pDX.IDC.UUSER,m_valUser);}BEGIN_MESSAGE_MAP(CUserDlg.CDialog)ON.BN_CLICKED(IDC_UADDNEW,OnUaddnew)ON_BN_CLICKED(IDC_UDELETE.OnUdelete)ON.BN_CLICKED(IDC_UOK,OnUok)ON_BN_CLICKED(IDC_UCANCEL.OnUcancel)ON_NOTIFY(NM_CLICK.IDC.ULISTOnClickUlist)END.MESSAGE_MAP()BOOLCUserDlg::OnInitDialog()(CDialog::OnInitDialog();〃创建用户列表m_ctlList.InsertColumn(0,”用户名)m_ctlList.SetExtendedStyle(LVS_EX_FULLROWSELECTILVS_EX_GRIDLINES):!n_ctlList.SetColumnWidth(0.155);RefreshDalaO;〃在添加用户列表中添加用户名〃清空用户列表〃打开记录集returnTRUE:voidCUserDlg::RefreshData()in_ctlList.SetFocus();m_ctlList.DeleteAllItems();inctlList.SetRedraw(FALSE);CStringslrSQL:UpdateDala(TRUE):strSQL=Hselect♦frompassword"; if(!m_recordset.Open(AFX_DB_USE_DEFAULT_TYPE.strSQL)) MessageBox("打开数据库失败二”数据库错误,MB」CONSTOP);return:)ini』0:while(!m_recordset.IsEOF())mctlLisl.InsertItem(i4-+.mrecordset.mPuser):m_recordset.MoveNext();m_recordset.Close();in_cllList.SetRedraw(TRUE);voidCUserDlg::OnUaddnew()(m_valUser=,M,;m_valPass=m_valRePass="”;m_bIsAdmin=FALSE;m_ctlUser.EnableWindow(TRUE);m_ctlUser.SetFocus();UpdateData(FALSE):)voidCUserDlg::OnUdelete()(UpdateDala(TRUE):〃添加用户名到用户列表中〃清空用户资料〃设置用户名编辑框为可用〃更新数据到界面〃判定是否指定用户if(m_valUser=,M,){MessageBox("请选择一个用户!return:}CStringstrSQL:strSQL.Formal(Mselect*frompasswordwherePuser="%sHm_valUser):if(!m_recordset.Open(AFX_DB_USE_DEFAULT_TYPE.strSQL)){MessageBox("打开数据库失败r7数据库错误”,MB」CONSTOP);return:}inrecordset.DeleleO;〃删除该用户m_recordset.Close(); 〃刷新用户列表RefreshDataO;m_valUser=m_valPass=m_va!RePass=m-blsAdmin=FALSE;UpdateDala(FALSE);)voidCUserDlg::OnUok()(UpdateDataO;if(m_ctlUser.IsWindowEnabled())(if(m_valUser=="“)〃增加新用户的输入检查(MessageBoxC请填写用户名!”);m_ctlUser.SetFocus();return;})else{if(m_valUser=="”)〃修改用户信息的输入检查(MessageBoxC请选择一个用户!)return;}}if(m_valPass==,"")〃限制密码不能为空{MessageBox("密码不能为空,请输入密码!)m_cllPass.SetFocus();return;)if(m_valPass!=m_valRePass)//验证密码与确认密码是否一致{MessageBox(“两次输入地密码不一致,请重新输入密码!)m_cllPass.SetFocus();m_valPass=m_valRePass=UpdateData(FALSE):return;)CStringstrSQL:strSQL.Fonnal(Hselect*frompasswordwherePuser=%sHm_valUser): if(!m_recordset.Open(AFX_DB_USE_DEFAULT_TYPE.strSQL)){MessageBox("打开数据库失败!/数据库错误,MB」CONSTOP);return:)if(m_ctlUser.IsWindowEnabled()){〃增加新用户if(m_recordset.GetRecordCount()!=0)〃判定用户是否已存在{m_recordset.Close();MessageBoxC该用户差不多存在!”);return:}m_recordset.AddNew():m_recordsel.m_Puser=m_valUser;m_recordsel.m_Ppassword=m_valPass:m_recordset.m_Pisadmin=m_bIsAdmin;ni_recordsel.Update();MessageBox("用户添加成功!请记住用户名和密码!”);m_recordset.Close();}else{〃修改用户信息if(m_recordset.GeiRecordCount()==0)〃判定用户是否不存在{m_recordset.Close();MessageBoxC该用户不存在!请更新数据库)return:)m_recordset.Edit():m_recordsel.m_Puser=m_valUser;m_recordset.m_Ppassword=m_vaIPass:m_recordset.m_Pisadmin=m_bIsAdmin;m_recordset.Update();MessageBox(“用户修改成功!请记住用户名和密码!)m_recordsel.Close();)m_ctlUser.EnableWindow(FALSE); RefreshDalaO;voidCUserDlg::OnUcancel()(m_valUser=,M,;m-valPass=m_valRePass=m_bIsAdmin=FALSE;in_ctlUser.EnableVindow(FALSE);UpdateData(FALSE);}voidCUserDlg::OnClickUlist(NMHDR*pNMHDR.LRESULT*pResult)(CStringstrSQL:UpdateDala(TRUE);in_ctlUser.EnableVindow(FALSE);inti=m_ctlList.GetSelectionMark();〃从数据库中猎取选择用户名的资料m_valUser=m_ctlList.GelItemText(i,O);strSQL.Formal(Mselect*frompasswordwherePuser="%sHm_valUser):if(!m_recordset.Open(AFX_DB_USE_DEFAULT_TYPE.sirSQL)){MessageBox("打开数据库失败!“J数据库错误,MB」CONSTOP);return:}〃显示用户资料in_valPass=m_recordset.m_Ppassword:m_valRePass=m_valPass:in_bIsAdmin=m_recordset.m_Pisad!nin;m_recordset.Closed;UpdateDala(FALSE);♦pResult=0;}文件:StudentDlg.cpp#include"*stdafx.hM#include"wh.h"#include^StudentDlg.h"#ifdef_DEBUG #definenewDEBUG.NEW#undefTHIS_HLEstaticcharTHIS_FILEn=_HLE_:#endifCStudentDlg::CStudentDlg(CWnd*pParent/*=NULL*Z):CDialog(CStudentDlg::IDD.pParent)(m_valSname=m_valSno=}voidCStudentDlg::DoDataExchange(CDataExchaiige*pDX)(CDialog::DoDataExchange(pDX):DDX.ControKpDX,IDC.LISTLm_ctlList);DDX_Text(pDX.IDC_SSNAME,m_valSnan>e);DDX_Text(pDX.IDC_SSNO.m_valSno):}BEGIN_MESSAGE_MAP(CStudentDlg.CDialog)ON.BN_CLICKED(IDC_SSEARCH.OnSsearch)END_MESSAGE_MAP()BOOLCStudentDlg::OnlnitDialogO{CDialog::OnInitDialog();m_cUListJnsertCohimn(0,“学生学号”);m_ctlLi$t,InsertColumn(1学生姓名”);m_ctlList.InsertColumn(2J学生年龄m_cUList.InsenColumn(3,“学生籍贯”);m_cUList.InsertColumn(4,"入学日期");!n_ctlList.SetColumnWidth(0.120);m_ctlList.SetColumnWidth(1J10);m_cllList.SetCoIumnWidth(2.60);in_ctlList.SetColumnWidth(3.110):mctlList.SetColumnWidth(4.175);!n_ctlList.SetExtendedStyle(LVS_EX_FULLROWSELECTILVS_EX_GRIDLINES):returnTRUE;) voidCStudentDlg::OnSsearch()(UpdateData(TRUE):in_ctlList.DeleteAllItems();in_ctlList.SetRedraw(FALSE);CStringstr="select*fromstudent",;UpdateData(true);if(!m_recordset.Open(AFX_DB_USE_DEFAULT_TYPE._T(str))){MessageBoxd打开数据库失败!/数据库错误”,MB」CONSTOP);retuni:}iniwhile(!m_recordset.IsEOF()){if((m_recordset.m_Sno==m_valSnollm_valSno=="M,)&&(in_recordsei.m_Sname==m_valSnamell!n_valSname=="")){m_ctlList.InsertItem(ijn_recordset.m_Sno):in_ctiList.SelIiemText(i,1,m_recordset.m_Sname);in_ctlList.SetItemText(i,2.m_recordset.m_Sage);m_ctlLisi.SelItemText(i,3.m_recordsel.m_Snative):in_ctlList.SelIteniText(i,4,m_recordsel.m_Setime);i++:)m_recordsel.MoveNext():}in_recordset.Close():m_ctlList.SelRedraw(TRUE);}文件:StudenteDlg.cpp#includeMstdafx.hMinclude"wh.hH#includeHStudenteDlg.hH#ifdefDEBUG#definenewDEBUG_NEW#undefTHIS_FILE staticcharTHIS_FILEn=_HLE_;#endifCStudenteDlg::CStudenteDlg(CWnd*pParent/*=NULL*/):CDialog(CStudenteDIg::IDD.pParent){m_valSetime=_T("");m-valSname=m_valSnative=m_valSno=m_valSage=}voidCStudenteDlg::DoDataExchange(CDalaExchange*pDX)(CDialog::DoDataExchange(pDX):DDX_Control(pDX.IDC_SELIST.m_ctIList):DDX_Text(pDX.IDC_SEETIME.m.valSetime);DDX_Texi(pDX.IDC_SENAME.m_valSname):DDX_Text(pDX.IDC_SENATIVE.m_valSnative);DDX_Text(pDX.IDC_SENO.m_valSno):DDX_Text(pDX.IDC_SEAGE.m_valSage):)BEGIN_MESSAGE_MAP(CStudenteDlg.CDialog)ON.BN_CLICKED(IDC_SEADDNEW,OnSeaddnew)ON_NOTIFY(NM_CLICK.IDC.SELISTOnClickSelist)ON.BN_CLICKED(IDC_SEDELETE.OnSedelete)ON.BN_CLICKED(IDC_SEONALL.OnSeonall)ON.BN_CLICKED(IDC_SEEDIT.OnSeedit)END_MESSAGE_MAP()BOOLCStudenteDlg::OnInitDialog(){CDialog::OnInitDialog();m_cUList.InsenColumn(0,“学生学号");m_cUListJnsertColun】n(1学生姓名”);m_ctlList」nsertColumn(2「学生年龄”);m_cHLisLlnsertColumn(3,“学生籍贯");m_cUListJnsertCohimn(4J入学日期");m_ctlList.SetColumnWidth(0.120); m_ctlList.SetColuinnWidth(1.90);in_ctlList.SelColumnWidlh(2.60):in_ctlList.SetCoIuinnWidth(3.90);in_ctlList.SetColumnWidth(4.155);!n_ctlList.SelExtendedStyle(LVS_EX_FULLROWSELECTILVS_EX_GRIDLINES);CStudentSetrecordsei:〃初始化学生信息if(!recordset.Open(AFX_DB_USE_DEFAULT_TYPE,Hselect♦fromstudent**)){MessageBox,打开数据库失败!数据库错误MB」CONSTOP);returnFALSE:}recordsei.Close。:returnTRUE:}voidCStudenteDlg::OnClickSelist(NMHDR*pNMHDR,LRESULT*pResult){inii=m_ctlList.GetSeleclionMark();m_valSno=m_cllList.GetIteinText(i.O);m_valSname=m_ctlList.GelItemlext(i,1);m_valSage=m_ctlList.GetItemText(i,2);m_valSnative=m_ctlLisl.GetIlemText(i,3);in_valSetime=m_ctlLisl.GetItemText(i.4);UpdateData(FALSE);♦pResult=0:}voidCStudenteDlg::OnSeaddnew()(UpdateDalafTRUE):if(m_valSnaine.IsEmply()){MessageBoxC请输入学生姓名!”);return;}if(m_valSno.IsEmpty()){MessageBox「请输入学生学号!”);return:if(m_valSage.IsEmpty()) {MessageBox,请输入学生年龄!”);return:}if(m_valSnative.IsEmpty()){MessageBox,请输入学生籍贯!”);return:}if(m_valSetime.IsEmpty()){MessageBox(”请输入学生入学日期!”);retuni:}CStringstr="select*fromstudent",;intflag=O;if(!m_recordset.Open(AFX_DB_USE_DEFAULT_TYPE,_T(str))){MessageBox("打开数据库失败!”,”数据库错误”,MB」CONSTOP);return:}while(!m_recordset.IsEOF()){if(m_valSno==m_recordset.m_Sno)(ilag=l;break;}else{m_recordset.MoveNext();))if(flag=l){MessageBox("已有此人,添加失败!二“学生信息”.MBJCONEXCLAMATION);return:}〃添加学生记录in_recordset.AddNew();m_recordset.m_Sno=m_valSno;mrecordset.mSnatne=mvalSnatne: m_recordset.m_Sagem_valSage:in_recordset.in_Snalive=m_valSnalive;in_recordset.in_Setime=m_valSetime:m_recordset.Update();m_recordset.Close();〃更新列表CSludenteDlg::OnSeonall();〃更新界面显示m_va!Sno=m_valSnanie=m_valSage=_T「);m_valSnative=_T「);m_valSetime=_T(MH);UpdateDala(FALSE);}voidCStudenteDlg::OnSedelete(){inii=m_ctlList.GetSeleclionMark();if(0>i){MessageBox「请选择一条记录进行删除!”);return;}CStringslrSQL:slrSQL.FonnaK"select*fromstudentwhereSno=*%s*M,m_ctlList.GetItemText(i.O)):if(!m_recordset.Open(AFX_DB_USE_DEFAULT_TYPE.strSQL)){MessageBox。打开数据库失败!)retuni;)if(MessageBox(“你确定吗?“,“删除信息:MB_OKCANCEL)==IDCANCEL){return;)in_recordset.Delele():in_recordset.Close(); 〃更新界面显示m_valSno=_T(,M,);m_valSname=in_valSage=m.valSnative=m_valSetime=_T("");UpdateDala(FALSE);)voidCStudenteDlg::OnSeonall(){in_ctlList.DeleteAllltemsO;in_cllList.SelRedraw(FALSE);UpdateDala(TRUE):CSlringslrSQL:strSQL.Format(Mselect*fromstudentH);if(!m_recordset.Open(AFX_DB_USE_DEFAULT_TYPE.strSQL)){MessageBox,打开数据库失败!“J数据库错误,MB」CONSTOP);return:}inii=0:CStringstrTime;while(!ni_recordset.IsEOF()){m_cllList.InsertItem(0.m_recordset.!n_Sno);m_cllList.SetItemText(OJjn_recordset.m_Snan>e);m_ctlList.SetIteinText(0.2jn_recordset.m_Sage):m_ctlList.SetIteinText(03jn_recordset.m_Snative);m_ctlList.SetItemText(04jn_recordset.m_Seiime);i++;nwecordset.MoveNexK):)m_recordset.Closed;mctlList.SetRedraw(TRUE): )voidCStudenleDlg::OnSeedil()(UpdateDatafTRUE):if(m_valSname.IsEmpty()){MessageBox「请输入学生姓名!”);return;}if(m_valSno.IsEinpty()){MessageBox「请输入学生学号!”);return;}if(m_valSage.IsEmpty()){MessageBox「请输入学生年龄!");reiurn;}if(m_valSnative.IsEmpty()){MessageBox(”请输入学生籍贯!”);return;}if(m_valSetime.IsEmpty()){MessageBox「请输入学生入学日期!“);return;}CStringstr="select♦fromstudent",;intilag=0:if(!m_recordset.Open(AFX_DB_USE_DEFAULT_TYPE._T(str))){MessageBox,打开数据库失败!/数据库错误,MB」CONSTOP);return;}while(!m_recordset.IsEOF()){if(m_valSno==m_recordset.m_Sno)(flag=l;break:)elsem_recordsei.MoveNext();if(llag==O) {MessageBox("查无此人,默认添加!二”学生信息MBJCONINFORMATION);CStudenteDlg::OnSeaddnewO;return:)〃修改学生记录in_recordset.Edit();m_recordset.m_Sno=m_valSno;in_recordset.!n_Snaine=m_valSname:m_recordset.m_Sage=m_valSage;m_recordset.m_Snative=m_valSnative:m_recordsetjn_Setime=m_valSetime;m_recordset.Update();m_recordset.Close();〃更新列表CSludenteDlg::OnSeonall():〃更新界面显示m.valSno=_T(巧;m-valSnanie=_T("");m-valSage=m_valSnative=_T("");m_valSetime=UpdateData(FALSE);)文件:TeacherDlg.cppincludeHstdafx.hM#include"wh.h”#include""TeacherDlg.h"#include,TeacherSet.hH#ifdefDEBUG#definenewDEBUGNEW#undefTHISFILEstaticcharTHIS_FILE|]=_HLE_:#endif CTeacherDlg::CTeacherDlg(CWnd*pParent/*=NULL*Z):CDialog(CTeacherDlg::IDD.pParent)(m_valTname=_T("");m_valTno=}voidCleacherDlg::DoDataExchange(CDataExchange*pDX)(CDialog::DoDataExchange(pDX):DDX_Control(pDX,IDC.TTLIST,m_ctlList);DDX_Text(pDX.IDC_TTNAME.m_valTname);DDX_Text(pDX.IDC_TTNO,m_valTno);}BEGIN_MESSAGE_MAP(CTeacherDlg.CDialog)ON_BN_CLICKED(IDC_TTSEARCH.OnTtsearch)END_MESSAGE_MAP()BOOLCTeacherDlg::OnInitDialog()(CDialog::OnInitDialog();m_ctlList」nsertColumn(OJ教师编号");m_ctlList.InsertColumn(L”教师姓名”);m_cHList.InsertColumn(2J教师年龄。;m_cUList」nsertCohimn(3J教师职称”);m_ctlLi$l.InsertColun】n(4.”教师学历”);n】_ctlList.InsertColunin(5.“教师籍贯”);m_ctlList.InsertColumn(6,"工作日期”);ni_ctlList.SetColuinnWidth(0.60);m_ctlList.SetColumnWidth(1,60);m_ctlList.SetColumnWidth(2.45);m_cllList.SetColumnWidth(3.90);in_ctlList.SelColumnWidlh(4.90);m_ctlList.SetColuinnWidth(5.90);in_ctlList.SetColumnWidth(6.140);in_ctlL!St.SetExtendedStyle(LVS_EX_FULLROVSELECTILVS_EX_GRIDLINES):CleacherSetrecordset;if(!recordset.Open(AFX_DB_USE_DEFAULT_TYPE.Hselect♦fromteacher**)) {MessageBox,打开数据库失败!/数据库错误,returnFALSE:)recordset.Close。:returnTRUE:)voidCleacherDlg::OnTtsearch()(UpdateData(TRUE);in_ctlList.DeleteAllItems();in_ctlList.SelRedraw(FALSE);CStringstr="select*fromteacher",;if(!m_recordset.Open(AFX_DB_USE_DEFAULT_TYPE._T(slr))){MessageBox("打开数据库失败!数据库错误”,MB」CONSTOP);return:}ini修0:while(!m_recordset.IsEOF()){if((m_recordset.m_Tno==m_valTnollm_valTno==HM)&&(m_recordsel.m_Tname==m_valTnamellm_valTname==HU)){m_ctlList.InsertIlem(ijn_recordset.m_Tno);m_ctlList.SetItemText(i,1.m_recordset.m_Tname);m_ctlList.SelItemText(i,2.m_recordsel.m_Tage):in_ctlList.SelItemText(i,3jn_recordset.m_Tiitle);in_ctlList.SetItemText(i,4.m_recordset.m_Tdegree):in_ctlList.SelItemText(i,5,m_recordsel.m_Tnalive):m_ctlList.SetItemText(i,6.m_recordsel.m_Twtime):i++:}m_recordset.MoveNext();m_recordset.Close();m_ctlList.SetRedraw(TRUE);)文件:TeachereDlg.cppincludeMstdafx.hM include”wh.h”#include"TeachereDlg.h"#ifdef_DEBUG#definenewDEBUG_NEW#undefTHIS_FILEstaticcharTHIS_FILE(1=_FILE_;#endifCTeachereDlg::CTeachereDlg(CWnd*pParent/*=NULL*/):CDialog(CTeachereDlg::IDD.pParent){m_valTage=m-valTdegree=m_valTnaine=m_valTnative=_TO;m-valTno=_T(,,M);m_valTtitle=_T「);m_valTwtime=)voidCleachereDlg::DoDataExchange(CDataExchange*pDX){CDialog::DoDataExchange(pDX):DDX.ConiroKpDX.IDC.TELIST.m.cllList);DDX_Text(pDX.IDC_TEAGE.m_valTage);DDX_Texi(pDX.IDC_TEDEGREE.m-valTdegree):DDX_Text(pDX.IDC_TENAME.m_valTnaine);DDX_Text(pDX.IDC.TENATIVE.m.valTnalive);DDX_Text(pDX.IDC_TENO,m_valTno);DDX_Text(pDX.IDC_TETITLE,m_valTlille);DDX_Text(pDX.IDC_TEWTIME.m_valTvMinie); BEGIN_MESSAGE_MAP(CTeachereDlg.CDialog)ON.BN_CLICKED(IDC_TEADDNEW,OnTeaddnew)ON_BN_CLICKED(IDC_TEDELETE.OnTedelete)ON.BN_CLICKED(IDC_TEONALL,OnTeonall)ON_NOTIFY(NM_CLICK.IDC_TELIST,OnClickTelist)ON.BN_CLICKED(IDC_TEEDITOnTeedit)END_MESSAGE_MAP()BOOLCTeachereDlg::OnInitDialog(){CDialog::OnInitDialog();m_cUList.InsenColumn(0,”教师编号”);m_ctlList.InsertColumn(l,"教师姓名");1】】111口51,限41(?011111】1】(2,“教师年龄");m_cULis【.InsenColumn(3."教师职称”):m_cHList.InsertColumn(4J教师学历”);m_cULisi.InsertColun】n(5,"教师籍贯"):m_ctlList.InsertColumn(6,"工作日期”);m_ctlList.SetColumnWidth(0.120):m_ctlList.SetColumnWidth(1.90);m_ctlList.SetColumnWidth(2,60);!n_ctlList.SetColumnWidth(3.90);m_ctlList.SetColumnWidth(4t90);m_ctlList.SetColuinnWidth(5.90);in_ctlList.SetColumnWidth(6.155);m_ctlList.SetExtendedStyle(LVS_EX_FULLROWSELECTILVS_EX_GRIDLINES);CleacherSetrecordset;if(!recordset.Open(AFX_DB_USE_DEFAULT_TYPE.Hselect♦fromteacher**)){MessageBox,打开数据库失败!/数据库错误,MB_OK);returnFALSE:)recordset.CloseO:voidCleachereDlg::OnClickTelist(NMHDR*pNMHDR.LRESULT*pResult){inii=return:) m_ctlList.GetSelectionMark();in_valTno=m_ctlLisi.GetIleniText(i,O);m.valTname=m_cllList.GetIlemText(iJ);m_valTage=m_ctlList.GetItemText(i.2);m_valTtitle=m_cllList.GetItemText(i.3);in_valTdegree=m_ctlList.GetItemText(i.4);in_valTnative=m_ctlList.GetItemTexl(i,5):m.valTwtime=m_cllList.GetItemTexl(i.6):UpdateDala(FALSE);♦pResult=0:)voidCleachereDlg::OnTeaddnew()(UpdateDalafTRUE):if(m_valTname.IsEmpty()){MessageBox「请输入教师姓名!”);return;}if(m_valTno.IsEmptyO){MessageBox(“请输入教师编号!”);return;}if(m_valTage.IsEmpty()){MessageBox("请输入教师年龄!return;}if(m_valTlitle.IsEmpty()){MessageBox(“请输入教师职称!”);return;}if(m_valTdegree.IsEmpty()){MessageBoM"请输入教师学历!”);return:) if(nvvalTnative.IsEmpty()){MessageBox,请输入教师籍贯!”);return:}if(m_valTwtiine.IsEmpiy()){MessageBox("请输入教师工作日期!”);return:}CStringstr="select*fromteacher",;intilag=0;if(!m_recordset.Open(AFX_DB_USE_DEFAULT_TYPE,_T(str))){MessageBoxd打开数据库失败!/数据库错误”,MB」CONSTOP);retuni:}while(!m_recordset.IsEOF()){if(m_valTno==m_recordset.m_Tno)(ilag=l;break;}else{m_recordset.MoveNext();))if(fiag!=0){MessageBox("已有此人,添加失败!”「学生信息MB」CONEXCLAMATION);return:}in_recordsei.AddNew();m_recordset.m_Tno=m_valTno;ni_recordset.m_Tnanie=m_valTname;in_recordset.m_Tage=m_valTage;in_recordset.in_Ttitle=m_valTtitle:m_recordset.m_Tdegree=m_valTdegree;m_recordset.m_Tnative=m_valTnative;ni_recordset.m_Twtime=m_valTwtime:m_recordset.Update(): m_recordset.Close();CleachereDlg::OnTeonall();m_valTno=_T「);m_valTname=m-valTage=m_valTtitle=_T("");m-valTdegree=_T(,M,);m_valTnative=m_valTuiime=UpdateDala(FALSE);)voidCleachereDlg::OnTedelete(){inii=m_ctlList.GetSeleclionMark();if(0>i){MessageBoxd请选择一条记录进行删除!”);return:)CStringstrSQL:strSQL.FonnaK"select*fromteacherwhereSno=*%s""m_cllList.GetItemText(i,O));if(!m_recordset.Open(AFX_DB_USE_DEFAULT^TYPE.strSQL)){MessageBox("打开数据库失败!)return:)if(MessageBox(“你确定吗?丁删除信息:MB_OKCANCEL)==IDCANCEL){return:)m_recordset.Delele():m_recordset.Closed;in_ctlList.DeleleItem(i);m_valTno=_T「);m_valTname=_T("");m-valTage=m.valTtitle=_T「);nvvalTdegree=_T("M"); m-valTnative=_T("M,):m_valTuiime=UpdateData(FALSE);)voidCleachereDlg::OnTeonall(){in_ctlList.DeleteAllltemsO;in_cllList.SelRedraw(FALSE);UpdateDala(TRUE);CSlringstrSQL:strSQL.Format(^select*fromteacher");if(!m_recordset.Open(AFX_DB_USE_DEFAULT_TYPE.strSQL)){MessageBox,打开数据库失败!“J数据库错误,MB」CONSTOP);return:}inii=0:CStringstrTime;while(!ni_recordset.IsEOF()){m_ctlList.InsertItem(i.m_recordsel.m_Tno);m_cllList.SetIteinText(i.Ijn_recordsei.m_Tname);m_ctlList.SetIteinText(i.2jn_recordset.!n_Tage);m_ctlList.SetItemlext(i,3,m_recordset.m_Ttitle);m_ctlList.SetItemText(i.4jn_recordset.!n_Tdegree);m_cllList.SetIte!nText(i.5jn_recordset.!n_Tnative);m_cllList.SetIteinText(i.6jn_recordset.m_Twtime);i++:m_recordset.MoveNexl();)m_recordset.Close();m_ctlList.SetRedraw(TRUE);)voidCleachereDlg::OnTeedit()UpdateDala(TRUE): if(m_valTname.IsEmply()){MessageBoxC请输入教师姓名!”);return:}if(m_valTno.IsEmply()){MessageBox,请输入教师编号!”);return:}if(m_valTage.IsEmpty()){MessageBox("请输入教师年龄!”);return:}if(m_valTtitle.IsEmpty()){MessageBox("请输入教师职称!”);reiurn:}if(m_valTdegree.IsEmpty()){MessageBoxd请输入教师学历!”);return:}if(m_valTnative.IsEinpty()){MessageBox(“请输入教师籍贯!”);return:}if(nvvalTwtime.IsEmpty()){MessageBox("请输入教师工作日期!”);return:}CStringstr="select*fromteacher"1;intflag=0;if(!m_recordset.Open(AFX_DB_USE_DEFAULT_TYPE,_T(str))){MessageBox("打开数据库失败!/数据库错误,MB」CONSTOP);return:}while(!m_recordset.IsEOF()){if(m_valTno==m_recordsetjn_Tno)(flag=l;break;} elsein_recordset.MoveNext();}if(flag=O){MessageBox("查无此人,默认添加!“教师信息”,MB」CONINFORMATION);CTeachereDlg::OnTeaddnew();return;}in_recordset.Edit():m_recordset.m_Tno=m_valTno:m_recordset.m_Tname=in_valTname:ni_recordset.m_lage=m-valTage:m_recordset.m_Ttitle=m.valTtille:m_recordset.m_Tdegree=m_valTdegree;m_recordset.m_Tnative=m_valTnative;in_recordset.m_Twtime=m_valTwtime:m_recordset.UpdateO:m_recordset.Close();CleachereDlg::OnTeonallO;m_valTno=_T(");m_valTname=_T("”);m_valTage=in_valTtitle=m_valTdegree=m_valTnative=m_valTvMime=UpdateData(FALSE):)文件:MainFrm.cpp#includeHstdafx.hM include"wh.h”#include°MainFrm.h,,#includeUserDlg.h0include"LoginDlg.h",#include"StudentDlg.h"#include**StudenteDlg.hH#include"TeacherDlg.h0#include"TeachereDlg.h",#ifdef_DEBUG#definenewDEBUG.NEW#undefTHIS_FILEstaticcharTHIS.FILEn=_FILE_:#endifIMPLEMENT_DYNCREATE(CMainFrame.CFranieWnd)BEGIN_MESSAGE_MAP(CMainFran>e,CFrameWnd)ON_COMMAND(ID_SYS_USER,OnSysUser)ON_COMMAND(ID_SYS_RELOAD,OnSysReload)ON_COMMAND(ID_SYS_QUIT.OnSysQuil)ON_COMMAND(ID_STU_SEARCH.OnStuSearch)ON_COMMAND(ID_STU_EDITOnStuEdit)ON_COMMAND(ID_TEA_SEARCH.OnTeaSearch)ON_COMMAND(ID_TEA_EDIT.OnTeaEdit)ON_UPDATE_COMMAND_UI(ID_SYS_USER.OnUpdateSysUser)ON_UPDATE_COMMAND_UI(ID_STU_EDIT,OnUpdateStuEdit)ON_UPDATE_COMMAND_UI(ID_TEA_EDIT.OnUpdateTeaEdit)END_MESSAGE_MAP()CMainFrame::CMainFraine()CMainFrame:>CMainFrameOBOOLCMainFraine::PreCreateWindow(CREATESTRUCT&cs){if(!CFran)eWnd::PreCreateWindow(cs)) returnFALSE;returnTRUE:)#ifdef_DEBUGvoidCMainFrame::AssertValid()const(CFrameWnd::AssertValid();)voidCMainFrame::Dump(CDumpContext&de)const(CFrameVnd::Dump(dc):)#endifvoidCMainFrame::OnSysUser()(CUserDlguserdlg;userdlg.DoModalO:)voidCMainFrame::OnSysReload()(CLoginDlgDig;ininRes=0:do{nRes=Dlg.DoModal();if(nRes=IDOK)return:if(nRes=IDCANCEL){if(AfxMes$ageBox「您确定要退出系统吗?”.MB_OKCANCEL)==IDCANCEL){retuni;}CFrameWnd::OnClose();return:}}whiled);)voidCMainFrame::OnSysQuit()if(A仅MessageBoxC您确定要退出系统吗?”,MB_OKCANCEL)=IDCANCEL){return:}CFrameWnd::OnClose():)voidCMainFrame::OnStuSearch()(CStudentDlgstudentdig: studentdig.DoModalO;}voidCMainFrame::OnStuEdit(){CStudenteDlgstudentedlg;studentedlg.DoModalO;}voidCMainFrame::OnTeaSearch()(CleacherDlgteacherdig:teacherdig.DoModaK);}voidCMainFrame::OnTeaEdit()(CleachereDlgteacheredlg;teacheredlg.DoModaK);}CWhApp*ptheApp=(CWhApp♦)AfxGetAppO;voidCMainFrame::OnUpdaleSysUser(CCmdUI*pCmdUI){if(ptheApp->m_bIsAdinin==FALSE){pCmdUI->Enable(FALSE);))voidCMainFrame::OnUpdateSluEdil(CC!ndUI*pCmdUI){if(plheApp->m_bIsAdmin==FALSE){pCmdUI->Enable(FALSE);)}voidCMainFrame::OnUpdateTeaEdit(CCindUI*pCmdUI){if(ptheApp->m_bIsAdinin==FALSE)pCmdUI->Enable(FALSE);)