还剩23页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
实训报告实训设计题目:信息管理系统学生学号:学生姓名:所在系(部):专业及班级:指导教师:完杨怡成日期:§
3.3系统结构体定义信息工程系对于一个应用程序而言,结构体的定义计算机班1502好坏尤其重要一个设计结构体,可以使系统功能实现变得更加简单,也会使系统的执董学枢行速度更快,性能更高更稳定结构体定义表studen列含义类型长度缺省值允许空num学号int4无否name姓名char15无是elec选修课成绩double8无是expe实验课成绩double8无是requ必修课成绩double8无是sum总分成绩double8无是§
3.3系统函数定义列含义类型in录入学生成绩信息voidshow显示学生信息voidorder按总分排序voiddel删除学生成绩信息voidmodify修改学生成绩信息voidmenu主菜单voidinsert插入学生信息voidtotal计算总人数Voidsearch查找学生信息voidmain主函数int第章系统实现4§
4.1生信息管理系统界面展示模块及实现主界面§
4.
1.1主界面列表显示的是各个功能的显示信息,包括退出系统、输入学生信息、查询学生信息、删除学生信息、修改学生信息、插入学生信息、总成绩排名、统计学生人数、显示学生信息序资SIUDENT索数退数®®总差出一入界面用户进入列表展示界面后,可以输入选项选择相应的功能展示功能模块界面代码实现void menu/*自定义函数实现菜单功能*/system〃cls〃;printf〃\n\n\n\n\n〃;printf〃\t\t|STUDENT|\n〃;printf|\t
0.退出l\n〃;printf,z\t\t|\t
1.输入数据l\n〃;printf,z\t\t|\t
2.搜索数据l\n〃;printf\t\t|\t
3.删除数据I\n〃;printf z,\t\t I\t
4.修改数据l\n〃;012345678^^^^printf,z\t\t|\t
5.插入数据l\n〃;printf,z\t\t|\t
6.总分排序I\n〃;printf z,\t\t|\t
7.学生人数l\n〃;printf z,\t\t|\t
8.查看l\n〃;printf,z\t\t||\n\n〃;printf zz\t\t\t选择0-8:〃;具有输入数字选择功能的代码是写在主函数中的void main/*主函数*/{int n;menu;scanf zz%d/z,n;/*输入选择功能的编号*/whilen{switchn{case1:in;break;case2:search;break;case3:del;break;case4:modify;break;case5:insert;break;case6:order;break;case7:total;break;case8:show;break;default:break;}getchO;menu;/*执行完功能再次显示菜单界面*/scanf〃%d〃,n;}}录入学生信息模块§
4.
1.2在主界面中输入数字即可进入到录入学生信息状态当磁盘文件有存储记录时,1,可以向文件中添加学生信息,运行效果如图1当磁盘文件没有学生信息记录时,系统界面会提示没有记录,然后根据提示决定是选修课纳必修评显力、遂爵RX.H
243.H请轴请输imnz
76.W23R.M入nunbei*姓声:张三电翁熊10001二验律大选像第6888酚小:内实验课:75是否继续姓名:李四nunber10002二的条:HX:熊二心杼阳lft9y律9864谍76否输入信息,运行效果如图20K图2在录入学生信息模块中将学生的信息进行保留,当程序运行结束,关闭程序,下此运行程序时录入的信息任然保留因此在该模块中应用文件读写操作,对录入的信息保存到存到磁盘文件中,下次运行程序时,可以从磁盘文件中将存储读出并显示代码实现void in/*录入学生信息*/{int i,m=0;Am是记录的条数*/char ch
[2];FILE*fp;/*定义文件指针*/if fp=fopen z,data.txt〃,〃a+〃=二NULL/*打开指定文件*/{printf〃不能打开\n〃;return;wh i1e!feoffpiffreadstu[m],LEN,1,fp==1m++;/*统计当前记录条数*/}fclosefp;if m==0printf〃没有数据\n〃;elsesystem〃cls〃;show;/*调用show函数,显示原有信息*/iffp=fopendata,txt,wb〃二二NULL{printf〃不能打开\n〃;return;fori=0;im;i++fwritestu[i],LEN,1,fp;/*向指定的磁盘文件写入信息*/printf〃请输入y/n:〃;scanf〃%s〃,ch;whilestrcmpch,〃Y〃=0||strcmpch,〃y〃==0/*判断是否要录入新信息*/printfnumber:〃;scanf〃%d〃,stu[m].num;/*输入学生学号*/fori=0;im;i++ifstu[i].num=二stu[m].numprintf/zthe number正在运行,按任意键继续〃;getchO;fclosefp;return;}printf〃姓名:;scanf〃%s〃,stu[m].name;/*输入学生姓名*/printf〃选修课〃;scanf〃机f〃,stu[m].elec;/*输入选修课成绩*/printf〃实验课:;scanf〃%lf〃,stu[m].expe;/*输入实验课成绩*/printf〃必修课〃;scanf requ;/*输入必修课成绩*/stu[m].sum=stu[m].elec+stu[m].expe+stu[m].requ;/*计算出,总成绩*/if fwritestu[m],LEN,1,fp!=1/*将新录入的信息写入指定的磁盘文件*/{printf〃不能保存!〃;getchO;}else{printf〃%s保存\n〃,stu[m].name;m++;}printf〃是否继续?y/n:〃;/*问询是否继续*/scanf〃%s〃,ch;}fclosefp;printf〃0K!\n〃;查询学生信息模块§
4.
1.3查询学生信息模块的主要功能时根据输入的学生学号对学生信息进行搜索,若查找到该学生学号对学生信息进行搜索,若查找到该学生,则选择是否显示该学生信息,输入2时,进入查询状态,运行效果如图所示选择反切尊是否显示?E3roy呈号姓起选修课实险课必修课总分张三LO
00387.
06879.
0234.0图413-1由于学生信息都及时存储到磁盘文件中,因此想要查找学生的信息首先需要对文件进行操作,打开文件,读取文件中的数据,在关闭文件,根据输入的需要查找学生的学号进行信息匹配,当查找到学生的信息时将其显示出来代码实现void search/*自定义查找函数*/{FILE*fp;int snum,i,m=0;char ch
[2];if fp=fopen z,data.txt〃,〃rb〃=二NULL{printf不能打开\n〃;return;}while!feof fpif freadstu[m],LEN,1,fp==1m++;fclosefp;if m==0{printf〃没有数据!\n〃;return;}printf请输入学号〃;scanf〃%d〃,snum;fori=0;im;i++if snum=stu[i].num/*查找输入的学号是否在记录中*/{printf〃找到学生,是否显示y/n〃;scanf〃%s〃,ch;if strcmpch,〃Y〃==01|strcmp ch,〃y〃==0printf〃学号姓名选修课实验课必修课总分\t\n〃;printf FORMAT,DATA;/*将查找出的结果按指定格式输出*/break;if i=m printf〃不能找到学生\n〃;/*未找到要查找的信息*/删除学生信息模块§
4.
1.4删除学生信息模块的主要功能是从磁盘文件中将学生信息读取出来,从读出的信息中查找到将要删除的学生的信息,然后将该学生的信息节点与链表断开,即将其所有信息删除,将更改后的信息再写入到磁盘文件在主界面中输入时,调用删除功能函数,3选择胤拿空10003「是否删除动删除y/ny运行效果如图图414功能实现将磁盘文件中的学生信息读取出来,以便对其进行查找删除等操作;1根据输入的想要删除的学生学号与读取出来的学生信息进行匹配查找当查找到与2该学号匹配的学生信息时,根据提示,输入是否对该学生进行删除操作;若进行删除操作,则使用如下代码对学生信息进行删除,并将删除后的学生信息重3新写入磁盘文件中代码实现:void del/*自定义删除函数*/{FILE*fp;int snum,i,j,m=0;char ch
[2];iffp=fopen〃data.txt〃,〃r+〃=二NULL{printf〃不能打开\n〃;return;}while!feoffp iffreadstu[m],LEN,l,fp==l m++;fclosefp;if m=0printf〃没有数据\n〃;return;}printf请输入学号”;scanf〃%d〃,snum;fori=0;im;i++ifsnum==stu[i].numbreak;printf〃找到学生,是否删除?y/n〃;scanf〃%s〃,ch;if strcmp ch,〃Y〃=01|strcmpch,〃y〃=0/*判断是否要进行删除*/forj=i;jm;j++stu[j]=stu[j+1];/*将后一个记录移到前一个记录的位置*/nr-;/*记录的总个数减1*/iffp=fopendata.txt〃,〃wb〃二二NULL{printf〃不能打开\n〃;return;}for j=0;j++/*将更改后的记录重新写入指定的磁盘文件中*/iffwritestu[j],LEN,1,fp!=1{printf〃不能保存!\n〃;随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用作为计算机应用的一部份,使用计算机对学生信息进行管理,具有手工管理所无法比拟的优点例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等这些优点能够极大地提高学生档案管理的效率,也是进行科学化、正规化管理,与世界接轨的重要条件随着国家对于教育的重视逐渐加大,学校正向着大型化、规模化发展,而对于大中型学校,跟学生信息管理有关的信息随之急剧增加在这种情况下单靠人工来处理员工的工资非但显得力不从心,而且极容易出错该系统就是设计一个学生信息数据库管理系统,由计算机代替人工执行一系列诸如增加新学生,删除旧学生,学生信息修改,查询,维护及打印等操作这样就使学生部门管理人员可以轻松快捷地完成学生信息管理的任务getchO;}fclosefp;printf〃成功删除\n〃;插入学生信息模块§
4.
1.5插入学生信息模块的主要功能是在需要的位置插入新的学生信息,输入时,进入5插入学生信息模块,效果如图:选择《>0-85青输入你想插入的位置〈输入学号〉0002织在请输入新的信息尹号10003露籥实验南66必修串83修改成功.图415功能实现:因为该系统的学生信息都及时的存储在磁盘文件中,所以每次操作都要先将1数据从文件中读取出来输入需要插入信息的位置,即可需要插入在哪个学生的学号后面,然后查找2该学号,从最后一条信息开始均向后挪移一位,为新插入的信息提供位置设置好可以要输入的位置后,向该位置录入新学生的信息然后该学生的信3息写入到磁盘文件中代码实现void insert/*自定义插入函数*/{FILE*fp;int i,j,k,m=0,snum;iffp=fopendata,txt”,〃r+〃=二NULL{printf〃不能打开\n〃;return;}while!feoffpiffreadstu[m],LEN,1,fp==1m++;if m==0{printf没有数据!\n〃;fclosefp;return;}printf〃请输入你想插入的位置输入学号\n〃;scanf〃%d〃,snum;/*输入要插入的位置*/fori=0;im;i++ifsnum=二stu[i].numbreak;forj=m-l;ji;j—stu[j+l]=stu[j];/*从最后一条记录开始均向后移一位*/printf〃现在请输入新的信息\n〃;printf〃学号:〃;scanf〃%d〃,stu[i+1].num;fork=0;km;k++ifstu[k].num=二stu[m].numprintf〃学生人数正在退出,按任意键继续〃;getchO;fclosefp;return;printf〃姓名〃;scanf stu[i].name;/*输入名字*/printf〃选修课〃;scanf stu[i].elec;/*输入选修课成绩*/printf〃实验课〃;scanf〃%lf〃,stu[i].expe;/*输入实验课成绩*/printf〃必修课〃;scanf〃%lf〃,stu[i].requ;/*输入必修课成绩*/printf〃修改成功〃;stu[i].sum=stu[i].elec+stu[i].expe+stu[i].requ;if fp=fopen,zdata.txt,wb二二NULL{printf cannot open\nz,;return;}fork=0;k=m;k++if fwritestu[k],LEN,1,fp!=1/*将修改后的记录写入磁盘文件中*/{printf不能保存;getchO;}fclosefp;学生成绩排名模块§
4.
1.6根据学生的总成绩将所有学生的信息按照从高到低进行排序,将排序后的信息写入到磁盘文件中保存如图所示为排序后现实出来的效果选择保存成功8-86图416-1选择C0-8X8羊号名选修课实验课必修课总分四
000377.
088.
099.
0264.0四
000477.
088.
099.
0264.0大
0801243.0三
88.
075.
080.
80662236.
08.
066.
083.6再在主界面中输入数字8,就会把保存的排序输出出来如图图
4.
1.6-2这里应用比较稳定简单的交换发排序对学生的成绩进行比较交换学生成绩排名的实现过程是首先需要将录入的学生信息从磁盘文件中读取,然后将读出的学生信息按照成绩进行比较交换,从高到低排序,为学生排名次,然后再将拍好名次的学生信息保存写入到磁盘文件中代码实现:void order/*自定义排序函数*/{FILE*fp;struct studentt;int i=0,j=0,m=0;iffp=fopendata.txt〃,〃r+〃二二NULLprintf〃不能打开打n〃;return;while!feoffpif freadstu[m],LEN,1,fp==1m++;fclosefp;if m==0printf〃没有数据!\n〃;return;}iffp=fopendata.txt〃,〃wb〃==NULLprintf〃不能打开\n〃;return;}fori=0;im-l;i++for j=i+l;j〈m;j++/*双重循环实现成绩比较并交换*/if stu[i].sumstu[j].sum{t=stu[i];stu[i]=stu[j];stu[j]=t;}if fp=fopen z,data.txt〃,〃wb〃二二NULL{printf〃不能打开\n〃;return;}for i=0;im;i++/*将重新排好序的内容重新写入指定的磁盘文件中*/iffwritestu[i],LEN,1,fp!=1printf z/%s不能保存!\n〃;getchO;fclosefp;printf〃保存成功\n〃;学生人数统计模块当在主界面输入时,可以对学生的人数进行统计,显示出统计的人数运行效果如图7选择《日->;87这个班级有个学生4图
4.
1.6-1代码实现void total{FILE*fp;int m=0;if fp=fopen data,txt”,〃r+〃=NULL{printf不能打开\n〃;return;}while!feoffpif freadstu[m],LEN,1,fp=lm++;/*统计记录个数即学生个数*/if m=0{printf〃没有记录!\n〃;fclose fp;return;}printf〃这个班级有%d个学生\n〃,m;/*将统计的个数输出*/fclosefp;第章软件测试
55.
15.1软件测试办法主题内容§
5.
1.1为保证软件的可靠性和安全性,从技术角度对工程软件测试办法作出规定void menu测试目的§
5.
1.2void insertvoidtotal提供系统化、规范化、、实用化的测试技术规范,及早发现故障,减void search少交付系统联试前软件中的残留差错测试方法§
5.
1.3本软件测试将通过单元测试和系统测试,黑盒测试以及白盒测试,几种测试方法相结合更能方便的找出系统中浮现的bug合用范围§
5.
1.4主要合用于系统中各组成部份的软件测试工作,其它软件开辟工程中的软件测试工作也可以参照本办法可用于新开辟的或者修改、更新的软件测试本办法的使用对象可以是开辟人员、测试人员、交办单位委托的第三方测试人员
5.2单元/系统测试单元定义§
5.
2.1void invoid〃录入学生信息show void〃显示学生信息order voiddel〃按总分排序void modify〃删除学生信息〃修改学生成绩信息〃主菜单〃插入学生信息〃计算总人数〃查找学生信息测试§
5.
2.2每一个单元都运行正常,没有浮现BUGo系统测试§
5.
2.3在进行单元性和模块性的测试之后,我们需要对整个系统进行测试,测试整个系统运行的流畅度,并积极发现问题不能因为到测试的最后一步而掉以轻心,避免有错误的程序交到客户或者用户手中§
5.3黑盒测试与白盒测试白盒测试已知产品的内部工作过程,可以通过测试验证每种内部操作是否符合设计规格要求,所有内部成份是否已经经过检查黑盒测试已知产品的功能设计规格和用户手册,可以进行测试验证每一个功能是否实现,每一个实现了的功能是否符合要求,以及产品的性能是否满足用户的要求针对以上对两种测试方法的介绍,结合本系统的情况,只采用黑盒测试就能够满足要求§
5.
3.1测试过程为了测试的有效性和高效性,应该制定严格的测试计划,并按照计划实施首先要按模块来设计各个模块的测试用例,测试用例是测试执行的最小实体,是为特定的目的而设计的一组测试输入、执行条件和预期的结果然后执行测试用例,当测试结果和预期不符时,就要标示问题,并建立跟踪记录,直到被修复为止最后对已修复的进行bug bugbug回归测试,避免浮现新的bug总结作为一个完整的学生信息管理系统,本系统的主要实现的功能包括用户登录、列表展示、文章管理、评论管理、相册管理等,基本上可以满足大部份用户的需求本系统的亮点之处在于系统的扩展性很强当需要为博客系统添加新的功能时,只需要改动极少的代码甚至无需改动就可以实现各模块独立性很高,模块之间的耦合性很低,使得修改代码、添加功能变得简单可行本系统的不足之处在于功能稍显简单由于作者的时间和精力有限,系统的功能总体来看比较少,只能在以后根据需求慢慢增加了在开辟本系统的过程中遇到了一些问题,主要是一些技术不太了解最终通过查阅相关资料还是一一解决了这些问题此外有些功能还没有彻底的实现,比如用户登录的功能,目前没有此项功能,如果要实现此功能,在后期会相继的慢慢完善通过这次的设项目实训,我学到了不少知识深刻体味到了前期的设计对后期实现时的影响,如果在项目前期不能进行很好的设计,在后期开辟时就会造成不少麻烦另外,这次的项目也让我明白了数据结构知识的重要性,今后要加强数据结构相关知识的学习目录前言I第章绪论11什么是学生信息管理系统§
1.11课题研究的意义§121第章系统分析22需求分析§
2.12功能需求§
21.12性解求§
21.22可行性分析§
2.23技术可行性§
2.
2.13・・经济可彳亍性§2223社会可行性§
2.
2.33第章系统设计34§
3.
3.
3.
3.
3.5统实现8学生信息管理系统界面展示模块及实现§
4.18主界面§
4.
1.18录入学生信息模块§
4.
1.210蛾学生信息好§
4.
1.
31.313删除学生信息模块§
4.
1.414插入学生信息儆§
4.
1.516学生成绩排名模块§
4.
1.
61.618学生人数统计模块§
4.
1.720第章软件测试521件测试办法§
5.121主题内容§
5.
1.121试目的§
5.
1.221提供系统化、规范化、、实用化的测试技术规范,及早发现故障,减少交付系统联试前软件中的残留差错21冽武方法§
5.
1.321合用范围§
5.
1.421单元/系统测试§5221元定义§
5.
1.521球§52222试22黑盒测试与白盒测试§
5.322测试过程§
5.
3.122总结23致谢错误!未定义书签第章绪论1§
1.1什么是学生信息管理系统学生信息管理系统是校园网络中一个重要的应用系统,它大大改善了学校教学、科研与管理的基础环境,在一定程度上反映出学校管理现代化的水平信息管理系统提供了强大的学生档案管理管理功能,方便管理员对学生信息的添加、修改、删除、查询等操作本系统开辟的总体任务是实现学生信息管理的系统化、规范化、自动化、达到提高学生信息管理效率的目的§
1.2课题研究的意义随着我国教育产业化的飞速发展,社会对教育水平和教学管理软硬件的要求日益提高,特别是对一个学校能够具有一整套完善的教学管理软件提出了更多的要求为了适应这种形式,教育系统特别是大学不仅首先要有坚实的硬件基础,还要有一整套完善的教学管理软件管理系统而要实现这一功能,就要求学校管理者配备一套高效的教育管理网络系统,以便在学校内实施良好的一整套完善的管理且以最快地速度响应教师和学生的需求,及时为他们提供服务,为他们提供一个高效、便捷的环境学生信息管理系统是校园网络中一个重要的应用系统,它大大改善了学校教学、科研与管理的基础环境,在一定程度上反映出学校管理现代化的水平随着国家对于教育的重视逐渐加大,学校正向着大型化、规模化发展,而对于大中型学校,跟学生信息管理有关的信息随之急剧增加在这种情况下单靠人工来处理员工的工资非但显得力不从心,而且极容易出错该系统就是设计一个学生信息数据库管理系统,由计算机代替人工执行一系列诸如增加新学生,删除旧学生,学生信息修改,查询,维护及打印等操作这样就使学生部门管理人员可以轻松快捷地完成学生信息管理的任务第章系统分析
22.1需求分析功能需求§
2.
1.1学生管理系统的几个主要功能如下⑴提供学生录入信息功能可以输入学生的姓名,学号,选修课,实验课,必修课和总分⑵查询学生信息功能根据学生学号来查询学生信息⑶删除学生信息功能提供学号,查找是否有这人信息,然后选择删除学生信息⑷插入学生信息功能输入学生学号,插入该学生的学号的后面⑸学生成绩排名功能根据学生的总分成绩,来进行排名,将排名后的成绩保存到磁盘文件性能需求§
2.
1.2本软件系统各种特点决定了系统需要具有以下几个主要特性多样性现在,计算机语言越来越普及,用户面临的选择越来越多想要保证对1用户的吸引力,就必须要在多样性上下功夫了所以,系统的多样性、功能的多样性向来都是软件系统开辟的重点⑵安全性数据是软件的灵魂,如何保证数据的安全性,是系统开辟时必须考虑的一个重要问题开辟者应避免程序浮现漏洞,防止黑客进行攻击,及时进行数据备份,建立一个完善的多层次的安全保障体系,保障系统的安全⑶可扩展性需求变更向来是开辟中难以避免的问题系统在进行设计时应充分考虑到需求变更的可能性,降低系统扩展功能时的复杂度
2.
22.2可行性分析技术可行性§
2.
2.1本系统主要采用框架开辟是一个成熟的框架,它的功能非常强大,Struts2Struts2MVC包括请求转发、数据校验、文件上传下载等等,再加之作为展示层,彻底可以满足本jsp系统的开辟需要,因此技术上是可行的经济可行性§
2.
2.2本系统为自主开辟,耗时周,经济成本低;开辟完成后可以在网上找一些免费的应1用托管商;当系统部署成功后通过不断更新高质量,增加软件的知名度,通过广告获得收益综合来看在经济上是可行的社会可行性§
2.
2.3该系统为彻底独立开辟开辟工具选的是及开辟技术多是用的开源的框架VC
6.0GCC,和工具,因此不存在侵权问题第章系统设计3在对整个软件系统进行开辟之前,要对整个系统进行必要的设计与规划包括系统的总体架构、系统的功能结构、系统的运行环境、开辟技术与工具的选择等等本章主要对这些内容进行详细的介绍
3.1系统结构设计本系统是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言语言也很适合搭配汇编来使用往往可以通c过内联汇编语言或者与汇编语言目标文件一起连接对于任何一种操作系统环境,函数的C与汇编语言的子过程的一定是彻底兼容的ABIApplication BinaryInterfaceroutine/procedure ABI尽管语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规C格写出的语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器单片机或C者称以及超级电脑等作业平台MCU图系统结构图
3.
13.
23.2系统功能模块设计本软件系统主要可分为大功能模块,包括了录入学生信息模块、查询学生信息模块,、8删除学生信息模块、修改学生信息模块、插入学生信息木块、学生成绩排名模块、学生人数统计模块和显示学生信息模块功能结构如图所示
3.2。