
学生信息管理系统实训报告.pdf
27页实训报告 实训设计题目: 信息管理系统 学 生 学 号: 2 学 生 姓 名: 杨怡 所在系 (部) : 信息工程系 专 业 及班级: 计算机 1502 班 指 导 教 师: 董学枢 完 成 日 期: 前 言 随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用 作为计算机应用的一部分,使用计算机对学生信息进行管理,具有手工管理所无法比拟的优点例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等这些优点能够极大地提高学生档案管理的效率,也是进行科学化、正规化管理,与世界接轨的重要条件 随着国家对于教育的重视逐渐加大,学校正向着大型化、规模化发展,而对于大中型学校,跟学生信息管理有关的信息随之急剧增加。
在这种情况下单靠人工来处理员工的工资不但显得力不从心,而且极容易出错该系统就是设计一个学生信息数据库管理系统,由计算机代替人工执行一系列诸如增加新学生,删除旧学生,学生信息修改,查询,维护及打印等操作这样就使学生部门管理人员可以轻松快捷地完成学生信息管理的任务 目录 前 言 ....................................................... 错误!未定义书签 第 1 章 绪论 .................................................. 错误!未定义书签 § 什么是学生信息管理系统 .................................... 错误!未定义书签 § 课题研究的意义 ............................................ 错误!未定义书签 第 2 章 系统分析 .............................................. 错误!未定义书签 § 需求分析 .................................................. 错误!未定义书签。
§功能需求 ........................................... 错误!未定义书签 §性能需求 ........................................... 错误!未定义书签 § 可行性分析 ................................................ 错误!未定义书签 § 技术可行性 ........................................ 错误!未定义书签 § 经济可行性 ........................................ 错误!未定义书签 § 社会可行性 ........................................ 错误!未定义书签 第 3 章 系统设计 .............................................. 错误!未定义书签 § 系统结构设计 .............................................. 错误!未定义书签 § 系统功能模块设计 .......................................... 错误!未定义书签。
§ 系统结构体定义 ............................................ 错误!未定义书签 § 系统函数定义 .............................................. 错误!未定义书签 第 4 章 系统实现 .............................................. 错误!未定义书签 §学生信息管理系统界面展示模块及实现 ......................... 错误!未定义书签 § 主界面 ............................................ 错误!未定义书签 § 录入学生信息模块 .................................. 错误!未定义书签 § 查询学生信息模块 .................................. 错误!未定义书签 §删除学生信息模块 ................................... 错误!未定义书签 § 插入学生信息模块 .................................. 错误!未定义书签。
§学生成绩排名模块 ................................... 错误!未定义书签 §学生人数统计模块 ................................... 错误!未定义书签 第 5 章 软件测试 .............................................. 错误!未定义书签 § 软件测试办法 .............................................. 错误!未定义书签 §主题内容 ........................................... 错误!未定义书签 §测试目的 ........................................... 错误!未定义书签 提供系统化、规范化、 、实用化的测试技术规范,尽早发现故障,减少交付系统联试前软件中的残留差错 ............................... 错误!未定义书签 §测试方法 ........................................... 错误!未定义书签。
§适用范围 ........................................... 错误!未定义书签 § 单元/系统测试 ............................................. 错误!未定义书签 § 单元定义 .......................................... 错误!未定义书签 § 测试 .............................................. 错误!未定义书签 § 系统测试 .......................................... 错误!未定义书签 §黑盒测试与白盒测试 ......................................... 错误!未定义书签 §测试过程................................................... 错误!未定义书签 总 结 ....................................................... 错误!未定义书签。
致 谢 ....................................................... 错误!未定义书签 第 1 章 绪论 § 什么是学生信息管理系统 学生信息管理系统是校园网络中一个重要的应用系统,它大大改善了学校教学、科研与管理的基础环境,在一定程度上反映出学校管理现代化的水平信息管理系统提供了强大的学生档案管理管理功能,方便管理员对学生信息的添加、修改、删除、查询等操作本系统开发的总体任务是实现学生信息管理的系统化、规范化、自动化、达到提高学生信息管理效率的目的 § 课题研究的意义 随着我国教育产业化的飞速发展,社会对教育水平和教学管理软硬件的要求日益提高,尤其是对一个学校能够具有一整套完善的教学管理软件提出了更多的要求为了适应这种形式,教育系统尤其是大学不仅首先要有坚实的硬件基础,还要有一整套完善的教学管理软件管理系统而要实现这一功能,就要求学校管理者配备一套高效的教育管理网络系统,以便在学校内实施良好的一整套完善的管理且以最快地速度响应教师和学生的需求,及时为他们提供服务,为他们提供一个高效、便捷的环境学生信息管理系统是校园网络中一个重要的应用系统, 它大大改善了学校教学、 科研与管理的基础环境,在一定程度上反映出学校管理现代化的水平。
随着国家对于教育的重视逐渐加大,学校正向着大型化、规模化发展,而对于大中型学校,跟学生信息管理有关的信息随之急剧增加在这种情况下单靠人工来处理员工的工资不但显得力不从心,而且极容易出错该系统就是设计一个学生信息数据库管理系统,由计算机代替人工执行一系列诸如增加新学生,删除旧学生,学生信息修改,查询,维护及打印等操作这样就使学生部门管理人员可以轻松快捷地完成学生信息管理的任务第 2 章 系统分析 § 需求分析 §功能需求 学生管理系统的几个主要功能如下: (1)提供学生录入信息功能 可以输入学生的姓名,学号,选修课,实验课,必修课和总分 (2)查询学生信息功能 根据学生学号来查询学生信息 (3)删除学生信息功能 提供学号,查找是否有此人信息,然后选择删除学生信息 (4)插入学生信息功能 输入学生学号,插入该学生的学号的后面 (5)学生成绩排名功能 根据学生的总分成绩,来进行排名,将排名后的成绩保存到磁盘文件 §性能需求 本软件系统各种特点决定了系统需要具有以下几个主要特性: (1)多样性现在,计算机语言越来越普及,用户面临的选择越来越多想要保证对用户的吸引力,就必须要在多样性上下功夫了。
所以,系统的多样性、功能的多样性一直都是软件系统开发的重点 (2)安全性数据是软件的灵魂,如何保证数据的安全性,是系统开发时必须考虑的一个重要问题开发者应避免程序出现漏洞,防止黑客进行攻击,及时进行数据备份,建立一个完善的多层次的安全保障体系,保障系统的安全 (3)可扩展性 需求变更一直是开发中难以避免的问题系统在进行设计时应充分考虑到需求变更的可能性,降低系统扩展功能时的复杂度 § 可行性分析 § 技术可行性 本系统主要采用 Struts2 框架开发Struts2 是一个成熟的 MVC 框架,它的功能非常强大,包括请求转发、数据校验、文件上传下载等等,再加上 jsp 作为展示层,完全可以满足本系统的开发需要,因此技术上是可行的 § 经济可行性 本系统为自主开发,耗时 1 周,经济成本低;开发完成后可以在网上找一些免费的应用托管商;当系统部署成功后通过不断更新高质量,增加软件的知名度,通过广告获得收益综合来看在经济上是可行的 § 社会可行性 该系统为完全独立开发开发工具选的是及 GCC,开发技术多是用的开源的框架和工具,因此不存在侵权问题 第 3 章 系统设计 在对整个软件系统进行开发之前,要对整个系统进行必要的设计与规划。
包括系统的总体架构、系统的功能结构、系统的运行环境、开发技术与工具的选择等等本章主要对这些内容进行详细的介绍 § 系统结构设计 本系统是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言C 语言也很适合搭配汇编来使用(往往可以通过内联汇编语言或与汇编语言目标文件一起连接对于任何一种操作系统环境,C函 数 的ABI(Application BinaryInterface) 与 汇 编 语 言 的 子 过 程(routine/procedure)的 ABI 一定是完全兼容的) 尽管 C 语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的 C 语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称 MCU)以及超级电脑等作业平台 § 系统功能模块设计 本软件系统主要可分为 8 大功能模块,包括了录入学生信息模块、查询学生信息模块, 、删除学生信息模块、修改学生信息模块、插入学生信息木块、学生成绩排名模块、学生人数统计模块和显示学生信息模块 功能结构如图所示 图 系统结构图 学生信息管理系统 录入学生信查询学生信删除学生信修改学生信插入学生信学生信息排学生人数统显示学生信 § 系统结构体定义 对于一个应用程序而言,结构体的定义好坏尤为重要。
一个设计结构体,可以使系统功能实现变得更加简单,也会使系统的执行速度更快,性能更高更稳定 studen 结构体定义表 列 含义 类型 长度 缺省值 允许空 num 学号 int 4 无 否 name 姓名 char 15 无 是 elec 选修课成绩 double 8 无 是 expe 实验课成绩 double 8 无 是 requ 必修课成绩 double 8 无 是 sum 总分成绩 double 8 无 是 学生成绩结构体 学号 姓名 选 修课 成实 验课 成必 修课 成总 分成绩 § 系统函数定义 列 含义 类型 in() 录入学生成绩信息 void show() 显示学生信息 void order() 按总分排序 void del() 删除学生成绩信息 void modify() 修改学生成绩信息 void menu() 主菜单 void insert() total() search() main() 插入学生信息 计算总人数 查找学生信息 主函数 void Void void int 第 4 章 系统实现 §学生信息管理系统界面展示模块及实现 § 主界面 主界面列表显示的是各个功能的显示信息,包括退出系统、输入学生信息、查询学生信息、删除学生信息、修改学生信息、插入学生信息、总成绩排名、统计学生人数、显示学生信息。
用户进入列表展示界面后,可以输入选项选择相应的功能 展示功能模块界面 代码实现: void menu()/*自定义函数实现菜单功能*/ { system("cls"); printf("\n\n\n\n\n"); printf("\t\t|---------------------STUDENT-------------------|\n"); printf("\t\t|\t 0. 退出 |\n"); printf("\t\t|\t 1. 输入数据 |\n"); printf("\t\t|\t 2. 搜索数据 |\n"); printf("\t\t|\t 3. 删除数据 |\n"); printf("\t\t|\t 4. 修改数据 |\n"); printf("\t\t|\t 5. 插入数据 |\n"); printf("\t\t|\t 6. 总分排序 |\n"); printf("\t\t|\t 7. 学生人数 |\n"); 界面 printf("\t\t|\t 8. 查看 |\n"); printf("\t\t|-----------------------------------------------|\n\n"); printf("\t\t\t 选择(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();break; case 6: order();break; case 7: total();break; case 8: show();break; default:break; } getch(); menu();/*执行完功能再次显示菜单界面*/ scanf("%d",&n);}} § 录入学生信息模块 在主界面中输入数字 1, 即可进入到录入学生信息状态。
当磁盘文件有存储记录时,可以向文件中添加学生信息,运行效果如图 1 当磁盘文件没有学生信息记录时,系统界面会提示没有记录,然后根据提示决定是否输入信息,运行效果如图 2 在录入学生信息模块中将学生的信息进行保留,当程序运行结束,关闭程序,下此运行程序时录入的信息任然保留因此在该模块中应用文件读写操作,对录入的信息保存到存到磁盘文件中,下次运行程序时,可以从磁盘文件中将存储读出并显示 代码实现 void in()/*录入学生信息*/ { int i,m=0;/*m 是记录的条数*/ char ch[2]; FILE *fp;/*定义文件指针*/ if((fp=fopen("","a+"))==NULL)/*打开指定文件*/ { printf("不能打开\n"); return; } while(!feof(fp)) { if(fread(&stu[m] ,LEN,1,fp)==1) m++;/*统计当前记录条数*/ } fclose(fp); if(m==0) printf("没有数据\n"); else { system("cls"); 图 2 图 1 show();/*调用 show 函数,显示原有信息*/ } if((fp=fopen("","wb"))==NULL) { printf("不能打开\n"); return; } for(i=0;i 由于学生信息都及时存储到磁盘文件中,因此想要查找学生的信息首先需要对文件进行操作,打开文件,读取文件中的数据,在关闭文件,根据输入的需要查找学生的学号进行信息匹配,当查找到学生的信息时将其显示出来 代码实现: void search()/*自定义查找函数*/ { FILE *fp; int snum,i,m=0; char ch[2]; if((fp=fopen("","rb"))==NULL) { printf("不能打开\n");return;} while(!feof(fp)) if(fread(&stu[m],LEN,1,fp)==1) m++; fclose(fp); 图()-1 if(m==0) {printf("没有数据!\n");return;} printf("请输入学号:"); scanf("%d",&snum); for(i=0;i 在主界面中输入 3 时, 调用删除功能函数,运行效果如图 功能实现: (1) 将磁盘文件中的学生信息读取出来,以便对其进行查找删除等操作; (2) 根据输入的想要删除的学生学号与读取出来的学生信息进行匹配查找当查找到与该学号匹配的学生信息时,根据提示,输入是否对该学生进行删除操作; (3) 若进行删除操作,则使用如下代码对学生信息进行删除,并将删除后的学生图()-1 信息重新写入磁盘文件中 代码实现: void del()/*自定义删除函数*/ {FILE *fp; int snum,i,j,m=0; char ch[2]; if((fp=fopen("","r+"))==NULL) { printf("不能打开\n");return;} while(!feof(fp)) if(fread(&stu[m],LEN,1,fp)==1) m++; fclose(fp); if(m==0) { printf("没有数据\n"); return; } printf("请输入学号:"); scanf("%d",&snum); for(i=0;i (2) 输入需要插入信息的位置, 即可需要插入在哪个学生的学号后面, 然后查找该学号, 从最后一条信息开始均向后移动一位, 为新插入的信息提供位置 (3) 设置好可以要输入的位置后, 向该位置录入新学生的信息 然后该学生的信息写入到磁盘文件中 代码实现: void insert()/*自定义插入函数*/ { FILE *fp; int i,j,k,m=0,snum; if((fp=fopen("","r+"))==NULL) { printf("不能打开\n");return;} while(!feof(fp)) if(fread(&stu[m],LEN,1,fp)==1) m++; if(m==0) {printf("没有数据!\n"); fclose(fp); return; } printf("请输入你想插入的位置(输入学号)\n"); scanf("%d",&snum);/*输入要插入的位置*/ for(i=0;i 如图所示为排序后现实出来的效果 再在主界面中输入数字 8,就会把保存的排序输出出来如图: 这里应用比较稳定简单的交换发排序对学生的成绩进行比较交换学生成绩排名的实现过程是首先需要将录入的学生信息从磁盘文件中读取,然后将读出的学生信息按照成绩进行比较交换,从高到低排序,为学生排名次,然后再将拍好名次的学生信息保存写入到磁盘文件中 代码实现: void order()/*自定义排序函数*/ { FILE *fp; struct student t; int i=0,j=0,m=0; if((fp=fopen("","r+"))==NULL) { printf("不能打开!\n"); return; } while(!feof(fp)) if(fread(&stu[m] ,LEN,1,fp)==1) m++; fclose(fp); if(m==0) { printf("没有数据!\n"); 图()-1 图()-2 return; } if((fp=fopen("","wb"))==NULL) { printf("不能打开\n"); return;} for(i=0;i 运行效果如图 代码实现: void total() { FILE *fp; int m=0; 图()-1 if((fp=fopen("","r+"))==NULL) { printf("不能打开\n");return;} while(!feof(fp)) if(fread(&stu[m],LEN,1,fp)==1) m++;/*统计记录个数即学生个数*/ if(m==0) {printf("没有记录!\n");fclose(fp);return;} printf("这个班级有 %d 个学生\n",m);/*将统计的个数输出*/ fclose(fp); } 第 5 章 软件测试 § 软件测试办法 §主题内容 为保证软件的可靠性和安全性,从技术角度对工程软件测试办法作出规定 §测试目的 提供系统化、规范化、 、实用化的测试技术规范,尽早发现故障,减少交付系统联试前软件中的残留差错 §测试方法 本软件测试将通过单元测试和系统测试,黑盒测试以及白盒测试,几种测试方法相结合更能方便的找出系统中出现的 bug §适用范围 主要适用于系统中各组成部分的软件测试工作,其它软件开发工程中的软件测试工作也可以参照。 本办法可用于新开发的或修改、更新的软件测试 本办法的使用对象可以是开发人员、测试人员、交办单位委托的第三方测试人员 § 单元/系统测试 § 单元定义 void in() //录入学生信息 void show() //显示学生信息 void order() //按总分排序 void del() //删除学生信息 void modify() //修改学生成绩信息 void menu() //主菜单 void insert() //插入学生信息 void total() //计算总人数 void search() //查找学生信息 § 测试 每一个单元都运行正常,没有出现 BUG § 系统测试 在进行单元性和模块性的测试之后,我们需要对整个系统进行测试,测试整个系统运行的流畅度,并积极发现问题不能因为到测试的最后一步而掉以轻心,避免有错误的程序交到客户或用户手中 §黑盒测试与白盒测试 白盒测试:已知产品的内部工作过程,可以通过测试验证每种内部操作是否符合设计规格要求,所有内部成分是否已经经过检查 黑盒测试:已知产品的功能设计规格和用户手册,可以进行测试验证每个功能是否实现,每个实现了的功能是否符合要求,以及产品的性能是否满足用户的要求。 针对以上对两种测试方法的介绍,结合本系统的情况,只采用黑盒测试就能够满足要求 §测试过程 为了测试的有效性和高效性,应该制定严格的测试计划,并按照计划实施首先要按模块来设计各个模块的测试用例,测试用例是测试执行的最小实体,是为特定的目的而设计的一组测试输入、执行条件和预期的结果然后执行测试用例,当测试结果和预期不符时,就要标示问题,并建立 bug 跟踪记录,直到 bug 被修复为止最后对已修复的 bug 进行回归测试,避免出现新的 bug 总 结 作为一个完整的学生信息管理系统,本系统的主要实现的功能包括用户登录、列表展示、文章管理、评论管理、相册管理等,基本上可以满足大部分用户的需求 本系统的亮点之处在于系统的扩展性很强当需要为博客系统添加新的功能时,只需要改动极少的代码甚至无需改动就可以实现各模块独立性很高,模块之间的耦合性很低,使得修改代码、添加功能变得简单可行本系统的不足之处在于功能稍显简单由于作者的时间和精力有限,系统的功能总体来看比较少,只能在以后根据需求慢慢增加了 在开发本系统的过程中遇到了一些问题,主要是一些技术不太了解最终通过查阅相关资料还是一一解决了这些问题。 另外有些功能还没有完全的实现,比如用户登录的功能,目前没有此项功能,如果要实现此功能,在后期会相继的慢慢完善 通过这次的设项目实训,我学到了很多知识深刻体会到了前期的设计对后期实现时的影响,如果在项目前期不能进行很好的设计,在后期开发时就会造成很多麻烦另外,这次的项目也让我明白了数据结构知识的重要性,今后要加强数据结构相关知识的学习。












