版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、课程设计报告课程设计题目:学生信息管理系统学生姓名:张鹏业:软件工程(嵌入式)班 级:指导教师:高永平2017年6月9日目录一、需求分析:错误!未定义书签。二、总体设计:误!未定义书签。三、详细设计。错误!未定义书签。四、测试结果。错误!未定义书签。五、软件操作使用说明书。错误!未定义书签。六、总结。错误!未定义书签。七、代码错误!未定义书签。一、需求分析:根据对学生信息管理得需要,建立一个“学生信息管理系统”,以方便对 学生信息数据得录入、修改、刪除与查询功能。、要求完:1、有菜单界面可以对功能进行选择;2、能录入姓名、性别、学号、班级与电话号码等学生信息并保存到文 件中;3、能根据学生得学
2、号进行排序;4、能根据学生得学号对学生得信息进行修改;5、能根据学生得学号对学生得信息进行删除;6、能根据学生得学号、姓名与班级等对学生信息进行查询;7、能根据班级对学生人数进统计。二、总体设计:根据以上分析,本系统主要包括:1、从键盘录入学生个人信息,并保存到文件中;2、按学号对学生信息进行排序3、按学号对学生信息进行修改;4、按学号对学生信息进行删除;5、按学号对学生信息进行查询;6、按姓名对学生信息进行查询;7、按班级对学生信息进行查询;8、结束当前程序;等8大功能,系统主要定义了 1个类与16个函数以实现各个功能:(1) 主函数mainO:调用录入、查找、修改、排序、统计、删除等函数
3、对学生成员信息进行处理。(2) 定义类class student:用于定义成员结构体数组.(3) 类中构造函数student ():对类中各项私有成员进行传值。(4) 类中输入运算符重载函数opera t or ():方便对类得对象输 入。(5) 类中输出运算符重载函数o perator():方便对类得对象输岀。(6) 获取函数g e tn u m ():方便在类外对类中得私有成员num得数 据进行调用.(7) 获取函数g e tname ():方便在类外对类中得私有成员name得数 据进行调用.(8) 获取函数getban ():方便在类外对类中得私有成员ban得数据 进行调用。(9) 录入
4、函数enter ():从键盘输入学生个人信息,并保存到文件 中。(10) 查找函数sea r ch_num():按学号查找学生个人信息。(11) 查找函数s ea r c h_nam e ():按姓名查找学生个人信息。(12) 查找函数search_ba n ():按班级查找学生个人信息。(13) 修改函数changrO:按学号修改学生个人信息,保存得文件中。(14) 刪除函数del ():按学号删除学生个人信息,保存到文件中。(15) 排序函数sortO:按学号对学生个人信息进行排序。(16) 统计函数count ():按班级对学生人数进行统计.程序功能结构图如图1所示:图1程序功能结构图如
5、图三、详细设计.本系统有一个主函数,8个功能模块,每个功能模块函数都就是由主函 数调用,分别说明如下:(1)主函数 m a in():调用录入、查找、修改、排序、统计、删除等函数对学生成员信息进行 处理。主函数流程图如图2所示:图2主函数流程图(2)键盘输入函数流程图:从键盘输入学生个人信息,并保存到文件中。流程图如图3所示:(3 )排序函数流程图:按学号对学生个人信息进行排序。流程图如图4所示:图4排序函数流程图(4)信息修改函数流程图:由用户输入需要修改得成员得学号,在现有得学生信息中查询就是否有此学生信 息得存在,查到输出该学生得全部信息,没查到则输出“学号为XX得学生不存 在! ”信息
6、.流程图如图5所示:打开文件/输入成员学号/图5信息修改函数流程图(5)信息删除函数流程图:由用户输入需要删除得成员得学号,在现有得学生信息中查询就是否有此学生信 息得存在,查到刪除该学生得全部信息,没查到则输出“学号为XX得学生不存 在!”信息。流程图如图6所示:打开文件读入学生信息 /输入删除学号 /图6信息删除函数流程图(6)学号查询函数流程图:由用户输入需要查询得成员得学号,在现有得学生信息中查询就是否有此学生信 息得存在,查到输出该学生得全部信息,没查到则输出“学号为XX得学生不存 在!”信息。流程图如图7所示:图7学号查询函数流程图(7 )姓名查询函数流程图:由用户输入需要查询得成
7、员得姓名,在现有得学生信息中查询就是否有此学生信 息得存在,查到输出该学生得全部信息,没查到则输岀“姓名为XX得学生不存 在!”信息.流程图如图8所示:图8姓名查询函数流程图(8)班级查询函数流程图:由用户输入需要查询得成员得班级,在现有得学生信息中查询就是否有此学生信 息得存在,查到输出该学生得全部信息,没查到则输出班级为XX得学生不存 在!信息。流程图如图9所示:图9班级查询函数流程图(9 )按班级统计函数流程图:由用户输入需要查询得成员得班级,在现有得学生信息中查询就是否有此学生信 息得存在,查到即对该班级人数进行统计,没查到则输出“班级为XX得学生不 存在! ”信息。流程图如图10所示
8、:图10按班级统计函数流程图四、测试结果。程序运行主菜单如图11所示:图11(2)从键盘上输入学生人数与学生信息如图12所示:图12(3)按学号修改如图1 3所示:(4)按学号删除如图14:ca *C: Docuaents and SettingsSUserte. exe*请输入要删除的学生的学号10?删除中册條后数据为:姓名性别学号班级联系电话zhang nan 110162180613899780972wancf nan 106162180611178891452tancf woman 105 1G2180? 1?70809469 soncf woman 109 1621809 13179
9、992095 按回车返回主菜单图14(5)按学号查找如图15:图1 5(6 )按姓名查找如图1 6:图16(7)按班级查找如图17:图1 7(8 )按班级统计人数如图18 :图18(9)按学号进行排序如图19:如图19五、软件操作使用说明书。本软件采用命令行对话方式进行操作,运行后出现主界面如上图所示, 然后按菜单提示操作即可。六、总结经过一个星期得不断上机实践练习,我对C+有了更进一步得认识与了 解,学好它重在实践,要通过不断得上机操作不断得进行操作与试运行才能 更好地掌握它,通过这次实践,我发现了自己得许多不足:我对各种循环得理 解深度还不够,对字符成员调用还不就是很熟练,对指针得理解还就
10、是不透 彻,以及对解决问题得想法不够全面。这些不足,在这次实践中都有所提高, 并且对这些不足我都会在后续得学习中努力补足。七、代码:# include (lost r e am# i nc 1 udefs t r eam# incl u d e#d e fin e M 5 000us i n g namesp a ce std;clas s stu d entp ub 1 i c sd s t ud e n t () stud e nt (ch ar na 10,char se 10, i n t n , i nt b,char t1 2 ) :num(n) ,ban ( b ) d d s
11、t rc p y ( s ex, s e ); d s t repy ( name, na);dstr cpy (tel,t);。fr i end ist r earn & op er at or (istream & is, s tud ent & s)0 iss. names、sexs nums、bans、tel;d d return is;。d frie n d ost r e am & operato r (ostr e a m & o s . stu d ent & s)d os s、nam eVV VVs、sex ” Vs、nu m”Vs、ban s、t el (end 1 ;re
12、t urn os;。i nt g etnum() return num;。d i n t getban ()。 d return ban;char *ge t sex ()。d char s =new char s t rlen (sex); s=s e x; d return s ;d ch a r *g e tn a me ()char *p=n e w char strlen (name); p=name;0 return p; ch a r *g e 11 e 1 ()char *t=n ew c hars trlen( tel);d t 二 tel;d d re t u r n t;
13、。pri v ate:d c h ar name 1 0; d char sex 10; d int num,ban;ch a r tel12;int m e nu () d char s 80;int c;c out V * * * *#* e ndlend 1 ;c o utVVIIn (end 1 ;。CO U tIInM endl;0 coutIIn endl;cout VI询|n” end 1;d C O U t I询In end 1d cout ”IIn endl;。c outvIIn endl;coutI除In endl;d c o utVVIInw endl;0、退出当前程序1
14、、输入学生信息2、根据学号査询3、根据姓名查4、根据班级查5、根据学号排序6、按班级计人数7、根据学号删8、根据学号修改cout Ven d 1;。cout输入您得菜单选项编号(0 8) :” endl;dcoutV(”Desi gne d by P e ng 8)。cout”输入错误,请重新输入!严;else0 br e ak; re t urn c;i nt en t er (student t )d i nt i, n; system (11 c 1 s*);d cout n;d C 0 ut” e nd 1;cou t 姓名性别联系电话” endl ;请输入学生信息条数” VV请输入学
15、生信息n”学号班级。fstr e a m fs;f s、openc: itenu txt , io s : :ou t);d fo r (i=0; i t i;d f s nu;for (i=0; i n; i +)。d if (nu= t i x getnum()。 cout”该学生信息为:” end 1V”姓名性别学号班级联系 电话Ve n d 1;dc ou t t i;t emp=i;i f (t e mp=T0 0 0)得学生不存在!”班级联系电话得学生不存在!学号班级联系电得学生不存在!”d c o u t e ndl end 1V学号为 nuba;cout n该学生信息为:” K
16、endl”姓名 性别2 w endl ;for (i=0; in;i +)。d d if(ba=ti、g e than ()d cout t i ;temp=i;i f ( t e mp=1000) coutend 1 end 1 M 班级为 ba” end 1 ;d get cha r ();vo i d s e a r c h _name (s t udent t , int n)int i, temp=100 0 ;d ch a r na 20;d sy s tem (cl s);d c outw请输入查找学生得姓名:” e nd 1 ;d c i nna;d f or (i=0; i
17、n; i +)(d i f (s t r cmp (na, t i、get name () =0)。cout”该学生信息为: endl姓名性别 话 e ndl;d cou t t i ;d t emp =i; i f ( t emp=-1000)cou t endl e nd 1 姓名为Vna en d1;getcha r ();v oid sort (student t ,i n t n)d s t udent p; in t s;s y s tem (cis);。co ut s ;i f (s= 1) cout”按学号排序(升序)完成如下:” en dl;d f o r (i nt i=0
18、; in1; i+)(for (in t j= 0 ; jtj+l、ge t num ()。 0P= t j ; d d t j =tj+1 ;d dt j+l=p;d d。coutV”姓名 性别学号 班级联系电话”endl; f or (in t a=0; an;a+)。cou tta;。if(s=2)cout”按学号排序(降序)完成如下:”Vendl; for ( i n t i=0; in- 1 ; i卄)d for (i nt j=0; j n-l-i; j +)。d i f (t j 、getnumOt j+1、g etnum ()。P=t j 1;。t j =tj+ 1 ;。tj+
19、l=p; d。cout姓名 性别 学号 班级 联系电话” endl;f or(i nt a = 0 ; a ( n ; a+)d d 9 cou t (ta;getcha r ();void count(student t, int n)d int i, c ,temp=1000;0 system (c 1 s);d fs t ream f s ;d f s、open( c: Wit e m、txt w , i os: : i n);。c o u t V”请输入想统计人数得班级:V Vendl;c inc;d int s= 0 ;d f o r (i =0; i ) t i;0 if (c=t
20、 i、getban ()。s +;d d temp=i;。)cou t该班级人数为: (send 1 ;f s、clo s e();i f (tem p =-1000)cou t endl endlV 班级为 c 存在!” endl; d getch a r ();vo i d chan g e (stude n t t , in t n)int id, i,temp= 1000,nin=0;s ystem (cis);cout) id;fstream f s;d fs、op e n ( c: item、txt, ios:: i n I ios:: out);d fo r (i=0; i n;
21、 i+)d d i f (id=ti、get num ()。(。coutV”修改前该学生信息为:” e ndl”姓名性别 级联系电话V end 1 ;d cou t cl o se ();if (ru n =2000)fs openCc: item、txt , io s :; in I i os: out);coutV”请输入您修改该学生得信息为:* endl”姓名性别 学 号班级联系电话” t i;fs t i;f s、c 1 o se ();cout修改成功!”endl;if (t e mp=-l 0 00)。co u t e ndl endl” 姓名为 H idw 得学生不存在V e n
22、dl;。get cha r ();in t del ( s tudent t , in t n)in t ber, t e mp=-10 0 0 , run=0;o in t i, j, nu ;d sys t em ( H cis);。c out 请输入要删除得学生得学号endl;。c inber;fo r (i=0; i n;i+)。d i f (ber=ti、get num ()o $t emp=i;r u n= 2 0 0 0 ;。i f (run=2000)d cout” 删除中、 endl;。coutV删除后数据为:Ve ndl”姓名 性别 学号班级联系电 话” (endl;。fstr e am fs;fs、o p en (” c : item、txt , ios: :ou t );
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年公共设施窗帘清洗消毒服务合同范本3篇
- 2024版汽车检测台租赁合同
- 2024石材外墙干挂劳务服务合同标准版6篇
- 2025年度特色饮品店门面房租赁及新品研发合同3篇
- 2025年度圆形冷却塔能源管理服务合同4篇
- 2024版基础建设融资借款协议模板版
- 2025年度水电工程质保期服务合同4篇
- 2025年度学校图书馆窗帘升级改造合同4篇
- 2025年度生态修复工程承包树木合同协议书4篇
- 2024石材行业品牌推广与营销合同3篇
- 领导沟通的艺术
- 发生用药错误应急预案
- 南浔至临安公路(南浔至练市段)公路工程环境影响报告
- 绿色贷款培训课件
- 大学生预征对象登记表(样表)
- 主管部门审核意见三篇
- 初中数学校本教材(完整版)
- 父母教育方式对幼儿社会性发展影响的研究
- 新课标人教版数学三年级上册第八单元《分数的初步认识》教材解读
- (人教版2019)数学必修第一册 第三章 函数的概念与性质 复习课件
- 重庆市铜梁区2024届数学八上期末检测试题含解析
评论
0/150
提交评论