学生信息管理系统c++课设报告_第1页
学生信息管理系统c++课设报告_第2页
免费预览已结束,剩余25页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、前言-2概要设计 - 3详细设计 - 4原程序清单和执行结果 - 61. 源程序 -62. 执行结果 -34用户使用说明 -36调试与测试 -36总结与体会 -36参考资料 -36刖言学生信息管理系统, 是针对学校人事处的大量业务处理工作而开发的管理软件, 是典型的管理 信息系统。它是一个教育单位不可缺少的部分, 它的内容对于学校管理者来说是至关重要的, 能有效的帮 助学校和老师掌握学生的情况。在传统模式下利用人工进行学生信息管理,存在着较多的缺点, 如:效率底,保密性差,时间一长将产生大量的文件和数据,更不便于查找,更新,维护等。诸如 这些情况,令学校管理者对学生的信息管理带来了很大困难,严

2、重影响了教育工作者的工作效率。随着科学技术的不断提高,使用日趋成熟的计算机技术来代替传统的人工模式,来实现学生信息的 现代化管理,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要 的作用。作为计算机应用的一部分,使用计算机对学生信息进行管理,具有着手工管理所无法比拟 的优点。例如:检索迅速、查找方便、易修改、可靠性高、存储量大、数据处理快捷、保密性好、 寿命长、成本低等。这些优点能够极大地提高学生信息管理的效率,也是学校实现科学化、正规化 管理的重要条件。因此,开发这样一套管理软件成为很有必要的事情。概要设计1 1、功能模块图将学生信息定义为一个person 类,在类

3、中包含数据成员:int num;stri ng n ame;stri ng sex;in t age;小int banji; ,分别表示学号、姓名、性别、年龄、班级。分别定义小、中、xuesheng 并继承 person能da实现数生添加功大学三个类为类,而后分别为它们Show();Search();void Edit();void Delete();void Total();void Save();void Read();void管voidclass xiaoxUeShe ng一个管理类并定义公有成员函数生、功能、class zhongxuesheng、cass学voidAdd();生实现数

4、据显示实现数据查询功管实现数据修实现数据删除功能实现数据统计功能实现数据保存功能可从文件中将记录读取到该类的数组中;2 2、设计思路学生信息管理系统然后定义了一个主菜单函数和三个分菜单函数,使功能菜单显示在运行窗口以提示用户如何进 行操作主函数是一个程序必不可少的,在主函数中,使用一个 switch 语句来选择调用主菜单中的各个功能函数。详细设计1、程序中函数及数据介绍class Person学生类class zhongxuesheng中学生类class daxuesheng大学生类class xiaoxuesheng小学生类class xiao_Manage小学生管理类class zhong

5、_Manage中学生管理类class da_Manage大学生管理类void xiaoMenu()小学生管理菜单函数void zhongMenu()中学生管理菜单函数void daMenu()大学生管理菜单函数int main()主函数2、函数功能介绍显示函数显示保存的数据添加函数此函数实现的功能主要是,添加一个学生的信息,也就是说调用一次这个函数 只能添加一个学生的信息。在此函数中也使用文件处理的方式,但使用的是以追加 的方式打开文件,使输入的学生信息写在文件里原有信息的后面。删除函数此函数实现的功能主要是,删除一个学生的信息。在此函数中,先以读的方式 打开文件,读出文件里的信息在显示在屏幕

6、上,用户再根据提示信息输入想要删除 第几个人的信息,关闭文件。再以写的方式打开文件,以一个 if 条件语句控制,再 重新将学生信息写入文件(除了打算删除的那个学生的信息),由于是以写的方式 打开的文件,所以文件里原有的输入就都没有了,存入的新的数据。修改函数此函数实现的功能主要是,修改一个学生的信息。此函数的设计方法和删除函 数的设计思想相类似,应用的思想都是将学生信息重新写入文件的方法,将原有数 据覆盖。查询函数在查询功能中,可以按多条件查询,本系统分为两个查询条件,即按学号查询 和按姓名查询。使用 if 语句来选择查询条件。按学号查询根据提示信息输入学号后,然后使用一个 for 循环语句,

7、从第一个学生开始检 索,如果该学生的学号和输入的学号相等,则输出该学生的信息,由于学生的学号 是唯一固定的,所以并使用 break 语句跳出循环。当无查询结果时,会输出一条提示信息“无此人信息!” 。按姓名查询根据提示信息输入姓名后,然后使用一个 for 循环语句,从第一个学生开始检 索,如果该学生的姓名和输入的姓名一样,则输出该学生的信息,由于学生的姓名 有可能重复出现,所以不能使用 break 语句跳出循环,应该从第一个学生开始检索 直到最后一名学生。当无查询结果时,会输出一条提示信息“无此人信息!” 。显示函数此函数实现的功能主要是,显示所有学生的信息。先是从文件中读取学生信 息,然后在

8、输出到显示窗口中。用一个 for 循环语句,来把所有学生的信息都输 出。退出系统当输入“ 0”时,就能退出系统,这是通过 while 语句来控制实现的。 保存函数将输入程序的数据保存到文件中统计函数根据选择的统计方式,然后使用一个 for 循环语句,从第一个学生开始检索,如果该学生的 信息和选择统计方式一样,则计数变量自增,应该从第一个学生开始检索直到最后一名学生。最后 输出结果源程序清单和执行结果1、源程序#include #include#include#include 2.女 )endl;cout 请输入你的选择 choice2;switch(choice2)case 1:sex= 男

9、;break;case 2:sex= 女 ;break;default:cout 输入错误。 endl;break;cout 请输入学生年龄 age;cout 请输入学生班级 banji;cout 选择地址 endl;coutsetw(10)1. 上海路 setw(10)2. 北京东路 setw(10)3.setw(10)4. 顺外路 setw(10)5. 南京东路 setw(10)6. 南京西路 setw(10)7. 解放东路 setw(10)8.setw(10)9. 青山湖大道 endl;cout 请输入你的选择 choice1;switch(choice1)case 1:depart=c

10、ase 2:depart=case 3:depart=case 4:depart=上海路 ;break; 北京东路 ;break 北京西路 ;break 顺外路 ;break;case 5:depart= 南京东路 ;break;case 6:depart= 南京西路 ;break;case 7:depart= 解放东路 ;break;case 8:depart= 解放西路 ;break; case 9:depart= 青山湖大道 ;break;default:cout 输入错误。 endl;break;cout 地理成绩 spec;cout 历史成绩 title;cout 语文成绩 yuwe

11、n;cout 数学成绩 shuxue;cout 英语成绩 yingyu;void Output() coutsetw(10) 学号 setw(10) 姓名 setw(10) 性别 setw(10) 年龄 setw(10) 班级 endl; coutsetw(10)numsetw(10)namesetw(10)sexsetw(10)agesetw(10)banjiendl;coutsetw(10) 地址 setw(10) 地理 setw(10) 历史 setw(10) 语文 setw(10) 数学 setw(10) 英语 endl;coutsetw(10)departsetw(10)specse

12、tw(10)titlesetw(10)yuwensetw(10)shuxuesetw(10)yingyuendl;class daxuesheng:virtual public Person 2.女 )endl;cout 请输入你的选择 choice2;switch(choice2)case 1:sex= 男 ;break;case 2:sex= 女 ;break;default:cout 输入错误。 endl;break;cout 输入年龄 age;cout 请输入学生班级 banji;cout 选择地址 endl;coutsetw(10)1. 上海路 setw(10)2. 北京东路 set

13、w(10)3.setw(10)4. 顺外路 setw(10)5. 南京东路 北京西路setw(10)6. 南京西路 setw(10)7. 解放东路 setw(10)8.setw(10)9. 青山湖大道 endl;cout 请输入你的选择 choice1;switch(choice1)case 1:zzmm= 上海路 ;break; case 2:zzmm= 北京东路 ;break;case 3:zzmm= 北京西路 ;break;case 4:zzmm= 顺外路 ;break;case 5:zzmm= 南京东路 ;break;case 6:zzmm= 南京西路 ;break;case 7:zz

14、mm= 解放东路 ;break;case 8:zzmm= 解放西路 ;break;case 9:zzmm= 青山湖大道 ;break;default:cout 输入错误。 endl;break;cout 输入专业 zc;cout 地理成绩 dili;cout 历史成绩 lishi;cout 语文成绩 yuwen;cout 数学成绩 shuxue;cout 英语成绩 yingyu;cout 联系电话 lianxi;void Output()coutsetw(10) 学号 setw(10) 姓名 setw(10) 性别 setw(10) 年龄 endl;coutsetw(10)numsetw(10

15、)name setw(10)sex setw(10)age endl;coutsetw(10) 班级 setw(10) 地址 setw(10) 专业 setw(10) 地理 setw(10) 历史 endl;coutsetw(10)banjisetw(10)zzmmsetw(10)zcsetw(10)dilisetw(10)lishiendl;解放西路coutsetw(10) 语文 setw(10) 数学 setw(10) 英语 setw(10) 联系电话 endl;coutsetw(10)yuwensetw(10)shuxuesetw(10)yingyusetw(12)lianxiendl;

16、class xiaoxuesheng:virtual public Person 2.女 )endl;cout 请输入你的选择 choice2;switch(choice2)case 1:sex= 男 ;break;case 2:sex= 女 ;break;default:cout 输入错误。 endl;break;cout 输入年龄 age;cout 输入班级 banji;cout 语文成绩 yuwen;cout 英语成绩 yingyu;cout 数学成绩 shuxue;void Output()coutsetw(10) 职工编号 setw(10) 姓名 setw(10) 性别 setw(1

17、0) 年龄 setw(10) 班级 setw(10) 语文 setw(10) 英语 setw(10) 数学 endl;coutsetw(10)numsetw(10)namesetw(10)sexsetw(10)agesetw(10)banjisetw(10)yuwensetw(10)yingyusetw(10)yingyuendl;class xiao_ManageetNum()utput();void xiao_Manage:Search() 编号查找 2. 按姓名查找 .choice;switch(choice)case 1:cout 请输入要查找的编号 :num;for(int i=0;

18、itop;i+)if(zhongi.GetNum()=num)zhongi.Output();r eturn;cout 查无此人! endl;break;case 2:cout 请输入要查找的姓名 name;for(int i=0;itop;i+)if(zhongi.GetName()=name)zhongi.Output();for( i=0;itop;i+) if(zhongi.GetName()=name) return;cout 查无此人! endl;break;default :cout 无此选项 ! 请重试 !endl;break;void xiao_Manage:Edit()et

19、Num()=num)cout 请对这位教师的信息进行修改 :endl; zhongi.Input();cout 修改成功 endl;return;cout 查无此人 endl;void xiao_Manage:Delete()um)cout 是否确认删除? 1 、是 2 、否 choice;switch(choice)case 1:for(int j=i;jtop-1;j+)zhongj=zhongj+1;cout 删除成功! endl;top-;break;case 2:return;default:cout 无此项,失败! endl;break; return;cout 无此人! endl

20、; ;break;case 2:coutname;for(int i=0;itop;i+)if(name=)i+;cout 是否确认删除? 1 、是 2 、否 choice;switch(choice)case 1:for(int j=i;jtop-1;j+) zhongj=zhongj+1;cout 删除成功! endl;top-; ;break;case 2:return;default:cout 无此项,失败! endl;break; return;cout 无此人! endl; break;default:cout 没有此项,失败: endl;break;void

21、 xiao_Manage:Total()ex= 男 ) a+; if(zhongi.sex=女) b+;cout 男性人数为 aendl;cout 女性人数为 bendl;break;default:cout 输入错误。请重新输入 endl;break;void xiao_Manage:Save()um zhongi.sex zhongi.age zhongi.yuwen zhongi.sexzhongi.agezhongi.yuwenzhongi.yingyu)utput();top+;();class zhong_Ma

22、nagezhongxuesheng zhongTMAX; etNum()cout 该编号的人员已存在 endl;return;zhongtop=t;top=top+1;cout 添加成功 !endl;void zhong_Manage:Show()if(top=0)cout 无数据 !endl;return;for(int i=0;itop;i+)zhongi.Output();void zhong_Manage:Search()if(top=0)cout 当前系统中没有存储记录 endl;return;int choice;cout 请选择查找方式 :1. 按编号查找 2. 按姓名查找 .c

23、hoice;switch(choice)case 1:cout 请输入要查找的编号 :num;for(int i=0;itop;i+)if(zhongi.GetNum()=num)zhongi.Output();r eturn;cout 查无此人! endl;break;case 2:cout 请输入要查找的姓名 name;for(int i=0;itop;i+)if(zhongi.GetName()=name)zhongi.Output();for( i=0;itop;i+) if(zhongi.GetName()=name) return;cout 查无此人! endl;break;def

24、ault :cout 无此选项 ! 请重试 !endl;break;void zhong_Manage:Edit()if(top=0)cout 当前系统中没有存储记录 !endl;return;int num;cout 请输入要查找的教编号 :num;for(int i=0;itop;i+)if(zhongi.GetNum()=num)cout 请对该生信息进行修改 :endl;zhongi.Input();cout 修改成功 endl;return;cout 查无此人 endl;void zhong_Manage:Delete()if(top=0)cout 当前系统中没有存储记录 !endl

25、;return;cout1 、按编号查找删除 2 、按姓名查找删除 choice;switch(choice)case 1:coutnum;for(int i=0;itop;i+)if(num=zhongi.num)cout 是否确认删除? 1 、是 2 、否 choice;switch(choice)case 1:for(int j=i;jtop-1;j+)zhongj=zhongj+1;cout 删除成功! endl;top-;break;case 2:return; default:cout 无此项,失败!endl;break; return;cout 无此人! endl; ;break

26、;case 2:coutname;for(int i=0;itop;i+)if(name=)cout 是否确认删除? 1 、是 2 、否 choice;switch(choice)case 1:for(int j=i;jtop-1;j+)zhongj=zhongj+1;cout 删除成功! endl;top-;break;case 2:return;default:cout 无此项,失败! endl;break; return;cout 无此人! endl; break;default:cout 没有此项,失败: endl;break;void zhong_Manage:

27、Total()cout1 按人数统计 2 按性别统计 3 按地址统计 endl;int choice;cout 请输入你的选择 choice;switch(choice)case 1:cout 中学生人数为 :topendl;break;case 2:int a=0,b=0;for(int i=0;itop;i+)if(zhongi.sex=男) a+;if(zhongi.sex=女) b+;cout 男生人数为 aendl;cout 女生人数为 bendl;break;case 3:int a1=0,a2=0,a3=0,a4=0,a5=0,a6=0,a7=0,a8=0,a9=0;epart=

28、if(zhongi.depart=if(zhongi.depart=if(zhongi.depart=if(zhongi.depart=if(zhongi.depart=北京东路 ) a2+;北京西路 ) a3+;顺外路 ) a4+;南京东路 ) a5+;南京西路 ) a6+;上海路 ) a1+;if(zhongi.depart=if(zhongi.depart=if(zhongi.depart=解放东路 ) a7+;解放西路 ) a8+; 青山湖大道 ) a9+;cout 上海路人数为 a1endl;cout 北京东路人数为 a2endl;cout 北京西路人数为 a3endl; cout

29、顺外路人数为 a4endl;cout 南京东路人数为 a5endl;cout 南京西路人数为 a6endl;cout 解放东路人数为 a7endl;cout 解放西路人数为 a8endl;cout 青山湖大道人数为 a9endl; break;default:cout 输入错误。请重新输入 endl;break;void zhong_Manage:Save()ofstream out(D:,ios:out); if(!out)cout 打开失败 !endl; return;cout 打开成功 !endl; for(int i=0;itop;i+)outzhongi.num zhongi.nam

30、e zhongi.sex zhongi.age zhongi.depart zhongi.spec zhongi.title endl;cout 写入成功! endl;();void zhong_Manage:Read()ifstream in(D:,ios:in); if(!in)cout 打开失败 !zhongi.sexzhongi.agezhongi.departzhongi.speczhongi.title)zhongi.Output();i+;top+;();class da_Managedaxuesheng zhongTMAX; etNum

31、()cout 该编号的人员已存在 endl; return;zhongtop=t;top=top+1;cout 添加成功 !endl;void da_Manage:Show()if(top=0)cout 无数据 !endl; return;for(int i=0;itop;i+) zhongi.Output();void da_Manage:Search()if(top=0)cout 当前系统中没有存储记录 endl; return;int choice;cout 请选择查找方式 :1. 按编号查找 2. 按姓名查找 .choice;switch(choice)case 1:cout 请输入要

32、查找的编号 :num;for(int i=0;itop;i+)if(zhongi.GetNum()=num)zhongi.Output();r eturn;cout 查无此人! endl;break;case 2:cout 请输入要查找的姓名 name;for(int i=0;itop;i+)if(zhongi.GetName()=name)zhongi.Output();for( i=0;itop;i+)if(zhongi.GetName()=name)return;cout 查无此人! endl;break;default :cout 无此选项 ! 请重试 !endl;break;void

33、 da_Manage:Delete()if(top=0)cout 当前系统中没有存储记录 !endl; return;coutchoice;switch(choice)endl;case 1:coutnum; for(int i=0;itop;i+)if(num=zhongi.num) coutchoice; switch(choice) case 1:for(int j=i;jtop-1;j+)zhongj=zhongj+1;cout 删除成功! endl;top-;break; case 2:return; default:cout 无此项,失败! endl;break; return;c

34、out 无此人! endl; ;break;case 2:coutname;for(int i=0;itop;i+)if(name=) coutchoice; switch(choice) case 1:for(int j=i;jtop-1;j+)zhongj=zhongj+1;cout 删除成功! endl;top-;endl;endl;break;case 2:return;default:cout 无此项,失败!return;cout 无此人! endl; break;default:cout 没有此项,失败: endl;break;void da_Manage:E

35、dit()if(top=0)cout 当前系统中没有存储记录 !endl;return;int num;cout 请输入要查找的学号 :num;for(int i=0;itop;i+)if(zhongi.GetNum()=num)cout 请修改该生信息 :endl;zhongi.Input();cout 修改成功 endl;return;cout 查无此人 endl;void da_Manage:Total()cout1 按人数统计 2 按性别统计 endl;int choice;cout 请输入你的选择 choice;switch(choice)case 1:cout 大学生人数为 :to

36、pendl;break;case 2:int a=0,b=0;for(int i=0;itop;i+)if(zhongi.sex=男) a+;endl;break;if(zhongi.sex=女) b+;cout 男性人数为 aendl;cout 女性人数为 bendl;break; default:cout 输入错误。请重新输入 endl;break;void da_Manage:Save()ofstream out(D:,ios:out);if(!out)cout 打开失败 !endl;return;cout 打开成功 !endl; for(int i=0;itop;i+)outzhong

37、i.num zhongi.sex zhongi.age zhongi.zzmm zhongi.zc endl;cout 写入成功! endl;();void da_Manage:Read()ifstream in(D:,ios:in); if(!in)cout 打开失败 ! zhongi.sex zhongi.age zhongi.zzmm zhongi.zc)zhongi.Output();cout*小学生 *nendl;i+;top+;();void xiaoMenu();void zhongMenu();void daMe

38、nu();int main()cout * 欢迎进入高校人员信息管理系统 *endl; int choice;docout * 主菜单 *nendl;coutendl;cout|endl;cout|endl;cout|endl;cout小学生信息管理|endl;cout中学生信息管理|endl;cout大学生信息管理|endl;cout退出系统|endl;cout|endl;cout|endl;cout|endl;coutendl;coutchoice;switch(choice)case 1:xiaoMenu();break;case 2:zhongMenu();break;case 3:d

39、aMenu();break;case 0:coutn 您已安全退出系统 .endl;break; default:coutn 没有此选项 . 请重选 .endl;break;while(choice!=0);coutn * 欢迎您下次再使用本系统 !*endl; return 0;void xiaoMenu()xiao_Manage t;int choice;while(choice!=0)coutendl;cout|endl;cout添加信息|endl;cout查找信息|endl;cout修改信息|endl;cout删除信息|endl;cout显示信息|endl;cout保存信息|endl;

40、cout读取信息|endl;cout统计信息|endl;cout退出|endl;cout|endl;coutendl;coutchoice;switch(choice)case 1:();break;case 2:();break;case 3:();break;case 4:();break;case 5:();break;case 6:();break;case 7:();break;case 8:();break;case 0:cout 退出成功 !endl;break;default:cout 无此选项 ! 请重试 !endl;break;void zhongMenu()zhong_M

41、anage t;int choice;while(choice!=0)cout * 中学生 *nendl;coutendl;cout|endl;cout添加信息|endl;cout查找信息|endl;cout修改信息|endl;cout删除信息|endl;cout显示信息|endl;cout保存信息|endl;cout读取信息|endl;cout统计信息|endl;cout 退出 |endl;cout| |endl;coutendl; coutchoice;switch(choice)case 1:();break;case 2:();break;case 3:();break;case 4:();break;case 5:();break;case 6:();break;case 7:();break;case 8:();break;case 0:cout 退出成功 !endl;break;default:

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论