.........专业..目录前言-----------------------------------------------------------2概要设计-------------------------------------------------------3详细设计-------------------------------------------------------4原程序清单和执行结果-------------------------------------------61.源程序--------------------------------------------------62.执行结果-----------------------------------------------34用户使用说明---------------------------------------------------36调试与测试-----------------------------------------------------36总结与体会-----------------------------------------------------36参考资料-------------------------------------------------------36-2-前言学生信息管理系统,是针对学校人事处的大量业务处理工作而开发的管理软件,是典型的管理信息系统。它是一个教育单位不可缺少的部分,它的容对于学校管理者来说是至关重要的,能有效的帮助学校和老师掌握学生的情况。在传统模式下利用人工进行学生信息管理,存在着较多的缺点,如:效率底,性差,时间一长将产生大量的文件和数据,更不便于查找,更新,维护等。诸如这些情况,令学校管理者对学生的信息管理带来了很大困难,严重影响了教育工作者的工作效率。随着科学技术的不断提高,使用日趋成熟的计算机技术来代替传统的人工模式,来实现学生信息的现代化管理,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。作为计算机应用的一部分,使用计算机对学生信息进行管理,具有着手工管理所无法比拟的优点。例如:检索迅速、查找方便、易修改、可靠性高、存储量大、数据处理快捷、性好、寿命长、成本低等。这些优点能够极提高学生信息管理的效率,也是学校实现科学化、正规化管理的重要条件。因此,开发这样一套管理软件成为很有必要的事情。-3-概要设计1、功能模块图2、设计思路将学生信息定义为一个person类,在类中包含数据成员:intnum;stringname;stringsex;intage;intbanji;,分别表示学号、、性别、年龄、班级。分别定义小、中、大学三个类为classxiaoxuesheng、classzhongxuesheng、classdaxuesheng并继承person类,而后分别为它们一个管理类并定义公有成员函数voidAdd();实现数据添加功能voidShow();实现数据显示功能voidSearch();实现数据查询功能voidEdit();实现数据修改功能voidDelete();实现数据删除功能voidTotal();实现数据统计功能voidSave();实现数据保存功能voidRead();可从文件中将记录读取到该类的数组中;然后定义了一个主菜单函数和三个分菜单函数,使功能菜单显示在运行窗口以提示用户如何进行操作。主函数是一个程序必不可少的,在主函数中,使用一个switch语句来选择调用主菜单中的各个功能函数。学生信息管理系统小学生管理中学生管理中学生管理-4-详细设计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修改函数此函数实现的功能主要是,修改一个学生的信息。此函数的设计方法和删除函数的设计思想相类似,应用的思想都是将学生信息重新写入文件的方法,将原有数据覆盖。-5-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循环语句,从第一个学生开始检索,如果该学生的信息和选择统计方式一样,则计数变量自增,应该从第一个学生开始检索直到最后-6-一名学生。最后输出结果源程序清单和执行结果1、源程序#includeiostream#includestring#includefstream#includeiomanip//输入操纵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-7-){};voidInput(){cout请输入学生生学号endl;cinnum;cout请输入学生名字endl;cinname;cout选择性别;cout(1.男2.女)endl;cout请输入你的选择endl;cinchoice2;switch(choice2){case1:sex=男;break;case2:sex=女;break;default:cout输入错误。endl;break;}cout请输入学生年龄endl;cinage;cout请输入学生班级endl;cinbanji;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请输入你的选择endl;cinchoice1;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输入错误。endl;break;}cout地理成绩endl;cinspec;cout历史成绩endl;-8-cintitle;cout语文成绩endl;cinyuwen;cout数学成绩endl;cinshuxue;cout英语成绩endl;cinyingyu;}voidOutput(){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)specsetw(10)titlesetw(10)yuwensetw(10)shuxuesetw(10)yingyuendl;}};classdaxuesheng:virtualpublicPerson//大学生{public:stringzzmm;//家庭住址stringzc;//专业intchoice2;//性别选择intchoice1;-9-intyuwen;intshuxue;intyingyu;intdili;intlishi;stringlianxi;public:daxuesheng(intn=0,stringnm=,s