c++实训报告
c++实训报告本文简介:实训报告数学与计算机学院实训报告课程名称:C/C++基础编程实训课程代码:实训题目:学生寝室管理系统年级/专业/班:2010级软件4班学生姓名:吴超学号:312010080622402实训成绩:学习态度及平时成绩(30)技术水平与实际能力(20)创新(5)报告(计算书、图纸、分析报告)撰写质量(45
c++实训报告本文内容:
实训报告
数学与计算机学院
实训报告
课
程
名
称:
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;i
,清屏system(“cls“)和暂停system(“pause“)来实现屏幕的清洁。
2
删除模块void
delete_stu()
此模块是根据老师提供的例题修改而成,根据使用者输入的需要删除的寝室号,通过for循环for(i=0;i
,清屏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
char
m,name[10];
while(1)
{
system(“cls“);
cout>m;
if(m==
A
||m==
a
)
{
cout>n;
for(i=0,x=0;i>n;
for(i=0,x=0;i>name;
for(i=0;i>name;
for(i=0,x=0;i>no;
for(i=0;i=s.length)
cout<<“要删除的寝室不存在,删除失败!!!“< else { for(int j=i;j s.xs[j]=s.xs[j+1]; s.length--; } … 4 调试分析 在定义一个新的函数头文件后,在调试中,出现了无法打开头文件的错误;后找出原因为:头文件与项目文件不在同一文件夹中,通过改变文件位置得以解决; 在初步整合阶段,每个函数之间都存在不协调的问题,通过更改和统一形参的方法得意解决; 而具体功能方面,在查询函数void cx()中,当选择用室长或者班主任姓名方式查询时无法正确完成,后改用比较函数if(strcmp(s.xs[i].sz,??)==0)后,问题才得以解决,而由于使用了清屏system(“cls“)和暂停system(“pause“)功能,在测试时一度出现暂停次数过多的问题,通过在判断结构if(n==s.xs[i].??)中加入break后解决,但是却出现了无法输出所有具有相同信息(如相同班号,班主任)的寝室信息,于是将break改为continue后得正解; 在删除函数void delete_stu()中,由于有老师的例题做参考,并未出现错误; 主函数void main()中,初步测试并未出现错误,只是输出结果不,美观,于是通过调整,将菜单等内容做了小小的美化; 心得:本次收获很大,希望今后继续进步; 5 测试 如下表: 心得与体会 心得:老师提供的定义结构体的方法很好,但是如果由我单独想的话肯定想不出有这样巧妙的方法,本想不COPY老师的方法,而是改为在头文件中只定义一个结构体,但是重新想想,如果作为一个编程者,并不是一定要全靠自己想方法,如果是有更简便的方法当然好,但是明知道自己的方法更复杂,却还要一条道走到黑,这样太不明智了,我要做的,就是学会如何使用老师的简便方法,并使用于以后的学习中;而在自己编写的查询函数中,虽然编译一次性通过,但是在接下来的测试中,基本上每解决一个功能性问题但是却马上接着出现一个新的问题;一次又一次的更改确实严重打击了我的信心和耐心,最后还是不得不承认自己的能力太弱,所以一个简单的函数都解决不了,希望自己在以后的学习中能有质的飞跃!在本次的合作过程中。两人相处的很愉快,是一次共同的进步。 意见与建议 希望老师能够多多帮助我们,要求写的实验报告不要太繁琐了。这次的实验报告要写的东西真的太多了,花了我一个下午加一个晚上,希望老师能稍微减轻下我们的负担。 指导教师评语 指导教师签名:*年*月*日 参考文献 (小三黑体,居中) [1]杨宝刚.开展企业管理信息化工作的步骤[J].企业管理.2002.(11).12~15 [2]Islamabad. Software tools for forgery detection[J]. Business line.2001. (5). 29~32 [3] 张海藩.软件工程.清华大学出版社 [4] 皮德常.c++程序设计实验与课程设计指导.机械工业出版社 [5] 皮德常.c++程序设计教程.机械工业出版社 [6] c++程序设计教程实训指导书.西华大学软件工程系实训小组编写