人员管理系统

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

目录1.系统设计的目的和意义..........................22.系统总框架图..................................23.软件功能描述..................................24.软件代码的设计................................34.1数据结构描述与定义........................34.2模块设计..................................45.软件使用说明..................................66.测试结果与分析................................77.比较有特色的函数.............................128.存在的不足与对策.............................139.课程设计总结.................................14附录:源程序清单(核心部分)....................151.系统设计的目的和意义采用面向对象设计思想,管理2类人员。教师信息(姓名,编号,年龄,职称,学历,籍贯,工作日期),学生信息(姓名,年龄,学号,籍贯,入学日期)。完整输入/输出设计,写入ACCESS文件,分别建立两个表信息,一个存储教师信息,一个存储学生信息。采用工程文件方式组织程序。能进行增、删、查、改等操作。初始完成密码认证框的编写。外观设计风格各异2.系统总框架图登录主菜单登录用户管理学生管理教师管理帮助3.软件功能描述管理2类人员:教师信息(姓名,编号,年龄,职称,学历,籍贯,工作日期),学生信息(姓名,年龄,学号,籍贯,入学日期)。完整输入/输出设计,写入ACCESS文件。能进行增、删、查、改等操作。采用友好的用户界面。管理用户:添加、删除、修改密码等操作。4.软件代码的设计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模块设计系统共分成七个模块,分别是:用户登录模块,用户管理模块,学生信息查询模块,学生信息编辑模块,教师信息查询模块,教师信息编辑模块,帮助模块。①用户登录模块开始输入用户名和密码用户名和密码是否匹配主菜单结束YN②用户管理模块开始删除新增返回输入用户名和密码是否匹配主菜单结束YN③查询模块(学生信息查询,教师信息查询)开始返回输入编号或姓名主菜单结束显示结果④编辑模块(学生信息编辑,教师信息编辑)开始删除添加返回主菜单结束修改是否存在是否存在是否存在添加成功修改成功删除成功NYNYNY5.软件使用说明登录系统时可根据ACCESS表password查看用户名和密码。无需建立ODBC。登录成功后显示主菜单,有系统管理,学生信息管理,教师信息管理和帮助。在系统管理中,你可以进行用户管理,注销/重新登录和退出系统。在学生信息管理中,你可以进行学生信息查询和添加/修改信息。教师信息管理中,你可以进行教师信息查询和添加/修改信息。在帮助中,你可以查看软件的相关内容。特别提醒:如果你的登录是非管理员,那么你将没有用户管理,添加/修改信息等操作。在用户管理中,你可以修改密码,新增用户,删除用户。在信息查询中,你可以通过编号查询或姓名查询。可以同时输入或不输,若不输则显示全部信息。在添加/修改信息中,你可以对信息进行添加,修改,删除等操作。6.测试结果与分析运行程序,显示登录界面。(管理员建议使用:用户名“weiheng”,密码“1234”。非管理员建议使用:用户名“ww”,密码“1234”。)成功登录后显示主界面。然后根据菜单内容依次运行。返回登录界面。这是用户信息界面。以管理员身份进入该界面。图为创建一个用户“bbb”的操作。这是学生信息查询界面。若不输入查询项查询,则显示所有数据。图为根据学生学号查询。显示,添加,修改,删除一体化。根据所需要的操作进行操作。图为教师信息查询。操作方法如同学生信息查询图为教师信息编辑。操作方法如同学生信息编辑图为帮助界面。7.比较有特色的函数①显示全部信息函数,以下是显示全部教师信息函数。voidCTeachereDlg::OnTeonall(){m_ctlList.DeleteAllItems();m_ctlList.SetRedraw(FALSE);UpdateData(TRUE);CStringstrSQL;strSQL.Format(select*fromteacher);if(!m_recordset.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL)){MessageBox(打开数据库失败!,数据库错误,MB_ICONSTOP);return;}inti=0;while(!m_recordset.IsEOF()){m_ctlList.InsertItem(i,m_recordset.m_Tno);m_ctlList.SetItemText(i,1,m_recordset.m_Tname);m_ctlList.SetItemText(i,2,m_recordset.m_Tage);m_ctlList.SetItemText(i,3,m_recordset.m_Ttitle);m_ctlList.SetItemText(i,4,m_recordset.m_Tdegree);m_ctlList.SetItemText(i,5,m_recordset.m_Tnative);m_ctlList.SetItemText(i,6,m_recordset.m_Twtime);i++;m_recordset.MoveNext();}m_recordset.Close();m_ctlList.SetRedraw(TRUE);}②查询函数,以下是学生信息查询函数voidCStudentDlg::OnSsearch(){UpdateData(TRUE);m_ctlList.DeleteAllItems();m_ctlList.SetRedraw(FALSE);CStringstr=select*fromstudent;UpdateData(true);if(!m_recordset.Open(AFX_DB_USE_DEFAULT_TYPE,_T(str))){MessageBox(打开数据库失败!,数据库错误,MB_ICONSTOP);return;}inti=0;while(!m_recordset.IsEOF()){if((m_recordset.m_Sno==m_valSno||m_valSno==)&&(m_recordset.m_Sname==m_valSname||m_valSname==)){m_ctlList.InsertItem(i,m_recordset.m_Sno);m_ctlList.SetItemText(i,1,m_recordset.m_Sname);m_ctlList.SetItemText(i,2,m_recordset.m_Sage);m_ctlList.SetItemText(i,3,m_recordset.m_Snative);m_ctlList.SetItemText(i,4,m_recordset.m_Setime);i++;}m_recordset.MoveNext();}m_recordset.Close();m_ctlList.SetRedraw(TRUE);}8.存在的不足与对策一开始做的程序,界面简单,显示信息单调,分不清普通用户和管理员的区别。改进后,加入了图片和皮肤系统提供了友好的界面,采用列表控件进行对多组数据的显示,同时添加根据是否是管理员进行操作判定。9.课程设计总结在这次课程设计中,我学到了很多。拿到课题是觉得还是很简单的,即便加入身份验证功能。无非就是三张ACCESS表,一张储存用户名和密码,一张储存学生信息,还有一张储存教师信息。创建对话框也就三个,分别对应。内容简单,功能也满足要求,但是缺乏创新。于是在此基础上又加入了注册和修改密码。反复改,反复改,不知不觉的一个工程做了好几遍。当我把所有我能想到的东西都加进去后,还是觉得少了点什么。这一直觉来自于看了一个人做的图书管理系统,在界面上比我优化,在功能上比我先进,虽然他做的不是和我一个系统。看到比自己好的,不自觉地开始改进。首先是创建ODBC,从需要自己创建ODBC开始到程序生成ODBC,感觉很复杂,其实也就几行代码的问题。其次是皮肤,没有皮肤觉得界面太难看。虽然是下载的文件,但是添进去也是一个难事,还要添加一个SkinPlusPlus.h。再有就是采用列表控件,只要会了方法,输出信息非常方便。原来我程序思想是在学生信息中分为查询、添加、修改、删除等模块,现在进行统一,查询还是查询系统,添加、修改和删除融合成一个编辑系统。教师也是一样。在对于用户,也不局限于一旦创建只能修改密码,现在还可以注销账号。最后是各个功能的衔接,用菜单来调用。同时根据是否是管理员进行判定某些操作是否可用。这次课程设计同时也使我对MFC有了更深刻的认识。再也不是局限于那几个控件和某些类的派生。对不同文件之间的联系,.h和.cpp之间的联系有了更深层次的理解。以前因为知识的匮乏,总是纳闷各个文件之间是怎样作用的,现在虽然不是十分的了解,但已经能感受到其中的奥妙所在,让我感受到C++的无穷魅力。附录:源程序清单(核心部分)文件:wh.cpp#includestdafx.h#includewh.h#includeMainFrm.h#includewhDoc.h#includewhView.h#includeLoginDlg.h#includeSkinPlusPlus.h#ifdef_DEBUG#definenewDEBUG_NEW#undefTHIS_FILEstaticcharTHIS_FILE[]=__FILE__;#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(){AfxEnableControlContainer();SQLConfigDataSource(NULL,ODBC_ADD_DSN,//通过程序创建ODBCMicrosoftAccessDriver(*.mdb),DSN=Wh

1 / 50
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功