学生信息管理系统c++课设报告.docx
- 文档编号:28964249
- 上传时间:2023-07-20
- 格式:DOCX
- 页数:56
- 大小:84.62KB
学生信息管理系统c++课设报告.docx
《学生信息管理系统c++课设报告.docx》由会员分享,可在线阅读,更多相关《学生信息管理系统c++课设报告.docx(56页珍藏版)》请在冰豆网上搜索。
学生信息管理系统c++课设报告
前言-----------------------------------------------------------2
概要设计-------------------------------------------------------3
详细设计-------------------------------------------------------4
原程序清单和执行结果-------------------------------------------6
1.源程序--------------------------------------------------6
2.执行结果-----------------------------------------------34
用户使用说明---------------------------------------------------36
调试与测试-----------------------------------------------------36
总结与体会-----------------------------------------------------36
参考资料-------------------------------------------------------36
前言
学生信息管理系统,是针对学校人事处的大量业务处理工作而开发的管理软件,是典型的管理信息系统。
它是一个教育单位不可缺少的部分,它的容对于学校管理者来说是至关重要的,能有效的帮助学校和老师掌握学生的情况。
在传统模式下利用人工进行学生信息管理,存在着较多的缺点,如:
效率底,性差,时间一长将产生大量的文件和数据,更不便于查找,更新,维护等。
诸如这些情况,令学校管理者对学生的信息管理带来了很大困难,严重影响了教育工作者的工作效率。
随着科学技术的不断提高,使用日趋成熟的计算机技术来代替传统的人工模式,来实现学生信息的现代化管理,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。
作为计算机应用的一部分,使用计算机对学生信息进行管理,具有着手工管理所无法比拟的优点。
例如:
检索迅速、查找方便、易修改、可靠性高、存储量大、数据处理快捷、性好、寿命长、成本低等。
这些优点能够极提高学生信息管理的效率,也是学校实现科学化、正规化管理的重要条件。
因此,开发这样一套管理软件成为很有必要的事情。
概要设计
1、功能模块图
2、设计思路
将学生信息定义为一个person类,在类中包含数据成员:
intnum;
stringname;
stringsex;
intage;
intbanji;,
分别表示学号、、性别、年龄、班级。
分别定义小、中、大学三个类为classxiaoxuesheng、classzhongxuesheng、classdaxuesheng并继承person类,而后分别为它们一个管理类并定义公有成员函数voidAdd();实现数据添加功能
voidShow();实现数据显示功能
voidSearch();实现数据查询功能
voidEdit();实现数据修改功能
voidDelete();实现数据删除功能
voidTotal();实现数据统计功能
voidSave();实现数据保存功能
voidRead();可从文件中将记录读取到该类的数组中;
然后定义了一个主菜单函数和三个分菜单函数,使功能菜单显示在运行窗口以提示用户如何进行操作。
主函数是一个程序必不可少的,在主函数中,使用一个switch语句来选择调用主菜单中的各个功能函数。
详细设计
1、程序中函数及数据介绍
classPerson学生类
classzhongxuesheng中学生类
classdaxuesheng大学生类
classxiaoxuesheng小学生类
classxiao_Manage小学生管理类
classzhong_Manage中学生管理类
classda_Manage大学生管理类
voidxiaoMenu()小学生管理菜单函数
voidzhongMenu()中学生管理菜单函数
voiddaMenu()大学生管理菜单函数
intmain()主函数
2、函数功能介绍
2.1显示函数
显示保存的数据
2.2添加函数
此函数实现的功能主要是,添加一个学生的信息,也就是说调用一次这个函数只能添加一个学生的信息。
在此函数中也使用文件处理的方式,但使用的是以追加的方式打开文件,使输入的学生信息写在文件里原有信息的后面。
2.3删除函数
此函数实现的功能主要是,删除一个学生的信息。
在此函数中,先以读的方式打开文件,读出文件里的信息在显示在屏幕上,用户再根据提示信息输入想要删除第几个人的信息,关闭文件。
再以写的方式打开文件,以一个if条件语句控制,再重新将学生信息写入文件(除了打算删除的那个学生的信息),由于是以写的方式打开的文件,所以文件里原有的输入就都没有了,存入的新的数据。
2.4修改函数
此函数实现的功能主要是,修改一个学生的信息。
此函数的设计方法和删除函数的设计思想相类似,应用的思想都是将学生信息重新写入文件的方法,将原有数据覆盖。
2.5查询函数
在查询功能中,可以按多条件查询,本系统分为两个查询条件,即按学号查询和按查询。
使用if语句来选择查询条件。
2.5.1按学号查询
根据提示信息输入学号后,然后使用一个for循环语句,从第一个学生开始检索,如果该学生的学号和输入的学号相等,则输出该学生的信息,由于学生的学号是唯一固定的,所以并使用break语句跳出循环。
当无查询结果时,会输出一条提示信息“无此人信息!
”。
2.5.2按查询
根据提示信息输入后,然后使用一个for循环语句,从第一个学生开始检索,如果该学生的和输入的一样,则输出该学生的信息,由于学生的有可能重复出现,所以不能使用break语句跳出循环,应该从第一个学生开始检索直到最后一名学生。
当无查询结果时,会输出一条提示信息“无此人信息!
”。
2.6显示函数
此函数实现的功能主要是,显示所有学生的信息。
先是从文件中读取学生信息,然后在输出到显示窗口中。
用一个for循环语句,来把所有学生的信息都输出。
2.7退出系统
当输入“0”时,就能退出系统,这是通过while语句来控制实现的。
2.8保存函数
将输入程序的数据保存到文件中
2.9统计函数
根据选择的统计方式,然后使用一个for循环语句,从第一个学生开始检索,如果该学生的信息和选择统计方式一样,则计数变量自增,应该从第一个学生开始检索直到最后一名学生。
最后输出结果
源程序清单和执行结果
1、源程序
#include
#include
#include
#include
constintTMAX=50;//定义常变量
usingnamespacestd;
classPerson
{
public:
intnum;
stringname;
stringsex;
intage;
intbanji;
public:
Person(intn=0,stringnm="",strings="",inta=0,intb=0):
num(n),name(nm),sex(s),age(a),banji(b){};
virtualvoidInput(){};//虚函数,派生类中重新定义
virtualvoidOutput(){};
intGetNum(){returnnum;}//获取编号
stringGetName(){returnname;}//获取
};
classzhongxuesheng:
virtualpublicPerson//声明为虚基类是因为在派生类中只继承一次
{
public:
stringdepart;
intspec;
inttitle;
intyuwen;
intshuxue;
intyingyu;
intchoice1;
intchoice2;
public:
zhongxuesheng(intn=0,stringnm="",strings="男",inta=0,intb=0,stringd="路",intsp=0,intt=0,intyw=0,intsx=0,intyy=0)
:
Person(n,nm,s,a,b),depart(d),spec(sp),title(t),yuwen(yw),shuxue(sx),yingyu(yy){};
voidInput()
{
cout<<"请输入学生生学号"< cin>>num; cout<<"请输入学生名字"< cin>>name; cout<<"选择性别"; cout<<"(1.男2.女)"< cout<<"请输入你的选择"< cin>>choice2; switch(choice2) { case1: sex="男";break; case2: sex="女";break; default: cout<<"输入错误。 "< } cout<<"请输入学生年龄"< cin>>age; cout<<"请输入学生班级"< cin>>banji; cout<<"选择地址"< cout< < cout<<"请输入你的选择"< cin>>choice1; switch(choice1) { case1: depart="路";break; case2: depart="东路";break; case3: depart="西路";break; case4: depart="顺外路";break; case5: depart="东路";break; case6: depart="西路";break; case7: depart="解放东路";break; case8: depart="解放西路";break; case9: depart="青山湖大道";break; default: cout<<"输入错误。 "< } cout<<"地理成绩"< cin>>spec; cout<<"历史成绩"< cin>>title; cout<<"语文成绩"< cin>>yuwen; cout<<"数学成绩"< cin>>shuxue; cout<<"英语成绩"< cin>>yingyu; } voidOutput() {cout< < < < < < cout< < < < < < cout< < < < < < < cout< < < < < < < } }; classdaxuesheng: virtualpublicPerson//大学生 { public: stringzzmm;//家庭住址 stringzc;//专业 intchoice2;//性别选择 intchoice1; intyuwen; intshuxue; intyingyu; intdili; intlishi; stringlianxi; public: daxuesheng(intn=0,stringnm="",strings="男",inta=0,intb=0,stringz="",stringzc="",intyw=0,intsx=0,intyy=0,intdl=0,intls=0,stringlx="") : Person(n,nm,s,a),zzmm(z),zc(zc),yuwen(yw),shuxue(sx),yingyu(yy),dili(dl),lishi(ls),lianxi(lx){}; voidInput() { cout<<"输入学号"< cin>>num; cout<<"输入名字"< cin>>name; cout<<"选择性别"; cout<<"(1.男2.女)"< cout<<"请输入你的选择"< cin>>choice2; switch(choice2) { case1: sex="男";break; case2: sex="女";break; default: cout<<"输入错误。 "< } cout<<"输入年龄"< cin>>age; cout<<"请输入学生班级"< cin>>banji; cout<<"选择地址"< cout< < cout<<"请输入你的选择"< cin>>choice1; switch(choice1) { case1: zzmm="路";break; case2: zzmm="东路";break; case3: zzmm="西路";break; case4: zzmm="顺外路";break; case5: zzmm="东路";break; case6: zzmm="西路";break; case7: zzmm="解放东路";break; case8: zzmm="解放西路";break; case9: zzmm="青山湖大道";break; default: cout<<"输入错误。 "< } cout<<"输入专业"< cin>>zc; cout<<"地理成绩"< cin>>dili; cout<<"历史成绩"< cin>>lishi; cout<<"语文成绩"< cin>>yuwen; cout<<"数学成绩"< cin>>shuxue; cout<<"英语成绩"< cin>>yingyu; cout<<"联系"< cin>>lianxi; } voidOutput() { cout< < < < < cout< < < < < cout< < < < < < cout< < < < < < cout< < < < < cout< < < < < } }; classxiaoxuesheng: virtualpublicPerson//小学生 { public: intyuwen;//语文 intyingyu;//英语 intshuxue;//数学 intchoice2;//选择性别 public: xiaoxuesheng(intn=0,stringnm="",strings="男",inta=0,intb=0,intyw=0,intyy=0,intsx=0) : Person(n,nm,s,a),yuwen(yw),yingyu(yy),shuxue(sx){}; voidInput() { cout<<"输入学号"< cin>>num; cout<<"输入"< cin>>name; cout<<"选择性别"; cout<<"(1.男2.女)"< cout<<"请输入你的选择"< cin>>choice2; switch(choice2) { case1: sex="男";break; case2: sex="女";break; default: cout<<"输入错误。 "< } cout<<"输入年龄"< cin>>age; cout<<"输入班级"< cin>>banji; cout<<"语文成绩"< cin>>yuwen; cout<<"英语成绩"< cin>>yingyu; cout<<"数学成绩"< cin>>shuxue; } voidOutput() { cout< < < < < < < < < cout< < < < < < < < < } }; classxiao_Manage//小学生管理类 { xiaoxueshengzhong[TMAX];//TMAX为常量,为数组中可存储的教师记录的最大数; inttop;//top表示当前系统中存储的记录个数; public: xiao_Manage(){top=0;}//初始时记录的个数为0,所以设置top=0; voidAdd();//添加; voidShow();//显示; voidSearch();//查询; voidEdit();//修改; voidDelete();//删除; voidTotal();//统计; voidSave();//保存 voidRead();//可从文件中将记录读取到该类的数组中; }; voidxiao_Manage: : Add()//小学生 { if(top>=TMAX) { cout<<"用户已满"< return; } xiaoxueshengt;//声明对象 cout<<"输入新添加的人员的信息"<