基于JSP的高校考务管理系统的设计(中期与开题+程序源代码+数据库+说明+外文翻译)

摘  要

随着各地高校招生的日益增加,传统的人工考务管理方法在当下时代背景下,已经无法满足高校管理的需求,因此高校考务管理系统成为高校管理工作中的一个重要的部分,尤其是在学生课程安排、教师教学安排、学生考试安排等多个方面表现十分优异。为了更好地协助高校管理的工作,决定开发一款满足高校需求的高校考务管理系统。

通过调查人工考务管理的方法来分析我们这款高校考务管理系统的所需的功能,并且结合国内其他高校考务管理系统的需求和功能,取其精华,根据当地高校的实际情况最终确定需要开发的功能,并且思考其安全性和可行性。

为了使高校考务管理系统能够安全稳定的运行,且能够便于今后的维护和更新,使用语言为Java,使用Eclipse软件进行开发,为了数据存储的安全考虑,使用MySQL来进行数据的存储。

关键词:高校考务管理系统;Java;MySQL;

Design and implementation of university examination management system based on JSP

Abstract

With the increasing enrollment of colleges and universities around the world, the traditional manual educational administration management methods can no longer meet the needs of college management in the current era. Therefore, the educational administration management system of colleges and universities has become a very important part of college management, especially in many aspects such as student curriculum arrangement, teacher teaching arrangement, student examination arrangement, etc. In order to better assist the management of colleges and universities, it is decided to develop a college entrance examination educational administration system to meet the needs of colleges and universities.

This paper analyzes the required functions of our college entrance examination educational administration management system by investigating the method of manual educational administration management, and combines the needs and functions of other domestic university educational administration management systems, takes its essence, finally determines the functions to be developed according to the actual situation of local universities, and considers its security and feasibility.

In order to ensure the safe and stable operation of the educational administration management system in colleges and universities, and to facilitate future maintenance and update, the language is Java, and Eclipse software is used for development. For the sake of data storage security, MySQL is used for data storage.

Keywords: University examination management system;Java;MySQL;

目 录

第一章 引言

1.1 课题意义

1.2 开发工具的选择

第二章 相关技术

2.1 开发环境介绍

2.1.1 Java 简介

2.1.2 Tomcat 简介

2.1.3 MySQL简介

2.1.4 Ajax简介

2.2 开发工具介绍

2.2.1 Eclipse简介

2.3 框架选择

2.3.1 SSM框架简介

2.3.2 Maven简介

第三章 系统总体设计

3.1 系统需求分析

3.2 系统结构设计

3.3 数据库设计

3.3.1数据库E-R图设计

3.3.2数据库结构设计

3.3.3数据库表创建

3.4 系统详细设计

第四章 系统应用程序设计

4.1 系统各窗体模块组成及实现

4.1.1 登录界面模块的实现

4.1.2 通知公告模块的实现

4.1.3 学生管理模块的实现

4.1.4 教师管理模块的实现

4.1.5 学院信息管理模块的实现

4.1.6 试题管理模块的实现

4.1.7 在线考试管理模块的实现

4.1.8 监考任务管理模块的实现

4.1.9 教程信息管理模块的实现

4.1.10 考试记录功能模块的实现

4.2  用户管理功能的实现

4.2.1 账号注册模块的实现

4.2.2 密码修改模块的实现

4.3  数据库连接的实现

第五章 系统测试

5.1 系统测试方法

5.1.1 系统测试计划

5.1.2 系统测试工具

5.2 系统测试

5.2.1用户登录的测试

5.2.2在线考试的测试

5.2.3修改密码功能测试

5.2.4监考任务功能测试

5.2.5通知公告功能测试

结束语

参考文献

致 谢

第一章 引言

1.1 课题意义

当今社会科技的发展十分迅速,同样的高校开设的课程也在增加,高校考务管理系统已然在高校中占有一席之地,不仅大大缩减了考务管理所需的时间,而且降低了管理人员的负担,便于更好的进行管理,有些高校已经开始使用高校考务管理系统,在学校网站上发布一些通知公告,考试通知,选课通知之类的任务。为了迎合时代的进步,现决定开发一款高校考务管理系统,能够管理考试任务,考试试题等其他基本功能。

开发高校考务管理系统的同时,也能让我们熟悉项目开发的流程,并对系统进行一个需求分析。与此同时,也能对大学所学知识进行一个复习,想要开发一个项目必然需要一些其他知识,尤其是Spring全家桶方面的,能够简化项目开发的难度,哔站是个不错的学习平台。开发项目能培养我们对编程兴趣,对日后工作方向的选择提供一些帮助。

1.2 开发工具的选择

开发语言:Java框架使用SSM,JDK1.8,服务器:Tomcat7,数据库:MySQL5.7,开发软件Eclipse,使用Maven包。

第二章 相关技术

2.1 开发环境介绍

2.1.1 Java 简介

Java是一门面向对象编程语言,保留了C++语言的各类优点,并且摒弃了其多继承和指针等概念。由美国的Sun公司开发,功能强大,适合程序员以更好的思维方式进行编程,其中Java的多态,封装,继承等特性深受程序员的喜爱,尤其是服务器软件开发这方面,有着不可替代的位置。

2.1.2 Tomcat 简介

Tomcat是Apache、Sun和其他几个公司一起开发而成,如今也是开源软件。技术较好,性能稳定,特别是在JSP和Servlet中深受程序员们的喜爱,也是目前主流的web应用服务器。

2.1.3 MySQL简介

MySQL是由瑞典MySQL AB公司开发,是Oracle旗下产品。MySQL是关系型数据库管理系统,使用SQL标准化语言访问数据库,其特点体积小、速度快、成本低,且为开源软件,适合中小型和大型软件的开发。功能强大:对于不同的应用场合,MySQL会从提供的多种数据库存储引擎,用户可以根据实际情况,选择能发挥最高性能的引擎,特别是事务、存储过程和触发器等。MySQL优势如下:

(1)成本低昂:MySQL是开源软件,是完全免费的,直接可以在浏览器中进入官网选择相对应的版本进行下载。

(2)支持跨平台:MySQL支持超过20种以上的开发平台,包括Windows、Linux和Mac等等,在其中一个平台写完程序可以直接拿到其他平台上使用,不会出现更换平台再对程序进行修改的问题。

(3)数据库存储容量大:MySQL数据库的最大有效容量通常是由操作系统对文件大小的限制决定。MySQL表空间的最大容量为64TB,中小型项目的完全是绰绰有余。

(4)支持面向对象:PHP支持混合编程方式。编程方式可分为纯粹面向对象、纯粹面向过程、面向对象与面向过程混合3种方式。

2.1.4 Ajax简介

Ajax全名Asynchronous Javascript And XML,Ajax是web中一种交互性较强的技术,其核心对象是XMLHttpRequest,业务处理的过程中不需要重新刷新前端页面的内容,配合Jquery实现ajax()方法,也因其特性而深受用户们的喜欢。

2.2 开发工具介绍

2.2.1 Eclipse简介

Eclipse是基于Java的可扩展开发平台,附带一个标准的插件集,不仅可以使用Java语言,也能支持C++、PHP等编程语言的插件。Eclipse也是开源软件,且占用的内存相对MyEclipse和IDEA较小。

2.3 框架选择

2.3.1 SSM框架简介

SSM(Spring+SpringMVC+MyBatis)框架集Spring、MyBatis两个开源框架整合而成(SpringMVC是Spring中的部分内容)。Spring负责装配bean,在配置文件中可以指定使用特定参数调用构造方法。SpringMVC负责拦截用户请求,其底层核心内容为Servlet,通过HandlerMapping将客户请求与Controller进行匹配,Controller会执行具体的操作。

2.3.2 Maven简介

Maven是Apache旗下的一个纯Java开发的开源项目,用来帮助开发人员对项目进行构建和管理的依赖,Maven能够下载和管理这些依赖,大大提升项目开发的效率。

第三章 系统总体设计

3.1 系统需求分析

开发的软件为高校考务管理系统,结合高校考务的实际需求,高校考务管理系统需要对学生进行管理,教师进行管理,学院信息管理,班级信息管理,课程信息管理,教程信息管理,监考任务管理,在线考试管理,试题管理,管理员管理以及考试管理。

管理员对系统拥有所有的权限,数据库中有初始账号。

图 3.1 管理员用例图

学生对系统拥有部分权限,满足学生的基本需求。

图 3.2学生用例图

老师拥有相对较高的权限,需要对考试和监考等方面进行管理。

图 3.3 教师用例图

3.2 系统结构设计

高校考务管理系统的详细功能层次图如3.4所示。

图 3.4 功能层次图

高校考务管理系统,在用户成功的登录状况下,可以对各种信息进行管理,与数据库进行交互,从而对数据进行修改,实现数据信息的管理,具体的系统流程图如下3.5所示。

图 3.5 系统总体流程图

用户在登录界面进行登录,输入账号密码,并对其进行验证,登录界面具体流程图如下3.6所示。

图 3.6 登录流程图

管理员如需修改密码,需要提供新密码和重复新密码,对其进行验证后,修改密码成功,具体流程如图3.7所示。

图 3.7 密码修改流程图

用户没有账户,就需要在注册界面进行账号注册,账号注册需要对多个数据进行验证,具体的流程如图3.8所示。

图 3.8 账号注册流程图

监考任务管理功能中,可以对数据进行多项操作,具体的层次结构如图3.9所示。

图 3.9 监考任务功能层次图

教程信息管理功能中,可以对教程信息进行多项操作,具体的层次结构如图3.10所示。

图 3.10 教程信息功能层次图

考试管理功能中,可以对考试方面的信息进行多项操作,具体的层次结构如图3.11所示。

图 3.11 考试管理功能层次图

个人中心功能中,可以对个人信息进行操作,具体的层次结构如图3.12所示。

图 3.12 个人中心功能层次图

3.3 数据库设计

3.3.1数据库E-R图设计

项目总体E-R图设计,如图3.13所示。

用户表E-R图设计,如图3.14所示。

图 3.14 用户E-R图

学院信息表E-R图设计,如图3.15所示。

图 3.15 学院信息E-R图

通知公告表E-R图设计,如图3.16所示。

图 3.16 通知公告E-R图

3.3.2数据库结构设计

在创建数据库表的时候,结合实际情况,最终创建了将近10个table,有些表的属性是类似的,所以只选择了三个table作为代表,将其字段名称和数据类型展示在下列三个表中,所有表中都是以id为主键,在高校考务管理系统中,创建用户的时候也会判断登录名是否重复,否则无法添加。

用户信息表主要用来存放用户的账户和密码,在登录界面、修改密码和注册页面经常使用。

3.1 用户信息表

字段名称

数据类型

字段长度

说明

主键

Id

Bigint

20

Username

Varchar

100

登录名

Password

Varchar

100

密码

Role

Varchar

100

角色

Addtime

Timestamp

添加时间

学院信息表主要用来存放学院各个信息,主要用在学院信息管理模块。

表3.2 学院信息表

字段名称

数据类型

字段长度

说明

主键

Id

Bigint

20

Addtime

Timestamp

添加时间

Xueyuanmingcheng

Varchar

200

学院名称

通知公告表存放高校考务管理系统的相关通知,可以存放考试信息、课程信息之类,主要用在通知公告模块。

表3.3 通知公告表

字段名称

数据类型

字段长度

说明

主键

Id

Bigint

20

Addtime

Timestamp

添加时间

Biaoti

Varchar

200

标题

Jianjie

Longtext

200

简介

Fabushijain

Date

发布时间

Fengmian

Varchar

200

封面

Neirong

Longtext

内容

Clicktime

Datetime

点击时间

Clicknum

Int

11

点击次数

3.3.3数据库表创建

User表的具体创建如下:

代码 1 user表创建

CREATE TABLE `users` (

  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',

  `username` varchar(100) NOT NULL COMMENT '用户名',

  `password` varchar(100) NOT NULL COMMENT '密码',

  `role` varchar(100) DEFAULT '管理员' COMMENT '角色',

  `addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '新增时间',

  PRIMARY KEY (`id`)

)

Xueyuanxinxi表的具体创建如下:

代码 2 xueyuanxinxi表创建

CREATE TABLE `xueyuanxinxi` (

  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',

  `addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',

  `xueyuanmingcheng` varchar(200) DEFAULT NULL COMMENT '学院名称',

  PRIMARY KEY (`id`)

) ENGINE=InnoDB AUTO_INCREMENT=47 DEFAULT CHARSET=utf8 COMMENT='学院信息';

Tongzhigonggao表的具体创建如下:

代码 3 tongzhigonggao表创建

CREATE TABLE `tongzhigonggao` (

  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',

  `addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',

  `biaoti` varchar(200) NOT NULL COMMENT '标题',

  `jianjie` longtext COMMENT '简介',

  `fabushijian` date DEFAULT NULL COMMENT '发布时间',

  `fengmian` varchar(200) DEFAULT NULL COMMENT '封面',

  `neirong` longtext COMMENT '内容',

  `clicktime` datetime DEFAULT NULL COMMENT '最近点击时间',

  `clicknum` int(11) DEFAULT '0' COMMENT '点击次数',

  PRIMARY KEY (`id`))

3.4 系统详细设计

直接使用下载的Maven包,开发之前想好需要什么功能,整理好思绪,首先根据创建的数据库中的表创建相对应的实体类,写封装,构造方法,重写部分方法,并且根据你的功能来写接口类,接口类中写上自己可能用到的方法,接口类写完之后创建接口的实现类,也就是功能的具体实现,重写所有方法,功能模块完成后开始设计主页面,主界面分为三个部分,顶部、左边菜单和右边的功能具体操作部分。左边部分添加点击事件来修改右边部分显示的内容。顶部写上系统名称,通过JavaScript设置一个退出系统方法。

最后写登录界面和登录业务处理界面,创建登录成功跳转主界面,否则返回登录页面的业务处理的JSP文件,登录成功会获取用户名、用户权限等多个信息,并且上传至session中,并且在主页面添加业务逻辑,若获取用户名为null,则跳转至登录页面,防止跳过登录直接访问主页面。主页面的功能模块会根据用户权限返回值来判断该模块是否隐藏。每个功能的展示的页面结构类似,写一次后直接复制粘贴到其他模块中,最好的是单独编写一个类,导入这个包然后多次调用,这样能简化很多代码量,但是本项目是一个功能一个模块,里面包含list。数据库连接池写在常用工具类中,使用时直接调用。功能界面的上方会显示当前的登录名,旁边还有一个退出按钮,用来安全退出系统。

第四章 系统应用程序设计

4.1 系统窗体模块组成及实现

4.1.1 登录界面模块的实现

登录界面需要用户的用户名和密码,没有账号可以根据学生或者教师身份来进行注册,注册成功后,登录一定要勾选管理员、学生或者教师,否则登录失败,不勾选身份登录会有错误提示,登录界面如图4.1所示。

图4.1 登录界面

代码 4 登录业务处理代码

function login() {

$("#loginForm").ajaxForm(

function(res) {

if (role == "" || role == null) {

alert("请选择角色后再登录");} else {

if (res.code == 0) {alert("登录成功");

var username = $('#username').val();

window.sessionStorage.setItem('accountTableName',accountTableName)

window.sessionStorage.setItem('username',username);

window.sessionStorage.setItem('token',res.token);

window.sessionStorage.setItem('role',role);

http(accountTableName+'/session','GET',{},(res2)=>{

if(res2.code == 0){

window.sessionStorage.setItem('userid',res2.data.id);

window.location.href = "${pageContext.request.contextPath}/index.jsp";}});

} else {

alert(res.msg);}}});}

输入账号密码后,通过点击事件来触发login函数方法,通过code的返回值来确定是否登录成功,登录成功后,会弹出登录成功的提示窗,同时跳转到index界面上去。role属性能够判断当前用户的属于什么角色,从而隐藏部分功能。

4.1.2 通知公告模块的实现

点击通知公告后,触发点击事件后,将通知公告的页面加载到展示窗口处,其他区域不变,通知页面下的通知可以添加、修改和删除,添加和修改单独使用一个jsp页面来进行业务处理。添加功能如图4.2所示。也可以根据通知公告的标题来查询你想要查看的公告。

图4.2 通知公告的添加

代码5 根据标题查询代码

function search(){

searchForm = { key: ""};

if($('#biaotiSearch').val() != null && 

$('#biaotiSearch').val() != ''){

searchForm.biaoti ="%" +  $('#biaotiSearch').val() + "%";

}

getDataList();

}

4.1.3 学生管理模块的实现

学生信息管理模块主要有查询、添加、删除、修改等功能,界面图如图4.3所示,添加功能中学号、姓名和密码是必填字段,否则添加失败。

图4.3 学生管理模块

代码6 遍历学生信息代码

for(var i=0;i<dataList.length;i++)

{ //遍历一下表格数据  

Var trow = setDataRow(dataList[i],i);

//定义一个方法,返回tr据 

$('tbody').append(trow);

}

4.1.4 教师管理模块的实现

教师管理模块可以对已有的教师信息进行修改,也可以添加新的教师信息,必填项填完才能添加成功,所有操作只有管理员能进行操作,教师和学生均没有此权限,防止信息被他人盗取。查询教师根据姓名进行模糊查询,也可对教师进行排序,图片名称存入数据库中,图片存在项目中,使用时直接调用数据库的名称就行,如图4.4和4.5所示。

图4.4 教师信息

图4.5 添加教师

4.1.5 学院信息管理模块的实现

学院信息管理模块,可以根据学校情况添加或者修改学园的相关信息。查看院校信息时,可以根据学院的名称进行模糊查询。添加和批量删除功能,查看只能看到学院的名称,功能比较单一,里面没有实装其他内容。具体如图4.6所示。

图4.6 学院信息管理图

代码7 模糊查询功能的实现

searchForm = { key: ""};

if($('#xueyuanmingchengSearch').val()!=null&&  $('#xueyuanmingchengSearch').val() != ''){

searchForm.xueyuanmingcheng="%"+  $('#xueyuanmingchengSearch').val() + "%";

查询功能使用searchForm来实现,searchForm组件依赖于moment,高校考务管理系统查询用到次数较多,searchForm可以有效减少代码量,且尽量使用公共部分逻辑。

4.1.6 试题管理模块的实现

试题管理模块主要是给试卷添加题目,目前本项目只能添加单选题、多选题、判断题和填空题,添加试题的时候要写好题目的内容,如果是多选题还要添加多个选项,同时设置好答案和每题的分数,也可对题目的选项的顺序进行修改。添加成功后,管理人员可以选择某个试卷,点击需修改后,可以对题目的所有内容进行修改。单个题目能放到不同试卷中,可以减少再次添加的时间,提高办事的效率,如图4.7所示。

图4.7 试题管理模块

代码 8 选择题答案判断代码

for(var i=0;i<answerOptions.length;i++){

if(answerOptions[i].value == ruleForm.answer){

answerOptions[i].selected = true

}

4.1.7 在线考试管理模块的实现

在线考试模块主要是来让考务管理人员对试卷进行状态设置,同时设置考试时间,类似于平时线上期末考试,只是本项目只传了个时间参数,并没有进行计时功能的实践,如图4.8和4.9所示。

图4.8 在线考试管理模块

图4.9 修改考试状态

代码9 考试状态设置代码

var nameCell  = document.createElement('td');

nameCell.innerHTML = item.name;

row.appendChild(nameCell);

var timeCell  = document.createElement('td');

timeCell.innerHTML = item.time;

row.appendChild(timeCell);

var statusCell  = document.createElement('td');

statusCell.innerHTML = item.status==1?'启用':'禁用';

row.appendChild(statusCell);  

4.1.8 监考任务管理模块的实现

监考任务管理模块主要是设置监考任务的开始时间和结束时间,能查看监考考试的老师编号和姓名,点击修改便能修改所有信息,防止设置有误不能修改。当然只有管理员才能有此权限,教师只能拥有查看的权限,而学生中该功能是隐藏的。每次监考都是一次任务,管理员可以手动进行任务的排序,甚至删除过期的任务,如果某个任务有特殊要求,可以点击修改,在里面添加你的要求的具体内容,如图4.10和4.11所示。

图4.10 监考任务管理界面

代码10 SQL映射代码

<select id="selectListVO"

resultType="com.entity.vo.JiankaorenwuVO" >

SELECT * FROM jiankaorenwu  jiankaorenwu         

        <where> 1=1 ${ew.sqlSegment}</where>

</select>

<select id="selectVO"

resultType="com.entity.vo.JiankaorenwuVO" >

SELECT  jiankaorenwu.* FROM jiankaorenwu  jiankaorenwu

  <where> 1=1 ${ew.sqlSegment}</where>

</select>

<select id="selectListView"

resultType="com.entity.view.JiankaorenwuView" >

SELECT  jiankaorenwu.*  FROM  jiankaorenwu  jiankaorenwu <where> 1 = 1 ${ew. sqlSegment }</where>

</select>

<select id="selectView"

resultType = "com .entity .view .JiankaorenwuView"  >

SELECT  *  FROM  jiankaorenwu  jiankaorenwu  

<where>  1=1

${ew.sqlSegment} </where>

</select>

图4.11 查看任监考任务

4.1.9 教程信息管理模块的实现

教程信息用来存放一些教程视频和附件,对于教师教学很有帮助,上课前把教学资料上传到高校考务管理系统中,学生用自己的账号下也能看文件,可以自行下载,文件选择如下图4.12所示,添加时要选择你要上传的文件或视频,视频可以在点击播放后播放,如图4.13所示,在新的窗口栏打开,文件也可以直接在线下载。

图4.12 文件选择

图4.13 视频播放

代码11 下载和播放视频

// 下载

function download (fileName) {

var  url  =  baseUrl + fileName ;

Window . open (url) ;

}

//打开新窗口播放媒体

function  mediaPlay ( url ){

//var  url =  baseUrl  +  "upload/"  +  fileName;

Window . open (baseUrl + url);

}

4.1.10 考试记录功能模块的实现

考试记录模块主要用来查询考试的记录,列表中主要存放姓名、考试名称以及分数,在操作栏点击查看详情,能看到考试的所有信息,查询功能只能根据考试名称进行检索,如图4.14所示。

图4.14 考试记录

代码12 Mapper映射

 <select id="selectGroupBy"

resultType="com.entity.view.ExamrecordView" >

select userid,username,paperid,papername,sum(myscore) myscore from examrecord     

        <where> 1=1 ${ew.sqlSegment}</where>

        group by userid,username,paperid,papername  

</select>

4.2  用户管理功能的实现

4.2.1 账号注册模块的实现

注册不同的权限的账号所在位置不同,教师和学生的账号可以直接注册,如下图4.15,注册需要的信息都是必填,其中密码必须保持一致,否则会有错误提醒,管理员不同于学生和教师,必须使用初始账号选择管理员方式登录,在管理员管理中心可以看到账号注册,由于系统比较简陋,只要输入一次就行,并没有验证两次密码是否一致。学生和教师注册账号前会先判断数据库中有没有重复学号,没有重复学号才会调Xueshengcontroller中的insert方法,该方法中又调用了xueshengservice中的继承IService的insert的方法,从而实现账号的注册。

图4.15注册账号页面

  代码13 注册关键代码

public R register(@RequestBody  XueshengEntity  xuesheng){

     //ValidatorUtils.validateEntity (xuesheng);

     XueshengEntity  user =  xueshengService. selectOne (new EntityWrapper <XueshengEntity> (). eq("xuehao",         xuesheng. getXuehao()));

if( user != null ) {

return R.error("注册用户已存在");

}

Long uId = new Date() . getTime() ;

Xuesheng . setId(uId) ;

      xueshengService . insert(xuesheng) ;

      return R . ok() ;}

4.2.2 密码修改模块的实现

管理员、学生和教师修改密码都在个人中心中修改,修改需要原密码和两次一致的新密码,点击提交的时候会根据提交的原密码在数据库中查询是否一致,防止是非本人操作,一致之后才会进行第二步的操作,只要判定密码即可写入数据库,这里对密码没有严格要求。另外修改只能在登录成功后才能修改,不能在登录界面直接修改密码,修改之后必须重新登录。修改页面如下图4.16所示。

图4.16 密码修改页面

代码14 密码修改关键代码

if (validform ()  ==  true) {

if( password  ==  $('#oldPassword') .val() ){

httpJson(accountTableName + "/update","POST",{

Id : updateId,

Mima :  $('#newPassword') .val(),

Password  : $('#newPassword') .val()

},(res)=>{

If ( res.code  ==  0 ){

window.location.href  =  '../../login.jsp';

Alert  ('修改成功,请重新登陆');

}});

}else{

alert('原密码输入错误')

}}  else {

Alert  ("表单未填完整或有错误");

}

4.3  数据库连接的实现

高校教务管理系统的数据库文件存放在MySQL中,而系统中各功能中的查看、修改和删除,账号的的登录都用到了数据库的连接,可以说无处不在。高校教务管理系统中学生在各个功能中只有查看功能,而教师在试卷试题可以修改和删除,其他功能只能查看,只有管理员用户所有都能操作。

使用Maven包和SSM-Spring框架,导入druid的配置文件,加载配置文件,在其中设置数据库账号、密码和URL便能连接,配置文件代码如下:

代码15 数据库配置文件

 <!-- 配置数据源 -->

    <bean name="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">

        <property name="url" value="${jdbc_url}"/>

        <property name="username" value="${jdbc_username}"/>

        <property name="password" value="${jdbc_password}"/>

<!-- 初始化连接大小 -->

        <property name="initialSize" value="0"/>

        <!-- 连接池最大使用连接数量 -->

        <property name="maxActive" value="20"/>

        <!-- 连接池最大空闲 -->

        <property name="maxIdle" value="20"/>

        <!-- 连接池最小空闲 -->

        <property name="minIdle" value="0"/>

        <!-- 获取连接最大等待时间 -->

        <property name="maxWait" value="60000"/>

<property name="validationQuery" value="${validationQuery}"/>

        <property name="testOnBorrow" value="false"/>

        <property name="testOnReturn" value="false"/>

        <property name="testWhileIdle" value="true"/>

数据库使用前有两个步骤:1.导入Druid和mysql数据库驱动依赖包。2. 创建数据源对象并配置基本连接信息。

第五章 系统测试

5.1 系统测试方法

5.1.1 系统测试计划

测试系统之前,得提前做好系统测试计划,得找专门的一个时间对系统进行测试,计划好测试的流程,选择好测试的方法和工具,测试要做到客观、全面,减少错误的发生。

5.1.2 系统测试工具

系统测试工具采用人工测试,人工测试必然是有局限性的,只有经验丰富的软件测试工程师,才能尽可能的全面。也有一些类型的测试通过测试工具来检测。如边界测试、功能测试等。工具测试并不能完成所有类型的测试。因为测试工具的局限性,最终本系统采用人工测试。

5.2 系统测试

5.2.1用户登录的测试

主要进行对用户登录做测试。保证用户信息的准确性、安全性。用户登录测试如表5-1。

表5-1用户登录测试

用例编号

操作描述

输入数据

实际结果

1

进入登录页面,填写用户名但不输入密码,选择管理员。

登录名:abo

Password:null

登录失败

2

在登录界面填写密码但是不输入用户名,选择管理员。

登录名:为空

Password:abo

登录失败

3

在登录页面填写密码和账号,但是密码错误,选择管理员。

登录名:abo

Password:111

登录失败

4

在登录界面输入正确密码,但输入错误用户名,选择管理员。

登录名:abo1

Password:abo

登录失败

5

在登录界面输入正确用户密码,正确用户名,选择管理员。

登录名:abo

Password:abo

登录成功

5.2.2在线考试的测试

完成用户登录之后,选择在线考试添加功能,在线考试添加的测试结果如表5-2所示。

表5-2在线考试添加的测试

用例编号

操作描述

输入数据

实际结果

1

不填考试内容,填写考试时长,考试状态启用。

考试内容:null

考试时长:物理

考试状态:启用

添加失败

2

填写考试内容,填写考试时长填写非数字,考试状态禁用。

考试内容:物理

考试时长:abc

考试状态:禁用

添加失败

3

填写考试内容,填写考试时长,考试状态禁用。

考试内容:物理

考试时长:90

考试状态:禁用

添加成功

5.2.3修改密码功能测试

修改密码测试操作如表5-3所示。

表5-3密码修改测试

用例编号

操作描述

输入数据

实际结果

1

不填写原密码,填写新密码,填写确认密码。

原密码:null

新密码:abo1

确认密码:abo1

修改失败

2

填写原密码,填写新密码,填写错误确认密码。

原密码:abo

新密码:abo1

确认密码:abo2

修改失败

3

填写原密码,填写新密码,不填写确认密码。

原密码:abo

新密码:abo

确认密码:null

修改失败

4

填写原密码,填写新密码,填写确认密码。

原密码:abo

新密码:abo1

确认密码:abo1

修改成功

5.2.4监考任务功能测试

监考任务测试操作如表5-4所示。

表5-4监考任务测试

用例编号

操作描述

输入数据

实际结果

1

不填写任务名称,填写任务开始时间,填写监考老师,填写教师名称。

任务名称:null

任务开始时间:2023-4-13-12:30

监考老师:教师1

监考教室:教室A

添加失败

2

填写任务名称,不填写任务开始时间,填写监考老师,填写教师名称。

任务名称:数学考试

任务开始时间:null

监考老师:教师1

监考教室:教室A

添加失败

3

填写任务名称,不填写任务开始时间,不填写监考老师,填写教师名称。

任务名称:数学考试

任务开始时间:null

监考老师:null

监考教室:教室A

添加失败

4

填写任务名称,填写任务开始时间,填写监考老师,不填写教师名称。

任务名称:数学考试

任务开始时间:2023-4-13-12:30

监考老师:教师1

监考教室:null

添加失败

5

填写任务名称,填写任务开始时间,填写监考老师,填写教师名称。

任务名称:数学考试

任务开始时间:2023-4-13-12:30

监考老师:教师1

监考教室:教室B

添加成功

5.2.5通知公告功能测试

通知公告测试操作如表5-5所示。

表5-5通知公告测试

用例编号

操作描述

输入数据

实际结果

1

填写简介,填写时间,不填写封面,填写内容。

简介:考试通知

时间:2023-4-13

封面:null

内容:准备数学考试

发布失败

2

不填写简介,填写时间,填写封面,填写内容。

简介:null

时间:2023-4-13

封面:图片1

内容:准备数学考试

发布失败

3

填写简介,填写时间,不填写封面,填写内容。

简介:考试通知

时间:null

封面:图片1

内容:准备数学考试

发布失败

4

填写简介,填写时间,填写封面,填写内容。

简介:考试通知

时间:2023-4-13

封面:图片1

内容:准备数学考试

发布成功

结束语

经过这段时间的努力,终于把高校考务管理系统基本开发完成,开发过程中,发现大学期间我们所学的知识只不过是一块开门砖,需要学的还有很多,有些不会的地方基本都是百度慢慢找,百分之九十九的问题都能解决。开发中我就使用了SSM框架技术以及Maven包,我在哔站看了相关的视频之后才决定使用的,开发的过程中对Java语言基础又有了新的认识,比如集合的使用,线程的同步,数据库连接池的使用,实体类基本方法的重写等等,收获颇丰。一步步去理解整个系统的层次结构和逻辑方法,能够培养我们编程的兴趣,化被动学习为主动学习。

当然,高校考务管理系统也存在一些不足,其中UI界面设计一般,并没有那么美观,功能界面过于臃肿,没有再次进行分类,系统个人用户信息存放数据库没有进行加密处理,存在安全隐患,功能方面只能满足考务管理系统的基本需求,而且多个功能的页面展示相似度很高,容易造成视觉疲劳。但总的来说,这次项目开发基本达到预期的效果,也给下次想要开发的项目提供宝贵的经验。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值