1、例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高学生档案管理的效率,也是进行科学化、正规化管理,与世界接轨的重要条件。随着国家对于教育的重视逐渐加大,学校正向着大型化、规模化发展,而对于大中型学校,跟学生信息管理有关的信息随之急剧增加。在这种情况下单靠人工来处理员工的工资不但显得力不从心,而且极容易出错。该系统就是设计一个学生信息数据库管理系统,由计算机代替人工执行一系列诸如增加新学生,删除旧学生,学生信息修改,查询,维护及打印等操作。这样就使学生部门管理人员可以轻松快捷地完成学生信息管理的任务。第1章 绪论1.1 什么是学生信息管理系统 学生信
2、息管理系统是校园网络中一个重要的应用系统,它大大改善了学校教学、科研与管理的基础环境,在一定程度上反映出学校管理现代化的水平。信息管理系统提供了强大的学生档案管理管理功能,方便管理员对学生信息的添加、修改、删除、查询等操作。本系统开发的总体任务是实现学生信息管理的系统化、规范化、自动化、达到提高学生信息管理效率的目的。1.2 课题研究的意义 随着我国教育产业化的飞速发展,社会对教育水平和教学管理软硬件的要求日益提高,尤其是对一个学校能够具有一整套完善的教学管理软件提出了更多的要求。为了适应这种形式,教育系统尤其是大学不仅首先要有坚实的硬件基础,还要有一整套完善的教学管理软件管理系统。而要实现这
3、一功能,就要求学校管理者配备一套高效的教育管理网络系统,以便在学校内实施良好的一整套完善的管理且以最快地速度响应教师和学生的需求,及时为他们提供服务,为他们提供一个高效、便捷的环境。学生信息管理系统是校园网络中一个重要的应用系统,它大大改善了学校教学、科研与管理的基础环境,在一定程度上反映出学校管理现代化的水平。第2章 系统分析2.1 需求分析2.1.1功能需求学生管理系统的几个主要功能如下:(1)提供学生录入信息功能可以输入学生的姓名,学号,选修课,实验课,必修课和总分。(2)查询学生信息功能根据学生学号来查询学生信息。(3)删除学生信息功能提供学号,查找是否有此人信息,然后选择删除学生信息
4、。(4)插入学生信息功能输入学生学号,插入该学生的学号的后面(5)学生成绩排名功能根据学生的总分成绩,来进行排名,将排名后的成绩保存到磁盘文件2.1.2性能需求本软件系统各种特点决定了系统需要具有以下几个主要特性: (1)多样性。现在,计算机语言越来越普及,用户面临的选择越来越多。想要保证对用户的吸引力,就必须要在多样性上下功夫了。所以,系统的多样性、功能的多样性一直都是软件系统开发的重点。(2)安全性。数据是软件的灵魂,如何保证数据的安全性,是系统开发时必须考虑的一个重要问题。开发者应避免程序出现漏洞,防止黑客进行攻击,及时进行数据备份,建立一个完善的多层次的安全保障体系,保障系统的安全。(
5、3)可扩展性。需求变更一直是开发中难以避免的问题。系统在进行设计时应充分考虑到需求变更的可能性,降低系统扩展功能时的复杂度。2.2 可行性分析2.2.1 技术可行性 本系统主要采用Struts2框架开发。Struts2是一个成熟的MVC框架,它的功能非常强大,包括请求转发、数据校验、文件上传下载等等,再加上jsp作为展示层,完全可以满足本系统的开发需要,因此技术上是可行的。2.2.2 经济可行性 本系统为自主开发,耗时1周,经济成本低;开发完成后可以在网上找一些免费的应用托管商;当系统部署成功后通过不断更新高质量,增加软件的知名度,通过广告获得收益。综合来看在经济上是可行的。2.2.3 社会可
6、行性该系统为完全独立开发。开发工具选的是VC6.0及GCC,开发技术多是用的开源的框架和工具,因此不存在侵权问题。第3章 系统设计 在对整个软件系统进行开发之前,要对整个系统进行必要的设计与规划。包括系统的总体架构、系统的功能结构、系统的运行环境、开发技术与工具的选择等等。本章主要对这些内容进行详细的介绍。3.1 系统结构设计 本系统是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。C语言也很适合搭配汇编来使用(往往可以通过内联汇编语言或与汇编语言目标文件一起连接。对于任何一种操作系统环境,C函数的ABI(Application Bin
7、aryInterface)与汇编语言的子过程(routine/procedure)的ABI一定是完全兼容的)。尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。图3.1 系统结构图3.2 系统功能模块设计 本软件系统主要可分为8大功能模块,包括了录入学生信息模块、查询学生信息模块,、删除学生信息模块、修改学生信息模块、插入学生信息木块、学生成绩排名模块、学生人数统计模块和显示学生信息模块功能结构如图3.2所示。3.3 系统结构体定义 对于一个应用程序而言
8、,结构体的定义好坏尤为重要。一个设计结构体,可以使系统功能实现变得更加简单,也会使系统的执行速度更快,性能更高更稳定。 studen结构体定义表列含义类型长度缺省值允许空numint4无否name姓名char15是elec选修课成绩double8expe实验课成绩requ必修课成绩sum总分成绩3.3 系统函数定义in()录入学生成绩信息voidshow()显示学生信息order()按总分排序del()删除学生成绩信息modify()修改学生成绩信息menu()主菜单insert()total()search()main()插入学生信息计算总人数查找学生信息主函数void Void第4章 系统
9、实现4.1学生信息管理系统界面展示模块及实现4.1.1 主界面主界面列表显示的是各个功能的显示信息,包括退出系统、输入学生信息、查询学生信息、删除学生信息、修改学生信息、插入学生信息、总成绩排名、统计学生人数、显示学生信息。界面用户进入列表展示界面后,可以输入选项选择相应的功能展示功能模块界面代码实现:void menu()/*自定义函数实现菜单功能*/ system(cls); printf(nnnnntt|-STUDENT-|ntt|t 0. 退出 |ntt|t 1. 输入数据 |ntt|t 2. 搜索数据 |ntt|t 3. 删除数据 |ntt|t 4. 修改数据 |ntt|t 5. 插
10、入数据 |ntt|t 6. 总分排序 |ntt|t 7. 学生人数 |ntt|t 8. 查看 |ntt|-|nnttt选择(0-8):具有输入数字选择功能的代码是写在主函数中的void main()/*主函数*/ int n; menu(); scanf(%d,&n);/*输入选择功能的编号*/ while(n) switch(n) case 1: in();break; case 2: search(); case 3: del(); case 4: modify(); case 5: insert(); case 6: order(); case 7: total(); case 8: s
11、how(); default: getch();/*执行完功能再次显示菜单界面*/4.1.2 录入学生信息模块在主界面中输入数字1,即可进入到录入学生信息状态。当磁盘文件有存储记录时,可以向文件中添加学生信息,运行效果如图1当磁盘文件没有学生信息记录时,系统界面会提示没有记录,然后根据提示决定是否输入信息,运行效果如图2图1图2在录入学生信息模块中将学生的信息进行保留,当程序运行结束,关闭程序,下此运行程序时录入的信息任然保留。因此在该模块中应用文件读写操作,对录入的信息保存到存到磁盘文件中,下次运行程序时,可以从磁盘文件中将存储读出并显示。代码实现void in()/*录入学生信息*/ in
12、t i,m=0;/*m是记录的条数*/ char ch2; FILE *fp;/*定义文件指针*/ if(fp=fopen(data.txt,a+)=NULL)/*打开指定文件*/ 不能打开n return; while(!feof(fp) if(fread(&stum ,LEN,1,fp)=1) m+;/*统计当前记录条数*/ fclose(fp); if(m=0)没有数据n else/*调用show函数,显示原有信息*/wb)=NULL) for(i=0;im;i+) fwrite(&stui ,LEN,1,fp);/*向指定的磁盘文件写入信息*/请输入(y/n):%s,ch);while
13、(strcmp(ch,Y)=0|strcmp(ch,y)=0)/*判断是否要录入新信息*/number:stum.num);/*输入学生学号*/ if(stui.num=stum.num)the number 正在运行,按任意键继续姓名:,stum.name);/*输入学生姓名*/选修课:%lfstum.elec);/*输入选修课成绩*/实验课:stum.expe);/*输入实验课成绩*/必修课:stum.requ);/*输入必修课成绩*/ stum.sum=stum.elec+stum.expe+stum.requ;/*计算出总成绩*/ if(fwrite(&stum,LEN,1,fp)!=
14、1)/*将新录入的信息写入指定的磁盘文件*/ printf(不能保存! getch(); else printf(%s 保存n printf(是否继续?(y/n):/*询问是否继续*/OK!n4.1.3 查询学生信息模块查询学生信息模块的主要功能时根据输入的学生学号对学生信息进行搜索,若查找到该学生学号对学生信息进行搜索,若查找到该学生,则选择是否显示该学生信息,输入2时,进入查询状态,运行效果如图所示。图(4.1.3)-1由于学生信息都及时存储到磁盘文件中,因此想要查找学生的信息首先需要对文件进行操作,打开文件,读取文件中的数据,在关闭文件,根据输入的需要查找学生的学号进行信息匹配,当查找到
15、学生的信息时将其显示出来。代码实现:void search()/*自定义查找函数*/ FILE *fp; int snum,i,m=0;rb printf(return;feof(fp) if(fread(&stum,LEN,1,fp)=1) m+; if(m=0) printf(没有数据!请输入学号:snum); if(snum=stui.num)/*查找输入的学号是否在记录中*/找到学生,是否显示?(y/n) if(strcmp(ch,)=0) 学号 姓名 选修课 实验课 必修课 总分tn printf(FORMAT,DATA);/*将查找出的结果按指定格式输出*/ break; if(i
16、=m) printf(不能找到学生n/*未找到要查找的信息*/4.1.4删除学生信息模块删除学生信息模块的主要功能是从磁盘文件中将学生信息读取出来,从读出的信息中查找到将要删除的学生的信息,然后将该学生的信息节点与链表断开,即将其所有信息删除,将更改后的信息再写入到磁盘文件。在主界面中输入3时,调用删除功能函数,运行效果如图图(4.1.4)-1功能实现:(1)将磁盘文件中的学生信息读取出来,以便对其进行查找删除等操作;(2)根据输入的想要删除的学生学号与读取出来的学生信息进行匹配查找。当查找到与该学号匹配的学生信息时,根据提示,输入是否对该学生进行删除操作;(3)若进行删除操作,则使用如下代码
17、对学生信息进行删除,并将删除后的学生信息重新写入磁盘文件中void del()/*自定义删除函数*/FILE *fp; int snum,i,j,m=0;r+ if(m=0) if(snum=stui.num)找到学生,是否删除?)=0)/*判断是否要进行删除*/ for(j=i;ji;j-) stuj+1=stuj;/*从最后一条记录开始均向后移一位*/现在请输入新的信息n学号:stui+1.num); for(k=0;kk+) if(stuk.num=stum.num)学生人数正在退出,按任意键继续 ,stui.name);/*输入名字*/stui.elec);stui.expe);stu
18、i.requ);修改成功 stui.sum=stui.elec+stui.expe+stui.requ;can not openn=m;stuk ,LEN,1,fp)!=1)/*将修改后的记录写入磁盘文件中*/不能保存4.1.6学生成绩排名模块根据学生的总成绩将所有学生的信息按照从高到低进行排序,将排序后的信息写入到磁盘文件中保存。如图所示为排序后现实出来的效果图(4.1.6)-2图(4.1.6)-1再在主界面中输入数字8,就会把保存的排序输出出来如图:这里应用比较稳定简单的交换发排序对学生的成绩进行比较交换。学生成绩排名的实现过程是首先需要将录入的学生信息从磁盘文件中读取,然后将读出的学生信息按照成绩进行比较交换,从高到低排序,为学生排名次,然后再将拍好名次的学生信息保存写入到磁盘文件中。void order()/*自定义排序函数*/ struct student t; int i=0,j=0,m=0;不能打开!stum ,LEN,1,fp)=1) m+; pri
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1