2023年11月28日发(作者:)

摘要

随着社会的高速发展与时代的进步,电子计算机开始作为人类第一

生产力,同上世纪第一台电子计算机埃尼阿克占地面积170平方米 、造

48万美元 、耗电150千瓦不一样的是,现代计算机低廉的价格与不到

一平米占地面积的极大优势,进入千家万户为人类提供便利。在看不见

的英特网背后,还有数以亿计的服务器组成这庞大的英特网。在这般现

代化的条件下,各高校对学生信息的管理也是与时俱进,学生管理信息

化更是当前高校管理发展的趋势。本系统就是为学生信息管理而开发设

计,基于 Spring + SpringMVC + Mabatis 简称 SSM 三大框架设计的

JavaEE 学生信息管理系统。该学生信息管理系统采用 B/S 架构,使用

Eclipse forJavaEE 4.4.2 开发,鉴于目前环境整体兼容性选择采用

MySQL 5.7.25 版本数据库。系统的前台显示效果采用了层叠样式表

CSS),超文本标记语言(HTML,还有脚本语言 JavaScript(JS)

术以及基于 JavaScript 函数库 jQuery 第三方组织所开发的组件库

EasyUI。学生信息管理系统的开发经历了项目开发背景,开发目的和学

生信息管理系统实现意义的分析 系统的分析和设计。该系统重点分析

了用户的需求以及实现方式。

该管理系统主要分为管理员登录子系统模块和学生登录子系统模块。

前台登录页面可选择管理员账号登录或者学生账号登录,输入各自对应

的登录账号密码,选择相应用户权限即可进入系统页面。管理员子系统

功能主要有:用户(管理员)管理,年级信息管理,班级信息管理,学

生信息管理、教师信息管理、课程信息管理、选修课程信息管理七个功

能模块。学生子系统权限不如管理员权限,无法对上述其中五个功能模

块进行修改,只能查看年级信息 、班级信息、教师信息、课程信息,以

及修改自己账号的学生信息和选修课程表。下面本论文将开始详细展示

系统设计开发的过程。

关键词:学生信息管理系统 SSM MySQL 5.7.25 EasyUI

[5][1]

[3]

Abstract

With the rapid development of society and the advancement of the times,

management, teacher information management, course information

management, and elective course information management. The student

subsystem permissions are not as good as the administrator permissions, and

目录

1.绪论 ..................................................... 2

1.1 开发背景 ............................................ 2

1.2 开发目标 ............................................ 3

1.3 开发意义 ............................................ 3

2.技术与工具平台 ........................................... 3

2.1 前端使用技术 ........................................ 3

2.1.1 EasyUI .......................................................... 3

2.1.2 jQuery .......................................................... 4

2.1.3 Ajax ............................................................ 4

2.2 后端涉及相关技术 .................................... 4

2.2.1 Spring .......................................................... 4

2.2.2 SpringMVC ...................................................... 4

2.2.3 MyBatis ......................................................... 5

2.3 项目架构 ............................................ 5

3.系统分析 ................................................. 5

3.1 系统可行性分析 ...................................... 5

3.1.1 技术可行性分析 ................................................. 5

3.1.2 经济可行性分析 ................................................. 5

3.1.3 操作可行性分析 ................................................. 5

3.1.4 法律的可行性分析 ............................................... 6

3.1.5 可行性分析结论 ................................................. 6

3.1.6 开发工具 ....................................................... 6

3.1.7 硬件环境 ....................................................... 6

3.2 系统需求分析 ........................................ 7

4.3 学生信息管理系统数据库的逻辑结构设计 ............... 13

4.3.1 数据库表之间的关系 ............................................ 14

5.系统详细设计 ............................................ 16

5.1 系统总体设计 ....................................... 16

5.1.1 管理员登录子系统模块 .......................................... 17

5.1.2 学生登录子系统模块 ............................................ 18

5.2 系统功能模块设计 ................................... 19

5.2.1 登录子系统页面模块设计 ........................................ 19

5.2.2 管理员登录子系统模块设计 ...................................... 20

5.2.3 学生登录子系统模块设计 ........................................ 45

6.系统实现 ................................................ 49

6.1 管理员登录子系统模块实现 ........................... 49

6.2 学生登录子系统模块实现 ............................. 51

7.系统测试 ................................................ 52

7.1系统功能测试 ........................................ 52

7.1.1 登录子系统页面模块功能测试 .................................... 52

7.1.2 管理员登录子系统模块功能测试 .................................. 53

7.1.3 学生登录子系统模块功能测试 .................................... 57

8.总结 .................................................... 58

参考文献 ................................................. 58

致谢 ....................................... 错误!未定义书签。

1.绪论

1.1 开发背景

随着高等教育体制的不断改革,各级院校关于学生信息如何进行有效管理,实

现学生信息的系统化、科学化、规范化和节省人力资源提高工作效率乃是重中之重。

学生信息管理工作的繁杂程度远超一般所想,因此,我们需要开发设计一款功能简

便人人都容易上手实操的学生信息管理系统

[2]

相较国外发达国家在上世纪七十年代步入信息时代,各种新技术起步比我国早

了十五年的发展时间。在发达国家高校已经拥有较大规模的稳定技术团队为他们提

供校园信息化服务与维护的同个时期,我国刚从沉睡中醒来,集中力量搞信息化建

设。在数字校园理论逐步应用的过程中,硬件、软件、以太网缺一不可,经过无数

掌握用户需求、满足用户需求。在现有校园网网络基础上,实现教务信息的集中处

理、分散操作,使传统的教务管理朝着数字化、无纸化、综合化的方向发展,为未

来实现更加完善的在线教务管理系统打下坚实基础。

[7]

1.2 开发目标

本课题的主要目标是设计与开发出一个基于 SSM 框架的学生信息管理系统,

在以 Tomcat 为应用服务器的基础上,前台通过采用 EasyUI 框架进行页面制作,

通过使用 JavaScript(js) 脚本语言实现动态网站的效果。后台由 MySQL 数据库支

[8]

持,数据库中使用存储过程来完成对表中记录的查询,建立触发器,实现一个表中

的某些记录被删除后,触发器会自动触发,删除相应表中的相关记录。实现对数据库

的操作以完成用户的要求。

1.3 开发意义

本论文选题的意义是设计并实现一个简单实际功能简便的学生信息管理系统,

随着高校规模的不断扩大,港澳台学生、华侨学生、外国留学生、少数民族学生数

量也急剧增加,相关学生信息数据呈指数增长,其数据统计分析工作难度也是日渐

增大。面对如此繁杂的工作,为了给高校学生信息管理者提供高效实用的管理手段

提升工作效率,为学生信息的存储、计算、统计提供一个安全快捷的信息管理数字

化平台,且保证学生数据录入过程的准确性与数据安全性,减少部分不必要的人工

操作,从根源上降低人工操作中由于人为因素而引起的数据错误,使学生管理人员

在日后的管理工作中能够轻松、正确无误地完成。保证信息的准确性和时效性,随

时通过计算机对系统进行管理,使得学生信息处于最新状态,保证统计数据和分析

的准确,体现出现代化学生管理的优势。规范化管理。

2.技术与工具平台

2.1 前端使用技术

本系统使用前端技术是 JSP + EasyUI + jQuery + Ajax

2.1.1 EasyUI

EasyUI 是基于 JQuery 的一个前台 UI 界面插件的集合,虽然它的功能相对没

ExtJS 强大,但它实现的页面布局也是相当入眼,并且同时支持各种主题 Themes

由此更改站点的外观和功能,满足开发人员对于页面风格的不同喜好,节省前台开

人员的设计时间与开发时间。不仅如此,EasyUI 还可以为一些当前用于交互的 JS

应用提供必要的功能,支持通过 JavaScript 方式(如:$('#p').panel({...}) html

记方式(如:class="easyui-panel"进行渲染,是首个完美支持 HTML5 网页的完整

框架。用户还可以根据自己的需求扩展控件,EasyUI 的各项不足之处正以版本递增

的方式不断完善,所以总体来说简单且很强大。

3

2.1.2 jQuery

jQuery 是基于 JavaScript 类库的框架, 它里面提供了许多 JavaScript 类库,

和一些 CSS 样式表的封装,优化 HTML 文档操作、 事件处理,其内置的一批淡

、擦除之类的动画效果,以及制作新效果的工具包,为动画设计提供了便利。此

外它的事件处理 API 消除了经常困扰 Web 开发人员浏览器的不一致性,统一了

[4]

多种浏览器的 Ajax 操作,使得 Web 开发人员更专注于服务器端的开发工作。

jQuery 具有独特的链式语法和短小清晰的多功能接口,其 CSS 选择器高效灵活,

并且可以对 CSS 选择器进行扩展,此外还拥有便捷的插件扩展机制和丰富的插件

(例如 EasyUI )满足开发人员实现客户需求工作。

2.1.3 Ajax

Ajax (“Asynchronous JavaScript And XML”)不是一种新的编程语言,而是一种用

于创建更好更快以及交互性更强的Web 应用程序的技术,是异步 JavaScript

XML 的简称。通过在后台使用 JavaScript 向服务器提出请求并处理响应而不阻塞

用户的核心对象 XMLHttpRequest Web 服务器进行少量的数据交换通信,使网

页实现异步更新,在不重新加载整个网页的情况下,对网页页面进行局部实时更新,

提供动态的效果。而不使用 Ajax 技术的传统网页,如果需要更新网页内容,则必

须重新加载整个网页页面,耗耗时力不仅降低用户上网体验,对 Web 开发人员测

试人员的忍耐力也是一种别样的考验。因此 Ajax 技术无刷新更新页面,减少用户

实际和心理等待时间,从正面上最直接的给予用户良好的使用体验。

2.2 后端涉及相关技术

2.2.1 Spring

在该学生信息管理系统中,我选择使用的是 Spring4.3.9 的版本。此外要注意的

一点就是,Apache Commons Logging 组件中的 g 包对

Spring 来说是必不可少的依赖包。因此我在引入 Spring4.3.9 自身的 jar 包之外,

另外引入了 包以保证后续程序的正常开发。

2.2.2 SpringMVC

SpringMVC 是一种基于 Java 的实现 MVC 设计模式的请求驱动类型的轻量

Web 框架,在 Model View Controller 方面提供了一个非常清晰的角色

划分。而且提供了大量控制器接口和实现类,开发人员可以根据具体需求选择使用

Spring 提供的控制器实现类,也可以自己实现控制器接口。但在该学生信息管理系

统的开发设计中,SpringMVC 作为 web 层框架使用,实现最基本的 MVC 模式的

分层设计结构,通过依赖 这个包自动引用其他

4

Spring 框架需要的库。

2.2.3 MyBatis

考虑到 MyBatis 框架跟 Spring 框架不同版本之间的兼容性,想使二者无缝整

合不报错,需要二者相互对应的版本,在此项目系统中我选择引入

2.3 项目架构

该学生信息管理系统是基于 Spring4.3.9SpringMVC4.3.9MyBatis3.4.4 三大

框架的整合框架 SSM 来设计与实现的平台。这三大框架之间的关系图如图2-1所示。

2-1 SSM三大框架关系图

3.系统分析

3.1 系统可行性分析

3.1.1 技术可行性分析

前端技术使用的是 JSP + EasyUI + jQuery + Ajax,技术上同 MySQL 数据库结

合,在技术方面完全可行,可以实现想要的系统功能。

3.1.2 经济可行性分析

本系统开发所使用的软件 Eclipse jdkTomcat mysql Navicat Premium

是从网上下载的开源免费工具,于自己本机使用,在经济上成本几乎为零,所以在

经济上是完全可行的。

3.1.3 操作可行性分析

个人电脑十分普及的现在,Windows 系统高达87.83%的市场占额,庞大的市场

占有率使得用户对 Windows 系统的使用异常熟悉。本学生信息管理系统的使用操

5

作建立在Windows系统之上,简单直接快捷,系统页面设计十分的人性化,任何操

作人员都可以快速上手使用,即便是从未接触过电脑的部分学生群体,进行简单培

训即可进行上手操作。因此在操作上是没有问题的。

3.1.4 法律的可行性分析

本系统的开发从系统设计到框架设计再到程序的面向对象编程,借鉴了部分开

源项目素材辅助开发完成,只用于本人毕业设计作品,不用于商业盈利目的,不存

在侵权行为。符合法律要求,有法律上的依据,故在法律上是可行可实施的。

3.1.5 可行性分析结论

学生信息管理系统的开发方便了学校管理统计在校学生信息,在一定程度上保

证学生信息数据的安全性和完整性,使学生管理人员能够轻松,正确无误地完成各项

工作,为学生管理工作服务。在技术上使用的是当前流行的热门技术框架,以保证

高效率;经济支出这方面的开发成本几乎不存在,操作简单直接明了且便捷,法律

有依有据。根据以上分析,该学生信息管理系统的开发条件满足,实施方案切实可

行。

3.1.6 开发工具

3-1 软件基本信息表

序号 名称 版本 备注

1 1909教育版 操作系统

2

3

4

5

6 12

Windows10

mysql

jdk 开发环境

Tomcat 服务器(容器)

Eclipse for javaee

Navicat Premium 12

5.7.25

1.8.0_181

8.5.45

4.4.2 JavaEE 开发工具

数据库

Mysql 数据库可视化

工具

3.1.7 硬件环境

3-2 硬件信息表

序号 名称 配置 备注

1

CPU

酷睿 i5-6300HQ

2.30GHz

6

2

内存

DDR4 2133MHz 16G

3 存储盘

系统盘256G固态硬盘ssm学生信息管理系统

+1T机械硬盘+500G源代码保存在固态硬

态硬盘 盘上

4 显卡

英伟达GTX960M

2GDDR5

3.2 系统需求分析

本系统是基于 SSM 开发设计完成,采用 Spring + SpringMVC + Mabatis 三大

框架和 web 设计开发。学生信息管理系统的主要目的是为了学校教师、学生,帮助

老师实现更好的学生管理,学生更加顺利的课程学习。系统设计简单、灵活且直观。

详细功能模块有:

1 用户(管理员)信息管理:编辑系统管理员权限账号。

2 年级信息管理:编辑年级信息。

3 班级信息管理:编辑班级归属年级。

4 学生信息管理:编辑学生私人信息与归属班级。

5 教师信息管理:编辑教师信息,让学生可以方便联系到相应教师。

6 课程信息管理:编辑学生可选修的课程数据。

7 选课信息管理:编辑学生已选的选修课程。

3.3 系统总体分析

学生信息管理系统主要由俩个子系统组成,分别是管理员登录子系统和学生登

录子系统,在登录页面可选择登录账号的权限。其中,管理员登录可以直接进入系

统后台,可以对用户信息、年级信息、班级信息、学生信息、教师信息、课程信息、

选课信息管理模块进行编辑管理,具体如下图 3-1 管理员登录子系统模块用例图所

示。学生登录后权限跟管理员不一样,首先学生用户没有管理用户的权限,此外对

于年级、班级、教师、课程信息这四个学生权限只能查看,不能新增和编辑。且出

于个人隐私保密等缘故,在学生信息中只能查看和修改自己的信息,不能看到别人

的信息。但在选课信息模块具有跟管理员相同的功能权限。具体如下图 3-2 学生登

录子系统模块用例图所示。

7

由于该学生信息管理系统不同于电商交易平台系统,除去相同的系统管理员之

外不存在什么非注册用户与注册用户之分,只有系统管理员帮忙登记注册的用户才

可进行登录操作,对外没有注册接口,从根源上杜绝了外界不必要的安全隐患,做

到一个学生账号对应一个在校学生。因此,外来非本校人员无法使用该系统。

3-1 管理员登录子系统模块用例图

3-2 学生登录子系统模块用例图

4.数据库设计

4.1 数据库概念设计

设计数据库是 web 系统应用的重要设计步骤,不仅要考虑数据存储的安全性,

最大限度使得数据得到安全有效的访问。并且数据库表之间的结构要进行主外键相

互关联,让表与表的数据逻辑关系得到很好的关联。因此,我根据该系统的业务功

能与实际情况设计数据库表,尽可能的贴近功能需求,建立冗余较小、结构合理的

数据库。

本系统在遵循数据库设计范式的基础上结合实际功能需要,设定了如下数据库

设计规则:

1)每张数据库表必须存在主键且为自增。

2)在贴近功能需求的基础上,允许数据库表的部分数据冗余。

3)数据库表中的每条数据记录必须是唯一。

4-1 4-7 均为本系统的实体关系 E-R 图(Entity-Relationship 实体-

关系),主要反映了本系统中各个实体与对象属性相互之间的关系。本系统存在的

实体主要包括管理员、年级信息、班级信息、学生信息、教师信息、课程信息、选

课信息。

4.1.1管理员 E-R

9

4-1 管理员 E-R

4.1.2年级信息 E-R

4-2 年级信息实体 E-R

4.1.3班级信息 E-R

10

4-3 班级信息实体 E-R

4.1.4学生信息 E-R

4-4 学生信息实体 E-R

4.1.5教师信息 E-R

4-5 教师信息实体 E-R

4.1.6课程信息 E-R

4-6 课程信息实体 E-R

4.1.7选课信息 E-R

4-7 选课信息实体 E-R

4.2 实体属性

1)管理员信息:管理员包括用户ID、管理员的用户名(登录ID)和管理员的

登录密码。管理员的用户名(登录ID)和登录密码由数据库管理员提前设置好,不

需要管理员自己进行注册。用户ID作为主键自增。

2)年级信息:年级信息包括年级序列ID、年级名和年级备注信息。年级序列

ID作为主键自增。

3)班级信息:班级信息包括班级序列ID、班级名、班级所属年级以及备注信

息。班级序列ID作为主键自增。班级所属年级跟年级名进行主外键关联。

4)学生信息:学生信息包括学生序列ID、学生姓名(学生登录ID)、登录密

码、性别、所属班级、学号、头像和备注信息。学生序列ID作为主键自增。学生所

属班级跟班级名进行主外键关联。

5)教师信息:教师信息包括教师序列ID、教师姓名、性别、联系手机、备注

信息。教师序列ID为主键自增。

6)课程信息:课程信息包括课程序列ID、课程名称、授课教师、上课时间、

备注信息。课程序列ID作为主键自增。授课教师与教师姓名进行主外键关联。

7)选课信息:选课信息包括选课序列ID、选课原因、选课学生、选修课程。

选课序列ID为主键自增,选课学生与学生姓名、选修课程与课程名称都进行主外键

关联。

4.3 学生信息管理系统数据库的逻辑结构设计

在此将实体与实体间的关系抽象成相对应的数据表,可以方便的映射到功能业

13

务层当中的各个实体类,因此本小节将对本系统几张数据库表进行阐述说明。

4.3.1 数据库表之间的关系

4-5 数据库表之间的关系

管理员信息表(user):用于存储管理员登录账号的信息,对应管理员实体类 entity -

User。其设计如下表 4-1 所示

字段 含义 类型 长度 是否为空

id int 11 no

username 管理员登录ID varchar 32 no

password 管理员登录密码 varchar 32 no

用户序列(PK

)

4-1 管理员信息表

年级信息表(grade)用于存储年级信息,对应年级实体类 entity Grade 其设计如

下表 4 -2 所示

字段 含义 类型 长度 是否为空

id int 11 no

name varchar 32 no

remark 备注 varchar 512 no

年级序列(PK

)

年级名

4-2 年级信息表

14

班级信息表(clazz):用于存储班级信息,对应班级实体类 entity Clazz。其设计如

下表 4-3 所示

字段 含义 类型 长度 是否为空

id int 11 no

gradeId int 11 no

name 班级名 32 no varchar

remark 512 no varchar

班级序列(PK

)

所属年级名

备注

4-3 班级信息表

学生信息表(student):用于存储学生信息,对应学生实体类 entity Student

设计如下表 4-4 所示

字段 含义 类型 长度 是否为空

id 11 no

clazzId 所属班级名 int 11 no

sn 学号 32 no varchar

username 32 no varchar

password 32 no varchar

sex 学生性别 8 no varchar

photo 学生头像 128 no varchar

remark 512 no varchar

学生序列(PK

int

)

学生登录ID

学生登录密码

备注

4-4 学生信息表

教师信息表(teacher):用于存储教师信息,对应教师实体类 entity Teacher。其

设计如下表 4-5 所示

字段 含义 类型 长度 是否为空

id 5 no

name 教师姓名 varchar 32 no

sex 教师性别 varchar 5 no

mobile varchar 12 no

remark varchar 512 no

教师序列(PK

int

)

教师联系手机

备注信息

4-5 教师信息表

课程信息表(course):用于存储课程信息,对应课程实体类 entity Course。其设

计如下表 4-6 所示

字段 含义 类型 长度 是否为空

id 11 no

name 课程名称 varchar 32 no

teacher_id int 5 no

course_date varchar 32 no

remark varchar 512 no

上课时间

备注信息

选课信息表(selectedcourse):用于存储选课信息,对应选课实体类 entity

SelectedCourse。其设计如下表 4-7 所示

字段 含义 类型 长度 是否为空

id 5 no

name varchar 128 no

student_id int 5 no

course_id int 5 no

选课序列(PK

int

)

选课原因

选课学生

选修课程

4-7 选课信息表

5.系统详细设计

5.1 系统总体设计

由下图 5-1 可知,学生信息管理系统主要分为管理员登录子系统模块和学生登

录子系统模块俩部分。管理员登录子系统模块详细划分图如图 5-2 所示,学生登录

子系统模块详细划分图如图 5-3 所示。

5-1 学生信息管理系统模块划分图

16

5-2 管理员登录子系统模块详细划分图

5-3 学生登录子系统模块详细划分图

5.1.1 管理员登录子系统模块

1)用户(管理员)信息管理

用户信息管理模块包括用户名(系统登录ID)和密码。管理员可以管理系统用

户信息,有整个系统的最高权限,支持对用户(管理员)信息进行修改,其中包括

增加用户(管理员)、删减用户(管理员)、查找用户(管理员)、修改用户(管

理员)信息的功能。

17

2)年级信息管理

年级信息管理模块包括年级名跟备注信息。管理员可以对年级信息进行修改,

其中包括增加年级信息、删减年级信息、查找年级信息、修改年级信息的功能。但

是当某个年级底下存在班级信息存在学生信息的时候,管理员无法对其进行删除操

作,但可以进行其他操作,保证学生信息不因管理员的人为失误而丢失。

3)班级信息管理

班级信息管理模块包括班级名、班级的所属年级与备注信息。管理员可以对班

级信息进行修改,包括增加班级信息、删减班级信息、查找班级信息、修改班级信

息的功能。同年级信息一样,某个班级信息底下存在有学生信息,管理员无法对该

班级进行删除操作,可以进行其他操作。

4)学生信息管理

学生信息管理模块包括头像、学生姓名(学生登录ID)、自动生成的学号、性

别、学生所属班级、学生登录密码和备注信息。管理员可以对学生信息进行修改,

包括增加学生信息、删减学生信息、查找学生信息、修改学生信息的功能。

5)教师信息管理

教师信息管理模块包括教师名、性别、联系手机跟备注信息。管理员可以对教

师信息进行增加、修改、删除操作,这里没有做搜索模块。不过数据库教师信息表

被课表外键链接,当前老师有所负责课程信息的话,管理员无法对其进行删除操作,

索其下属班级信息。

3)学生个人信息

学生用户可以更改保存自己的头像照片、学生姓名、登录密码、所属班级、性

别、备注,并实时保存到后台数据库。

4)教师信息

学生用户可以实时看到学校目前在职任教老师的信息,以便在后面完成选课后

可以联系到任课老师,学业方面遇到的难点得到老师的帮忙。

5)课程信息

学生用户可以看到学校目前在线选修课程信息,知晓哪门课程由哪位老师任教,

上课时间与上课地点的安排信息。

6)选课信息

学生用户可以添加学生的选课,包括修改、退选操作。

5.2 系统功能模块设计

5.2.1 登录子系统页面模块设计

用户在登录页面输入登录ID和密码后,系统将对用户输入的登录ID和密码与后

台数据库表保存的数据进行对比验证。

选择管理员权限登录,假若数据库表不存在用户输入的管理员登录ID,系统返

回“不存在该用户”;假若用户输入的管理员登录ID同数据库表相匹配但登录密码

错误,系统返回“密码错误”;当用户输入的管理员登录ID和登录密码与数据库表

一一匹配无误,则成功登录进入管理员登录子系统页面。

选择学生权限登录,假若数据库表不存在用户输入的学生登录ID系统返回“不

存在该学生”;假若用户输入正确的学生登录ID但密码跟数据库表保存的密码对应

不上,则系统返回“密码错误”;只有用户输入正确的学生登录ID以及登录密码,

才可成功进入学生登录子系统页面。

为有效防止对某一个特定注册用户用特定程序暴力破解方式进行不断的登陆尝

试,在用户输入登录ID与密码之后,还需要手动正确输入随机生成的验证码才可以

进行登录操作,否则系统返回“验证码不能为空”。当用户错误输入验证码,系统

返回“验证码错误”并重新刷新生成一个新的随机验证码,用户需要再次进行输入

正确验证码的操作。

登录流程图如下图 5-4 所示。

19

5-4 登录流程图

5.2.2 管理员登录子系统模块设计

1)用户(管理员)信息管理

1增加用户信息

点击用户列表下方“添加”按钮,在弹出来的选项框分别输入用户名跟密码,

然后点击选项框右下角的“添加”按钮,数据传递到后台与数据库表已有用户名作

比较,若新添加的用户名跟后台数据库表已有用户名重复,则系统返回“该用户名

已存在!”并拒绝存储新添加的重复用户数据,用户得重新更改不一样的用户名再

点击“添加”按钮传递到后台进行判断。当新输入的用户名与后台数据库表已有用

户名不重复的时候系统则提示“添加成功”。如果只单独输入用户名或者密码,又

或者二者都不输入信息直接点击选项框右下角“添加”按钮,则系统提示“请检查

你输入的数据”。如下图 5-5 管理员增加用户信息流程图所示。

20

5-5 管理员增加用户信息流程图

2删除用户信息

选中用户列表中的一行或多行数据,点击“删除”按钮,系统提示“将删除与

用户相关的所有数据,确认继续?”:点击“OK”系统返回“删除成功”,管理员

所选中数据被删除清空;选择“Cancel”,系统退出删除操作,管理员所选择数据

不进行变动。如下图 5-6 管理员删除用户信息流程图所示。

21

5-6 管理员删除用户信息流程图

3查询用户信息

在“用户名:”右边的圆角矩形输入框输入想查询的用户ID,点击“搜索”按

钮。由于后台使用通配符匹配算法,所以可支持模糊搜索。假如用户列表中用户名

存在搜索关键字,则返回相关用户名数据信息并依次排列。假如搜索的关键字不属

于用户列表中的任意一个用户名,则返回空白数据。如下图 5-7 管理员查询用户信

息流程图所示。

22

5-7 管理员查询用户信息流程图

4修改用户信息

管理员同时选中一条以上用户数据点击“修改”按钮,系统返回“请选择一条

数据进行操作!”。选中一条用户数据,点击“修改”按钮,系统弹出一个输入框,

分别输入修改后的用户名跟登录密码,点击“提交”按钮传递到后台,后台判断修

改后的用户名跟后台数据库表已有用户名不重复之后,存储修改后的用户数据并返

回“修改成功!”;若修改后的用户名与已有用户名重复,后台拒绝存储修改后的

用户数据并返回“该用户名已存在!”,用户得重新输入不一样的用户名或者放弃

修改用户名。若用户在输入框只选择修改密码而不修改用户名,点击“提交”按钮,

后台接收修改后的密码数据直接进行存储操作。如下图 5-8 管理员修改用户信息流

程图所示。

23

5-8 管理员修改用户信息流程图

2)年级信息管理

1增加年级信息

点击年级列表下方“添加”按钮,系统弹出一个输入框页面,用户输入必需的

年级名,备注信息这块可输入可不输入,点击输入框右下角“添加”按钮,系统返

回“添加成功!”提示,点击“OK”返回年级信息管理页面。若年级名这块信息不

24

输入直接点击输入框右下角的“添加”按钮,则系统返回“请检查你输入的数据”

后台拒绝添加空白年级信息,点击“OK”返回重新输入年级名或者放弃新增年级信

息。如下图 5-9 管理员增加年级信息流程图所示。

5-9 管理员增加年级信息流程图

2删除年级信息

选择一行或多行年级列表数据,点击“删除”按钮,系统返回“如果年级下存

在班级信息则无法删除,须先删除年级下属的班级信息”,选择“Cancel”则取消

删除操作;选择“OK”,后台判定所选年级信息下属是否存在班级信息,判定存在

班级信息则返回“该年级下存在班级信息,请勿冲动!”,点击“OK”退出删除操

作;判定不存在班级信息则删除所选年级列表数据并返回“删除成功!点击OK

退出删除操作。如下图 5-10 管理员删除年级信息流程图所示。

25

5-10 管理员删除年级信息流程图

3查询年级信息

在“年级名:”右边的圆角矩形输入框输入想查询的年级名关键字并点击“搜

索”按钮,由于后台搜索模块采用通配符匹配算法,可支持模糊搜索。假如数据库

表已有年级名符合搜索关键字,则返回相对应的年级名数据信息并依次排序;若已

有年级名没有符合搜索关键字的,则返回空白数据。如下图 5-11 管理员查询年级

信息流程图所示。

26

5-11 管理员查询年级信息流程图

4修改年级信息

选中年级信息列表数据,点击“修改”按钮,后台判定选中年级数据超过一条,

则返回“请选择一条数据进行操作”,点击“OK”重新选择年级数据。只选中一条

年级数据,点击“修改”按钮,系统弹出修改年级信息页面,分别输入修改后的年

级名和备注信息,点击弹窗页面右下角的“提交”按钮,返回“修改成功!”提示,

点击“OK”返回年级信息列表。如下图 5-12 管理员修改年级信息流程图所示。

27

5-12 管理员修改年级信息流程图

3)班级信息管理

1增加班级信息

点击班级列表下方“添加”按钮,系统弹出添加班级的输入框页面,分别输入

班级名、备注信息,在所属年级下拉框选择班级归属年级,点击输入框右下角的“添

28

加”按钮成功添加班级信息。若不输入班级名而直接点击输入框右下角的“添加”

按钮,系统返回“请检查你输入的数据!”拒绝添加空白班级信息,点击“OK”返

回重新输入班级名。如下图 5-13 管理员增加班级信息流程图所示。

5-13 管理员增加班级信息流程图

2删除班级信息

管理员选中一条或多条班级信息,点击“删除”按钮,系统返回“如果班级下

存在学生信息则无法删除,须先删除班级下属的学生信息”,点击“Cancel”取消

删除操作返回班级列表;点击“OK”则后台进行判断所选中班级下是否存在学生信

息,若存在学生信息则返回“该班级下存在学生信息,请勿冲动!”拒绝执行删除

操作,点击“OK”返回班级列表;若不存在学生信息则执行班级数据删除操作并返

回“删除成功”,点击“OK”返回班级列表。如下图 5-14 管理员删除班级信息流

程图所示。

29

5-14 管理员删除班级信息流程图

3查询班级信息

班级查询不同于用户查询和年级查询,它俩各自只有一个搜索选项,班级查询

可以查找全部的班级,也可单独选择年级进行查询。在“班级名:”右边第一个圆

角矩形输入栏输入想查找的班级关键字,后面的“所属年级:下拉框可以按照“全

部”搜索所有年级下属的所有班级,也可选择特定年级下属班级去查找。同理搜索

模块使用通配符匹配算法,支持模糊搜索。通过关键字匹配搜索到的结果会依次返

回显示并排序,若没有相匹配的结果则返回空白信息。如下图 5-15 管理员查询班

级信息流程图所示。

30

5-15 管理员查询班级信息流程图

4修改班级信息

管理员选中班级列表数据,点击“修改”按钮,后台对选中班级数据量进行判

断,若超过一条数据则拒绝执行修改数据操作并弹出“请选择一条数据进行操作!

若选择一条数据则返回修改班级信息页面,管理员重新输入更改后的班级名,所属

年级可改可不改,备注信息同理,点击修改页面右下角的“提交”按钮。后台判断

重新输入的班级名是否为空值,若为空值则拒绝执行数据库表数据更改并弹出弹框

信息“请检查你输入的数据!”,点击“OK”返回重新输入;若非空则执行数据库

表数据的更新保存操作,并返回“修改成功!”,点击“OK”返回班级列表界面。

如下图 5-16 管理员修改班级信息流程图所示。

31

5-16 管理员修改班级信息流程图

4)学生信息管理

1增加学生信息

点击学生列表下边“添加”按钮,系统弹出添加学生输入框页面。学生姓名跟

登录密码为必填项,二者缺一不可,否则点击输入框右下角“添加”按钮无法成功

更新到后台数据库表。所属班级和学生性别是俩个下拉框选项,学生自己选择相对

32

应的信息。其中所属班级下拉框选项继承于“班级信息管理”模块。备注信息可以

根据学生个人需要选择留空或添加一定数据信息。此外学生信息还有一个头像预览,

系统自带默认头像,也可自己选择喜欢的头像图片执行上传替换操作,头像预览图

会实时更新。当满足上述要求之后,点击输入框页面右下角“添加”按钮,数据库

后台对传递的学生姓名与后台已有学生姓名进行比较,若不重复即可成功添加学生

信息并保存到后台数据库表,若发现同名同姓的情况则拒绝保存新添加的数据并提

“该学生名已存在”请重新输入。如下图 5-17 管理员增加学生信息流程图所示。

2删除学生信息

5-17 管理员增加学生信息流程图

33

管理员选中一条或多条学生信息,点击“删除”按钮,返回“确定删除学生信

息?”,点击“Cancel”取消删除操作并返回学生列表,。点击“OK”执行删除操

作清空后台数据库表相应学生数据并提示“删除成功”点击OK返回学生列表。

如图 5-18 管理员删除学生信息流程图所示。

5-18 管理员删除学生信息流程图

3查询学生信息

查询学生信息同样的可以支持指定班级搜索也可全部班级搜索,“学生名:

右边的圆角矩形输入栏输入想查询的学生名关键字,有通配符匹配算法的存在,可

以通过模糊搜索返回与关键字相匹配的学生信息并根据“所属班级”下拉框选项依

次排列,由此可以知晓特定班级是否存在某人。如下图 5-19 管理员查询学生信息

流程图所示。

34

5-19 管理员查询学生信息流程图

4修改学生信息

管理员选中想修改的学生列表数据,点击“修改”按钮传递到后台,后台判断

所选中学生列表数据是否超过一条,超过一条则拒绝执行修改操作返回“请选择一

条数据进行操作!”,点击“OK”返回,管理员取消超过数目的数据。若只有一条

数据,则执行修改操作,弹出信息修改页面。管理员在页面重新输入修改后的学生

姓名、登录密码、所属班级、学生性别、备注信息,上传新的头像图片,点击页面

右下角“提交”按钮传递到后台。后台进行数据判断,当重新修改的学生姓名与后

台数据库表已有学生名不重复则执行数据保存并返回“修改成功”,若出现重名则

拒绝保存数据并提示“该姓名已存在”,管理员需要重新输入学生姓名。如图 5-20

管理员修改学生信息流程图所示。

35

5-20 管理员修改学生信息流程图

5)教师信息管理

1增加教师信息

管理员点击“添加”按钮,分别输入必填项的教师姓名、教师性别、教师的联

系手机号码,备注信息可选填。点击右下角“添加”提交到后端判断所输入数据是

否符合要求,如果信息有误则返回提示错误信息并重新输入,信息正确则成功添加

到后台数据库 teacher 表并返回“添加成功”如图 5-21 管理员增加教师信息流程

图所示。

36

5-21 管理员增加教师信息流程图

2删除教师信息

管理员选中想删除的教师数据,点击删除,后端判断管理员所选教师数据下属

有无课程信息,如果存在课程信息,则不管管理员选中的教书数据为多少条都提示

“该教师下属存在课程信息”且拒绝执行删除操作。若课程数据不存在,则继续执

行删除,将所选教师的数据从后台数据库教师 teacher 表清空。如图 5-22 管理员删

除教师信息流程图所示。

37

5-22 管理员删除教师信息流程图

3修改教师信息

管理员选中想修改的教师数据,点击修改,后端判断管理员所选教师数据数量,

超过一条则返回报错信息让重新选择一条数据再进行修改。管理员输入修改过后的

数据点击提交,后端判断所提交教师名数据是否为空,是则返回报错并重新输入,

否则将所提交数据覆盖后台数据库表 teacher 对应的数据列。如图 5-23 管理员修改

教师信息流程图所示。

38

5-23 管理员修改教师信息流程图

6)课程信息管理

1增加课程信息

管理员点击添加课程按钮,输入课程名称,下拉框选择授课教师,确定上课时

间,备注信息这块输入上课课室等信息提交。后台判断输入数据是否正确,正确则

将数据成功提交到数据库表 course 中,否则返回错误信息并提示重新输入。如图

5-24 管理员增加课程信息流程图所示。

39

5-24 管理员增加课程信息流程图

2删除课程信息

管理员选中课程数据,点击删除按钮。后台控制器 GradeController 判断管理员

选中的课程数据是否被学生用户所选中,被选中的课程拒绝执行删除操作且返回提

示信息。只有没被学生选修的课程数据才能被正常删除,从后台数据库表 course

清除相应数据。如图 5-25 管理员删除课程信息流程图所示。

40

5-25 管理员删除课程信息流程图

3修改课程信息

管理员选中要改动的课程数据,点击修改按钮,因为系统无法执行批量修改操

作,后台控制器 GradeController 判断选中课程数据数量是否超过一条,超过则返回

报错信息让管理员只选择一条课程数据修改,否则执行修改操作。管理员将修改后

的课程信息提交,后台再次判断所提交的数据是否正确,信息有误则返回相应报错

并重新改动,信息无误则覆盖数据库表 course 相应的课程数据。如图 5-26 管理员

修改课程信息流程图所示。

41

5-26 管理员修改课程信息流程图

7)选课信息管理

1增加选课信息

管理员点击添加按钮,在“选课原因”输入相关信息,“学生”与“课程”俩

个下拉框分别选择相应学生选项与课程项目,点击提交。后台控制器

SelectedCourseController 判断所输入数据是否为空,为空则返回报错信息并重新输

42

入,否则将输入的数据保存到后台数据库表 selectedcourse 中。如图 5-27 管理员增

加选课信息流程图所示。

5-27 管理员增加选课信息流程图

2退选选课信息

管理员选中要退选的学生选课数据打勾后,点击“退选”按钮。系统提示“将

删除所有与选课相关的数据”,点击“Cancel”退出退选操作,点击“OK”执行退

选,将相应的选课数据从后台数据库表 selectedcourse 中删除。如图 5-28 管理员退

选选课信息流程图所示。

43

5-28 管理员退选选课信息流程图

3修改选课信息

管理员选择要修改的选课信息,点击修改按钮,后台控制器

SelectedCourseController 判断选中的选课数据是否超过一条,超过就拒绝进行修改

并返回错误信息让管理员选择一条数据。只选中一条就开始修改操作。管理员将修

改后的数据提交后,后台再次判断提交的数据信息是否正确无误,若数据正确,则

将数据覆盖到数据库表 selectedcourse 对应的数据列中,否则返回报错重新输入。

如图 5-29 管理员修改选课信息流程图所示。

44

5-29 管理员修改选课信息流程图

5.2.3 学生登录子系统模块设计

1)年级信息

查询年级信息

学生在“年级名:”右边的圆角矩形输入栏内输入下查找的年级名关键字,点

45

击“搜索”按钮,后台根据模糊搜索查找数据库表已有年级名信息,将与关键字匹

配的年级信息返回输出并依次排列,若数据库表没有相匹配的年级信息则返回空白

信息。如图 5-30 学生查询年级信息流程图所示。

5-30 学生查询年级信息流程图

2)班级信息

查询班级信息

学生在班级列表信息查询这块同样支持双重查询,可以选择查询所有年级下属

的班级信息,也可以指定查询某个年级的班级信息。操作上跟年级查询相差无异,

不过是多了个“所属年级”下拉框导致输出结果的不同。如下图 5-31 学生查询班

级信息流程图所示。

46

5-31 学生查询班级信息流程图

3)学生信息

修改学生信息

学生在学生列表只能看到自己的信息,选中自己信息点击“修改”按钮,在返

回的修改学生信息弹窗输入想修改的数据,包括学生姓名、登录密码、所属班级、

学生性别、备注信息以及重新上传头像图片,点击右下角“提交”按钮传递到后台,

后台将新传递的学生姓名数据与数据库表已有学生姓名进行比较,若不重复则执行

更改保存操作,并提示“数据修改成功”,若重复则拒绝执行修改,返回报错信息

“该姓名已存在!”,学生需要重新输入数据。如图 5-32 学生修改学生信息流程

图所示。

47

5-32 学生修改学生信息流程图

4)教师信息

学生用户在教师信息界面可以看到管理员添加的学校现在在职老师,以及老师

的联系手机号跟备注信息,无法进行其他操作。

5)课程信息

学生用户在课程信息界面挑选自己感兴趣的课程,包括课程名、课程的授课老

师、上课时间、备注信息(上课地点)方便在选课页面直接添加自己喜欢的课程。

这个界面学生同样无法进行其他操作。

6)选课信息

48

学生用户在这里拥有跟管理员同样的用户权限,这里就不做详细介绍了。

6.系统实现

本章会结合第四章数据库设计和第五章系统详细设计的内容,在项目开发中运

用软件工程理论针对系统的功能需求进行设计并开发实现。从用户功能模块方面,

总体划分为管理员登录子系统模块与学生登录子系统模块,两个大模块被整合在同

一个架构体系上,因此部分功能类的实现具有相似性。并且本章节不会展示相关的

业务实现代码,但会通过阐述相关的实现逻辑来说明实现的方式。

6.1 管理员登录子系统模块实现

系统的表现层,也就是 jsp,归属于 View 层,此层与控制层 Controller 紧密

结合,需要二者合作协同开发页面。View 层主要负责前台 jsp 页面的表示,是用

来存放静态页面跟静态资源的,其中管理员登录子系统模块最主要的静态页面和相

关说明如下

:用户登录页,用户的登录页面。

:子系统页面左侧的菜单栏。

user_:用户(管理员)主页,用于编辑管理员账号信息。

grade_:年级信息页,用于编辑年级信息。

clazz_:班级信息页,编辑班级信息。

student_:学生信息页,编辑学生信息。

teacher_:教师信息页,编辑教师信息。

course_:课程信息页,编辑可选课程信息。

selectedcourse_:选课信息页,编辑学生选课信息。

上述九个页面主要通过 EasyUI + jQuery + Ajax 来完成页面布局效果。

通过编写 JavaScript 的相关业务代码,由用户进行相应操作从而向服务后台发送页

面请求,之后由Ajax接收交给后台处理,由视图解析器 InternalResourceViewResolver

进行解析其响应返回的 JSON 数据,获取视图 View,并最终调用

渲染页面,从而实现异步页面动态刷新,满足用户需求。

本系统的服务控制层基于 SSM 框架中的 Spring SpringMVC 框架实现,

中可以细分为 Entity 层、Service 层和 Controller 层,其核心为 Controller 层,主

要解析模型数据视图和控制拦截过滤处理请求,调用 Service 层的接口进而控制业

务流程。Service 层则定义具体的业务模块流程的控制,设计对应的接口及其在 impl

49

中实现接口的所有方法,借此方便被 Controller 层调用相应接口。Entity 层则是存

放系统的实体类,与数据库表中的属性要保持一致。Entity 层是系统服务控制层的

基础,通过一对一的映射数据库各表,完成数据实体的构建。

Controller 层中返回 JSON 数据使用的是 SpringMVC 提供的最为简便的

方式输出数据,就是在方法前使用 @ResponseBody 注解。不过前提是在

文件里面添加

启动所有注解的默认配置。

在管理员登录子系统模块中,Entity 层、Service 层以及 Controller 层出现的主

要类有:

:用户(管理员)类,用于保存用户(管理员)信息。

:年级类,用于保存年级信息。

:班级类,用于保存班级信息。

:学生类,用于保存学生信息。

:教师类,用于保存教师信息。

:课程类,用于保存课程信息。

:选课类,用于保存选课信息。

:用户(管理员)Service 类,定义了对用户信息的操作。

:年级 Service 类,定义了对年级信息的操作。

:班级 Service 类,定义了对班级信息的操作。

:学生 Service 类,定义了对学生信息的操作。

:教师 Service 类,定义了对教师信息的操作。

:课程 Service 类,定义了对课程信息的操作。

:选课 Service 类,定义了对选课信息的操作。

:登录页面 Controller 类,控制与用户登录相关操作逻辑

并响应请求返回 JSON 数据。

:用户(管理员)Controller 类,控制与用户数据增删查改相

关操作逻辑并响应请求返回 JSON 数据。

年级 Controller 类,控制与年级数据增删查改相关操作逻

辑并响应请求返回 JSON 数据。

:班级 Controller 类,控制与班级数据增删查改相关操作逻

辑并响应请求返回 JSON 数据。

:学生 Controller 类,控制与学生数据增删查改相关操作

逻辑并响应请求返回 JSON 数据。

:教师 Controller 类,控制与教师数据增删改相关操作逻

50

辑并响应请求返回 JSON 数据。

:课程 Controller 类,控制与课程信息增删改相关操作逻

辑并响应请求返回 JSON 数据。

:选课 Controller 类,控制与学生选课信息增删改

相关操作逻辑并响应请求返回 JSON 数据。

本系统的数据持久层 Dao 层是基于 SSM 框架的 MyBatis 框架实现,主要用

于对应操作数据库相关的数据表,与上述 Entity 层、Service 层以及 Controller

组成一个完整的后台数据处理体系,其中 Dao 层里管理员登录子系统模块涉及的实

现类有:

:用户(管理员)Dao 类,用于操作 user 表。

:年级 Dao 类,用于操作 grade 表。

:班级 Dao 类,用于操作 clazz 表。

:学生 Dao 类,用于操作 student 表。

:教师 Dao 类,用于操作 teacher 表。

:课程 Dao 类,用于操作 course 表。

:选课 Dao 类,用于操作 selectedcourse 表。

Controller 类的删除功能中,将管理员所选中的数据 ids 使用

方法转换为集合传递到自定义的 ring 方法按照指定的分隔符分割

成字符串返回,再执行 delete 删除方法,根据数据库返回删除的数据条数来判断是

否删除成功。当年级数据被班级数据外键关联则无法成功删除,数据库返回数字0

成功触发 try-catch 返回相应报错信息。

上述便是管理员登录子系统模块的相关实现类和实现方式,通过将抽象的设计

模式具体化,层层分割实现各自的功能,这样增强了代码的解耦性,也使每个类的

功能作用更明确,有助于系统开发人员更好的开发和维护。

6.2 学生登录子系统模块实现

学生登录子系统模块最主要的静态页面和相关说明如下

:用户登录页,用户的登录页面。

:子系统页面左侧的菜单栏。

grade_:年级信息页,学生查找年级信息。

clazz_:班级信息页,学生查找班级信息。

student_:学生信息页,学生编辑自己的个人信息。

teacher_:教师信息页,学生查看教师信息。

course_:课程信息页,学生查看可选课程信息。

selectedcourse_:选课信息页,编辑学生选课信息。

51

系统的服务控制层中,学生登录子系统功能模块主要的实现类有:

:学生类,跟管理员登录子系统模块公用,用于保存学生信息。

:选课类,跟管理员登录子系统模块公用,用于保存选课信

息。

:学生 Service 类,跟管理员登录子系统模块公用,定义了

对学生信息的操作。

:选课 Service 类,跟管理员登录子系统模块公用,

定义了对选课信息的操作。

:学生 Controller 类,跟管理员登录子系统模块公用,控

制与学生数据增删查改相关操作逻辑并响应请求返回 JSON 数据。

:选课 Controller 类,跟管理员登录子系统模块公

用,控制与学生选课信息增删改相关操作逻辑并响应请求返回 JSON 数据。

中设定管理员权限为“userType == 1”,学生权限为

“userType == 2”。因此,我们对于不开放给学生使用的功能模块加上判断语句

test="${userType == 1}"> 即可完成学生登录子系统模块,减少工作量。

在系统的数据持久层中,管理员登录子系统功能模块主要的实现类与学生登录

子系统功能模块的实现类一致。

7.系统测试

7.1系统功能测试

系统功能测试是整个系统开发必不可少的步骤,以此找出问题排除问题。虽然

各个功能模块在开发过程中都进行了模块测试工作,但无法排除所有模块整合到一

块之后系统不出现 BUG 产生意想不到的功能变化。因此,进行系统功能测试是系

统维护的重中之重。该系统的测试用例及结果如下所示。

7.1.1 登录子系统页面模块功能测试

用户登录功能测试(如表 7.1 所示)

7-1 用户登录功能测试表

用例描述 测试步骤 预期结果 实际结果 测试是否通过

能否正常输入登

ID

字符输入功能正字符输入功能正

点击账号输入框,

随意输入字符

52

能否正常输入登

录密码

字符输入功能正字符输入功能正

点击密码输入框,

常且字符不明文常且字符不明文

随意输入字符

显示 显示

点击验证码图片点击验证码图片

后验证码发生更后验证码发生更

验证码模块能否

点击验证码模块

正常更新验证码

输入与验证码图

输入与验证码不

片不一样的验证

一致的字符点击

码能否通过验证

登录

不输入验证码是

否能通过登录验

输入正确的验证

码能否通过登录

验证

登录没有学生权

限的账号

不输入验证码直

接登录

输入正确的验证

码点击登录

登录权限选择学

生,输入没有学生

权限的账号ID

密码,输入正确的

验证码

登录权限选择学

生,输入具有学生

权限的账号ID

密码,输入正确的

验证码

登录权限选择管

理员,输入没有

管理员权限的账

ID跟密码,输入

正确的验证码

登录权限选择管

理员,输入拥有管

理员权限的账号

ID跟密码,输入正

确的验证码

提示验证码错误 提示验证码错误

提示验证码不能提示验证码不能

为空 为空

登录成功 登录成功

提示不存在该学提示不存在该学

登录有学生权限

的账号 录子系统页面 录子系统页面

成功进入学生登成功进入学生登

添加未有的用户

数据

添加已有用户数

修改多条用户数

修改单条用户数

复则修改失败,复则修改失败,

选择添加功能,

别输入用户名与

成功添加 成功添加

密码

选择添加功能,

系统报错,添加失系统报错,添加失

入数据库表已有

的用户名与密码

选中多条用户数

据点击修改

系统报错,修改失系统报错,修改失

修改后的用户名修改后的用户名

跟已有用户名重跟已有用户名重

则修改成功 则修改成功

删除成功 删除成功

选中一条用户数

据点击修改

选中一条或多条

用户数据点击删

搜索用户名

删除用户数据

查询用户数据

搜索成功返回用搜索成功返回用

户信息,搜索失败户信息,搜索失败

返回空白值 返回空白值

2)年级信息管理功能测试(如表 7-3 所示)

7-3 年级信息管理功能测试表

用例描述 测试步骤 预期结果 实际结果 测试是否通过

添加年级信息

成功添加年级信成功添加年级信

成功修改年级信成功修改年级信

选择添加功能,

入年级名跟备注

选中一条年级信

息进行修改

添加班级信息

选择添加功能,

入班级名、备注信

成功添加班级信成功添加班级信

息,选择班级所属

班级

选中一条班级信

息进行修改

选中多条班级数

据进行修改

成功修改班级信成功修改班级信

修改一条班级信

同时修改多条班

级数据

修改失败 修改失败

所选班级下属存所选班级下属存

在学生信息则删在学生信息则删

除失败,否则删除除失败,否则删除

成功 成功

删除班级信息

选中一条或多条

班级信息

查询班级信息

搜索班级信息

搜索成功返回班搜索成功返回班

级数据,否则返回级数据,否则返回

空白值 空白值

4)学生信息管理功能测试(如表 7-5 所示)

7-5 学生信息管理功能测试表

用例描述 测试步骤 预期结果 实际结果 测试是否通过

添加学生用户

添加输入学生姓

名与密码

数据库表已有该数据库表已有该

新添加学生姓名新添加学生姓名

的数据则添加失的数据则添加失

败,否则添加成功 败,否则添加成功

修改头像

选中一条学生数

完成上传操作,完成上传操作,

据,重新上传头像

像预览图实时替像预览图实时替

照片

修改后的学生姓修改后的学生姓

名跟数据库表已名跟数据库表已

7-6 教师信息管理功能测试表

用例描述 测试步骤 预期结果 实际结果 测试是否通过

添加教师

添加成功 添加成功

添加输入教师姓

名、性别、联系手

机、备注信息

选中一条教师数

据修改信息

同时选中多条教

师数据修改

选中一条或多条

教师数据删除

修改成功 修改成功

修改一条教师数

同时修改多条教

师数据

系统拒绝修改 系统拒绝修改

删除教师数据

教师下属有课程教师下属有课程

信息则删除失败,信息则删除失败,

否则删除成功 否则删除成功

6)课程信息管理功能测试(如表 7-7 所示)

7-7 课程信息管理功能测试表

用例描述 测试步骤 预期结果 实际结果 测试是否通过

添加课程

添加成功 添加成功

添加输入课程名、

授课老师、上课时

间、备注

选中一条课程数

据修改信息

同时选中多条课

程数据修改

选中一条或多条

课程数据删除

修改成功 修改成功

同时修改多条选

课数据

同时选中多条选

课数据修改

选中一条或多条

选课数据删除

系统拒绝修改 系统拒绝修改

删除选课数据

删除成功 删除成功

7.1.3 学生登录子系统模块功能测试

1)年级信息查询功能测试(如表 7-9所示)

7-9 年级信息查询功能测试表

用例描述 测试步骤 预期结果 实际结果 测试是否通过

查询年级信息

搜索年级信息

搜索成功返回年搜索成功返回年

级信息,失败则返级信息,失败则返

回空白值- 回空白值-

2)班级信息查询功能测试(如表 7-10 所示)

7-10 班级学习查询功能测试表

用例描述 测试步骤 预期结果 实际结果 测试是否通过

查询班级信息

搜索班级信息

搜索成功返回班搜索成功返回班

级信息,失败则返级信息,失败则返

回空白值 回空白值

3)学生信息修改功能测试(如表 7-11 所示)

7-11 学生信息修改功能测试表

用例描述 测试步骤 预期结果 实际结果 测试是否通过

修改学生自己数

修改后的学生姓修改后的学生姓

名跟后台数据库名跟后台数据库

选中自己数据,

表已有姓名冲突表已有姓名冲突

行修改

则修改失败,反之则修改失败,反之

修改成功 修改成功

4)选课信息管理功能测试(如表 7-12 所示)

7-12 选课信息管理功能测试表

用例描述 测试步骤 预期结果 实际结果 测试是否通过

添加选课

添加成功 添加成功

添加输入选课原

因、选课学生、

修课程

同时修改多条选

课数据

同时选中多条选

课数据修改

选中一条或多条

选课数据删除

系统拒绝修改 系统拒绝修改

删除选课数据

删除成功 删除成功

8.总结

该学生信息管理系统的设计开发与实现是在我的指导老师麦日升老师耐心的指

导下完成的。从一开始完成论文选题后,对单独完成这个毕业设计作品我是心里没

个底气,因为对 SSM 三大框架一无所知,经过在网上疯狂查找相关资料,渐渐理

SSM 三大框架的运行流程、原理,再到能上手使用框架整合开发,这过程的艰

辛无法用言语表达。

由于个人技术水平有限, 功能模块只使用了基本增删查改的数据库语法。在学

生信息管理系统的开发过程中,对过去三年在课堂上听老师所传授理论知识的一知

半解有了新的认知,例如 E-R 图、流程图、用例图、接口之类。以往就是上课听课

课后没去巩固知识点,没有去看相关实例,没参与过项目的开发,缺乏实战经验。

E-R 图来说,曾经对实体类型与属性的概念理解一直处于模糊状态,二者混淆不

清,通过这次毕业设计的开发,顿悟了实体与属性各自的概念与相应联系。又比如

经常听到朋友说的调用接口,我只知道 interface 加类名的一个类叫做接口,而调用

接口类,我不是很明白。后来在这次开发中,疯狂百度谷歌搜索数据资料,这才明

白所谓的调用接口,并非单纯的调用接口类,而是方法,是调用接口里面的数据;

调用别人接口就是访问别人接口路径下封装完成的 json 数据。用一句话来说,纸上

得来终觉浅,绝知此事要躬行。所以说有一些知识点,我们在学习的时候并不知道

它有什么用、可以用在哪里。只有我们在实践中将它予以应用,知道它要怎么用,

才可以正确的理解所学知识点,学有所成大学四年交的学费才物有所值。

实践出真知,这是我此次完成毕业设计作品最深刻的体会。

参考文献

[1]洪植林.基于SSM框架的高校实验室信息管理系统的设计与实现[D].浙江工业大学, 2016.

[2]王得燕, 钱晓忠, 肖颖.基于诊断与改进工作的教务管理系统研究与实现[J].中国职业技术教育,

2017 (11) :76-80.

[3]魏松, 贺丹娜.基于MYSQL的学生信息管理系统数据库设计[J].计算机光盘软件与应用, 2012

(14) :207, 209.

[4]刘林涛,蔡瑜珩.基于Web技术的开放式实验室管理系统的研究与开发[J].实验室科

,2014(4):187-192.

58

[5]李玉凯.基于MVC设计模式的开放实验室管理系统设计与实现[J].信息与电脑(理论

),2015(22):72-74.

[6]郑文捷.高校学生管理信息化平台与服务构建探索[J].宁夏社会科学, 2016 (4) :254-256.

[7]武晋川.学生信息管理系统的现状与改进建议[J].技术与市场, 2016 (1) :118-119.

[8]蔡长征.数据库设计在网站开发中的应用研究[J].科技风,2019(35):80.

59