学生信息管理系统c++课设报告(共37页).doc

上传人:飞****2 文档编号:8820214 上传时间:2022-03-24 格式:DOC 页数:37 大小:141.50KB
返回 下载 相关 举报
学生信息管理系统c++课设报告(共37页).doc_第1页
第1页 / 共37页
学生信息管理系统c++课设报告(共37页).doc_第2页
第2页 / 共37页
点击查看更多>>
资源描述

《学生信息管理系统c++课设报告(共37页).doc》由会员分享,可在线阅读,更多相关《学生信息管理系统c++课设报告(共37页).doc(37页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

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

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

3、将学生信息定义为一个person类,在类中包含数据成员:int num;string name;string sex;int age;int banji;,分别表示学号、姓名、性别、年龄、班级。分别定义小、中、大学三个类为class xiaoxuesheng、class zhongxuesheng、class daxuesheng并继承person类,而后分别为它们一个管理类并定义公有成员函数void Add(); 实现数据添加功能void Show(); 实现数据显示功能 void Search(); 实现数据查询功能void Edit(); 实现数据修改功能void Delete(); 实

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

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

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

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

8、函数实现的功能主要是,显示所有学生的信息。先是从文件中读取学生信息,然后在输出到显示窗口中。用一个for循环语句,来把所有学生的信息都输出。2.7 退出系统 当输入“0”时,就能退出系统,这是通过while语句来控制实现的。2.8保存函数将输入程序的数据保存到文件中2.9统计函数 根据选择的统计方式,然后使用一个for循环语句,从第一个学生开始检索,如果该学生的信息和选择统计方式一样,则计数变量自增,应该从第一个学生开始检索直到最后一名学生。最后输出结果源程序清单和执行结果1、 源程序#include#include#include#include/输入操纵const int TMAX=50;

9、/定义常变量using namespace std;class Personpublic:int num;string name;string sex;int age;int banji;public:Person(int n=0,string nm=,string s=,int a=0,int b=0):num(n),name(nm),sex(s),age(a),banji(b);virtual void Input();/虚函数,派生类中重新定义virtual void Output();int GetNum()return num;/获取编号string GetName()return

10、name;/获取姓名;class zhongxuesheng:virtual public Person/声明为虚基类是因为在派生类中只继承一次public:string depart;int spec;int title; int yuwen;int shuxue;int yingyu;int choice1; int choice2;public:zhongxuesheng(int n=0,string nm=,string s=男,int a=0,int b=0,string d=上海路,int sp=0,int t=0,int yw=0,int sx=0,int yy=0):Perso

11、n(n,nm,s,a,b),depart(d),spec(sp),title(t),yuwen(yw),shuxue(sx),yingyu(yy);void Input()cout请输入学生生学号num;cout请输入学生名字name;cout选择性别;cout(1.男 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(1

12、0)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=上海路;break;case 2:depart=北京东路;break;case 3:depart=北京西路;break;case 4:depart=顺外路;break; case 5:depart=南京东路;break; case 6:depart=南京西

13、路;break; case 7:depart=解放东路;break; case 8:depart=解放西路;break; case 9:depart=青山湖大道;break;default:cout输入错误。endl;break;cout地理成绩 spec;cout历史成绩title;cout语文成绩 yuwen;cout数学成绩shuxue;cout英语成绩 yingyu;void Output()coutsetw(10)学号setw(10)姓名setw(10)性别setw(10)年龄setw(10)班级 endl;coutsetw(10)numsetw(10)namesetw(10)sex

14、setw(10)agesetw(10)banji endl;coutsetw(10)地址setw(10)地理setw(10)历史setw(10)语文setw(10)数学setw(10)英语endl; coutsetw(10)departsetw(10)specsetw(10)titlesetw(10)yuwensetw(10)shuxuesetw(10)yingyuendl;class daxuesheng:virtual public Person/大学生public:string zzmm;/家庭住址string zc;/专业int choice2;/性别选择int choice1; in

15、t yuwen;int shuxue;int yingyu;int dili;int lishi;string lianxi;public:daxuesheng(int n=0,string nm=,string s=男,int a=0,int b=0,string z=,string zc=,int yw=0,int sx=0,int yy=0,int dl=0,int ls=0,string lx=):Person(n,nm,s,a),zzmm(z),zc(zc),yuwen(yw),shuxue(sx),yingyu(yy),dili(dl),lishi(ls),lianxi(lx);v

16、oid Input()cout输入学号num;cout输入名字name;cout选择性别;cout(1.男 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.北京东路setw(10)3.北京西路setw(10)4.顺外路setw(10)5.南京东路setw(10)6.南京西路setw(10)7

17、.解放东路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:zzmm=解放东路;break; case 8:zzmm=解放西路;break; case 9:zzmm=青山湖大道;break;default:cout输入错误

18、。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)namesetw(10)sexsetw(10)ageendl;coutsetw(10)班级setw(10)地址setw(10)专业setw(10)地理setw(10)历史endl;coutsetw(10)

19、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;class xiaoxuesheng:virtual public Person/小学生public:int yuwen;/语文int yingyu;/英语int shuxue;/数学int choice2;/选择性别public:xiaoxuesheng

20、(int n=0,string nm=,string s=男,int a=0,int b=0,int yw=0,int yy=0,int sx=0):Person(n,nm,s,a),yuwen(yw),yingyu(yy),shuxue(sx); void Input()cout输入学号num;cout输入姓名name;cout选择性别;cout(1.男 2.女)endl;cout请输入你的选择choice2;switch(choice2)case 1:sex=男;break;case 2:sex=女;break;default:cout输入错误。endl;break;cout输入年龄age

21、;cout输入班级banji; cout语文成绩yuwen; cout英语成绩yingyu; cout数学成绩shuxue;void Output()coutsetw(10)职工编号setw(10)姓名setw(10)性别setw(10)年龄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)yingyu=TMAX) cout用户已满endl;return; xia

22、oxuesheng t;/声明对象cout输入新添加的人员的信息endl;t.Input();for(int i=0;itop;i+)if (t.GetNum()=zhongi.GetNum()/输入的编号与存在的编号比较cout该编号的人员已存在endl;return; zhongtop=t; top=top+1;cout添加成功!endl;void xiao_Manage:Show()/小学生if(top=0)cout无数据!endl;return;elsefor(int i=0;itop;i+)zhongi.Output();void xiao_Manage:Search()/小学生if

23、(top=0)cout当前系统中没有存储记录endl;return;int choice;cout请选择查找方式:1.按编号查找 2.按姓名查找.choice;switch(choice)case 1:cout请输入要查找的编号:num; for(int i=0;itop;i+)if(zhongi.GetNum()=num) zhongi.Output(); return;cout查无此人!endl; break;case 2:cout请输入要查找的姓名name; for(int i=0;itop;i+) if(zhongi.GetName()=name) zhongi.Output();fo

24、r( i=0;itop;i+)if(zhongi.GetName()=name)return;cout查无此人!endl; break;default :cout无此选项!请重试!endl;break;void xiao_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查

25、无此人endl;void xiao_Manage:Delete()/小学生if(top=0) cout当前系统中没有存储记录!endl;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; ca

26、se 2:return; default:cout无此项,失败!endl;break; return; cout无此人!endl; ;break; case 2: coutname; for(int i=0;itop;i+) if(name=zhongi.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;

27、return; cout无此人!endl; break;default:cout没有此项,失败:endl;break;void xiao_Manage:Total()/小学生cout1 按人数统计 2 按性别统计 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女性人

28、数为bendl;break;default:cout输入错误。请重新输入endl;break;void xiao_Manage:Save()/小学生ofstream out(D:ying1.txt,ios:out);/定义文件流对象,打开磁盘文件,ofstream用来支持从磁盘文件的输入if(!out)cout打开失败!endl;return;cout打开成功!endl;for(int i=0;itop;i+)outzhongi.num zhongi.name zhongi.sex zhongi.age zhongi.yuwen zhongi.yingyu endl;/向磁盘文件输出数据cou

29、t写入成功!endl;out.close();void xiao_Manage:Read()/小学生ifstream in(D:ying1.txt,ios:in);/ifstream用来支持向磁盘文件的输出if(!in)cout打开失败!zhongi.num zhongi.namezhongi.sexzhongi.age zhongi.yuwenzhongi.yingyu)/当读取成功执行下面的语句zhongi.Output(); i+;top+;in.close();class zhong_Manage zhongxuesheng zhongTMAX; /TMAX为常量,为数组中可存储的教师记录的最大数;int top; /top表示当前系统中存储的记录个数;public:zhong_Manage()top=0; /初始时记录的个数为0,所以设置top=0;void Add(); /添加;void Show(); /显示; void Search(); /查询;void Edit(); /修改;void Delete(); /删除;void Total(); /统计;void

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 教育教学

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com