[工学]c++实训报告.doc_第1页
[工学]c++实训报告.doc_第2页
[工学]c++实训报告.doc_第3页
[工学]c++实训报告.doc_第4页
[工学]c++实训报告.doc_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实训报告数学与计算机学院实训报告课 程 名 称: C/C+基础编程实训 课 程 代 码: 实 训 题 目: 学生寝室管理系统 年级/专业/班: 2010级软件4班 学 生 姓 名: 吴超 学 号: 312010080622402 实训成绩:学习态度及平时成绩(30)技术水平与实际能力(20)创新(5) 报告(计算书、图纸、分析报告)撰写质量(45)总 分(100)指导教师签名: 年 月 日实训时间4.12-5.2地点6A418实训学时6实训 目的 提高编程能力提高合作协调能力掌握c+面向过程实验方法实训内容 某学校要对学生寝室进行自动化管理。学生寝室信息括寝室编号、宿舍名称、应居住人数、实际居住人数、所属年级、班号、电费、水费、室长、班主任等信息。要求编程程序实现如下功能:1)数据录入:按上面录入学生寝室信息; 2)查询:输入寝室编号或班号或室长或班主任,分别查找进行查找,输出找到的所有寝室信息;3)修改操作:输入寝室编号,修改相应的寝室信息(如修改室长等信息);4)删除:删除指定寝室的记录信息;5)浏览:能查看所有寝室信息要求以每个功能以函数实现,以菜单的形式显示各功能,从菜单中选择相应的编号后执行相应的功能。实训分工安排本程序由两人共同完成其中高原主要负责录入函数,修改函数,浏览函数的编写,以及汇总后的测试工作;吴超主要负责头文件,查询函数,删除函数,主函数的编写,以及汇总后的更改工作;实训要求 两人合作完成通一项目分工合作后汇总进行统一测试与更正使用面向过程的实验方法使用实训室及 主要设施设备 6A418联想商用电脑D2527联想Y460实 训 成 果 及 明1 完成了此次实训内容2 完成了实验报告3 提高了自己的合作能力以及编程能力引 言 1 需求分析 本程序是针对学生寝室信息自动化管理而设计,能够对学生的寝室信息(包括寝室编号、宿舍名称、应居住人数、实际居住人数、所属年级、班号、电费、水费、室长、班主任等)进行方便的自动化管理。它应实现的功能有:1. 数据录入功能:能够通过计算机录入学生寝室信息,并进行储存;2. 信息查询功能:进入此系统能够清晰地查询使用者需要的学生寝室信息,能够根据寝室编号、班号、室长或班主任分别进行查找,并在查询成功后输出所有的寝室信息;3. 信息修改功能,为了防止录入数据时的失误带来的错误信息,本系统应能修改错误的信息,根据错误修改指定的信息,而不必全部重新输入;4. 信息删除功能:由于失误或是学生转学等原因需要删除学生信息,则要求本系统能够根据要删除的寝室信息进行特定删除,而不影响其他寝室信息;5. 信息浏览功能:为了方便使用者查看所有学生寝室信息,此系统应能根据需要输出所有学生信息;6. 可维护性:为了适应将来更新的需求,本系统应能有良好的可维护性;1.1系统概述本系统为学生寝室管理系统,能方便的对学生的寝室信息作出自动化管理,它包括的功能有:数据录入功能,信息查询功能,信息修改功能,信息删除功能,信息浏览功能;具有简单,易用,清新,人性化的特点,适合大众使用。1.2 功能需求分析1. 数据录入功能:能够通过计算机录入学生寝室信息,并进行储存;2. 信息查询功能:进入此系统能够清晰地查询使用者需要的学生寝室信息,能够根据寝室编号、班号、室长或班主任分别进行查找,并在查询成功后输出所有的寝室信息;3. 信息修改功能,为了防止录入数据时的失误带来的错误信息,本系统应能修改错误的信息,根据错误修改指定的信息,而不必全部重新输入;4. 信息删除功能:由于失误或是学生转学等原因需要删除学生信息,则要求本系统能够根据要删除的寝室信息进行特定删除,而不影响其他寝室信息;5. 信息浏览功能:为了方便使用者查看所有学生寝室信息,此系统应能根据需要输出所有学生信息;6. 可维护性:为了适应将来更新的需求,本系统应能有良好的可维护性;1.3运行环境任意windows环境;奔腾133以上的pc机,内存需在16兆以上;1.4测试数据 1 在主菜单中分别选择A,B,C,D,E,Q;2 在录入页面录入三个寝室信息,寝室编号分别为1,2,3;其中1,2号寝室的班号相同,都为4;3号寝室班号为3;2,3号寝室的班主任姓名相同,都为w,1号寝室班主任为q;3 在查询菜单中分别选择 A,B,C,D,E;在按班号查询时输入4;在按班主任姓名查询时输入q;4 在修改菜单中依次输入0-10,更改信息后选择浏览;5 在删除菜单中输入2,再在查询菜单中查询2号寝室信息;2 概要设计为方便合作者的统一,先定义一个头文件共同使用,头文件为定义的结构体,根据面向过程的试验方法,将不同的功能分为不同的函数分别实现,函数分别为:录入函数:void input()查询函数:void cx()修改函数:void xg()删除函数:void delete_stu()浏览函数:void print()主函数: void main()在主函数中显示菜单,根据输入信息调用不同的函数,以实现整个系统功能;其中由我负责的函数概要设计如下:1 查询模块void cx()此模块以while(1)来创造循环环境,以菜单形式询问使用者需要使用的查询方式,通过使用者的选择,进行不同方式的查询;查询功能用FOR循环实现,for(i=0;is.length+1;i+)若找到则输出该寝室的所有信息,否则根据判断是否i=s.length,输出查询失败的信息。并且通过#include ,清屏system(cls)和暂停system(pause)来实现屏幕的清洁。2 删除模块void delete_stu()此模块是根据老师提供的例题修改而成,根据使用者输入的需要删除的寝室号,通过for循环for(i=0;is.length;i+)来查找此寝室,若成功则通过for循环,使用s.xsj=s.xsj+1;来覆盖前一个寝室信息,从而达到删除目的,最后用s.length将长度缩短;3 主函数模块void main()此模块以简洁明了的菜单来提示使用者选择,分别对应录入功能,查询功能,修改功能,删除功能和退出,通过使用者的选择,以if和else语句实现调用不同的函数模块,在选择退出后输出感谢信息,并且通过#include ,清屏system(cls)和暂停system(pause)来实现屏幕的清洁。2.1 设计思路 1. 在头文件中定义结构体,为方便接下来的操作,特定义两个结构体,一为学生结构体student,包含学生各种信息,二为结构体stu,在其中定义一个学生结构体student,和长度。通过引用传递,将结构体的宏作为形参传递;2. 在查询函数void cx()中,根据输入信息,通过for循环来查找,找到后输出结果;3. 在删除函数void delete_stu()中,通过输入的信息,找到该寝室,并将之后的寝室往上移动,以覆盖的方式达到删除的目的;4. 在主函数中,制作菜单,通过输入信息分别调用不同函数,以实现系统整体功能。2.2 模块功能介绍1. 录入模块:通过计算机录入学生寝室信息,并进行储存;2. 查询模块:进入此系统后能够清晰地显示使用者需要查询的方式(寝室编号、班号、室长或班主任分别进行查找),通过使用者的选择,进行不同方式的查找,并在找到结果后进行输出学生寝室信息;3. 修改模块,本模块能修改错误的信息,进入此模块后,选择需要修改的寝室,并在选择后显示需要修改某项的信息,选择后将单独对其进行修改,避免每次修改都要全部重新输入的麻烦;4. 本模块能够根据要删除的寝室信息进行特定删除,而不影响其他寝室信息;5. 浏览模块:此模块能根据使用者需要输出所有学生信息;6. 主函数模块:此模块中包含菜单的显示,以及能够实现对不同模块的调用;2.3模块结构 学生寝室管理系统寝室信息查询模块寝室信息删除模块寝室信息浏览模块寝室信息修改模块寝室信息录入模块2.4 流程图如下:2.5 功能设计分工高原主要负责录入函数,修改函数,浏览函数的编写,以及汇总后的测试工作;吴超主要负责头文件,查询函数,删除函数,主函数的编写,以及汇总后的修改工作;3详细设计以下将对由我制作的模块进行详细设计3.1查询模块void cx()void cx(stu &s)int n,x,i=0;char m,name10;while(1)system(cls);cout请输入你要查询的寝室编号或班号或室长或班主任endl;cout 请选择你的查询方式endl;cout*A 按寝室编号查询*endl; cout*B 按 班 号 查 询*endl;cout*C 按 室 长 查 询*endl;cout*D 按班主任查询 *endl; cout*E 退 出 查 询*m;if(m=A|m=a)cout请输入寝室编号n;for(i=0,x=0;is.length;i+)if(n=s.xsi.no)cout寝室编号s.xsi.noendl; cout宿舍名称endl;cout应住人数s.xsi.yzrsendl;cout实住人数s.xsi.szrsendl;cout室长s.xsi.szendl;cout班主任s.xsi.bzrendl;cout班号s.xsi.bhendl;cout年级s.xsi.njendl;cout水费s.xsi.sfendl;cout电费s.xsi.dfendl;coutendl;x+;continue;system(pause);if(x=0) cout对不起,您要查询的结果不存在!endl; else if(m=B|m=b)cout请输入班号n;for(i=0,x=0;is.length;i+)if(n=s.xsi.bh)cout寝室编号s.xsi.noendl;cout宿舍名称endl;cout应住人数s.xsi.yzrsendl;cout实住人数s.xsi.szrsendl;cout室长s.xsi.szendl;cout班主任s.xsi.bzrendl;cout班号s.xsi.bhendl;cout年级s.xsi.njendl;cout水费s.xsi.sfendl;cout电费s.xsi.dfendl;coutendl;x+;continue; system(pause);if(x=0) cout对不起,您要查询的结果不存在!endl; else if(m=c|m=C)cout请输入室长姓名name;for(i=0;is.length;i+)if(strcmp(s.xsi.sz,name)=0)cout寝室编号s.xsi.noendl;cout宿舍名称endl;cout应住人数s.xsi.yzrsendl;cout实住人数s.xsi.szrsendl;cout室长s.xsi.szendl;cout班主任s.xsi.bzrendl;cout班号s.xsi.bhendl;cout年级s.xsi.njendl;cout水费s.xsi.sfendl;cout电费s.xsi.dfendl;coutendl;x+;break; system(pause);if(x=0) cout对不起,您要查询的结果不存在!endl; else if(m=d|m=D)cout请输入班主任姓名name;for(i=0,x=0;is.length;i+) if(strcmp(s.xsi.bzr,name)=0)cout寝室编号s.xsi.noendl;cout宿舍名称endl;cout应住人数s.xsi.yzrsendl;cout实住人数s.xsi.szrsendl;cout室长s.xsi.szendl;cout班主任s.xsi.bzrendl;cout班号s.xsi.bhendl;cout年级s.xsi.njendl;cout水费s.xsi.sfendl;cout电费s.xsi.dfendl;coutendl;x+;continue;system(pause);if(x=0) cout对不起,您要查询的结果不存在!endl;else if(m=E|m=e)break;elsecout输入错误,请重新输入endl;system(pause);3.2 删除模块void delete_stu()void delete_stu(stu &s)int no,i;coutno;for(i=0;i=s.length) cout要删除的寝室不存在,删除失败!endl;elsefor(int j=i;js.length-1;j+) s.xsj=s.xsj+1;s.length-;4 调试分析在定义一个新的函数头文件后,在调试中,出现了无法打开头文件的错误;后找出原因为:头文件与项目文件不在同一文件夹中,通过改变文件位置得以解决;在初步整合阶段,每个函数之间都存在不协调的问题,通过更改和统一形参的方法得意解决;而具体功能方面,在查询函数void cx()中,当选择用室长或者班主任姓名方式查询时无法正确完成,后改用比较函数if(strcmp(s.xsi.sz,?)=0)后,问题才得以解决,而由于使用了清屏system(cls)和暂停system(pause)功能,在测试时一度出现暂停次数过多的问题,通过在判断结构if(n=s.xsi.?)中加入break后解决,但是却出现了无法输出所有具有相同信息(如相同班号,班主任)的寝室信息,于是将break改为continue后得正解;在删除函数void delete_stu()中,由于有老师的例题做参考,并未出现错误;主函数void main()中,初步测试并未出现错误,只是输出结果不,美观,于是通过调整,将菜单等内容做了小小的美化;心得:本次收获很大,希望今后继续进步;5测试如下表:心得与体会心得:老师提供的定义结构体的方法很好,但是如果由我单独想的话肯定想不出有这样巧妙的方法,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论