C++学生信息管理系统实验报告-示例

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1/26课程设计报告课程设计题目:学生信息管理系统学生姓名:张鹏专业:软件工程(嵌入式)班级:1621806指导教师:高永平2017年6月9日2/26目录一、需求分析:............................................................3二、总体设计:............................................................3三、详细设计。............................................................4四、测试结果。..........................................................13五、软件操作使用说明书。......................................18六、总结。..................................................................18七、代码:..................................................................183/26一、需求分析:根据对学生信息管理的需要,建立一个“学生信息管理系统”,以方便对学生信息数据的录入、修改、删除和查询功能。、要求完:1.有菜单界面可以对功能进行选择;2.能录入姓名、性别、学号、班级和电话号码等学生信息并保存到文件中;3.能根据学生的学号进行排序;4.能根据学生的学号对学生的信息进行修改;5.能根据学生的学号对学生的信息进行删除;6.能根据学生的学号、姓名和班级等对学生信息进行查询;7.能根据班级对学生人数进统计。二、总体设计:根据以上分析,本系统主要包括:1.从键盘录入学生个人信息,并保存到文件中;2.按学号对学生信息进行排序3.按学号对学生信息进行修改;4.按学号对学生信息进行删除;5.按学号对学生信息进行查询;6.按姓名对学生信息进行查询;7.按班级对学生信息进行查询;8.结束当前程序;等8大功能,系统主要定义了1个类和16个函数以实现各个功能:(1)主函数main():调用录入、查找、修改、排序、统计、删除等函数对学生成员信息进行处理。(2)定义类classstudent:用于定义成员结构体数组。(3)类中构造函数student():对类中各项私有成员进行传值。(4)类中输入运算符重载函数operator():方便对类的对象输入。(5)类中输出运算符重载函数operator():方便对类的对象输出。(6)获取函数getnum():方便在类外对类中的私有成员num的数据进行调用。(7)获取函数getname():方便在类外对类中的私有成员name的数据进行调用。(8)获取函数getban():方便在类外对类中的私有成员ban的数据进行调用。(9)录入函数enter():从键盘输入学生个人信息,并保存到文件中。(10)查找函数search_num():按学号查找学生个人信息。(11)查找函数search_name():按姓名查找学生个人信息。(12)查找函数search_ban():按班级查找学生个人信息。(13)修改函数changr():按学号修改学生个人信息,保存的文件中。(14)删除函数del():按学号删除学生个人信息,保存到文件中。4/26(15)排序函数sort():按学号对学生个人信息进行排序。(16)统计函数count():按班级对学生人数进行统计。程序功能结构图如图1所示:图1程序功能结构图如图三、详细设计。本系统有一个主函数,8个功能模块,每个功能模块函数都是由主函数调用,分别说明如下:(1)主函数main():调用录入、查找、修改、排序、统计、删除等函数对学生成员信息进行处理。主函数流程图如图2所示:学生信息管理系统键盘输入保存数据学号排序信息修改信息删除学号查询班级查询人数统计姓名查询5/26图2主函数流程图(2)键盘输入函数流程图:从键盘输入学生个人信息,并保存到文件中。流程图如图3所示:开始输出菜单输入操作选择cc=0c=8c=7c=6c=5c=3c=2c=1退出系统保存数据输入数据学号排序信息修改信息删除学号查询姓名查询统计人数班级查询c=4继续操作否YN结束6/26图3键盘输入函数流程图(3)排序函数流程图:按学号对学生个人信息进行排序。流程图如图4所示:开始输入学生个人信息是否继续结束输入学生人数保存数据到文件中YN7/26图4排序函数流程图(4)信息修改函数流程图:由用户输入需要修改的成员的学号,在现有的学生信息中查询是否有此学生信息的存在,查到输出该学生的全部信息,没查到则输出“学号为XX的学生不存在!”信息。流程图如图5所示:开始是否继续结束按学号进行学排序输出排序完成后的信息NY8/26图5信息修改函数流程图(5)信息删除函数流程图:由用户输入需要删除的成员的学号,在现有的学生信息中查询是否有此学生信息的存在,查到删除该学生的全部信息,没查到则输出“学号为XX的学生不存在!”信息。流程图如图6所示:开始输出不存在成员信息信息打开文件输入成员学号查询到否输出查到成员信息信息输入修改成员信息信息关闭文件结束9/26图6信息删除函数流程图(6)学号查询函数流程图:由用户输入需要查询的成员的学号,在现有的学生信息中查询是否有此学生信息的存在,查到输出该学生的全部信息,没查到则输出“学号为XX的学生不存在!”信息。流程图如图7所示:开始打开文件查询到否关闭文件结束Y删除此学生信息N输入不存在信息读入学生信息输入删除学号10/26图7学号查询函数流程图(7)姓名查询函数流程图:由用户输入需要查询的成员的姓名,在现有的学生信息中查询是否有此学生信息的存在,查到输出该学生的全部信息,没查到则输出“姓名为XX的学生不存在!”信息。流程图如图8所示:开始打开文件输出不存在学生信息结束关闭文件查询到否输入学生学号N输出查到学生信息信息Y11/26图8姓名查询函数流程图(8)班级查询函数流程图:由用户输入需要查询的成员的班级,在现有的学生信息中查询是否有此学生信息的存在,查到输出该学生的全部信息,没查到则输出“班级为XX的学生不存在!”信息。流程图如图9所示:开始打开文件输出不存在学生信息结束关闭文件查询到否输入学生姓名N输出查到学生信息信息Y12/26图9班级查询函数流程图(9)按班级统计函数流程图:由用户输入需要查询的成员的班级,在现有的学生信息中查询是否有此学生信息的存在,查到即对该班级人数进行统计,没查到则输出“班级为XX的学生不存在!”信息。流程图如图10所示:开始打开文件输出不存在该班级学生结束关闭文件查询到否输入学生班级N输出查到学生信息信息Y13/26图10按班级统计函数流程图四、测试结果。(1)程序运行主菜单如图11所示:开始打开文件输出不存在该班级学生结束关闭文件查询到否输入学生班级N输出该班级的人数Y14/26图11(2)从键盘上输入学生人数和学生信息如图12所示:图12(3)按学号修改如图13所示:15/26图13(4)按学号删除如图14:图14(5)按学号查找如图15:16/26图15(6)按姓名查找如图16:图16(7)按班级查找如图17:17/26图17(8)按班级统计人数如图18:图18(9)按学号进行排序如图19:18/26如图19五、软件操作使用说明书。本软件采用命令行对话方式进行操作,运行后出现主界面如上图所示,然后按菜单提示操作即可。六、总结。经过一个星期的不断上机实践练习,我对c++有了更进一步的认识和了解,学好它重在实践,要通过不断的上机操作不断的进行操作和试运行才能更好地掌握它,通过这次实践,我发现了自己的许多不足:我对各种循环的理解深度还不够,对字符成员调用还不是很熟练,对指针的理解还是不透彻,以及对解决问题的想法不够全面。这些不足,在这次实践中都有所提高,并且对这些不足我都会在后续的学习中努力补足。七、代码:#includeiostream#includefstream#includecstring#defineM5000usingnamespacestd;classstudent{public:student(){}student(charna[10],charse[10],intn,intb,char19/26t[12]):num(n),ban(b){strcpy(sex,se);strcpy(name,na);strcpy(tel,t);}friendistream&operator(istream&is,student&s){iss.names.sexs.nums.bans.tel;returnis;}friendostream&operator(ostream&os,student&s){oss.names.sexs.nums.bans.telendl;returnos;}intgetnum(){returnnum;}intgetban(){returnban;}char*getsex(){char*s=newchar[strlen(sex)];s=sex;returns;}char*getname(){char*p=newchar[strlen(name)];p=name;returnp;}char*gettel(){char*t=newchar[strlen(tel)];t=tel;returnt;}private:20/26charname[10];charsex[10];intnum,ban;chartel[12];};intmenu(){chars[80];intc;cout**************************主菜单***************************endlendl;cout|0.退出当前程序|\nendl;cout|1.输入学生信息|\nendl;cout|2.根据学号查询|\nendl;cout|3.根据姓名查询|\nendl;cout|4.根据班级查询|\nendl;cout|5.根据学号排序|\nendl;cout|6.按班级计人数|\nendl;cout|7.根据学号删除|\nendl;cout|8.根据学号修改|\nendl;cout-----------------------------------------------------------------------------endl;cout输入您的菜单选项编号(0-8):endl;coutDesignedbyPengendl;for(;;){gets(s);c=atoi(s);if(c8)cout输入错误,请重新输入!:;elsebreak;}21/26returnc;}intenter(studentt[]){inti,n;system(cls);cout请输入学生信息条数endl;cinn;cout请输入学生信息\nendl;cout姓名性别学号班级联系电话endl;fstreamfs;fs.open(c:\\item.txt,ios::out);for(i=0;in;i++){cint[i];fst[i];}fs.close();getchar();returnn;}voidsearch_num(studentt[],intn){inti,nu,temp=-1000;system(cls);cout请输入查找学生的学号:endl;cinnu;for(i=0;in;i++){if(nu==t[i].getnum()){cout该学生信息为:endl姓名

1 / 26
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功