700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 学生管理系统软件实现与测试 学生信息管理系统实现

学生管理系统软件实现与测试 学生信息管理系统实现

时间:2020-08-20 14:54:40

相关推荐

学生管理系统软件实现与测试 学生信息管理系统实现

《学生信息管理系统实现》由会员分享,可在线阅读,更多相关《学生信息管理系统实现(29页珍藏版)》请在人人文库网上搜索。

1、武汉理工大学VC课程设计学 号: 课 程 设 计课程名称可视化编程(VC)学 院计算机科学与技术学院专 业软件工程专业班 级软件XXX班姓 名指导教师岑 丽学年 第2学期目录1. 课程设计要求.32. 系统的简单操作及功能说明.43. 设计系统实现的各模块进行介绍.54. 模块源程序以及对源程序主要部分的相应注释说明.65. 适当的运行结果界面的截图.196. 系统设计过程中自己所遇到的问题及相应的解决方法和 解决过程.257. 参考文献.29一、课程设计要求课设题目:学生信息管理系统实现1.能实现学生信息的增加与删除;2.能实现学生信息的查询与显示;3.实现其它附加功能;4.。

2、界面良好,功能完善。二、系统的简单操作及功能说明 1. 简单操作1.输入信息按钮:从学生信息中输入学生信息的各项内容,然后单击输入信息即可把学生信 息存入系统,同时清除学生的各项信息,以备下一个学生信息的输入。若输入的学生信息不完整,则弹出对话框提醒;若系统中已存在该学生,则弹出对话框提醒。2.显示信息按钮:单击此按钮可以显示系统中所有的学生信息。若系统中没有学生信息,则弹出对话框提醒;若存在,则弹出对话框提醒共有几条信息。3.查询信息按钮:在处理消息框中输入查询方式后,单击此按钮可以在学生信息中显示符合条件的学生信息。可选择其中一种方式查询,其他方式不输入信息;或选择二、三、四种方式查询。若。

3、系统中不存在与查询条件相符的学生,则弹出对话框提醒;若存在,则弹出对话框提示有几条信息,并在学生信息一栏中显示出来。4.删除信息按钮:在处理消息框中输入要删除的学生信息类型的资料,然后单击此按钮,可以删除符合条件的学生信息。可选择其中一种处理方式删除,其他方式不输入信息;或选择二、三、四种方式删除。若不存在与删除条件相符的学生,则弹出对话框提醒;否则,弹出对话框显示有几条学生信息被删除。5.添加信息按钮:在学生信息框中输入要添加的学生信息,然后单击此按钮可以添加学生信息,同时清除学生的各项信息,以备下一个学生信息的添加。若输入的学生信息不完整,则弹出对话框提醒;若系统中已存在该学生,则弹出对话。

4、框提醒。6.退出按钮:当要退出学生信息管理系统时,单击此按钮后弹出一个对话框,单击确定可退出系统,否则单击取消。7.上一条按钮:当要显示的学生信息不止一条时,此按钮有效,单击可以显示当前信息的上一条信息。若已显示完,则弹出对话框提醒。8.下一条按钮:当要显示的学生信息不止一条时,此按钮有效,单击可以显示当前信息的上一条信息。若已显示完,则弹出对话框提醒。9.清屏按钮:当要清除界面上的各种信息时可以单击此按钮,则界面上所有信息都被清除。2. 功能说明此学生信息管理系统可以实现学生信息的输入、添加、显示、查询和删除功能。当处理时需要显示的学生信息不止一条时可以逐条显示;当需要清除界面的信息时可以单。

5、击清屏按钮。其中显示是指显示系统中已有的全部学生信息;查询和删除均可以按照多种方式进行。退出系统时单击退出按钮,这时,会提示是否退出,单击确定即可退出系统;否则单击取消。注意:一旦退出系统,下次再运行时需要重新输入学生信息。3、 设计系统实现的各模块进行介绍本学生信息管理系统从界面上看共有三部分:学生信息、处理信息和操作。 1. 学生信息:学生信息显示系统中具体包含哪些学生信息以及作为信息输入通道。2. 处理信息:指按照何种方式来处理系统中得信息,可以选择处理消息框中一种方式或多种方式处理学生信息。如按照学号来查询学生信息或删除某个学院某个专业的学生。3. 操作:指触发各种处理的按钮。有输入信。

6、息、显示信息、查询信息、删除信息、添加信息、退出、上一条、下一条和清屏。系统背景图是通过添加位图来实现的,图图片是武汉理工大学的校徽。4、 模块源程序以及对源程序主要部分的相应注释说明注:(1)在头文件中加入:struct studentCString editnumber;CString editname;CString editsex;CString editage;CString editacademy;CString editmajor;CString editclass;CString editdomain;int next;/包含学生信息的结构体(2) #define Max 10。

7、0/结构体中包含的最多的学生数student stuMax;/学生int i=0;/当前系统中学生个数int ItagMax;/查询函数中符合条件的记录的个数int count=0;/记录符合条件的记录数static int ncount;/记录当前显示的信息前已显示的记录数,在OnBUTTONdown()函数中使用static int nncount;/记录当前显示的信息前已显示的记录数在OnBUTTONup()函数中使用1.输入学生信息void CMyDlg:OnBUTTONinput() / TODO: Add your control notification handler code。

8、 hereUpdateData(TRUE);/从编辑框中读入数据if(m_academy=|m_age=|m_class=|m_domain=|m_major=|m_name=|m_number=|m_sex=)MessageBox(学生信息输入不完整!,Warning,MB_OK|MB_ICONINFORMATION);else int itag=0;/用来标识系统中是否已存在新加入的学生信息int j=0;while(jEnableWindow(0);/使下一条按钮不可用GetDlgItem(IDC_BUTTONup)-EnableWindow(0);/使上一条按钮不可用/把学生信息中各编。

9、辑框清零m_academy = _T();m_age = _T();m_class = _T();m_domain = _T();m_major = _T();m_name = _T();m_number = _T();m_sex = _T();UpdateData(FALSE);2.添加信息函数,实质和输入信息函数一样void CMyDlg:OnBUTTONadd() / TODO: Add your control notification handler code hereUpdateData(TRUE);/从编辑框读入数据if(m_academy=|m_age=|m_class=|m_。

10、domain=|m_major=|m_name=|m_number=|m_sex=)MessageBox(学生信息输入不完整!,Warning,MB_OK|MB_ICONINFORMATION);elseint itag=0;/用来标识系统中是否已存在新加入的学生信息int j=0;while(jEnableWindow(0);/使下一条按钮不可用GetDlgItem(IDC_BUTTONup)-EnableWindow(0);/使上一条按钮不可用/把学生信息中各编辑框清零m_academy = _T();m_age = _T();m_class = _T();m_domain = _T();。

11、m_major = _T();m_name = _T();m_number = _T();m_sex = _T();UpdateData(FALSE);/把学生信息中各编辑框清零m_academy = _T();m_age = _T();m_class = _T();m_domain = _T();m_major = _T();m_name = _T();m_number = _T();m_sex = _T();UpdateData(FALSE);3.查询符合条件的学生信息void CMyDlg:OnBUTTONsearch() / TODO: Add your control notific。

12、ation handler code hereint j;int k=0;count=0;/记录符合条件的学生数UpdateData(TRUE);/读入数据/如果处理信息中没有输入查询条件,则弹出对话框“请输入查询条件!”if(m_num=&m_acad=&m_maj=&m_cla=)MessageBox(请输入查询条件!,Warning,MB_OK|MB_ICONINFORMATION);else /判断是否是按照四种方式(学号、学院、专业、班级)查询for(j=0;jEnableWindow(0);GetDlgItem(IDC_BUTTONup)-EnableWindow(0);else 。

13、if(count1) /如果符合条件的记录不止一条,使“下一条”按钮可用GetDlgItem(IDC_BUTTONdown)-EnableWindow(1);ncount=1;/记录当前显示的信息前已显示的记录数,在OnBUTTONdown()函数中使用。定义ncount的初值4.查看下一条信息按钮函数void CMyDlg:OnBUTTONdown() / TODO: Add your control notification handler code hereif(count=2&ncountEnableWindow(0);/ncount=1;错误每当BUTTONdown按钮不可用时,导致。

14、BUTTONup同时不可用,该为在OnBUTTONsearch()函数中定义ncount的初值/判断当前记录前是否还存在记录,若存在则使“上一条”按钮可用if(ncount=2)GetDlgItem(IDC_BUTTONup)-EnableWindow(1);nncount=ncount-1;/(应减1,否则up按钮显示时,将还是显示原状态)/记录当前显示的信息前已显示的记录数在OnBUTTONup()函数中使用,且给nncount赋初值5.查看上一条消息按钮函数void CMyDlg:OnBUTTONup() / TODO: Add your control notification han。

15、dler code hereif(ncount=2&nncount0)/判断当前记录前是否还存在记录,若存在,则输出m_academy = stuItagnncount-1.editacademy;m_age = stuItagnncount-1.editage;m_class = stuItagnncount-1.editclass;m_domain = stuItagnncount-1.editdomain;m_major = stuItagnncount-1.editmajor;m_number = stuItagnncount-1.editnumber;m_sex = stuItagn。

16、ncount-1.editsex;m_name = stuItagnncount-1.editname;UpdateData(FALSE);nncount-;/若不存在则使“上一条”按钮不可用elseMessageBox(There are no according items or the according items have been all displayed,Warning,MB_ICONWARNING);/弹出提醒对话框GetDlgItem(IDC_BUTTONup)-EnableWindow(0);/使“上一条”按钮不可用/判断当前记录后是否还存在记录,若存在则使“下一条”按钮。

17、可用if(nncountEnableWindow(1);ncount=nncount+1;/给标志赋初值6.删除符合条件的学生后,并把后面的学生信息向前移void deletemove(int j)for(int k=j;kEnableWindow(0);/使下一条按钮不可用GetDlgItem(IDC_BUTTONup)-EnableWindow(0);/使上一条按钮不可用/*elseMessageBox(共有0条学生信息被删除!,Attention,MB_OK|MB_ICONINFORMATION);*/把学生信息中各编辑框清零/m_cla=_T();/m_acad = _T();m_ac。

18、ademy = _T();m_age = _T();m_class = _T();m_domain = _T();/m_maj = _T();m_major = _T();m_name = _T();/m_num = _T();m_number = _T();m_sex = _T();UpdateData(FALSE);8.显示当前系统中得全部学生信息void CMyDlg:OnBUTTONshow() / TODO: Add your control notification handler code here/把各编辑框清零m_cla=_T();m_acad = _T();m_academ。

19、y = _T();m_age = _T();m_class = _T();m_domain = _T();m_maj = _T();m_major = _T();m_name = _T();m_num = _T();m_number = _T();m_sex = _T();UpdateData(FALSE);if(i=0) /系统中没有学生信息MessageBox(系统中共有0条学生信息!,Warning,MB_OK|MB_ICONINFORMATION);else /系统中存在学生信息CString m_i;m_i.Format(系统中共有%d条学生信息!,i);MessageBox(m_i。

20、,Attention,MB_OK|MB_ICONINFORMATION);int k;count=i;for(k=0;kEnableWindow(0);GetDlgItem(IDC_BUTTONup)-EnableWindow(0);else if(kEnableWindow(1);ncount=1;/记录当前显示的信息前已显示的记录数,在OnBUTTONdown()函数中使用。定义ncount的初值9.退出系统void CMyDlg:OnBUTTONexit() / TODO: Add your control notification handler code hereint m=Mess。

21、ageBox(你确定要退出吗?,Warning,MB_YESNO);if(m=IDYES)OnOK();10.清屏void CMyDlg:OnBUTTONclear() / TODO: Add your control notification handler code hereGetDlgItem(IDC_BUTTONdown)-EnableWindow(0);/使下一条按钮不可用GetDlgItem(IDC_BUTTONup)-EnableWindow(0);/使上一条按钮不可用/清屏m_cla = _T();m_acad = _T();m_academy = _T();m_age = _。

22、T();m_class = _T();m_domain = _T();m_maj = _T();m_major = _T();m_name = _T();m_num = _T();m_number = _T();m_sex = _T();UpdateData(FALSE);11. 为添加背景图,在void CMyDlg:OnPaint()中得else中修改如下:else/CDialog:OnPaint();/使原来的函数不可用CPaintDC dc(this); CRect rect; GetClientRect(&rect); CDC dcMem; dcMem.CreateCompatibl。

23、eDC(&dc); CBitmap bmpBackground; bmpBackground.LoadBitmap(IDB_BITMAP1); /IDB_BITMAP是你自己的图对应的ID ,由于我刚刚加入的位图资源 /被我命名成了IDB_Bg,因而我这句就是bmpBackground.LoadBitmap(IDB_Bg); BITMAP bitmap; bmpBackground.GetBitmap(&bitmap); CBitmap *pbmpOld=dcMem.SelectObject(&bmpBackground); dc.StretchBlt(0,0,rect.Width(),rec。

24、t.Height(),&dcMem,0,0, bitmap.bmWidth,bitmap.bmHeight,SRCCOPY); 5、 适当的运行结果界面的截图1. 程序运行时的界面:(后来加了最小化功能)2. 输入和添加学生信息时:3.显示系统中所有的学生信息:4. 删除系统中的学生信息:5. 查询系统中的学生信息:6. 退出时:6、 系统设计过程中自己所遇到的问题及相应的解决方法和解决过程1. 调试错误:(1)原因:忘记在头文件中包含DLG1文件;不小心把m_cla写成了m_cls;程序中if else if的使用有误,else if 使用中竟没有了条件判断句,此类错误实在在荒谬之极,但在程。

25、序较多时竟没有注意到,实乃是知识点掌握不牢固。(2)原因:int ItagMax;int count=0;应定义为全局变量(3)原因:按钮的ID在程序中书写错误,应为IDC_BUTTONup或者IDC_BUTTONdown错写为IDC_Buttonup和IDC_Buttondown,Ncount 也应定义为全局变量(4)原因:程序正在运行,上次运行的结果未及时关闭(5)/if(m_num=&m_acad=&m_maj=&m_cla=)/dlg1.DoModal();/当把这些代码加在OnBUTTONsearch函数中for语句前时当未输入查询条件时会连续出现两个对话框(此对话框时刚开始调试时加。

26、入的,后来发现用MessageBox()弹出的对话框比这个美观,所以程序中全部改用MessageBox()函数)。故,这些代码应去掉,后面if(count=0)dlg1.DoModal();代码已包含这种情况。有时上一条、下一条信息按钮会造成循环现象,如显示完第一条后按上一条按钮会显示第二条信息(假设有两条信息),但是有时又是正确的,不知道是什么原因。注:部分运行的错误已在程序中注明。其他调试错误做题过程中未记录,故以下主要写下做题过程中主要碰到的问题、解决办法及心得体会。2. 体会:(1) 在写输入信息函数时,开始时没注意如果学生信息输入不完整的情况,所以导致后来查询后显示信息时,上一条、下。

27、一条信息按钮老出问题,后来考虑了这个情况后,问题也就解决了。对于此情况,我也不知道是什么原因。开始时也没有考虑到如果系统中已存在某学号(这里记每个学生的学号唯一)时的情况,导致在还没有清屏时就按了输入信息键或添加信息键时系统中就出现了重复学号的学生,后来在系统中else中的代码改为:else int itag=0;/用来标识系统中是否已存在新加入的学生信息int j=0;while(ji)if(stuj.editnumber=m_number)itag=1;MessageBox(系统中已存在该学生!,Warning!,MB_OK|MB_ICONINFORMATION);break;j+;if(。

28、itag=0)stui.editnumber=m_number;stui.editname=m_name;stui.editsex=m_sex;stui.editage=m_age;stui.editacademy=m_academy;stui.editmajor=m_major;stui.editclass=m_class;stui+.editdomain=m_domain;问题得到解决。添加函数的处理和输入函数的处理相同。(2) 查询函数处理时,对于那个何时使上一个下一个按钮可用的问题,纠结了很长时间,处理方法及当初遇到的问题已在程序中标出。另外,应注意上一条、下一条按钮在输入、添加、删除。

29、、清屏后应处于不可用状态,否则系统会出现紊乱。(3) 在出来删除信息函数时,关于何时弹出对话框问题,也做了较长时间的考虑,处理标记在程序中亦已标出。最后选择只弹出一个表明共删除多少条信息的对话框。若没有信息被删除,则显示删除0条信息。(4) 在弹出对话框为何种类型时,也做了相应的修改,开始时弹出的是自己自定义添加的对话框,后来因为想显示数据、整洁、美观等方面的问题,均使用的MessageBox()函数,此函数的使用方法是通过百度了解的。(5) 为了界面美观,在对话框中加入了位图作为背景,此背景图是武汉理工大学的校徽。并在“关于 学生信息管理系统(A)”中做了一下修改。位图的添加方法开始自己看书。

30、摸索,但是并未做出来,后来是通过百度知道的。另外退出时弹出的那个对话框的方法也是通过百度知道了解的。通过此次课程设计,我学到了不少知识,越来越体会到了MFC编程的神奇与奥妙。但同时我也认识到自己知识面的狭窄,因为连想添加一个菜单功能都是摸索了很长时间,而最终还是没有解决;想用文件来存储数据,但最终又是被迫放弃了。我深深的感觉到自己知识的缺乏,以及和同学交流的太少,遇到了问题大多数只会自己一个人闷着想,不会有时也想不到向同学求助。但此次课程设计我已基本遇到自己是在不能解决的问题时主动向同学求助。此次课程设计我受益匪浅,学会了很多,也知道了自己需要需要学的更多,同时,我也爱上了VC,体会到了它的奇妙,实在是觉得它是一门大学问,它所蕴含的知识自己永远也学不完,唯有不断奋进,不断了解,才不至于觉得自己像个白痴。七、参考文献:1. Visual C+面向对象与可视化程序设计(第2版)黄维通 编著2. Visual C+面向对象与可视化程序设计习题解析与编程实例(第2版)黄维通 游建波等 编著 3. 4. 5. 第 29 页。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。