版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、课程设计报告课程设计题目:学生信息管理系统学生姓名:张鹏 专 业:软件工程(嵌入式)班 级:1621806指导教师:高永平2017年6月9日寸录一、需求分析: 3二、总体设计: 3三、详细设计。 4四、测试结果。 13五、软件操作使用说明书。 1818七、代码:18六、总结一、需求分析:根据对学生信息管理的需要,建立一个“学生信息管理系统”,以方便对学生信息数据的录入、修改、删除和查询功能。、要求完:1. 有菜单界面可以对功能进行选择;2. 能录入姓名、性别、学号、班级和电话号码等学生信息并保存到文件中;3. 能根据学生的学号进行排序;4. 能根据学生的学号对学生的信息进行修改;5. 能根据学
2、生的学号对学生的信息进行删除;6. 能根据学生的学号、姓名和班级等对学生信息进行查询;7. 能根据班级对学生人数进统计。二、总体设计:根据以上分析,本系统主要包括:1. 从键盘录入学生个人信息,并保存到文件中;2. 按学号对学生信息进行排序3. 按学号对学生信息进行修改;4. 按学号对学生信息进行删除;5. 按学号对学生信息进行查询;6. 按姓名对学生信息进行查询;7. 按班级对学生信息进行查询;8. 结束当前程序;等8大功能,系统主要定义了 1个类和16个函数以实现各个功能:(1)主函数main():调用录入、查找、修改、排序、统计、删除等函数 对学生成员信息进行处理。(2)定义类class
3、 student:用于定义成员结构体数组。(3)类中构造函数student():对类中各项私有成员进行传值。(4)类中输入运算符重载函数operator >>():方便对类的对象输入。(5)类中输出运算符重载函数operator <<():方便对类的对象输出。(6)获取函数getnum():方便在类外对类中的私有成员 num的数据进行 调用。(7)获取函数getname():方便在类外对类中的私有成员name的数据进 行调用。(8) 获取函数getban():方便在类外对类中的私有成员 ban的数据进行 调用。(9)录入函数enter():从键盘输入学生个人信息,并保存
4、到文件中。(10)查找函数search_num():按学号查找学生个人信息。(11)查找函数search_name():按姓名查找学生个人信息。(12)查找函数search_ban():按班级查找学生个人信息。(13)修改函数changr():按学号修改学生个人信息,保存的文件中。(14)删除函数del():按学号删除学生个人信息,保存到文件中。(15) 排序函数sort():按学号对学生个人信息进行排序。(16) 统计函数count():按班级对学生人数进行统计。程序功能结构图如图1所示:图1程序功能结构图如图三、详细设计。本系统有一个主函数,8个功能模块,每个功能模块函数都是由主函数 调用
5、,分别说明如下:(1) 主函数 main():调用录入、查找、修改、排序、统计、删除等函数对学生成员信息进行 处理。主函数流程图如图2所示:图2主函数流程图(2) 键盘输入函数流程图:从键盘输入学生个人信息,并保存到文件中 流程图如图3所示:图3键盘输入函数流程图(3) 排序函数流程图: 按学号对学生个人信息进行排序。流程图如图4所示:图4排序函数流程图(4) 信息修改函数流程图:由用户输入需要修改的成员的学号,在现有的学生信息中查询是否有此学生信息 的存在,查到输出该学生的全部信息,没查到则输出“学号为XX的学生不存在! 信息。流程图如图5所示:打开文件/输入成员学号 /图5信息修改函数流程
6、图(5) 信息删除函数流程图:由用户输入需要删除的成员的学号,在现有的学生信息中查询是否有此学生信息 的存在,查到删除该学生的全部信息,没查到则输出“学号为XX的学生不存在! 信息。流程图如图6所示:打开文件读入学生信息/输入删除学号/图6信息删除函数流程图(6) 学号查询函数流程图:由用户输入需要查询的成员的学号,在现有的学生信息中查询是否有此学生信息 的存在,查到输出该学生的全部信息,没查到则输出“学号为XX的学生不存在! 信息。流程图如图7所示:输出查到学生信息图7学号查询函数流程图(7) 姓名查询函数流程图:由用户输入需要查询的成员的姓名,在现有的学生信息中查询是否有此学生信息 的存在
7、,查到输出该学生的全部信息,没查到则输出“姓名为XX的学生不存在! 信息。流程图如图8所示:输出查到学生信息图8姓名查询函数流程图(8) 班级查询函数流程图:由用户输入需要查询的成员的班级,在现有的学生信息中查询是否有此学生信息 的存在,查到输出该学生的全部信息,没查到则输出“班级为XX的学生不存在! 信息。流程图如图9所示:输入学生班级输出查查询到否NY到学生信息输出不存在该班级学生关闭文件图9班级查询函数流程图(9)按班级统计函数流程图:由用户输入需要查询的成员的班级,在现有的学生信息中查询是否有此学生信息 的存在,查到即对该班级人数进行统计,没查到则输出“班级为XX的学生不存在!”信息。
8、流程图如图10所示:图10按班级统计函数流程图四、测试结果。(1)程序运行主菜单如图11所示:图11(2)从键盘上输入学生人数和学生信息如图 12所示:图13(4)按学号删除如图14:c:C *C: tDocruieikiLS and. SettingsSUserSDeb<git en. ex:eI请输入爰删除的学生的学号I107删除中删嗪后数据为姓名性别学号班圾菠系屯话zliancfmanUS1621SEK138997809?2yangnan1621IK1117S891452tangyonanIBS16218071777080?4fr?songri>fonari1091&
9、2180913179992095按回车返可主菜单图15(6)按姓名查找如图16:图17(8)按班级统计人数如图18:如图19五、软件操作使用说明书本软件采用命令行对话方式进行操作,运行后出现主界面如上图所示, 然后按菜单提示操作即可。六、总结经过一个星期的不断上机实践练习,我对 C+有了更进一步的认识和了 解,学好它重在实践,要通过不断的上机操作不断的进行操作和试运行才能 更好地掌握它,通过这次实践,我发现了自己的许多不足:我对各种循环的 理解深度还不够,对字符成员调用还不是很熟练,对指针的理解还是不透彻, 以及对解决问题的想法不够全面。这些不足,在这次实践中都有所提高,并 且对这些不足我都会
10、在后续的学习中努力补足。七、代码: t12): num(n ),ba n(b)#in clude<iostream> #in clude<fstream> #in clude<cstri ng> #defi ne M 5000 using n amespace std; class stude nt public:stude nt() stude nt(charna10,charse10,i ntn,i ntb,charstrcpy(sex,se);strcpy( name, na); strcpy(tel,t);frie nd istream &
11、operator >>(istream & is,stude nt & s)is>>s .n ame»s.sex»s .num >>s.ba n> >s.tel; return is;frie nd ostream & operator <<(ostream & os,stude nt & s)"vvs.ba n<<"os<<s .n ame<<""<<s.sex<<"
12、;"<<s .num<<""vvs.telvve ndl;return os;int get num()return num;int getba n()return ban;char *getsex()char *s=new charstrle n(sex);s=sex; return s;char *get name()char *p=new charstrlen(name);p=n ame;return p;char *gettel()char *t=new charstrlen(tel);t=tel; return t;private
13、:char n ame10; char sex10; int nu m,ba n;char tel12;;int menu()char s80; in t c;coutvv"*主菜单*"'vven dlvve ndl;coutvv"|0.退出当前程序In"<<e ndl;coutvv"|1.输入学生信息In"vve ndl;coutvv"|2.根据学号查询In"vve ndl;coutvv"|3.根据姓名查询In"vve ndl;coutvv"|4.根据班级查询In
14、"vve ndl;coutvv"|5.根据学号排序In"vve ndl;coutvv"|6.按班级计人数In"vve ndl;coutvv"|7.根据学号删除In"vve ndl;coutvv"|8.根据学号修改In"<<e ndl;cout«""<<e ndl;coutvv"输入您的菜单选项编号(0-8):"<<e ndl;cout«"Desig ned by Pen g"<<
15、e ndl;for(;)gets(s);c=atoi(s);if(c>8)coutvv"输入错误,请重新输入!:"elsebreak;return c;int en ter(stude nt t)int i,n;system("cls");cout«" cin»n; cout«"coutvv"姓名性别系电话"<<e ndl;fstream fs;fs.ope n("c:item.txt",ios:out); for(i=0;i< n;i+)c
16、i n> >ti; fs<<ti;fs.close(); getchar(); return n;void search_ nu m(stude nt t,i nt n) _int i,n u,temp=-1000; system("cls");coutvv"请输入查找学生的学号: cin»nu;for(i=0;i< n;i+)if(nu=ti.get num()coutvv"该学生信息为:请输入学生信息条数"vvendl;请输入学生信息n"vvendl;学号班级联"vve ndl;&
17、quot;vvendlvv"姓名 性别 学号 班级 联系电话"vve ndl;coutvvti;temp=i;if(temp=-1000)coutvvendlvvendlvv"学号为"vvnuvv"的学生不存在!"vvendl;getchar();void search_ba n( stude nt t,i nt n)int i,ba,temp=-1000;system("cls");coutvv"请输入查找学生的班级号:"<<endl;cin> >ba;coutvv&q
18、uot;该学生信息为:"vvendlvv"姓名 性别 学号 班级 联系电话 "<<e ndl;for(i=0;i< n;i+)if(ba=ti.getba n()cout<<ti;temp=i;if(temp=-1000)cout«endl<<endl<<"班级为"wbavv"的学生不存在!"<<endl;getchar();void search_ name(stude nt t,i nt n) _int i,temp=-1000;char na2
19、0;system("cls");coutvv"请输入查找学生的姓名:"<<endl; cin»na;for(i=0;iv n;i+)if(strcmp( na,ti.get name()=0)coutvv"该学生信息为:"vvendlvv"姓名 性别 学号 班级 联系电话 "vve ndl;coutvvti;temp=i;if(temp=-1000)coutvvendlvvendlvv"姓名为"vvnavv"的学生不存在!"vvendl;getchar(
20、);void sort(stude nt t,i nt n)stude nt p;i nt s;system("cls");coutvv"请选择升序或降序(1或2):"vvendl;cin> >s;if(s=1)coutvv"按学号排序(升序)完成如下:"vvendl;for(int i=0;i<n-1;i+)for(i nt j=O;j< n-1-i;j+)if(tj.get num ()>tj+1.get nu m()P=tj; tj=tj+1; tj+1=p;coutvv"姓名性别学号班级
21、联系电话 for(i nt a=0;a <n; a+)cout<<ta;if(s=2)coutvv"按学号排序(降序)完成如下:for(int i=0;i<n-1;i+)for(i nt j=0;j< n-1-i;j+)if(tj.get num ()<tj+1.get nu m() P=tj; tj=tj+1; tj+1=p;coutvv"姓名性别学号班级联系电话 for(i nt a=0;a <n; a+)cout<<ta;getchar();void coun t(stude nt t,i nt n)int i,c
22、,temp=-1000;system("cls");fstream fs;fs.ope n("c:item.txt",ios:i n);"<<e ndl;"<<e ndl;"<<e ndl;coutvv"请输入想统计人数的班级:"<<endl;cin> >c;int s=0;for(i=0;i< n;i+)fs>>ti;if(c=ti.getba n()s+;temp=i;cout«"该班级人数为:"
23、;<<s<<endl;fs.close();if(temp=-1000)cout«endl«endlvv"班级为"<<c<<" 的学生不存在!"<<endl;getchar();void cha nge(stude nt t,i nt n)int id,i,temp=-1000,run=0;system("cls");coutvv"请输入要修改的学生的学号:"<<endl;cin> >id;fstream fs;
24、fs.ope n("c:item.txt",ios:i n|ios:out);for(i=0;i< n;i+)if(id=ti.get num()coutvv"修改前该学生信息为:"vvendlvv"姓名 性别 学号 班级 联系电话"vve ndl;coutvvti;temp=i;run=2000;fs.close();if(ru n=2000)fs.ope n("c:item.txt",ios:i n|ios:out);coutvv"请输入你修改该学生的信息为:"vvendlvv&quo
25、t;姓名 性别 学号 班级联系电话"vvendl;cin> >ti;fsvvti;fs.close();cout«"修改成功! "<<endl;if(temp=-1000)cout«endl«endlvv"姓名为"<<id<<" 的学生不存在!"<<endl;getchar();int del(student t,int n)int ber,temp=-1000,ru n=0;int i,j,nu;system("cls");coutvv"请输入要删除的学生的学号:"<<endl;cin> >ber;for(i=0;i< n;i+)if(ber=ti.get num()temp=i;run=2000;if(ru n=2000)cout«"删除中"<<endl;coutvv"删除后数据为:"<<endlvv"姓名 性别 学号 班级 联系电话 "<<e
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年医院医疗设备安装分包合同
- 中班语言活动教案《取气球》
- 二年级上册数学教案-五 观察物体(一) 第2课时 观察立体图形|人教新课标
- 一年级下册数学教案 - 十几减9的算理(破十法、想加算减) 人教版
- 大班健康教案:我的眼睛
- 中班音乐公开课教案:熊和蜜蜂
- 大班数学教案及教学反思《旅游统计表》
- 边坡植草防护项目实施合同
- 大班上学期社会教案详案《我是小导游》
- 2023-2024学年五年级下学期数学2.2可能性 (教案)
- 面试信息登记表
- 一级直线倒立摆系统模糊控制器设计---实验指导书
- 梁纵筋水平最小锚固长度不足与固接条件的处理的设计优化
- 大坝基础面处理施工方案
- 动画运动规律自然现象
- 腹膜后间隙解剖及CT诊断
- 液压设计常用资料密封沟槽尺寸
- 自动化控制仪表安装工程采用材料及机械价格表(2014版江苏省)
- 八卦象数疗法
- 鲁人版九年级道德与法治上册 2.3一年一度的人民代表大会
- 上海市重点建设项目社会稳定风险评估咨询收费办法
评论
0/150
提交评论