摘 要
随着科技与经济的不断发展,在各大中小学校,用计算机管理学校的信息已经越来越普遍了。用计算机不但可以提高工作效率,而且还节省了许多人力物力,增强了学校资料的安全性。提高了学校的管理能力,为此,用计算机来管理学校的信息,是非常必要的。其次,数据库的完善便于人们科学统计和快速查询,如此一来就节省了管理员的工作量以及许多不必要的人力物力资源;再者,将计算机引入东软教务管理中除了可以促进学校的管理制度之外,还可以提高学校的教育质量。通过实现和完善东软信息学院的梦想启航梦想启航梦想启航学生信息管理系统,学生就可以更加方便的申请学号和查询成绩,老师也能更加直观的看到同学们每次考试的情况而做出更加科学合理的教学方案。因此在我看来,此次课题的设计不仅可以提升我们的能力,而且能够让我们深入到科技前沿,学习更多高端技术。
本课题在分析了学校对梦想启航学生信息管理方式研究比较的基础上,设计研发了一套基于MVC的梦想启航梦想启航梦想启航学生信息管理系统。系统主要实现了用户登录,修改个人信息,查看和查询成绩和课程。最主要的功能是管理员可以对用户、课程和成绩进行增删改等等。其次在用户个人信息中,用户可以退出系统,修改个人资料。本系统的集成开发环境是Eclipse,前端使用了JSP+JavaScript等技术,数据库管理运用了MySQL,Web服务器采用Tomcat,另外还采用SSM框架技术和B/S结构。
关键词:学生信息,SSM,MVC,B/S

Design and Implementation of
Student information management system.

Abstract
With the continuous development of science and technology and economy, it is becoming more and more common to use computer to manage schools in various schools. Computer not only can improve work efficiency, but also save a lot of manpower and material resources, enhance the school data security. It is necessary to use computers to manage the school’s information. Secondly, the improvement of the database is convenient for people’s scientific statistics and quick inquiry, thus saving the administrator’s workload and many unnecessary resources of human resources. In addition, the introduction of the computer into the management of eastern soft educational administration can improve the school’s education quality in addition to promoting the school’s management system. Through the implementation and improvement of neusoft institute of information of students information management system, students can be more convenient to apply for student id and the query results, teachers can more intuitive see students every test case and make a more scientific and reasonable teaching plan. Therefore, in my opinion, the design of this project will not only enhance our ability, but also enable us to go to the forefront of science and technology and learn more advanced technologies.
Based on the analysis of the research on the way of information management of students in the school, this paper designed and developed a set of student information management system based on MVC. The system mainly realizes user login, modify personal information, view and query results and courses. The main feature is that administrators can add and delete users, courses, and grades. Secondly, in the user’s personal information, users can withdraw from the system and modify the personal data. The integrated development environment of the system is Eclipse, the front end USES the technology of JSP+JavaScript, database management USES MySQL, the Web server adopts Tomcat, and the SSM framework technology and B/S structure are also adopted.
Key words: Student information,MVC,SSM,B/S

目 录
摘 要 I
Abstract II
第1章 项目概述 1
1.1 问题描述 1
1.2 项目目标 1
1.3 项目适用范围 2
1.4 项目应遵守的规范与标准 2
1.5 涉众 2
第2章 需求分析 3
2.1 业务需求 3
2.1.1 业务流程 3
2.1.2 业务对象 3
2.2 功能性需求 4
2.2.1 用例概述 4
2.2.2 用例描述 5
2.3 非功能性需求 8
2.4 运行环境 9
第3章 系统设计 10
3.1 技术路线 10
3.2 软件体系结构设计 11
3.2.1 功能结构 11
3.2.2 系统架构 11
3.3 数据库设计 12
3.3.1 概念结构设计 12
3.4.2 表的详细设计 13
3.5 对象设计 15
3.5.1课程添加用例对象设计 15
3.5.2 成绩添加用例对象设计 16
第4章 系统实现 19
4.1 核心功能实现 19
4.1.1成绩管理 19
4.1.2课程管理 20
4.1.3学生信息管理 21
4.1.4管理员管理 22
4.1.5学生成绩查看 23
4.1.6学生课程查看 24
4.2 关键技术难点与解决方案 25
第5章 系统测试 27
5.1 功能测试 27
5.2 测试总结 29
第6章 结论与展望 31
参考文献 33
致 谢 34

第1章 项目概述
1.1 问题描述
目前我国的教育体制正处在不断改革,创新的阶段,随着社会的发展和经济时代的到来,还有学校的教学质量的提高,生源不断扩大。尤其是自从国家实施大众化教育,实行高考扩招以来,我国高校学生数量急剧增大。学校管理就成了一个现实问题摆在了人们面前。学校如同企业,如果没有好的管理和来竞争力?在国际社会飞速发展的今天,我国也已成功加入世贸组织的今天,不得不让我们认真对待每一个问题。
学生成绩管理是学校管理中异常重要的一个环节,作为学校,除了育人,就是育知,学生成绩管理的计算机化是整个学校教务管理中的重要一部分,能否实现这一步关系到学校办学整体效率的高低,介与它的重要性,学生成绩管理系统的开发与应用就逐渐提入议程,并占着越来越重要的份量。
运用学生成绩管理系统可以减轻学院教学人员的工作量,加快查询速度,加强管理,以及国家各部门关于信息化的步伐,使各项管理更加规范化。还有就是缩小开支,提高工作效率与准确率。可以使学生能够合理安排时间,能够尽快的知道自己的考试成绩,投入新的课程的学习或复习这次没有考过的课程。并且学生成绩管理系统的应用也为今天的高校教育在未来市场的竞争力的提高达下坚实的基础。
1.2 项目目标
通过创建一个基于Web的B/S架构的梦想启航梦想启航梦想启航学生信息管理系统,这样可以方便高校的管理人员和学生随时随地进行信息的查询和处理工作。显然,这种通过网络来管理信息与传统的纸质记录管理信息相比,它有着无可比拟的优势,不仅仅减少人力的投入和资源的浪费,而且它更加方便快捷地管理和查询信息。总之,通过该系统的建设来提高学校梦想启航学生信息管理的效率,使得学校的发展能够适应当前的教育信息化建设的总体发展趋势。因此,开发一个功能完善、操作简单、界面友好、有针对性的学生信息系统对学校、乃至社会都是非常必要,非常有意义的。
1.3 项目适用范围
梦想启航学生信息管理是学校日常工作的关键环节,一个好的梦想启航学生信息管理体制将给学生和老师带来很大的方便。无论是学生还是老师,都可以在教务网上记录一些数据。手工管理这些纷繁复杂数据的方式已经不适应时代的潮流,实现数据规范化、自动化的电脑管理,是一个现代化的学校的必然要求。
1.4 项目应遵守的规范与标准
此梦想启航学生信息管理系统是自己开发制作的作为毕业设计使用的管理系统,具有很大的实际意义。开发环境软件和使用的数据库都是开源代码,因此对这个系统进行开发与普通的系统软件设计存在很大不同,没有侵权等问题,在法律上完全具有可行性。
1.5 涉众
梦想启航学生信息管理是各大学的主要日常管理工作之一,涉及到校、系、师、生的诸多方面,随着教学体制的不断改革,尤其是学分制、选课制的展开和深入,学生成绩日常管理工作及保存管理日趋繁重、复杂。迫切需要研制开发一款功能强大,操作简单,具有人性化的学生成绩管理系统。

第2章 需求分析
2.1 业务需求
2.1.1 业务流程
梦想启航学生信息管理系统,学生可以进行用户信息的添加,修改,删除等操作。登录后学生可以在该系统进行学生基本信息的添加,修改,删除和查询等功能。管理员可在权限范围内为用户设置权限功能,学生只能对授权范围内进行相应的操作。为学生提供所有信息的录入功能。以及对学生用户信息管理的添加,修改,删除和查询等功能;通过该系统进行对学生成绩的修改和删除,查询等操作。梦想启航学生信息管理系统项目的总体业务流程如图2.1所示。
在这里插入图片描述

图2.1 学生信息管理系统的总体业务流程图
2.1.2 业务对象
通过对系统的需求分析,构造出了三个实体类,每个实体类之间的关联。从而绘制出相应的类图。用户通过管理员和用户通过ID进行区分和管理,管理员可以对用户进行操作和管理。对象角色之间关系图的领域模型如图2.2所示。
在这里插入图片描述

                           图2.2 领域模型图

2.2 功能性需求
2.2.1 用例概述
在图2.3高层用例图中抽取了满足用户基本业务需求的基本用例。这些用例可以从用户登录、学生查询成绩、系统管理三个方面完成整个管理系统的正常运作。
在这里插入图片描述

图2.3 高层用例图

用例摘要描述如表2.1所示。
表2.1 用例摘要描述
用例标识(UC) 用例名称 摘要描述
0 登录 使用系统前的注册账号进行登录。
1 注册 用户进行简单信息填写注册。
2 查看课程信息 用户可以查找相关课程信息,并可以获得包括课程名、所任课老师、课程介绍等信息。
3 查看成绩信息 用户可以查看成绩模块里面具体成绩信息。
4 成绩搜索 用户可以搜索成绩
5 课程搜索 用户可以搜索课程
6 个人信息修改 管理员可以修个用户信息
7 退出账号 管理员和学生可以退出系统
8 管理员管理 管理员可以对管理员用户进行增删改
9 学生管理 管理员可以对学生进行增删改
10 成绩管理 管理员可以对成绩进行增删改
11 课程管理 管理员可以对课程进行增删改
2.2.2 用例描述
(1)管理成绩信息用例
管理员可以通过管理成绩信息用例对成绩信息进行维护,包括对成绩信息的增删改查。管理成绩信息用例图如图2.4所示。
在这里插入图片描述

图2.4 管理成绩信息用例图

管理成绩信息用例描述如表2.2所示。
表2.2 管理成绩信息用例描述
用例标识 9
用例名称 管理成绩信息
参与者 管理员
前置条件 已经以管理员身份登录。
后置条件 在成绩模块管理添加一个商品信息。
用例概述 管理员可以对商品信息进行添加。
基本事件流 1. 管理员在管理成绩主界面选取添加成绩信息项。
2. 系统显示添加商品界面。
3. 管理员输入学生成绩的学号,课程名,分数后,提交添加请求。
4. 系统检查输入信息的有效性。
5. 系统显示添加成绩成功。
备注 成绩编号生成规则

(2)管理课程信息用例
管理员可以通过管理课程信息用例对课程信息进行维护,包括对课程信息的增删改查。管理课程信息用例图如图2.5所示。

在这里插入图片描述

图2.5管理课程信息用例图
管理课程信息用例描述如表2.3所示。
表2.3 管理课程信息用例描述
用例标识 7
用例名称 管理课程信息

续表2.3 管理课程信息用例描述
参与者 管理员
前置条件 已经以管理员身份登录。
后置条件 在课程模块管理添加一个课程信息。
用例概述 管理员可以对课程信息进行添加。
基本事件流 1. 管理员在管理课程主界面选取添加课程信息项。
2. 系统显示添加课程界面。
3. 管理员输入课程的名称、教师名,课程后,提交添加请求。
4. 系统检查输入信息的有效性。
5. 系统显示添加课程成功。
备注 课程编号生成

(3)学生查看成绩用例
学生用户可以通过登录网站查看自己的成绩列表,也可搜索自己的相关课程的成绩。学生查看用例图如图2.6所示。
在这里插入图片描述

图2.6学生查看成绩用例图
学生查看成绩用例描述如表2.4所示。
表2.4学生查看成绩用例描述
用例标识 5
用例名称 学生查看成绩
参与者 学生
前置条件 已经以用户身份登录。
后置条件 在学生查看成绩
用例概述 用户可以对成绩进行查看
基本事件流 1. 用户登录账号
2. 系统页面显示管理系统主页,用户点击成绩。
3. 页面显示具体成绩列表,点击所上课。
4 . 系统跳转到成绩详情介绍。
5.查看成绩完成
备注
(4)学生查看课程用例
学生用户可以通过登录网站点击课程列表选择具体课程查看其详细信息,包括对课程详情介绍,所任课的老师。学生查看课程用例图如图2.7所示。
在这里插入图片描述

图2.7学生查看课程用例图

学生查看成绩用例描述如表2.5所示。
表2.5学生查看成绩用例描述
用例标识 4
用例名称 学生查看成绩
参与者 用户
前置条件 已经以用户身份登录。
后置条件 在课程列表选择要查看的具体课程
用例概述 用户可以对课程进行查看
基本事件流 1. 用户登录账号
2. 系统页面显示课程列表,用户点击进入课程界面。
3. 用户选择自己喜欢的课程,点击课程详情。
4 . 系统跳转到课程详情介绍。
备注 课程查看成功

2.3 非功能性需求
正确性:不允许出现业务和逻辑错误。
健壮性:在系统出现故障时,系统必须提供相应的数据保护措施,不能丢失数据,并提供重新恢复正常工作的机制。
性能:系统处理业务时间正常业务量的情况下不超过2秒,繁忙业务情况下最迟时间不可超过5秒。
安全性:用户信息具有保密性,用户信息只能由网站内部管理员使用。
兼容性:可运行在Windows7以上操作系统中。
2.4 运行环境
本系统运行环境包括硬件环境和软件环境。
2.4.1硬件环境
CPU:Pentium4或更高
硬盘:320G或更多
内存:1G或更高(建议使用2G)
网络类型:TCP/IP
2.4.2软件环境
操作系统:Windows7
Web服务器: Tomcat
数据库:MySQL
浏览器:IE7.0

第3章 系统设计

3.1 技术路线
本梦想启航学生信息管理系统在实现过程中采用了以下机种技术。前台页面的设计用JavaScript技术和HTML和CSS技术,通过HTML和CSS技术实现对前台页面的布局和界面美观的操控,JavaScript主要是用来在前台中动态页面的实现,通过对菜单进行动态的操作实现对每个模板进行管理,JavaScript它主要运行于浏览器端。此次设计主要采用B/S模式,Eclipse,作为开发工具,Tomcat作为服务器进行,MySQL作为数据库存储,页面视图主要使用JSP技术完成。
3.1.1 JSP技术
本设计选用JSP作为开发本系统的服务器端页面技术。使用JavaScript,EL表达式和JSTL与之配合使用,使页面表现更加丰富,人机交互更加人性化。
JSP全名为Java Server Pages,在传统的网页HTML文件中加入Java程序片段和JSP标签,就构成了JSP网页。JSP网页是由传统的HTML文件中加入Java程序片段和JSP标签组成的。Java程序用来操作数据库,实现建立动态网页的功能。
JavaScript是一种基于对象的,动态的客户端脚本语言。主要目的是为了解决服务器端语言遗留的速度问题,为客户提供更流畅的浏览效果。当时服务端需要对数据进行验证,验证步骤繁杂,浪费的时间太多。于是加入了Javascript,提供了页面数据验证的基本功能。
JSTL(JSP Standard Tag Library ,JSP标准标签库)是一个不断完善的开放源代码的JSP标签库,其中core 标记库提供了定制操作,通过限制了作用域的变量管理数据,以及执行页面内容的迭代和条件操作。简化了JSP和Web应用程序的开发。
3.1.2 MySQL
MySQL是一种关系数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,分为社区版和甜业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。
3.2 软件体系结构设计
3.2.1 功能结构
根据需求调研结果确定本系统主要包括以下功能模块,如图3.1所示。
在这里插入图片描述

图3.1系统功能结构图
3.2.2 系统架构
由于梦想启航学生信息管理系统采用了MVC三层架构开发,从职责上分为四层:表示层、业务逻辑层、数据持久层和域模块层。每层各有自己的分工。表示层为用户提供交互操作界面,方便用户操作,业务逻辑层主要负责关键业务的处理和数据的传递,数据访问层负责对数据的访问。系统架构图如图3.2所示。

在这里插入图片描述

图3.2 系统架构图
3.3 数据库设计
3.3.1 概念结构设计
本系统采用概念结构模型,首先需要创建数据库,数据库设计表是根据用户的需求抽象出来的,是一种线性表。根据项目中功能结构构建各个实体,并且确立实体之间的对应关系,整个项目的所有实体的各种字段和属性都存储在数据库表中,运用 ER 模型把问题转化成现实的问题。概念模型(E-R图)如图3.3所示。
在这里插入图片描述

图3.3 E-R图
3.4.2 表的详细设计
通过对领域对象、业务对象及对象间关联的分析,对本系统的数据库表进行了设计,如表3.1–表3.7所示。本系统数据库管理采用MySQL。
(1)用户信息表(user)
管理员信息表主要用于保存系统管理员的信息,主要字段包括:管理员ID、登录账号、登录密码。表结构如表3.1所示。
表3.1 管理员信息表(admin)
列名 数据类型 长度 允许空 是否主键 说明
Id int 10 否 是 管理员ID
username varchar 12 否 否 登录账号
pwd varchar 15 否 否 登录密码

(2)学生信息表(stu)
学生信息表主要是记录了学生基本信息,表结构如表3.2所示。
表3.2 学生信息表(stu)
列名 数据类型 长度 允许空 是否主键 说明
id int 4 否 是 学生ID
username varchar 50 否 否 学生名
pwd varchar 50 否 否 密码
sex varchar 50 否 否 性别
age varchar 50 否 否 年龄
stuno varchar 20 否 否 学号

(3)成绩信息表(report)
成绩信息表主要是记录了成绩的基本信息,表结构如表3.3所示。

表3.3成绩信息表(report)

列名 数据类型 长度 允许空 是否主键 说明
id int 4 否 是 ID
stuno varchar 50 否 否 学号
coursename varchar 50 否 否 课程名称
score varchar 50 否 否 成绩

(4)课程信息表(course)
课程信息表主要是课程的相关信息,其中ID是主键,表结构如图3.4所示。
表3.4课程信息表(course)
列名 数据类型 长度 允许空 是否主键 说明
id Int 4 否 是 ID
name Int 4 否 否 名称
teacher varchar 50 否 否 教师
period varchar 50 否 否 成绩id
3.5 对象设计
3.1.1 课程添加用例对象设计
(1)用例实现
课程添加用例的实现顺序图如图3.4所示。
在这里插入图片描述

图3.4课程添加用例顺序图
在课程添加用例中当管理员登录成功时,点击课程管理按钮就可以查看课程列表所有的课程信息,当管理员点击添加按钮时,填写课程信息,提交给后台,跳转界面弹出添加成功,插入数据库并显示在课程列表中。
3.1.2 成绩添加用例对象设计
(1)用例实现
成绩添加用例的实现顺序图如图3.6所示。
在这里插入图片描述

图3.6成绩添加用例顺序图

在成绩添加用例中当用户登录成功时,点击成绩添加按钮就可以跳到添加成绩的界面。管理员填写需要添加的信息,点击提交按钮,跳转界面弹出添加成功,插入数据库并显示在成绩管理界面中。只有管理员才可以对成绩操作,对成绩列表和成绩信息中数据进行查找和删除动作。

第4章 系统实现
4.1核心功能实现
4.1.1成绩管理
管理员在登录成功时,点击成绩管理模块,可以查看所有的各科成绩,所有成绩都在成绩管理列表中显示,管理员可以对各科成绩进行增删改查等操作。实现效果如图4.1所示。
在这里插入图片描述
在这里插入图片描述

图4.1成绩管理页面

部分代码如下:
@RequestMapping(value="/list")
public String list(Report report,HttpServletRequest request) throws Exception{
List list = reportService.queryReportList(report);
request.setAttribute(“reportList”, list);
return “/report/reportlist.jsp”;
}

@RequestMapping(value="/listmy")
public String listmy(Report report,HttpServletRequest request) throws Exception{
	Stu stu=(Stu) request.getSession().getAttribute("user");
	report.setStuno(stu.getStuno());
	List<Report> list = reportService.queryReportList(report);
	request.setAttribute("reportList", list);
	return "/report/reportlistmy.jsp";
}

@RequestMapping(value="/addreport")
public String addreport(Report report,HttpServletRequest request) throws Exception{
	reportService.insertReport(report);
	report=new Report();
	return this.list(report, request);
}

@RequestMapping(value="/toaddreport")
public String toaddreport(Report report,HttpServletRequest request) throws Exception{
	List<Course> courseList=courseService.queryCourseList(null);
	request.setAttribute("courseList", courseList);
	return "/report/reportadd.jsp";
}

@RequestMapping(value="/toupdatereport")
public String toupdatereport(int id,HttpServletRequest request) throws Exception{
	Report report=reportService.queryReportById(id);
	request.setAttribute("report", report);
	List<Course> courseList=courseService.queryCourseList(null);
	request.setAttribute("courseList", courseList);
	return "/report/reportupdate.jsp";
}

@RequestMapping(value="/deletereport")
public String deletereport(int id,HttpServletRequest request) throws Exception{
	reportService.deleteReport(id);
	return "/report/list";
}

@RequestMapping(value="/updatereport")
public String updatereport(Report report,HttpServletRequest request) throws Exception{
	reportService.updateReport(report);
	report=new Report();
	return this.list(report, request);
}

4.1.2课程管理
管理员登录后,可以查看课程列表,根据不同课程选择自己感兴趣的,点击查看详情跳转到课程详情界面,包括课程介绍。管理员可以对课程信息进行增删改查的操作。实现效果如图4.2所示。

在这里插入图片描述
在这里插入图片描述

图4.2课程管理页面

部分代码如下:
@RequestMapping(value="/list")
public String list(Course course,HttpServletRequest request) throws Exception{
List list = courseService.queryCourseList(course);
request.setAttribute(“courseList”, list);
return “/course/courselist.jsp”;
}

@RequestMapping(value="/addcourse")
public String addcourse(Course course,HttpServletRequest request) throws Exception{
	courseService.insertCourse(course);
	course=new Course();
	return this.list(course, request);
}

@RequestMapping(value="/toupdatecourse")
public String toupdatecourse(int id,HttpServletRequest request) throws Exception{
	Course course=courseService.queryCourseById(id);
	request.setAttribute("course", course);
	return "/course/courseupdate.jsp";}

4.1.3学生信息管理
管理员登录后,可以学生信息的管理,对其进行删除和编辑,可以添加学生和修改学生,还可以对学生信息进行管理。实现效果如图4.3所示。
在这里插入图片描述

                       图4.3梦想启航学生信息管理页面

部分代码如下:
@RequestMapping(value="/addstu")
public String addstu(Stu stu,HttpServletRequest request) throws Exception{
stuService.insertStu(stu);
stu=new Stu();
return this.list(stu, request);
}

@RequestMapping(value="/toupdatestu")
public String toupdatestu(int id,HttpServletRequest request) throws Exception{
	Stu stu=stuService.queryStuById(id);
	request.setAttribute("stu", stu);
	return "/stu/stuupdate.jsp";
}

@RequestMapping(value="/deletestu")
public String deletestu(int id,HttpServletRequest request) throws Exception{
	stuService.deleteStu(id);
	return "/stu/list";
}

@RequestMapping(value="/updatestu")
public String updatestu(Stu stu,HttpServletRequest request) throws Exception{
	stuService.updateStu(stu);
	stu=new Stu();
	return this.list(stu, request);

4.1.4管理员管理
管理员登录后,可以对管理员进行修改增加和删除。实现效果如图4.4所示。

在这里插入图片描述

图4.4管理员管理页面

部分代码如下:
@RequestMapping(value="/adduser")
public String adduser(User user,HttpServletRequest request) throws Exception{
userService.insertUser(user);
user=new User();
return this.list(user, request);
}

@RequestMapping(value="/toupdateuser")
public String toupdateuser(int id,HttpServletRequest request) throws Exception{
	User user=userService.queryUserById(id);
	request.setAttribute("user", user);
	return "/user/userupdate.jsp";
}

@RequestMapping(value="/deleteuser")
public String deleteuser(int id,HttpServletRequest request) throws Exception{
	userService.deleteUser(id);
	return "/user/list";
}

@RequestMapping(value="/updateuser")
public String updateuser(User user,HttpServletRequest request) throws Exception{
	userService.updateUser(user);
	user=new User();
	return this.list(user, request);
}

4.1.5学生成绩查看
学生登录后,可以对成绩进行查看详情。实现效果如图4.5所示。
在这里插入图片描述

图4.5学生成绩查看页面
部分代码如下:
@RequestMapping(value="/list")
public String list(Course course,HttpServletRequest request) throws Exception{
List list = courseService.queryCourseList(course);
request.setAttribute(“courseList”, list);
return “/course/courselist.jsp”;
}

@RequestMapping(value="/addcourse")
public String addcourse(Course course,HttpServletRequest request) throws Exception{
	courseService.insertCourse(course);
	course=new Course();
	return this.list(course, request);
}

@RequestMapping(value="/toupdatecourse")
public String toupdatecourse(int id,HttpServletRequest request) throws Exception{
	Course course=courseService.queryCourseById(id);
	request.setAttribute("course", course);
	return "/course/courseupdate.jsp";
}

@RequestMapping(value="/deletecourse")
public String deletecourse(int id,HttpServletRequest request) throws Exception{
	courseService.deleteCourse(id);
	return "/course/list";
}

4.1.6学生课程查看
学生登录后,可以在首页点击课程管理按钮,进入课程信息界面,还可对课程进行查询和查看具体信息。实现效果如图4.6所示。
在这里插入图片描述

图4.6学生课程查看页面

部分代码如下:
@RequestMapping(value="/list")
public String list(Course course,HttpServletRequest request) throws Exception{
List list = courseService.queryCourseList(course);
request.setAttribute(“courseList”, list);
return “/course/courselist.jsp”;
}

@RequestMapping(value="/addcourse")
public String addcourse(Course course,HttpServletRequest request) throws Exception{
	courseService.insertCourse(course);
	course=new Course();
	return this.list(course, request);
}

@RequestMapping(value="/toupdatecourse")
public String toupdatecourse(int id,HttpServletRequest request) throws Exception{
	Course course=courseService.queryCourseById(id);
	request.setAttribute("course", course);
	return "/course/courseupdate.jsp";
}

@RequestMapping(value="/deletecourse")
public String deletecourse(int id,HttpServletRequest request) throws Exception{
	courseService.deleteCourse(id);
	return "/course/list";	

4.2 关键技术难点与解决方案
难点:记录请求日志
解决方案:项目开发需要记录日志,也就是记录每次请求的日志,因为Controller层全是用注解接收参数,不引入HttpRequest和HttpResponse对象。这时候遇到一个问题,前端请求的流经过apache tomcat的包装之后不可重复读。也就是说ServletInputStream不可重复读。后来的解决方法就是首先重写ServletInputStream,使其变得可读(使用ByteArrayInputStream),然后重写DispatcherServlet的doDispatch()方法,传入重写之后的流,这样就可读了。

第5章 系统测试
学生管理系统为方便广大校园学生和教师,以方便快捷有效为原则。早在需求阶段测试人员就对需求的覆盖度、数据模型的正确性都进行了相应的验证测试,在系统开发过程中进行了单元测试,在集成阶段进行了集成测试,在整个系统开发完成后又针对功能性方面进行了系统测试。由于论文字数章节有限,下面主要围绕功能测试用例和测试总结两个方面进行说明。
6.1 功能测试
本系统对学生、管理员两个核心模块进行了功能测试,测试设计如下所示:
(1)学生登录模块功能测试
学生功能测试包括普通用户注册、登录、搜索课程、搜索成绩、查看课程、查看成绩。测试用例设计如表5.1所示。
表5.1 用户功能测试用例
用例编号 测试用例描述 操作过程及数据 预期结果 测试结果
D001 用户注册 填写用户名、密码、性别、手机号等信息,点击“确定” 提示注册成功 通过
D002 用户登录 页面的相关信息进行填写用户名和密码 提示登录成功 通过
D003 用户名与密码不符合 输入的用户与密码不一致,其余选项正常填写 提示用户或密码有错误 通过
D004 显示主页 用户登录成功后显示主界面 跳转到欢迎界面 通过
D005 重新填写注册信息 点击“重置” 页面回到初始状态 通过
D006 输入课程名称 点击课程搜索 页面显示按条件搜索的课程 通过
D007 输入学科和成绩 点击搜索 显示学生这个学科的具体成绩 通过
(2)管理员管理模块功能测试
管理功能测试包括管理员管理、学生管理、课程管理、成绩管理。测试用例设计如表5.2所示。
表5.2 管理员功能测试用例
用例编号 测试用例描述 操作过程及数据 预期结果 测试结果
D001 正确填写用管理员登录信息 按照系统要求填写管理名、密码、密码提示问题等信息点击“确定” 系统提示登录成功 通过
D002 注册用户管理 在用户列表中修改和删除用户信息 系统提示用户已经删除或者已经修改 通过

续表5.2管理员功能测试用例
用例编号 测试用例描述 操作过程及数据 预期结果 测试结果
D003 添加学生信息 添加学生信息 系统提示添加成功,界面显示新添加学生信息。 通过
D004 删除学生 点击删除学生按钮 系统显示删除成功 通过
D005 添加课程 添加课程信息 系统提示添加成功,界面显示新添加课程信息。 通过
D006 添加成绩 添加学科考试成绩 系统提示添加成功,界面显示新添加成绩信息。 通过

6.2 测试总结
经过对系统进行有效的测试和修改,保证系统具备较好的稳定性和可用性。测试结束后,在测试总结中通过按等级统计、按类型统计对测试情况进行了客观的统计和分析,具体如图5.1-5.2所示。
按等级统计bug的结果,如图5.1所示。
在这里插入图片描述

图5.1 按等级统计bug数
按类型统计bug的结果,如图5.2所示。
在这里插入图片描述

图5.2 按类型统计bug数
由上面统计图的结果可以看出,学生管理系统功能测试有多出Bug,需要对功能进行修改,确保每个功能按键都好使,满足项目需求。性能和可用性bug较少,基本满足项目需要。通过多次修改后,bug逐渐减少,从而使系统更好用,性能更稳定,以后开发其他软件的时候,要尽量避免功能上的bug让软件性能有所提高。

第6章 结论与展望
本系统在当今信息化时代是非常方便有效的,以前在纸上记录学生成绩和学生课程安排的方法在当今社会是不适用的,浪费了大量的人力财力,使用大量的纸张,破坏环境,而且也容易出错,不能随时的查询成绩,也不能随时查询自己的课程信息。这种传统的管理方法必然被以计算机为基础的信息管理系统所代替。运用该系统可以有效的方便老师同学查看成绩,可以让学生随时的进行模拟考试并且查看成绩查看课程信息,更好的进行复习。学生查询考试成绩也不用找到老师查看成绩单,可以登录网站进行查询。运用梦想启航学生信息管理维护系统可以减轻学院教学人员的工作量,缩小开支,提高工作效率与准确率,能够节省时间,还能使学生更好的查看自己的成绩变化。
经过三个多月的开发和设计,翻阅了大量的书籍和搜索了很多的网络资料,基本上完成了梦想启航梦想启航梦想启航学生信息管理系统的基本功能。本系统分为三种用户,三种用户各自有各自的功能,学生可以查询课程安排和查询成绩,老师可以对学生进行成绩管理,梦想启航学生信息管理和课程管理,而管理员可以进行学生和管理员管理。根据需求对业务和用例上进行了分析,在系统设计方面对数据库和系统的功能做了详细的设计分析,以及系统中技术难点进行关键性的分析,另外选择的框架类型进行了对比,在多方面考虑下选择了spring+springmvc+mybatis框架。在系统实现方面,以系统的核心模块为例阐述了系统的具体实现过程。通过本文研究的内容,能够减轻学校很大的重复性的工作,大大提高工作的效率。
但是由于毕业设计时间较短,加之本人水平所限,此系统只能初步运用JSP强大功能的小部分,界面的美观程度并不是很高,系统的兼容性也没有达到可以在任意浏览器上都可以准确呈现,以及对系统的数据保护和系统的维护未进行更好的处理,因此在设计过程中可能会有一些令人不满意的地方,这有待于以后进一步完善和不断的学习。

参考文献
[1]石敏力. 梦想启航学生信息管理系统的设计与实现[J]. 科技讯,2017,15(12):15-15.
[2]章伟, 韩笑, 刘振源. 基于JAVA EE的高校梦想启航梦想启航梦想启航学生信息管理系统的设计与实现[J]. 电脑知识与技术, 2016, 12(8):95-96.
[3]蔡长安, 王琪. 基于B/S模式的梦想启航梦想启航梦想启航学生信息管理系统设计与实现[J]. 计算机工程与设计, 2016, 27(14):2585-2587.
[4]李淑华.从Java Web应用到Web挖掘[J].软件,2016,37(7):132-134.
[5]何栋.基于JSP语言的网站设计[J].电脑知识与技术,2014,(23):42-48.
[6孙红丽. 基于JSP的梦想启航梦想启航梦想启航学生信息管理系统设计与实现[J]. 智能计算机与应用, 2017(2):108-109.
[7]李枭, 任维政. 基于SpringMVC的多平台J2EE开发方式研究[J]. 吉林大学学报(信息科学版), 2017, 35(5).
[8]赵璘, 王红霞. 基于Spring MVC+JDBCTemplate的Web系统的研究与应用[J]. 软件工程, 2017, 20(1):5-8.
[9]汪迎春.基于JavaScript技术的网页课程设计项目设计[J].信息与电脑(理论版),2013,(10):12-13.
[10]马骁.基于JSP技术的梦想启航梦想启航梦想启航学生信息管理系统的设计与实现[J].信息技术与信息化,2015,(11):54-58.
[11] Hohzaki R, Maehara H. A single-shot game of multi-period
inspection[J].European Journal of Operational Research, 2010, 207(3): 1410-1418
[12] Yirong Shen, Yongjin Zhang, Jiancang Xie, Rengui Jiang, Hao Han. Study on Rainfall Information Integration System Based on Java Web Start [C]. 2015 International Conference on Network and Information Systems for Computers,2015: 431 - 434.

致 谢
在整个毕业设计的各个阶段我都得到了老师的悉心指导和耐心帮助。毕业设
计是自己在学校完成的自己学业中最后一个由自己设计、架构、开发的一款软件了,虽
然完成了梦想启航梦想启航梦想启航学生信息管理系统的设计与实现,但这不是我的终点,我将继续完善我的系统,做到尽善尽美,为我的大学生涯画上一个完美的句号。在具体实现过程中,我发现了一些错误,例如逻辑思路不够清晰,对用户体验方面没有全面的功能实现,还有界面相对简洁等问题,但我并没有放弃,在老师、同学们的帮助下,我解决了一些困惑和难题,通过自己不断的学习和改进,从而更加完善了我的毕业设计。
在编码的过程中,由于自身的技术有限,也是完成毕业设计的一个难题,但是我没有退缩,通过自己努力查阅书籍和浏览相关技术的网页和博客,解决了自己编码上遇到的难题。在整个项目的开发过程中的的确确的遇到了很多各种各样的问题,自己也学会了如何去应用自己在大学四年积累的知识与技能去解决实际应用中遇到的问题,给自己的未来的职业生涯积累经验,能够更好地应用到工作中去,通过毕业设计的实现,完成了一个学生到社会人的转变,希望自己在未来的工作生涯中走的越来越好,认真的去对待未来的生活。
最后,在整个系统开发过程中,我身边的同学和朋友给了我很多的建议,让我很快确定了系统的业务逻辑。在次我衷心的感谢软件工程系所有的授课老师,你们使本人终身受益。感谢所有关心、鼓励、支持我的家人、亲戚和朋友。

Logo

为武汉地区的开发者提供学习、交流和合作的平台。社区聚集了众多技术爱好者和专业人士,涵盖了多个领域,包括人工智能、大数据、云计算、区块链等。社区定期举办技术分享、培训和活动,为开发者提供更多的学习和交流机会。

更多推荐