版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、学生信息管理系统实训报告实训设计题目:信息管理系统学生学 号: 151010242学生 姓名:杨怡所在系(部): 信息工程系 专业及班级:计算机1502班 指导教师: 董学枢 完成日期: 2017。3。1 前 言随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用.作为计算机应用的一部分,使用计算机对学生信息进行管理,具有手工管理所无法比拟的优点。例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等.这些优点能够极大地提高学生档案管理的效率,也是进行科学化、正规化管理,与世界接轨的重要条件。随着国家对于
2、教育的重视逐渐加大,学校正向着大型化、规模化发展,而对于大中型学校,跟学生信息管理有关的信息随之急剧增加。在这种情况下单靠人工来处理员工的工资不但显得力不从心,而且极容易出错。该系统就是设计一个学生信息数据库管理系统,由计算机代替人工执行一系列诸如增加新学生,删除旧学生,学生信息修改,查询,维护及打印等操作.这样就使学生部门管理人员可以轻松快捷地完成学生信息管理的任务.目录前言I第1章绪论1§1。1 什么是学生信息管理系统1§1.2 课题研究的意义1第2章系统分析2§2。1 需求分析2§2。1。1功能需求2§2。1。2性能需求2§2。
3、2 可行性分析3§2.2。1 技术可行性3§2.2。2 经济可行性3§2.2。3 社会可行性3第3章系统设计4§3。1 系统结构设计4§3.2 系统功能模块设计5§3.3 系统结构体定义6§3.3 系统函数定义7第4章系统实现8§4.1学生信息管理系统界面展示模块及实现8§4.1。1 主界面8§4.1。2 录入学生信息模块9§4.1.3 查询学生信息模块11§4.1。4删除学生信息模块12§4。1.5 插入学生信息模块14§4.1.6学生成绩排名模块15&
4、#167;4。1。6学生人数统计模块17第5章软件测试18§5。1 软件测试办法18§5。1。1主题内容18§5。1。2测试目的18提供系统化、规范化、实用化的测试技术规范,尽早发现故障,减少交付系统联试前软件中的残留差错。18§5。1。3测试方法18§5。1.4适用范围18§5。2 单元/系统测试18§5。2。1 单元定义18§5.2。2 测试19§5.2。3 系统测试19§5.3黑盒测试与白盒测试19§5。3.1测试过程19总结20致谢2120第1章 绪论§1.1 什么是
5、学生信息管理系统学生信息管理系统是校园网络中一个重要的应用系统,它大大改善了学校教学、科研与管理的基础环境,在一定程度上反映出学校管理现代化的水平.信息管理系统提供了强大的学生档案管理管理功能,方便管理员对学生信息的添加、修改、删除、查询等操作。本系统开发的总体任务是实现学生信息管理的系统化、规范化、自动化、达到提高学生信息管理效率的目的。§1。2 课题研究的意义随着我国教育产业化的飞速发展,社会对教育水平和教学管理软硬件的要求日益提高,尤其是对一个学校能够具有一整套完善的教学管理软件提出了更多的要求.为了适应这种形式,教育系统尤其是大学不仅首先要有坚实的硬件基础,还要有一整套完善的
6、教学管理软件管理系统.而要实现这一功能,就要求学校管理者配备一套高效的教育管理网络系统,以便在学校内实施良好的一整套完善的管理且以最快地速度响应教师和学生的需求,及时为他们提供服务,为他们提供一个高效、便捷的环境。学生信息管理系统是校园网络中一个重要的应用系统,它大大改善了学校教学、科研与管理的基础环境,在一定程度上反映出学校管理现代化的水平。随着国家对于教育的重视逐渐加大,学校正向着大型化、规模化发展,而对于大中型学校,跟学生信息管理有关的信息随之急剧增加.在这种情况下单靠人工来处理员工的工资不但显得力不从心,而且极容易出错。该系统就是设计一个学生信息数据库管理系统,由计算机代替人工执行一系
7、列诸如增加新学生,删除旧学生,学生信息修改,查询,维护及打印等操作。这样就使学生部门管理人员可以轻松快捷地完成学生信息管理的任务。第2章 系统分析§2。1 需求分析§2.1.1功能需求学生管理系统的几个主要功能如下:(1)提供学生录入信息功能可以输入学生的姓名,学号,选修课,实验课,必修课和总分。(2)查询学生信息功能根据学生学号来查询学生信息。(3)删除学生信息功能提供学号,查找是否有此人信息,然后选择删除学生信息。(4)插入学生信息功能输入学生学号,插入该学生的学号的后面(5)学生成绩排名功能根据学生的总分成绩,来进行排名,将排名后的成绩保存到磁盘文件§2.1
8、。2性能需求本软件系统各种特点决定了系统需要具有以下几个主要特性: (1)多样性。现在,计算机语言越来越普及,用户面临的选择越来越多.想要保证对用户的吸引力,就必须要在多样性上下功夫了。所以,系统的多样性、功能的多样性一直都是软件系统开发的重点.(2)安全性.数据是软件的灵魂,如何保证数据的安全性,是系统开发时必须考虑的一个重要问题.开发者应避免程序出现漏洞,防止黑客进行攻击,及时进行数据备份,建立一个完善的多层次的安全保障体系,保障系统的安全。(3)可扩展性.需求变更一直是开发中难以避免的问题.系统在进行设计时应充分考虑到需求变更的可能性,降低系统扩展功能时的复杂度。§2.2 可行
9、性分析§2.2。1 技术可行性本系统主要采用Struts2框架开发.Struts2是一个成熟的MVC框架,它的功能非常强大,包括请求转发、数据校验、文件上传下载等等,再加上jsp作为展示层,完全可以满足本系统的开发需要,因此技术上是可行的。§2。2。2 经济可行性本系统为自主开发,耗时1周,经济成本低;开发完成后可以在网上找一些免费的应用托管商;当系统部署成功后通过不断更新高质量,增加软件的知名度,通过广告获得收益。综合来看在经济上是可行的。§2。2.3 社会可行性该系统为完全独立开发。开发工具选的是VC6。0及GCC,开发技术多是用的开源的框架和工具,因此不存在
10、侵权问题.第3章 系统设计在对整个软件系统进行开发之前,要对整个系统进行必要的设计与规划.包括系统的总体架构、系统的功能结构、系统的运行环境、开发技术与工具的选择等等。本章主要对这些内容进行详细的介绍。§3。1 系统结构设计本系统是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言.C语言也很适合搭配汇编来使用(往往可以通过内联汇编语言或与汇编语言目标文件一起连接。对于任何一种操作系统环境,C函数的ABI(Application BinaryInterface)与汇编语言的子过程(routine/procedure)的ABI一定是
11、完全兼容的)。尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台.图3。1 系统结构图§3。2 系统功能模块设计本软件系统主要可分为8大功能模块,包括了录入学生信息模块、查询学生信息模块,、删除学生信息模块、修改学生信息模块、插入学生信息木块、学生成绩排名模块、学生人数统计模块和显示学生信息模块功能结构如图3。2所示。学生信息管理系统显示学生信息模块学生人数统计模块学生信息排名模块插入学生信息模块修改学生信息模块删除学生信息模块查询学生信息模块录
12、入学生信息模块§3.3 系统结构体定义对于一个应用程序而言,结构体的定义好坏尤为重要。一个设计结构体,可以使系统功能实现变得更加简单,也会使系统的执行速度更快,性能更高更稳定。必修课成绩总分成绩实验课成绩选修课成绩姓名学生成绩结构体学号 studen结构体定义表列含义类型长度缺省值允许空num学号int4无否name姓名char15无是elec选修课成绩double8无是expe实验课成绩double8无是requ必修课成绩double8无是sum总分成绩double8无是§3。3 系统函数定义列含义类型in()录入学生成绩信息voidshow()显示学生信息voidord
13、er()按总分排序voiddel()删除学生成绩信息voidmodify()修改学生成绩信息voidmenu()主菜单voidinsert()total()search()main()插入学生信息计算总人数查找学生信息主函数voidVoidvoidint第4章 系统实现§4。1学生信息管理系统界面展示模块及实现§4.1。1 主界面主界面列表显示的是各个功能的显示信息,包括退出系统、输入学生信息、查询学生信息、删除学生信息、修改学生信息、插入学生信息、总成绩排名、统计学生人数、显示学生信息。界面用户进入列表展示界面后,可以输入选项选择相应的功能展示功能模块界面代码实现:voi
14、d menu()/自定义函数实现菜单功能/ system("cls”); printf(”nnnnn”); printf(”tt-STUDENT-n”); printf(”tt|t 0. 退出 n"); printf("tt|t 1. 输入数据 |n”); printf(”ttt 2。 搜索数据 |n”); printf(”tt|t 3。 删除数据 n”); printf(”ttt 4。 修改数据 |n”); printf(”ttt 5。 插入数据 n"); printf(”ttt 6. 总分排序 |n”); printf(”ttt 7。 学生人数 n&
15、quot;); printf(”tt|t 8. 查看 n"); printf(”tt|-nn”); printf("ttt选择(0-8):”);具有输入数字选择功能的代码是写在主函数中的void main()/*主函数/ int n; menu(); scanf("d",&n);/*输入选择功能的编号/ while(n) switch(n) case 1: in();break; case 2: search();break; case 3: del();break; case 4: modify();break; case 5: insert(
16、);break; case 6: order();break; case 7: total();break; case 8: show();break; default:break; getch(); menu();/*执行完功能再次显示菜单界面/ scanf("d”,&n);§4.1。2 录入学生信息模块在主界面中输入数字1,即可进入到录入学生信息状态。当磁盘文件有存储记录时,可以向文件中添加学生信息,运行效果如图1当磁盘文件没有学生信息记录时,系统界面会提示没有记录,然后根据提示决定是否输入信息,运行效果如图2图1图2在录入学生信息模块中将学生的信息进行保留,当
17、程序运行结束,关闭程序,下此运行程序时录入的信息任然保留.因此在该模块中应用文件读写操作,对录入的信息保存到存到磁盘文件中,下次运行程序时,可以从磁盘文件中将存储读出并显示.代码实现void in()/*录入学生信息/ int i,m=0;/m是记录的条数/ char ch2; FILE fp;/*定义文件指针/ if((fp=fopen(”data.txt”,”a+")=NULL)/打开指定文件*/ printf(”不能打开n"); return; while(!feof(fp) if(fread(stum ,LEN,1,fp)=1) m+;/*统计当前记录条数/ fcl
18、ose(fp); if(m=0) printf(”没有数据n”); else system(”cls”); show();/调用show函数,显示原有信息/ if((fp=fopen("data。txt”,”wb”))=NULL) printf(”不能打开n”); return; for(i=0;im;i+) fwrite(stui ,LEN,1,fp);/*向指定的磁盘文件写入信息/ printf(”请输入(y/n):”); scanf(”%s”,ch);while(strcmp(ch,”Y")=0strcmp(ch,”y”)=0)/*判断是否要录入新信息/ printf
19、("number:");scanf("%d”,stum.num);/输入学生学号*/ for(i=0;im;i+) if(stui。num=stum.num) printf(”the number 正在运行,按任意键继续"); getch(); fclose(fp); return; printf(”姓名:”); scanf("s”,);/输入学生姓名/ printf(”选修课:"); scanf(”lf",&stum。elec);/*输入选修课成绩*/ printf(”实验课:"); s
20、canf("lf”,stum。expe);/输入实验课成绩/ printf(”必修课:"); scanf(”%lf”,&stum。requ);/输入必修课成绩/ stum。sum=stum.elec+stum。expe+stum。requ;/*计算出总成绩/ if(fwrite(stum,LEN,1,fp)!=1)/*将新录入的信息写入指定的磁盘文件/ printf(”不能保存!"); getch(); else printf("%s 保存n”,); m+; printf("是否继续?(y/n):");/询问
21、是否继续*/ scanf(”s",ch); fclose(fp); printf("OK!n”);§4。1。3 查询学生信息模块查询学生信息模块的主要功能时根据输入的学生学号对学生信息进行搜索,若查找到该学生学号对学生信息进行搜索,若查找到该学生,则选择是否显示该学生信息,输入2时,进入查询状态,运行效果如图所示。图(4.1.3)-1由于学生信息都及时存储到磁盘文件中,因此想要查找学生的信息首先需要对文件进行操作,打开文件,读取文件中的数据,在关闭文件,根据输入的需要查找学生的学号进行信息匹配,当查找到学生的信息时将其显示出来。代码实现:void search()
22、/自定义查找函数/ FILE fp; int snum,i,m=0; char ch2; if(fp=fopen(”data。txt”,”rb"))=NULL) printf(”不能打开n");return; while(!feof(fp)) if(fread(stum,LEN,1,fp)=1) m+; fclose(fp); if(m=0) printf(”没有数据!n”);return; printf(”请输入学号:”); scanf(”d”,&snum); for(i=0;i<m;i+) if(snum=stui。num)/查找输入的学号是否在记录中/
23、printf("找到学生,是否显示?(y/n)”); scanf(”s”,ch); if(strcmp(ch,”Y”)=0strcmp(ch,”y”)=0) printf("学号 姓名 选修课 实验课 必修课 总分tn"); printf(FORMAT,DATA);/*将查找出的结果按指定格式输出/ break; if(i=m) printf(”不能找到学生n");/*未找到要查找的信息/§4.1.4删除学生信息模块删除学生信息模块的主要功能是从磁盘文件中将学生信息读取出来,从读出的信息中查找到将要删除的学生的信息,然后将该学生的信息节点与链表
24、断开,即将其所有信息删除,将更改后的信息再写入到磁盘文件。在主界面中输入3时,调用删除功能函数,运行效果如图图(4.1.4)-1功能实现:(1) 将磁盘文件中的学生信息读取出来,以便对其进行查找删除等操作;(2) 根据输入的想要删除的学生学号与读取出来的学生信息进行匹配查找.当查找到与该学号匹配的学生信息时,根据提示,输入是否对该学生进行删除操作;(3) 若进行删除操作,则使用如下代码对学生信息进行删除,并将删除后的学生信息重新写入磁盘文件中代码实现:void del()/自定义删除函数/FILE *fp; int snum,i,j,m=0; char ch2; if((fp=fopen(”d
25、ata。txt”,"r+"))=NULL) printf(”不能打开n”);return; while(!feof(fp) if(fread(stum,LEN,1,fp)=1) m+; fclose(fp); if(m=0) printf("没有数据n”); return; printf(”请输入学号:”); scanf(”d”,snum); for(i=0;im;i+) if(snum=stui.num) break; printf("找到学生,是否删除?(y/n)”); scanf(”s”,ch); if(strcmp(ch,”Y”)=0|strcm
26、p(ch,”y”)=0)/判断是否要进行删除*/ for(j=i;j<m;j+) stuj=stuj+1;/将后一个记录移到前一个记录的位置/ m-;/记录的总个数减1*/ if((fp=fopen("data.txt”,”wb”))=NULL) printf("不能打开n");return; for(j=0;jm;j+)/*将更改后的记录重新写入指定的磁盘文件中/ if(fwrite(stuj ,LEN,1,fp)!=1) printf("不能保存!n”); getch(); fclose(fp); printf(”成功删除n”);§4
27、。1。5 插入学生信息模块 插入学生信息模块的主要功能是在需要的位置插入新的学生信息,输入5时,进入插入学生信息模块,效果如图:图(4。1。5)-1功能实现:(1) 因为该系统的学生信息都及时的存储在磁盘文件中,所以每次操作都要先将数据从文件中读取出来.(2) 输入需要插入信息的位置,即可需要插入在哪个学生的学号后面,然后查找该学号,从最后一条信息开始均向后移动一位,为新插入的信息提供位置.(3) 设置好可以要输入的位置后,向该位置录入新学生的信息。然后该学生的信息写入到磁盘文件中.代码实现:void insert()/自定义插入函数/ FILE fp; int i,j,k,m=0,snum;
28、 if(fp=fopen(”data。txt”,”r+”))=NULL) printf("不能打开n”);return; while(!feof(fp)) if(fread(stum,LEN,1,fp)=1) m+; if(m=0) printf(”没有数据!n”); fclose(fp); return; printf(”请输入你想插入的位置(输入学号)n”); scanf(”%d”,&snum);/输入要插入的位置/ for(i=0;im;i+) if(snum=stui.num) break; for(j=m1;ji;j) stuj+1=stuj;/从最后一条记录开始均
29、向后移一位/ printf("现在请输入新的信息n”); printf("学号:”); scanf(”d”,stui+1。num); for(k=0;km;k+) if(stuk。num=stum。num) printf(”学生人数正在退出,按任意键继续”); getch(); fclose(fp); return; printf(”姓名:”); scanf("s”,);/输入名字/ printf(”选修课:”); scanf(”lf”,stui.elec);/输入选修课成绩/ printf(”实验课:"); scanf(”lf&quo
30、t;,stui.expe);/*输入实验课成绩/ printf("必修课:"); scanf(”%lf”,stui。requ);/输入必修课成绩*/ printf(”修改成功”); stui.sum=stui。elec+stui。expe+stui.requ; if(fp=fopen("data。txt”,”wb”))=NULL) printf("can not openn");return; for(k=0;k=m;k+) if(fwrite(&stuk ,LEN,1,fp)!=1)/将修改后的记录写入磁盘文件中/ printf(”不
31、能保存”); getch(); fclose(fp); §4。1。6学生成绩排名模块根据学生的总成绩将所有学生的信息按照从高到低进行排序,将排序后的信息写入到磁盘文件中保存。如图所示为排序后现实出来的效果图(4。1。6)-2图(4.1.6)-1再在主界面中输入数字8,就会把保存的排序输出出来如图:这里应用比较稳定简单的交换发排序对学生的成绩进行比较交换。学生成绩排名的实现过程是首先需要将录入的学生信息从磁盘文件中读取,然后将读出的学生信息按照成绩进行比较交换,从高到低排序,为学生排名次,然后再将拍好名次的学生信息保存写入到磁盘文件中。代码实现:void order()/自定义排序函数
32、/ FILE fp; struct student t; int i=0,j=0,m=0; if(fp=fopen("data.txt","r+”)=NULL) printf(”不能打开!n"); return; while(!feof(fp) if(fread(stum ,LEN,1,fp)=1) m+; fclose(fp); if(m=0) printf("没有数据!n”); return; if((fp=fopen(”data.txt”,”wb"))=NULL) printf("不能打开n”); return; fo
33、r(i=0;im-1;i+) for(j=i+1;j<m;j+)/*双重循环实现成绩比较并交换/ if(stui。sumstuj。sum) t=stui;stui=stuj;stuj=t; if((fp=fopen(”data。txt”,"wb”))=NULL) printf(”不能打开n”);return; for(i=0;i<m;i+)/*将重新排好序的内容重新写入指定的磁盘文件中*/ if(fwrite(stui ,LEN,1,fp)!=1) printf(”s 不能保存!n”); getch(); fclose(fp); printf("保存成功n&qu
34、ot;);§4。1。6学生人数统计模块当在主界面输入7时,可以对学生的人数进行统计,显示出统计的人数。运行效果如图图(4.1。6)1代码实现:void total() FILE *fp; int m=0; if((fp=fopen("data。txt",”r+")=NULL) printf(”不能打开n");return; while(!feof(fp)) if(fread(stum,LEN,1,fp)=1) m+;/*统计记录个数即学生个数*/ if(m=0) printf(”没有记录!n”);fclose(fp);return; print
35、f(”这个班级有 d 个学生n",m);/*将统计的个数输出*/ fclose(fp); 第5章 软件测试§5.1 软件测试办法§5.1。1主题内容为保证软件的可靠性和安全性,从技术角度对工程软件测试办法作出规定§5。1。2测试目的提供系统化、规范化、实用化的测试技术规范,尽早发现故障,减少交付系统联试前软件中的残留差错.§5。1。3测试方法本软件测试将通过单元测试和系统测试,黑盒测试以及白盒测试,几种测试方法相结合更能方便的找出系统中出现的bug§5。1.4适用范围主要适用于系统中各组成部分的软件测试工作,其它软件开发工程中的软件测试工作也可以参照。本办法可用于新开发的或修改、更新的软件测试。本办法的使用对象可以是开发人员、测试人
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 卡口值守人员奖惩制度
- 教育活动策划奖惩制度
- 文明村镇创建奖惩制度
- 财税公司失误奖惩制度
- 2026年阳泉师范高等专科学校单招职业适应性考试题库带答案详解(能力提升)
- 2026年青海省果洛藏族自治州单招职业适应性测试题库(含答案详解)
- 2026年广元中核职业技术学院单招职业适应性考试题库附答案详解(b卷)
- 2026年广东舞蹈戏剧职业学院单招职业倾向性考试题库有答案详解
- 2026年山西药科职业学院单招职业倾向性测试题库带答案详解(突破训练)
- 2026年广西信息职业技术学院单招职业适应性考试题库附参考答案详解(b卷)
- 2026年安徽城市管理职业学院单招职业适应性测试题库带答案详解(新)
- 应急管理干部警示教育以案促改心得体会
- 冀教版八年级英语下册Lesson28 Ms Lius Great Idea 核心素养教案
- 2026年小学六年级下册劳动教育教学计划
- 2026春小学科学青岛版(五四制2024)三年级下册教学计划、教案及每课教学反思(附目录)
- 2026年内蒙古化工职业学院单招综合素质考试题库及一套参考答案详解
- 2026上海交通大学医学院招聘91人考试备考题库及答案解析
- 2026年南京铁道职业技术学院单招职业适应性考试题库附答案详解(夺分金卷)
- 2026年春季人教PEP版五年级下册英语教学计划含教学进度表
- (2026年)海姆立克法急救培训课件
- 湖北2025年湖北科技学院招聘19人笔试历年参考题库附带答案详解
评论
0/150
提交评论