《MFC学生信息管理系统(共27页).doc》由会员分享,可在线阅读,更多相关《MFC学生信息管理系统(共27页).doc(27页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上实习报告学生信息管理系统学生姓名:*学 号:*专业班级:计算机1101指导教师:朱* 李* 2012年7月29摘要学校学生信息管理是学校教务管理中的一个极为重要的环节,它是整个学校管理的核心和基础。以计算机为基础的信息管理已成为当代学校管理学生的必要手段。信息社会的高科技,商品经济化的高效益,使计算机的应用已普及到经济和社会生活的各个领域。计算机不仅可以节省许多资源,大大的提高人们的工作效率,而且可以使敏感文档更加安全。为了适应现代社会人们高度强烈的时间观念,学生信息管理系统软件将会为教学办公室带来极大的方便。随着学校的规模不断扩大,学生数量急剧增加,有关学生的各种信
2、息量也成倍增长。而通过学生管理系统,可以做到信息的规范管理,科学统计和快速的查询,从而减少管理方面的工作量。毋庸置疑,切实有效地把计算机管理引入学校教务管理中,对于促进学校管理制度,提高学校教学质量与办学水平有着显著意义。目录第1章 前言11.1 学生信息管理系统设计目标11.1 学生信息管理系统设计要求11.2 学生信息管理系统设计总体分析2第2章 学生信息管理系统设计的整体分析与设计42.1 学生信息管理系统设计总设计图4 2.2 学生信息管理系统设计模块设计图52.2.1 添加功能设计52.2.2 数据读入功能(包括排序及删除功能)设计62.2.3查询功能设计 6第3章 学生信息管理系统
3、设计主要模块源程序代码63.1添加功能主要源代码 3.1.1 添加学生学生基本信息主要源代码73.1.2添加学生成绩信息主要源代码73.2从文件中读入数据主要源代码 73.3 删除功能主要源代码73.4 查询功能主要源代码83.4.1按学生学号查询学生基本信息主要源代码3.4.2按宿舍号查询该宿舍所有学生基本信息主要源代码3.4.3学生成绩信息查询主要源代码3.5排序功能主要源代码第4章 学生信息管理系统设计测试数据及结果分析4.1第5章 总结195.1 所作的工作195.2 存在的问题及今后的工作20参考文献第1章前言1.1学生信息管理系统设计目标以学生信息管理系统为例,通过对简单应用软件系
4、统的设计,编制、调试,实现简单的增加、删除、排序等运算,以学习应用MFC库类编写对话框的原理,加深对C+类的学习及应用。初步掌握基于MFC库类对对话框界面的设计,通过创建类成员函数成员变量,编辑控件创建消息映射,调用消息函数完成数据的输入输出,实现相关功能。1.2学生信息管理系统设计要求使用下面的数据,用VC设计一个简单的学籍管理系统,实现出最基本的功能。学生基本信息存储在文件(A.TXT)中, A.TXT文件不需要编程录入数据,可用文本编辑工具直接生成学生成绩基本信息存储在文件(B.TXT)中基本功能要求:增加功能:设计界面,在系统中能分别录入学生信息和成绩信息,并分别存储到A.txt和B.
5、txt文件中。数据读入功能:对B.TXT进行数据读入,包括每个学生的学号、课程编号、课程名称、学分、平时成绩、实验成绩、卷面成绩共7个数据。综合成绩、学分由程序根据条件自动运算。实得学分的计算:采用等级学分制。查询功能:分为学生基本情况查询和成绩查询两种A:学生基本情况查询:输入一个学号,查出此生的基本信息并显示输出;或者输入一个宿舍号码,可查询出本室所有的学生的基本信息并显示输出。成绩查询:输入一个学号时,查询出此生的所有课程情况。删除功能:当在A.TXT中删除一个学生时,自动地在B.TXT中删除此人所有信息。扩展功能:排序功能:实现选择按综合成绩或实得学分升序或降序排序并显示数据。导出功能
6、:把系统中的学生信息、成绩信息全部或根据用户条件进行部分导出,导出到Word或Excel中。1.3学生信息管理系统设计总体分析 设计一个基于MFC对话框的C+应用程序开发,因此要创建一个主对话框,和一些必要的子对话框。在主对话框中添加列表控件用来显示学生的基本信息,并且列表控件有较强的数据处理函数。因此选择列表控件。对于学生信息的录入,查询,排序,删除与修改都用按钮控件,并为每个按钮添加消息响应函数用来处理学生的信息操作。对于录入功能,可以为它设置一个子对话框来填写学生基本信息。接下来就是要把学生的基本信息能够保存下来,因此要用到文件的操作。 综上所述,必须先掌握按钮控件,列表控件,新对话框的
7、构建,编辑控件和消息的响应与处理原理!第2章学生信息管理系统的整体设计2.1 学生信息管理系统设计总设计图添加功能数据读入功能学生信息管理系统排序功能查询功能删除功能2.2 学生信息管理系统设计模块设计图2.2.1添加功能设计输入学生成绩信息添加学生成绩信息调用OnAddStu()函数添加功能添加学生基本信息输入学生基本信息调用OnAddStu()函数保存到A.TXT中并返回上一级输入学生基本信息添加学生基本信息添加功能调用OnAddGrade()函数保存到B.TXT中并返回上一级保存到A.TXT中并返回上一级2.2.2数据读入功能(包括排序及删除功能)设计初始化列表控件GraList调用On
8、DaoruButton()函数从B.TXT中导入数据到列表控件中调用删除函数OnShanchuButton()将鼠标选中的一行的数据删除调用排序函数paixu()将列表控件中数据排序保存到B.TXT中并返回上一级保存到B.TXT中并返回上一级2.2.3查询功能设计查询功能学生基本情况查询学生成绩查询初始化列表控件调用导入函数导入学生基本信息初始化列表控件调用导入函数导入学生基本信息输入学号输入宿舍号调用OnScoreSearch()函数输出该学生的所有成绩信息输入学号调用OnDormroonSearch()函数输出该宿舍所有有记录的学生的基本信息调用OnStuIdSearch()函数输出该学生
9、的基本信息第3章 学生信息管理系统主要源程序代码3.1 添加功能主要源代码3.1.1添加学生基本信息主要源代码3.1.2添加学生成绩信息主要源代码3.2从文件中读入数据主要源代码*void CDaoruDlg:Onshanchubutton() / TODO: Add your control notification handler code hereif(!m_chengjibiao.GetItemCount()/MessageBox(没有记录可以删除,Error,MB_ICONERROR|MB_OKCANCEL);return;int index=0;index = this-m_che
10、ngjibiao.GetNextItem(-1,LVNI_SELECTED) ;if ( index = -1 )this-MessageBox ( 未选择要删除学生的学号! ) ;return ; index=0;index=m_chengjibiao.GetNextItem(0,LVNI_SELECTED);if(-1=index)if(MessageBox(没有记录可以删除!,Error,MB_ICONERROR|MB_OKCANCEL) m_chengjibiao.DeleteItem(0);else if(IDOK=MessageBox(确定删除?,Information,MB_OK
11、CANCEL) m_chengjibiao.DeleteItem(index);CString str;CString str2;fstream outfile(b.txt,ios:out);int Count=m_chengjibiao.GetItemCount(); for(int i=Count-1;i=0;i-) for(int j=0;j9;j+) str=m_chengjibiao.GetItemText(i,j)+ ; outfilestr; outfilen; outfile.close();*3.3删除功能主要源代码3.4查询功能主要源代码3.4.1按学生学号查询学生基本信息
12、主要源代码*void CStusearchDlg:Onstuidsearch() / TODO: Add your control notification handler code herUpdateData(TRUE); if (m_stu_id_search.IsEmpty()AfxMessageBox(请填写完整信息);return ;Student student;if (!m_stu_id_search.IsEmpty() CStdioFile File;CString m_FilePath = A.txt;File.Open(m_FilePath,CFile:modeReadWr
13、ite);CString FileData;int cout=1;while(File.ReadString(FileData)if (cout!=1)CString strdo=FileData;vector *vect =new vector(); int nend=0; int nbegin=0; while(nend != -1) nend = strdo.Find( ,nbegin); if(nend = -1) vect-push_back(strdo.Mid(nbegin, strdo.GetLength()-nbegin); else vect-push_back(strdo.
14、Mid(nbegin, nend-nbegin); nbegin = nend + 1; vector:iterator iter=vect-begin();CString numb=*(iter+0); if(strcmp(numb,m_stu_id_search)=0) student.num=*(iter+0);student.name=*(iter+1);student.sex=*(iter+2);student.dorm=*(iter+3);student.phone=*(iter+4);cout+;if (student.num=) AfxMessageBox(未找到此学生!);
15、return; m_stusearch.DeleteAllItems(); m_stusearch.InsertItem(0,student.num); m_stusearch.SetItemText(0,1,student.name); m_stusearch.SetItemText(0,2,student.sex); m_stusearch.SetItemText(0,3,student.dorm); m_stusearch.SetItemText(0,4,student.phone);*3.4.2按宿舍号查询该宿舍所有学生的基本信息主要源代码*void CStusearchDlg:Ond
16、ormnumsearch() UpdateData(TRUE); if (m_dorm_num_search.IsEmpty()AfxMessageBox(请填写完整信息);return ;Student student;CString m_FilePath=A.txt;CStdioFile File;File.Open(m_FilePath,CFile:modeReadWrite); CString FileData;int cout=1;while(File.ReadString(FileData)if (cout!=1)CString strdo=FileData;vector *vec
17、t =new vector();int nend=0; int nbegin=0; while(nend != -1) nend = strdo.Find( ,nbegin); if(nend = -1) vect-push_back(strdo.Mid(nbegin, strdo.GetLength()-nbegin); else vect-push_back(strdo.Mid(nbegin, nend-nbegin); nbegin = nend + 1; vector:iterator iter=vect-begin();CString Snox=*(iter+3);Snox=Snox
18、.Right(Snox.GetLength()-5);if(strcmp(Snox,m_dorm_num_search)=0)student.num=*(iter+0);student.name=*(iter+1);student.sex=*(iter+2);student.dorm=*(iter+3);student.phone=*(iter+4);vectstu-push_back(student);cout+;m_stusearch.DeleteAllItems(); onshow();void CStusearchDlg:onshow()Student student;vector:i
19、terator iter=vectstu-begin();for (;iterend();iter+) student=*iter;if (strcmp(student.num,)=0)AfxMessageBox(未找到此宿舍!);return;/AfxMessageBox(student.dorm)m_stusearch.InsertItem(0,student.num);m_stusearch.SetItemText(0,1,student.name);m_stusearch.SetItemText(0,2,student.sex);m_stusearch.SetItemText(0,3,
20、student.dorm);m_stusearch.SetItemText(0,4,student.phone);*3.4.3学生成绩信息查询主要源代码*void CGradesearchDlg:OnSearchScore() UpdateData(TRUE);Course course;if(m_stu_ID.IsEmpty()AfxMessageBox(请填写完整信息!);return;if (!m_stu_ID.IsEmpty()CString m_FilePath=B.txt;CStdioFile File;File.Open(m_FilePath,CFile:modeReadWrit
21、e); CString FileData;int c=1;while(File.ReadString(FileData)if (c!=1)CString strdo=FileData;vector *vect =new vector(); int a=0; int b=0; while(a != -1)a = strdo.Find( ,b); if(a = -1) vect-push_back(strdo.Mid(b, strdo.GetLength()-b); else vect-push_back(strdo.Mid(b, a-b); b = a + 1; vector:iterator
22、iter=vect-begin();CString numbe=*(iter+0);/AfxMessageBox(numbe);if(strcmp(numbe,m_stu_ID)=0)course.Sno=*(iter+0);course.Cno=*(iter+1);course.Cname=*(iter+2);course.Cscore=*(iter+3);course.Cscore_nor=*(iter+4);course.Cscore_exp=*(iter+5);course.Cscore_paper=*(iter+6);course.Cscore_sum=*(iter+7);cours
23、e.Cscore_allresult=*(iter+8);c+;static num=0;if (num=0)m_List.DeleteAllItems();if (course.Sno=)AfxMessageBox(未找到此学生);return;elsem_List.InsertItem(num,course.Sno);m_List.SetItemText(num,1,course.Cno);m_List.SetItemText(num,2,course.Cname);m_List.SetItemText(num,3,course.Cscore_sum);m_List.SetItemText
24、(num,4,course.Cscore_allresult);num+;*3.5排序功能主要源代码*第4章 学生信息管理系统设计测试数据及结果分析4.1 学生信息管理系统主界面将较阿斯达克拉升等级哦4.2添加功能实现4.2.1添加学生基本信息并保存到A.TXT文件上课打开可怜的在A.TXT中:卡的覅的joe圣诞节啊放假4.2.2添加学生成绩信息并保存到B.TXTKRFI额外在B.TXT中:爱上可怜的4.3导入功能及删除功能实现导入:删除:删除后的B.TXT:4.4查询功能实现卡士大夫4.4.1学生基本情况查询阿克苏的哈佛i(A)按学号查询: 空间的萨鲁的萨克老地方(B)按宿舍号查询阿斯兰离开的积分奥斯卡的回复4.2.2学生成绩信息查询阿历克斯地方这地方保护无配偶iiiiiiiiiiiu OnDormroonSearch专心-专注-专业