




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实训报告题 目:学生信息治理系统学院:信息工程学院专业:嵌入式1班工程组长:刘永强工程成员:刘强项强吴盛林瞿孟孟管豫冀徐兵指导教师:叶 雷二O四年十二月三十日工程小组任务分配表组员姓名学号组员任务刘永强课题研究的意义,需求分析 开发总结,整理相关文档刘强27各模块功能实现项强33编码实现吴盛林26主函数设计,模块详细设计瞿孟孟系统功能和性能分析,可行性分析管豫冀系统设计,结构设计和模块设计徐兵35系统测试与维护、八、亠前言随着科学技术的不断提升 , 计算机科学日渐成熟 ,其强大的功能已为人们深 刻熟悉, 它已进入人类社会的各个领域并发挥着越来越重要的作用.作为计算机应用的一局部 , 使用计算机
2、对学生信息进行治理 , 具有手工治理 所无法比较的优点.例如 : 检索迅速、查找方便、可靠性高、存储量大、保密性 好、寿命长、本钱低等.这些优点能够极大地提升学生档案治理的效率, 也是进行科学化、正规化治理,与世界接轨的重要条件.随着国家对于教育的重视逐渐加大,学校正向着大型化、规模化开展,而对 于大中型学校, 跟学生信息治理有关的信息随之急剧增加. 在这种情况下单靠人 工来处理员工的工资不但显得力不从心, 而且极容易出错. 该系统就是设计一个 学生信息数据库治理系统, 由计算机代替人工执行一系列诸如增加新学生, 删除 旧学生,学生信息修改,查询,维护及打印等操作.这样就使学生部门治理人员 可
3、以轻松快捷地完成学生信息治理的任务.目录第 1 章 绪论§ 什么是学生信息治理系统学生信息治理系统是校园网络中一个重要的应用系统,它大大改善了学校教学、 科研与治理的根底环境,在一定程度上反映出学校治理现代化的水平.信息治理系统提 供了强大的学生档案治理治理功能,方便治理员对学生信息的添加、修改、删除、查询 等操作.本系统开发的总体任务是实现学生信息治理的系统化、标准化、自动化、到达 提升学生信息治理效率的目的.§ 课题研究的意义随着我国教育产业化的飞速开展,社会对教育水平和教学治理软硬件的要求日益提 高,尤其是对一个学校能够具有一整套完善的教学治理软件提出了更多的要求.为
4、了适 应这种形式,教育系统尤其是大学不仅首先要有坚实的硬件根底,还要有一整套完善的 教学治理软件治理系统.而要实现这一功能,就要求学校治理者配备一套高效的教育管 理网络系统,以便在学校内实施良好的一整套完善的治理且以最快地速度响应教师和学 生的需求,及时为他们提供效劳,为他们提供一个高效、便捷的环境.学生信息治理系 统是校园网络中一个重要的应用系统, 它大大改善了学校教学、 科研与治理的根底环境, 在一定程度上反映出学校治理现代化的水平.随着国家对于教育的重视逐渐加大,学校正向着大型化、规模化开展,而对于大中 型学校,跟学生信息治理有关的信息随之急剧增加.在这种情况下单靠人工来处理员工 的工资
5、不但显得力不从心,而且极容易出错.该系统就是设计一个学生信息数据库治理 系统,由计算机代替人工执行一系列诸如增加新学生,删除旧学生,学生信息修改,查 询,维护及打印等操作.这样就使学生部门治理人员可以轻松快捷地完成学生信息治理 的任务.第 2 章 系统分析§ 需求分析§学生治理系统的几个主要功能如下:(1) 提供学生录入信息功能 可以输入学生的姓名,学号,选修课,实验课,必修课和总分.(2) 查询学生信息功能 根据学生学号来查询学生信息.(3) 删除学生信息功能 提供学号,查找是否有此人信息,然后选择删除学生信息.(4) 插入学生信息功能 输入学生学号,插入该学生的学号的后
6、面(5) 学生成绩排名功能 根据学生的总分成绩,来进行排名,将排名后的成绩保存到磁盘文件§ 本软件系统各种特点决定了系统需要具有以下几个主要特性:(1) 多样性.现在,计算机语言越来越普及,用户面临的选择越来越多.想要保证 对用户的吸引力,就必须要在多样性上下功夫了.所以,系统的多样性、功能的多样性 一直都是软件系统开发的重点.(2) 平安性. 数据是软件的灵魂, 如何保证数据的平安性, 是系统开发时必须考虑的 一个重要问题.开发者应预防程序出现漏洞,预防黑客进行攻击,及时进行数据备份, 建立一个完善的多层次的平安保证体系,保证系统的平安.(3) 可扩展性. 需求变更一直是开发中难以
7、预防的问题. 系统在进行设计时应充分考 虑到需求变更的可能性,降低系统扩展功能时的复杂度.§ 可行性分析§ 技术可行性本系统主要采用Struts2框架开发.Struts2是一个成熟的MVC匡架,它的功能非 常强大,包括请求转发、数据校验、文件上传下载等等,再加上 jsp 作为展示层,完全 可以满足本系统的开发需要,因此技术上是可行的.§ 经济可行性本系统为自主开发,耗时 1 周,经济本钱低;开发完成后可以在网上找一些免费的 应用托管商;当系统部署成功后通过不断更新高质量,增加软件的知名度,通过广告获 得收益.综合来看在经济上是可行的.§ 社会可行性该系统
8、为完全独立开发.开发工具选的是及GCC开发技术多是用的开源的框架和工具,因此不存在侵权问题.第3章系统设计在对整个软件系统进行开发之前,要对整个系统进行必要的设计与规划.包括系统 的总体架构、系统的功能结构、系统的运行环境、开发技术与工具的选择等等.本章主 要对这些内容进行详细的介绍.§系统结构设计本系统是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及 不需要任何运行环境支持便能运行的编程语言.c语言也很适合搭配汇编来使用(往往可以通过内联汇编语言或与汇编语言目标文件一起连接.对于任何一种操作系统环境, C函数的ABI(Application Bin aryl nt
9、eface)与汇编语言的子过程(rout in e/procedure )的ABI 一定是完全兼容的).尽管 C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU以及超级电脑等作业平台.图系统结构图§系统功能模块设计本软件系统主要可分为8大功能模块,包括了录入学生信息模块、查询学生信息模 块,、删除学生信息模块、修改学生信息模块、插入学生信息木块、学生成绩排名模块、 学生人数统计模块和显示学生信息模块功能结构如下图.§系统结构体定义sumdouble8无对于一个应用
10、程序而言,结构体的定义好坏尤为重要.一个设计结构体,可以使系 统功能实现变得更加简单,也会使系统的执行速度更快,性能更高更稳定.总分成绩§系统函数定义列含义类型in()录入学生成绩信息voidshow()显示学生信息voidorder()按总分排序voiddel()删除学生成绩信息voidmodify.修改学生成绩信息voidmen u()主菜单voidin sert()插入学生信息voidtotal()计算总人数Voidsearch()查找学生信息voidmai n()主函数int第4章系统实现§学生信息治理系统界面展示模块及实现§主界面主界面列表显示的是各个功
11、能的显示信息,包括退出系统、输入学生信息、查询学 生信息、删除学生信息、修改学生信息、插入学生信息、总成绩排名、统计学生人数、 显示学生信息.界面用户进入列表展示界面后,可以输入选项选择相应的功能展示功能模块界面代码实现:void menu()/*自定义函数实现菜单功能*/system("cls");prin tf("nnnnn");printf("tt|STUDENT|n");prin tf("tt|t 0.退出|n");prin tf("tt|t 1.输入数据|n");prin tf(&qu
12、ot;tt|t 2.搜索数据|n");prin tf("tt|t 3.删除数据|n");prin tf("tt|t 4.修改数据|n");prin tf("tt|t 5.插入数据|n");prin tf("tt|t 6.总分排序|n");prin tf("tt|t 7.学生人数|n");prin tf("tt|t 8.查看|n");printf("tt|nn");prin tf("ttt选择(0-8):");具有输入数字选择功
13、能的代码是写在主函数中的void mai n()/* 主函数 */ 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: in sert();break;case 6: order();break;case 7: total();break;case 8: show();break;default:break;g
14、etch();menu();/*执行完功能再次显示菜单界面*/scan f("%d",&n);§录入学生信息模块- 1n nz 0 s _b 0 ? 0 - 居yl IS oo 7 1- 呆#A -旨 飙入4嗔课课课車“嗔课课课 没请沁姓选实必能望IrtlA姓选冥必/ 2卯«(0-8 4 G-9671"I 芝冃!;: 自e在主界面中输入数字1,即可进入到录入学生信息状 态.当磁盘文件有存储记录时,可以向文件中添加学生 信息,运行效果如图1当磁盘文件没有学生信息记录时,系统界面会提示没有记录,然后根据提示决定是否输入信息,运行效果 如图2
15、图1在录入学生信息模块中将学生的信息进行保存,当程序运行结束,关闭程序,下此 运行程序时录入的信息任然保存.因此在该模块中应用文件读写操作,对录入的信息保 存到存到磁盘文件中,下次运行程序时,可以从磁盘文件中将存储读出并显示.代码实现void in()/*录入学生信息*/ int i,m=0;/*m是记录的条数*/char ch2;FILE *fp;/*定义文件指针*/if(fp=fopen("","a+")=NULL)/*翻开指定文件 */printf(" 不能翻开 n");return;while(!feof(fp)if(frea
16、d(&stum丄 EN,1,fp)=1)m+;/*统计当前记录条数*/fclose(fp);if(m=0)printf(" 没有数据 n");elsesystem("cls");show();/*调用show函数,显示原有信息*/if(fp=fope n( "","wb")=NULL)printf(" 不能翻开 n");return;for(i=0;i<m;i+)fwrite(&stui ,LEN,1,fp);/* 向指定的磁盘文件写入信息 */printf("
17、请输入 (y/n):");scanf("%s",ch);while(strcmp(ch,"Y")=0|strcmp(ch,"y")=0)/* 判断是否要录入新信息 */ printf("number:");scanf("%d",&stum.num);/* 输入学生学号 */for(i=0;i<m;i+)if(stui.num=stum.num)printf("the number 正在运行 , 按任意键继续 ");getch();fclose(fp);
18、return;printf("姓名 :");输入学生姓名 */输入选修课成绩 */输入实验课成绩 */输入必修课成绩 */scanf("%s",);/* printf(" 选修课 :"); scanf("%lf",&stum.elec);/* printf(" 实验课 :");scanf("%lf",&stum.expe);/* printf(" 必修课 :");计算出总成绩 */scanf("%lf"
19、,&stum.requ);/*stum.sum=stum.elec+stum.expe+stum.requ;/*if(fwrite(&stum,LEN,1,fp)!=1)/* 将新录入的信息写入指定的磁盘文件 */printf("不能保存 !");getch();elseprintf("%s 保存 n",);m+;printf(" 是否继续 ?(y/n):");/* 询问是否继续 */scanf("%s",ch);fclose(fp);printf("OK!n"
20、);§ 查询学生信息模块查询学生信息模块的主要功能时根据输入的学生学号对学生信息进行搜索,假设查找 到该学生学号对学生信息进行搜索,假设查找到该学生,那么选择是否显示该学生信息,输 入 2 时,进入查询状态,运行效果如下图.由于学生信息都及时存储到磁盘文件中,因此想要查找学生的信息首先需要对文件进行操作,翻开 文件,读取文件中的数据,在关闭文件,根据输入的需要查找学生的学号进行信息匹配,当查找到学生 的信息时将其显示出来.代码实现 :void search()/* 自定义查找函数 */ FILE *fp;int snum,i,m=0;char ch2;if(fp=fopen(&quo
21、t;","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("请输入学号:");scan f("%d",&sn um);for(i=0;i<m;i+)if(s num=stui. num)/*查找输入的学号是否在记录中*/ prin tf("找
22、到学生,是否显示?(y/n)");sca nf("%s",ch);if(strcmp(ch,"Y")=0|strcmp(ch,"y")=0)printf(" 学号 姓名选修课 实验课 必修课 总分tn");prin tf(FORMATQATA);/*将查找出的结果按指定格式输出*/break;if(i=m) printf("不能找到学生n");/* 未找到要查找的信息*/§删除学生信息模块删除学生信息模块的主要功能是从磁盘文件中将学生信息读取出来,从读出的信息 中查找到将要删
23、除的学生的信息,然后将该学生的信息节点与链表断开,即将其所有信 息删除,将更改后的信息再写入到磁盘文件.在主界面中输入3时,调用删除功能函数,运行效果如图功能实现:(2)根据输10003匹配查找.当查找到与该学号匹配的学生信息时,根据提示,输入是否对该学生进行删除操 作;3) 假设进行删除操作,那么使用如下代码对学生信息进行删除,并将删除后的学生信息重新写入磁盘文件中代码实现:void del()/* 自定义删除函数 */FILE *fp;int snum,i,j,m=0;char ch2;if(fp=fopen("","r+")=NULL) print
24、f("不能翻开 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)break;printf(" 找到学生,是否删除? (y/n)");scanf("%s",ch);
25、if(strcmp(ch,"Y")=0|strcmp(ch,"y")=0)/* 判断是否要进行删除 */ for(j=i;j<m;j+)stuj=stuj+1;/* 将后一个记录移到前一个记录的位置 */ m-;/*记录的总个数减 1*/if(fp=fopen("","wb")=NULL) printf("不能翻开 n");return;for(j=0;j<m;j+)/* 将更改后的记录重新写入指定的磁盘文件中 */if(fwrite(&stuj ,LEN,1,fp)!=1)
26、 printf(" 不能保存! n");getch();fclose(fp);printf(" 成功删除 n");§ 插入学生信息模块插入学生信息模块的主要功能是在需要的位置插入新的学生信息, 输入 5 时,进入 插入学生信息模块,效果如图:功能实现:( 1) 由于该系统的学生信息都及时的存储在磁盘文件中, 所以每次操作都要先将 数据从文件中读取出来.(2) 输入需要插入信息的位置, 即可需要插入在哪个学生的学号后面, 然后查找 该学号,从最后一条信息开始均向后移动一位, 为新插入的信息提供位置.(3) 设置好可以要输入的位置后, 向该位置录入
27、新学生的信息. 然后该学生的信 息写入到磁盘文件中.代码实现:void insert()/* 自定义插入函数 */ FILE *fp;int i,j,k,m=0,snum;if(fp=fopen("","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(" 请输入你想插入的位置 (
28、输入学号 )n"); scanf("%d",&snum);/* 输入要插入的位置 */ for(i=0;i<m;i+)if(snum=stui.num)break;for(j=m-1;j>i;j-)stuj+1=stuj;/*从最后一条记录开始均向后移一位 */printf(" 现在请输入新的信息n");printf("学号:");scanf("%d",&stui+1.num);for(k=0;k<m;k+)if(stuk.num=stum.num)printf(&quo
29、t; 学生人数正在退出, 按任意键继续 ");getch();fclose(fp);return;printf("姓名 :");scanf("%s",);/*输入名字 */printf("选修课:");scanf("%lf",&stui.elec);/*输入选修课成绩*/printf("实验课 :");scanf("%lf",&stui.expe);/*输入实验课成绩*/printf("必修课:");scanf(
30、"%lf",&stui.requ);/*输入必修课成绩*/printf(" 修改成功 ");stui.sum=stui.elec+stui.expe+stui.requ;if(fp=fopen("","wb")=NULL) printf("can not openn");return;for(k=0;k<=m;k+)if(fwrite(&stuk ,LEN,1,fp)!=1)/* 将修改后的记录写入磁盘文件中 */ printf("不能保存 "); ge
31、tch(); fclose(fp);§学生成绩排名模块根据学生的总成绩将所有学生的信息根据从高到低进行排序,将排序后的信息写入 到磁盘文件中保存.如下图为排序后现实出来的效果再在主界面中输入数字 8,就会把保存的排序输出出来如图:这里应用比较稳定简单的交换发排序对学生的成绩进行比较交换.学生成绩排名的实现过程是 首先需要将录入的学生信息从磁盘文件中读取,然后将读出的学生信息根据成绩进行比较交换,从 高到低排序,为学生排名次,然后再将拍好名次的学生信息保存写入到磁盘文件中.代码实现:void order()/* 自定义排序函数 */ FILE *fp;struct student t;
32、int i=0,j=0,m=0;if(fp=fopen("","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("","wb")=NULL)printf(" 不能翻开 n");return;for(i=0;i<m-1;
33、i+)for(j=i+1;j<m;j+)/* 双重循环实现成绩比较并交换 */ if(stui.sum<stuj.sum) t=stui;stui=stuj;stuj=t; if(fp=fopen("","wb")=NULL) printf("不能翻开 n");return;for(i=0;i<m;i+)/* 将重新排好序的内容重新写入指定的磁盘文件中 */ if(fwrite(&stui ,LEN,1,fp)!=1)printf("%s 不能保存 !n");getch();fclose(
34、fp);printf(" 保存成功 n");§当在主界面输入 7 时,可以对学生的人数进行统计,显示出统计的人数.运行效果如图代码实现:void total() FILE *fp;int m=0; if(fp=fopen("","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(" 这个班级有 %d 个学生 n",m);/* 将统计的个数输出 */
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025签订采购合同范本
- 银行抵押担保借款合同
- 夫妻财产独立协议书
- 溴氨蓝项目风险评估报告
- 广东省东莞市实验中学2024-2025学年高一下学期3月月考英语试卷(含答案)
- 华南理工大学《新时代中国特色社会主义理论与实践研究》2023-2024学年第二学期期末试卷
- 郑州亚欧交通职业学院《品牌策划与管理》2023-2024学年第二学期期末试卷
- 北京科技大学《艺术经济学(二)》2023-2024学年第二学期期末试卷
- 塑料挤吹中空成型机项目安全评估报告
- 广东省韶关市新丰一中2024-2025学年高三下学期第一次模拟-生物试题试卷含解析
- GB/T 24918-2010低温介质用紧急切断阀
- GB/T 14229-1993齿轮接触疲劳强度试验方法
- 乳膏剂制备课件
- 小学英语一般现在时-(演示)课件
- 肾综合征出血热-课件
- 《最后一次讲演》-【精品课件】
- 高一物理 必修二《机车的两种启动方式》教学设计
- 2022年陕西省普通高校职业教育单独招生统一考试模拟题
- 静脉药物调配中心PIVAS静脉用药配置中心静脉药物配置中心静配中心调配工作简介培训教学课件
- 常压热水锅炉产品质量证明书
- 出厂检验报告范本(共3页)
评论
0/150
提交评论