基于B/S架构的在线考试系统的设计与实现

前言

  这个是个人Web课程设计,用到的主要是JSP技术并使用了大量JSTL标签,全部代码已经上传到了个人Github仓库里,地址:https://github.com/quanbisen/onlineexam,若是喜欢的话请帮我Mark个Star。
html

  随着计算机软件技术的高速发展,现代社会正快速迈入了一个互联网应用时代,Web应用在各行业都获得了普遍的应用,如小型公司的运销存管理系统,高校的教务管理系统等都是经过B/S架构搭建的Web应用。在过去的几年中,在线考试系统应用在不少行业都获得了普遍的应用,但在教学管理考核中难以普及。所以,本文针对当前在教学考核中遇到的实际题目进行分析,设计出了一款基于B/S架构的教学考核在线考试系统。html5

  本文主要介绍一个经过JSP(Java Server Page)技术和Tomcat服务器搭建的一个在线考试系统的设计与实现。针对目前的教学考核都广泛存在有选择题和判断题,而这两种题型都是有固定的答案形式。本在线考试系统设计成能够录入选择题和判断题,其中使用了MySQL做为系统的数据库支撑,相关的考试题目和角色信息均可以存储在MySQL数据库表中。java

  本在线考试系统的设计主要分为两个角色设计,一个管理者角色管理考试相关的信息(至关于教师),一个考生角色参加管理者发布的考试。其中管理者能够添加、删除、修改和查看考生信息,能够查询统计成绩,能够管理发布考试试题;考生能够查看本人的详细信息而且自定义上传头像信息,能够查询考试信息以及成绩信息,能够参加在线考试。另外,两个角色都提供了修改登陆密码的功能。最后,对本文中设计实现的所需功能进行了功能测试,测试结果代表,该系统能够知足教学考核中选择题和判断题的考核需求。git

  关键词: B/S架构  在线考试  选择题  判断题  JSP github

 

目录数据库

基于B/S架构的在线考试系统的设计与实现 浏览器

 安全

1 绪论 服务器

1.1 背景 网络

1.2 本文的主要工做 

2 系统需求分析 

2.1 系统可行性分析 

l 市场可行性分析 

l 技术可行性分析 

l 应用可行性分析 

2.2 功能需求分析 

l 考生需求 

l 管理者需求 

2.3 非功能需求分析 

4.4.1 界面美观 

4.4.2 操做简单 

4.4.3 多用户在线考核 

4.4.4 运行稳定 

3 系统总体设计 

3.1 整体结构设计 

3.2 业务流程设计 

3.3 系统框架设计 

3.4 主要功能模块设计 

3.4.1 登陆模块设计 

3.4.2 考生管理模块设计 

3.4.3 试题管理模块设计 

3.4.4 成绩统计模块设计 

3.4.5 修改密码模块设计 

3.4.6 在线考试模块设计 

3.4.7 个人信息功能模块设计 

3.5 服务器端设计 

3.5.1 Web服务器设计 

3.5.2 数据库服务设计 

4 系统功能实现 

4.1 服务器框架设计 

4.2 浏览器端框架设计 

4.3 登陆功能模块的实现 

4.4 考生管理功能模块的实现 

4.5.1 修改时修改了考生ID 

4.5.2 分页显示 

4.5 试题管理功能模块的实现 

4.5.1 试题模板的下载 

4.5.2 试题的发布 

4.5.3 已发布试题的删除 

4.6 成绩统计功能模块的实现 

4.6.1 已发布试题的显示 

4.6.2 选择查询已发布的试题的成绩统计 

4.7 修改密码功能模块的实现 

4.8 在线考试功能模块的实现 

4.8.1 考生信息的显示 

4.8.2 浏览器端倒计时的实现 

4.8.3 试题题目的显示 

4.8.4 各个题目的导航 

4.8.5 题目回答的业务处理 

4.8.6 交卷的业务处理 

4.9 个人信息功能模块的实现 

4.9.1 考生我的信息的显示 

4.9.2 上传头像文件成功后的数据库信息更新及原头像文件删除 

5 系统测试 

5.1 测试环境 

5.2 测试内容 

5.3 测试方案及结果 

5.3.1 系统功能测试 

5.3.2 用户体验测试 

6 总结 

参考文献 

 

绪论

1.1 背景

  在十几年前,因为教学资源的缺少,考试的考核大多使用的是人工考试,人工成绩计分,有的贫困山区的学生的考卷甚至是手抄的。但近几年来,我国第三产业发展迅速,尤为软件事业,逐渐出现了一些专业的考试系统软件,这些软件大可能是针对某一行业定制开发的,没法知足其它行业的业务需求;也有一些系统功能相对中庸,只可以适用于一些通用性较强的行业。加上目前我国经济水平的迅速发展,贫困山区的学生的教学资源基本上少数的教学资源仍是可使用到电脑的。考试是教学过程当中的一个重要环节,纸质考试的方式每每令人们受到时间和空间等各类各样的限制,形成不少不利。所以,设计一个在线考试系统能够解决传统的纸质考试中繁琐的人工计分过程,还能够解决教师对学生成绩的统计过程。

1.2 本文的主要工做

  本文主要结合目前国内教学工做中遇到的实际问题以及对软件系统的使用需求,设计了基于B/S架构的在线考试系统。最终开发出一款可以解决当前传统教学考核中选择题和判断题题型考核的人工计分考核的繁琐过程的Web应用。本文涉及的内容主要包括如下几个方面:

  • 对教学考核工做进行需求分析,保证软件系统的功能设计符合用户的使用需求;
  • 根据需求对系统进行总体设计,包括系统的目标设计、数据模型设计、系统功能结构设计等;
  • 根据系统功能进行具体的编码工做;
  • 对系统进行详细测试,确保功能符合当前的设计要求,符合用户使用需求。

系统需求分析

2.1 系统可行性分析

  • 市场可行性分析

  市场可行性分析主要是分析项目在实现后是否可以在市场中获得普遍应用,具有推广价值。本项目的目标用户主要是教育部门或培训机构等具有选择和判断考题题型的传统考核或未从传统考核方式中解脱出来的贫困山区,目前我国正在大力推动城乡一体化措施,贫困地区的教育资源会逐渐获得补充,传统人工考核的繁琐方式将会被逐渐取代。经过本系统能够解决传统的考核方式中人工计分的繁琐任务,具有必定的市场需求和推广价值。

  • 技术可行性分析

  技术可行性是经过对本项目实现所涉及的技术进行系统分析,找出技术难念及解决方案,保证系统在技术实现环节不出现灾难性问题而致使没法继续。本系统主要涉及到的是Web技术,这种技术的应用已经很是普遍,自身有着不少技术解决方案的积累,因此遇到问题应该都能找到不少资料进行查阅。Web技术是传统的B/S架构,它具备稳定性、可扩展性等优势,本项目最终决定选用JSP技术进行具体的实现。

  • 应用可行性分析

  目前我国还具有着传统人工计分的考核方式,教师亟需一种信息技术可以帮助他们解决繁琐的选择判断题型等具有固定答案的试题的批改计分问题,同时信息技术在人们平常生活中也获得普遍的使用,因此不管是管理者仍是考生都对这种软件的管理方式熟悉了。因此,本系统在教育方面可以获得应用,并能解决传统教育考核的人工计分繁琐任务。

2.2 功能需求分析

  在系统中不一样类型的角色有着不一样的功能需求,角色须要完成哪些工做,达到什么样的目标,系统须要分哪些模块去完成等等都是系统需求分析中须要考虑的重要因素,为了充分了解不一样角色对系统的使用需求,我对不一样角色进行了需求分析,主要的功能需求包括如下几个方面:

  • 考生需求

  考生是这个系统中用户量最多的角色,主要经过电脑浏览器进行登陆完成考试,能够查看考试信息、完成的考试的成绩及我的信息。考生的登陆初始帐号统一由管理者进行添加分发,考生经过自行登陆后,能够根据需求决定是否更改登陆的密码,另外还提供一个个性化的我的信息头像上传功能。

  考生角色登陆系统时要求系统界面简单明了,可以符合大部分的考生的操做。关于最主要的考试功能,在考试期间须要能够导航到任意的题目号进行显示,须要能够显示出已经选择了答案的题目的答案而且可以更改原来选择的答案,须要能够在试题计时结束后自动提交试题答案,须要能够在提交试卷时进行试题的得分计算而且可以导航到成绩显示的页面供考生查看。除此,在考试的页面还须要给出适当的提示,如“离开此页面将没有成绩”等提示。大体的功能需求如图2-1所示:

 

  • 管理者需求

  管理者主要须要对整个系统进行管理,须要完成考试的发布和对已发布考试的删除,考生信息的录入、查看、修改、删除。在实际的应用中,通常状况下考生的数量都是大于40我的的,于是有必要在考生管理的页面进行考生信息的分页显示。管理者的须要完成的任务繁多,其中试题的录入这一项工做最为繁琐,所以,须要提供一个excel中间文件完成一次性上传考核的题目。为了保证试题录入的时系统的正确性,提供一个试题的模板给管理者参照录入本身须要考核的题目,而且提供考试相关信息描述的录入,如考试时间,考试的描述(期中考试,期末考试,英语考试,物理考试)。

  在考生管理中录入考生信息完成和考试的发布完成后,考生能够经过登陆系统完成发布的考试,在考生完成了考试后,管理者能够在成绩统计中查询已发布的考试的成绩统计(最高分、最低分和平均分)和未完成考试的考生信息。大体的功能需求如图2-2所示:

 

  注意:除上述的考生角色和管理者角色外,还有一个数据库管理者。数据库管理者是管理者角色用户登陆的管理,本系统的全部数据都存储在数据库中,数据库管理者是整个系统的最高管理者,但不在本系统的设计角色以内。

2.3 非功能需求分析

  基于B/S架构的在线考试系统经过浏览器(Browser)和服务器(Server)交互的方式实现,在登陆、管理、考试这些总体功能的界面应当遵循界面简洁、操做简单的原则,避免繁琐问题给用户增长工做量等,具体的要求包括:

4.4.1 界面美观

  界面是进行人加交互的接口,根据大部分的Web应用的操做方式进行UI的布局设计,具有良好的UI界面是吸引用户使用的最直接因素。所以系统的操做界面总体采用暗淡的黄色背景做为导航栏的显示,黑色的背景做为主要功能的显示。

4.4.2 操做简单

  系统的操做须要同时兼顾管理者和考生的使用需求,同时更要对经常使用功能和易出错功能给与人性化的提示,而且可以拥有操做结果的反馈信息。

4.4.3 多用户在线考核

  本系统是目标用户是教育部门,系统至少须要可以40个考生同时进行在线考试的并发量要求。

4.4.4 运行稳定

  在线考试系统是教育考核的一种新方式,在考核的过程当中必须保证应用的稳定性,避免发生崩溃致使考生须要重复考等故障。

系统总体设计

  根据前期的需求描述要求,本系统的使用主要是PC电脑端,用户能够经过电脑浏览器使用本系统。本系统设计是基于B/S架构下实现的,软件服务器的运行环境为Windows 10专业版、Tomcat服务器、MySQL数据库以及Navicat数据库管理软件;用户运行环境主要是标准的浏览器环境。服务器业务逻辑的处理采用JSP技术实现,用户端的功能显示与功能实现采用HTML5和JavaScript语言实现。详见3-1系统平台记录表:

3-1 系统平台配置表

服务器操做系统

Windows 10专业版

数据库

MySQL 5.7

数据库管理软件

Navicat

Web服务器

Tomcat

客户端浏览器

Edge、Chrome

开发环境

IntelliJ IDEA

开发语言

JSP、JavaScript、HTML五、JSTL

  系统中的考生信息和考试试题对数据的安全性有较高要求,采用B/S架构的应用具备良好的扩展性外,也具备必定的安全性,只有经过登陆验证数据库中的用户表存在用户记录的用户才能进入本系统。

3.1 整体结构设计

  基于B/S架构实现的在线考试系统的总体结构能够划分为数据库服务器,Web服务器(Tomcat)和系统管理功能三大结构。整体架构如图3-1所示:

 

3.2 业务流程设计

  根据需求分析,系统的角色分为管理者和考生两个角色,业务的流程能够分为两个分支,具体的业务流程图如图3-2和图3-3所示:

 

  考生登陆本系统后能够有两个业务流程,一是查看本人的信息是否正确或决定是否个性化上传头像,二是查看管理者发布的试题和查看以前已考的试题的成绩,若是有试题,考生能够开始在线考试,答题完成后能够交卷,交卷完成后能够查看考试的成绩。

管理者登陆本系统后能够有三个业务流程,一是考生信息录入,根据新加入学的学生信息录入本系统,若是录入错误还能够修改删除,二是试题发布,管理者能够根据须要是否下载试题的模板,根据模板的格式录入考题的相关信息,而后添加试题的描述信息和试题的考试时间,最后发布本试题到系统中,三是成绩统计,待试题发布成功和考生登陆系统完成考试后,管理者能够在成绩统计中查看以发布的试题的成绩统计。

3.3 系统框架设计

  系统的使用是经过浏览器访问Web服务器的,系统总体设计分为两个角色,分别为管理者和考生。管理者角色主要提供考生管理、试题管理和成绩统计三大功能模块;考生角色主要提供个人考试、个人信息两大功能模块。

  管理者角色功能框架如图3-4所示:

 

  考生角色功能框架如图3-5所示:

 

3.4 主要功能模块设计

  本系统的设计主要是解决当前传统教学考核中选择题和判断题题型考核的人工计分考核的繁琐过程,主要的功能模块能够分为七大功能模块,分别为系统登陆模块、考生管理模板、试题管理模块、成绩统计模块、修改密码模块、在线考试模块和个人信息模块。

3.4.1 登陆模块设计

  系统登陆模块是本系统的入口,根据需求分析,登陆模块须要提供管理者和考生两个角色进入系统的入口。具体的业务流程如图3-6所示:

3.4.2 考生管理模块设计

  考生管理模块是提供给管理者角色录入考生信息的。在考生管理模块中,管理者能够添加、修改、查看和删除考生的信息。其中查看考生信息时,因为考生的数量通常状况下都会大于40人,因此须要根据考生的id号进行排序而后分页显示。具体的业务流程如图3-7所示:

 

 

3.4.3 试题管理模块设计

  试题管理模块是提供给管理者管理试题发布试题供考生考核的。试题的数量比较多,须要提供模板给管理者批量导入到系统中,于是设计了容许使用Excel文件批量导入。导入过程当中还须要提供发布此次试题的相关信息,如考试的描述和考试的时间限制。具体的业务流程如图3-8所示:

 

3.4.4 成绩统计模块设计

  成绩统计模块是提供给管理者查看试题的考核状况的。根据需求分析,成绩统计须要显示已发布的试题和查询已发布试题的考生考核状况,包括未考的学生,已考学生的分数信息。具体的业务流程如图3-9所示:

 

3.4.5 修改密码模块设计

  根据需求分析,修改密码是两个角色用户都要有的功能,具体的业务流程如图3-10所示:

 

3.4.6 在线考试模块设计

  在线考试模块是提供给考生完成管理者发布的试题考核的。根据需求分析,提供题目导航和已选答案的显示,还有考生我的信息的显示,考试剩余时间的倒计时,其中系统支持选择题和判断题,须要为考生提供的选项选择方式。具体的业务流程如图3-11所示:

 

3.4.7 个人信息功能模块设计

  个人信息模块提供考生核实管理者录入的信息是否有误,有误须要联系管理者修改。此功能模块额外提供了个性化的头像上传功能。具体的业务流程如图3-12所示:

 

3.5 服务器端设计

3.5.1 Web服务器设计

  本系统采用B/S架构实现,采用Tomcat服务器技术和JSP动态Web技术完成本系统的用户的业务处理,只要在局域网内部署Tomcat服务器,局域网内的用户就可使用Web浏览器访问Tomcat服务器了。整个系统的操做请求和返回结果都是经过http方式传送的。

3.5.2 数据库服务设计

  数据库是以必定方式储存在一块儿、能与多个用户共享、具备尽量小的冗余度、与应用程序彼此独立的数据集合。本系统的设计是基于关系型数据库设计的,可使用MySQL开源的关系型数据库。数据库服务设计主要是设计数据实体和数据表。

  • 数据实体设计

  根据系统的需求分析,系统中须要包含的实体对象包括用户、考试和试题,如下是各个实体的E-R图描述:

  用户这个实体包含的信息主要有惟一性ID标识、密码、姓名、性别、考试理由和头像的url,其中用户的角色只有考生包含有所有的属性,而管理者只包含惟一性ID标识和密码。如图3-13所示:

 

  考试这个实体包含的信息主要有惟一性ID标识、考试的描述详细和考试的时间限制。如图3-14所示:

  试题这个实体包含的信息主要有记录号(自动增长)、题目的描述、选项的提供、正确的选项、各自的分值和类型。如图3-15所示:

  • 数据表设计

  本系统采用MySQL数据库做为数据的存储仓库,针对系统中实体对象和须要处理的业务数据要求分析,最终肯定了系统共包含6张数据库表,下面是对这6张数据表的详细说明:

  用户登陆验证表(分别建立了管理者和考生两张表,其中管理者对应administrators表,考生对应users表)如表3-2所示:

3-2 用户登陆验证表(administrators和users)

字段

数据类型

描述

注释

id

varchar(100)

惟一性标识

主键

password

varchar(100)

密码

 

  考生详细信息表如表3-3所示:

3-3 考生详细表users_information

字段

数据类型

描述

注释

id

varchar(100)

惟一性标识

外键

nane

varchar(100)

姓名

不为空

sex

char(10)

性别

不为空

exam_reason

varchar(100)

考试理由

 

picture

varchar(100)

头像url

 

  考试描述表如表3-4所示:

3-4 考试描述表exam_description

字段

数据类型

描述

注释

id

int(11)

惟一性标识

主键自增

exam_description

varchar(100)

描述信息

不为空

exam_time

int(10)

时间限制

单位:分钟

  试题详细信息表如表3-5所示:

3-5 试题详细信息表questions

字段

数据类型

描述

注释

id

int(11)

惟一性标识

主键自增

exam_description

int(10)

考试惟一性标识

外键

question

varchar(300)

题目描述

 

options

varchar(255)

题目选项

 

correct_asnswer

char(10)

正确选项

 

min_score

decimal(5)

分值

 

type

varchar(25)

题目类型

 

  考试记录信息表如表3-6所示:

3-6 考试记录信息表examrecord

字段

数据类型

描述

注释

user_id

varchar(100)

考生惟一性id

外键

exam_description_id

int(11)

试题的惟一性id

外键

total_score

int(5)

试题总分

 

obtain_score

int(5)

考生得分

 

系统功能实现

  本系统的实现是基于B/S架构下的,服务器选用了Tomcat,使用与其配套的JSP Web技术实现了服务端的设计与开发,系统的开发主要是服务器端的开发。因为系统中有大部分的操做是须要进行数据库数据表的查询、添加、修改和查询,所以引用了JSTL来方便服务器端进行数据库的业务逻辑处理。JSTLJavaServer Pages Standard Tag LibraryJSP标准标签库的缩写。

4.1 服务器框架设计

  根据需求分析中角色的分配,本系统的实现内容可分为了三份文件夹和登陆功能实现文件,其中三份文件夹命名为AdministratorStudentsrcJava源文件,处理部分JSTL没法实现的业务处理)。AdministratorStudentsrc文件夹和登陆功能实现文件具体的内容以下表4-14-24-34-4所示:

4-1 Administrator文件夹内容

文件

说明

AdministratorIndex.jsp

管理者角色的首页

GradeStatistic.jsp

管理者角色的成绩统计功能模块实现

QuestionsManagement.jsp

管理者角色的试题管理功能模块实现

StudentManagement.jsp

管理者角色的考生管理功能模块实现

ModifyPassword.jsp

管理者角色的修改密码功能模块实现

4-2 Student文件夹内容

文件

说明

StudentIndex.jsp

考生角色的首页

MyExam.jsp

考生角色的个人考试功能模块实现

MyInformation.jsp

考生角色个人信息功能模块实现

OnlineExam.jsp

考生角色在线考试功能模块实现

ModifyPassword.jsp

考生角色的修改密码功能模块实现

4-3 src文件夹内容

文件夹

说明

Bean

考生在线考试题目存储模型

Servlet

系统部分业务逻辑处理的控制

Util

公共的实用工具

4-4 登陆功能实现文件

文件

说明

Login.jsp

登陆页面显示

HandleLogin.jsp

处理登陆功能模块实现

4.2 浏览器端框架设计

  浏览器端的功能实现采用目前流行的Web技术HTML5CSSJavaScript结合实现,其中HTML5负责浏览器的显示内容,CSS负责界面的美化,JavaScript负责浏览器的提示操做提示信息。浏览器经过http请求发送到服务器端,服务器端Tomcat对收到的请求进行业务处理后做出响应,把响应的结果返回给浏览器供用户查看。

4.3 登陆功能模块的实现

  根据需求分析,系统的角色分为管理者和考生,所以系统登陆功能模块须要为这两个角色提供进入本系统的入口。登陆模块的具体实现思想是取出输入的用户名、密码与选择的角色类型,依据角色类查询数据库服务器中对应的数据表中是否存在有与输入用户名和密码相一致的记录。若是有就重定向进入相应的管理页面;若是没有就携带失败参数重定向到登陆页面,由登录页面在加载时对参数的信息进行合理的信息提示。登陆模块功能页面、部分代码实现及参数说明如图4-14-2和表4-5所示:

 

 

4-5 具体的参数说明

参数

说明

${onlineexam}

数据库链接

${user}

登陆功能页面输入的用户名

${password}

登陆功能页面输入的密码

${role}

登陆功能页面选中的角色

message

浏览器提示信息

4.4 考生管理功能模块的实现

  考生管理功能模块包括对考生信息的增长、删除、查看和修改,其中查看须要作分页显示,增长、删除和修改都是对数据库服务器数据的更新(修改时若是修改了考生ID除外),在此列举修改时修改了考生ID和分页显示的具体实现。考生管理功能页面如图4-3所示:

 

4.4.1 修改时修改了考生ID

  修改考生信息时修改了考生的ID时须要完成的处理是先把新的考生ID和考生信息插入到数据库服务器中,然在再把原考生ID的相关的记录从数据库服务器中删除,插入操做和删除操做都成功后携带成功参数重定向到考生管理页面,由考生管理页面在加载时对参数的信息作出提示信息的反馈;反之则携带失败参数重定向。其部分的代码实现以及参数说明如图4-4和表4-6所示:

4-6 修改时修改了考生ID的参数说明

参数

说明

${onlineexam}

数据库链接

${param.id}

功能页面输入的考生ID

${param.password}

功能页面输入的密码

${param.name}

功能页面输入的姓名

${param.sex}

功能页面输入的性别

${param.reason}

功能页面输入的考试理由

${param.pre_id}

功能页面修改以前的考生ID

${currentpage}

当前页

message

浏览器提示信息

4.4.2 分页显示

  分页显示的关键在于计算出总页数和实现页面循环显示,总页数是根据记录数与页面的大小计算出来的,页面循环显示是控制当前页出界后连接到第一页或最后一页,确保当前页不会出界。其关键实现及其参数说明如图4-五、4-6和表4-7所示:

4-7 分页显示的参数说明

参数

说明

${pageSize}

单个页面显示的记录数

${totalRecord}

考生全部的记录行数

${totalPage}

页数

${currentPage}

当前页

4.5 试题管理功能模块的实现

  试卷管理功能模块是提供给管理者发布试题的使用。它包括试题模板的下载、试题的发布和对已发布试题的删除。其功能页面如图4-7所示:

 

4.5.1 试题模板的下载

  试题模板的下载是事前准备模板文件放置在部署Web项目的文件中,当Tomcat服务器启动后,使用客户端的浏览器经过http请求,发送获取资源的路径给服务器,服务器对所请求的资源作出响应,而后浏览器就能够与服务器进行传输文件链接完成试题模板的下载。

4.5.2 试题的发布

  试题的发布须要完成的处理有试题文件的上传、试题文件的读取和试题文件对应的数据库表的更新。试题发布用到的工具文件UploadFileUtil.javaReadExcelUtil.java文件说明如表4-8和表4-9所示:

4-8 UploadFileUtil.java的方法说明

方法名称

参数

返回值

说明

uploadFileForm()

uploadPath, request

Map<String,String>

表单文件上传

uploadFile()

uploadPath, request

String

文件上传

4-8 ReadExcelUtil.java的方法说明

方法名称

参数

返回值

说明

readExcelList()

filePath

List<List<String>>

读取文件记录

readExcel()

filePath

Workbook

获取工做本

getCellFormatValue()

cell

String

取单元格值

  管理者选择试题文件、输入试题描述和时间限制单击交卷后,提交给服务器调用处理uoloadFile()函数完成文件的上传,而后再调用readExcelList()函数读取excel文件,返回记录excel文件记录的集合。在调用readExcelList()函数中会使用readExcel()函数获取excel文件的工做本,还会使用getCellFormatValue()函数获取excel单元格的字符串型值,最后将上传试题的信息插入到数据库服务器的exams_description表,把读取到的excel文件集合插入到数据库服务器的questions表格。具体的业务流程如图4-8所示:

 

4.5.3 已发布试题的删除

  已发布试题的删除是根据发布试题的惟一性标识删除数据库服务器上考试记录examrecord、试题记录questions和试题描述记录exams_descriotion,具体的代码实现及参数说明如图4-9和表4-9所示:

 

4-9 已发布试题删除的参数说明

参数

说明

${onlineexam}

数据库链接

${param.exam_description_id}

试题描述的惟一标识

4.6 成绩统计功能模块的实现

  成绩统计功能模块包括已发布试题的显示选择查询已发布的试题的成绩统计和选择查询已发布的试题中未参加这次试题考试的考生信息。其功能页面如图4-10所示:

 

4.6.1 已发布试题的显示

  已发布试题的显示是经过JSTL查询数据库服务器中记录发布试题信息的表exams_description来完成的,具体的业务流程图4-11所示:

 

4.6.2 选择查询已发布的试题的成绩统计

  选择查询已发布的试题的成绩统计包括显示已考考生的成绩统计、详细成绩和未考考生的信息。其主要的实现是经过数据库查询语句查询获得结果,而后进行遍历显示结果集。详细的SQL语句说明见图4-十二、4-13和4-14所示:

 

  其中“?”表明参数,未参加这次试题考试的考生信息须要用到数据库的联合查询,首先查询本次考试未在记录考试表examrecord的学生的id和未参加过考试的考生的id,而后根据查询到的id联合查询学生users_information表的详细信息做为显示。

4.7 修改密码功能模块的实现

  修改密码功能模块须要为管理者和考生两个角色提供修改密码的功能,具体实现是经过更新数据库服务器记录用户帐号信息的表usersAdministratorspassword字段。其功能页面如图4-15所示: 

4.8 在线考试功能模块的实现

  在线考试功能模块是提供给考生参加管理者发布的试题的,其主要包括考生信息的显示、浏览器端倒计时的显示、试题题目的显示、各个题目的导航、题目回答的业务处理以及交卷的业务处理六个内容。其中发布试题的查看与管理者角色的成绩统计模块中的发布试题的查看相似,所以在此再也不具体说明实现。在线考试模块的功能页面如图4-16所示:

 

4.8.1 考生信息的显示

  考生信息的显示是根据考生的惟一性ID查询数据库服务器的users表,获取获得一条行记录,而后输出显示。其具体业务流程如图4-17所示:

 

4.8.2 浏览器端倒计时的实现

  浏览器端的计时器是用JavaScript的setInterval(function(),millionSecond)函数结合浏览器的session存储功能实现的。其具体实现的流程图如图4-18所示:

 

4.8.3 试题题目的显示

  试题题目的显示是根据当前的题号,从试题集合中取出的一条行记录显示出来,其中选项须要以@符号分割,使用JSTLsplit()函数完成分割。具体的业务流程如图4-19所示:

  

4.8.4 各个题目的导航

  各个题目的导航是经过html5<a></a>超连接标签连接到须要的currentquestion题目索引中去,交给试题题目的显示部分实现显示。题目导航的显示流程图如图4-29所示:

 

4.8.5 题目回答的业务处理

  题目回答的业务处理包括对选择的答案以及试题分值与正确答案的记录和对选择了的答案的显示。记录选择的答案以及存储试题分值与正确答案须要提交给Servlet完成,而显示选择了的答案能够直接在JSP文件中嵌套Java程序片断输出。其具体的业务流程图如图4-20所示:

  

4.8.6 交卷的业务处理

  交卷须要完成的业务处理是计算出试题的总分与考生做答的所得分数,而后更新数据库服务器的记录表。其具体的业务流程图如图4-21所示:、

 

4.9 个人信息功能模块的实现

  个人信息功能模块包括考生我的信息的显示、自定义头像的上传和上传头像文件成功后的数据库信息更新与原头像文件删除。其中自定义头像的上传与Excel试题文件的上传处理的方式大体相同,在此再也不具体说明。个人信息模块的功能页面如图4-22所示:

 

4.9.1 考生我的信息的显示

  考生我的信息的显示是经过JSTL根据考生的惟一性标识查询数据库服务器中表的记录实现的,其具体的业务流程与在线考试功能模块的考生信息显示一致,在此再也不具体说明。

4.9.2 上传头像文件成功后的数据库信息更新及原头像文件删除

  数据库信息更新根据考生的惟一性标识执行的,原头像文件的删除须要先查询数据库中的记录头像url的信息,即查询要比更新先执行。其具体的业务流程图如图4-23所示:

 

系统测试

5.1 测试环境

测试环境如表5-1所示:

5-1 测试环境表

环境设置

服务器设置

浏览器端配置

硬件配置

CPU:Intel 4790K

内存:16G

硬盘:1TB STAT

CPU:Intel 4790K

内存:16G

硬盘:1TB STAT

软件配置

Windows10 操做系统

Tomcat9.0

MySQL5.7

Widdows10 操做系统

Chrome浏览器

Microsoft Edge浏览器

网络环境

局域网

局域网

5.2 测试内容

系统测试内容主要包括两个部分:

  • 系统功能测试

  系统的功能测试是测试系统可否在使用过程当中正常运行,数据可否正确的添加、修改、删除和查询,功能的输入输出可否正确的实现而且没有发生错误。

  • 用户体验测试

  用户体验测试主要是针对系统功能的操做方式、页面的布局以及显示方式、操做的提示信息等内容进行测试,确保系统的使用符合用户的平常使用习惯,系统中的操做流程符合用户的实际业务流程。

5.3 测试方案及结果

5.3.1 系统功能测试

  系统功能测试须要对系统各项功能的操做来验证输入、输出的内容是否知足功能需求的要求,同时须要对数据输入进行多方便测试,保证系统在任意条件下都可以正确运行。

登陆功能模块测试结果见表5-2所示:

5-2 登陆功能模块测试结果

编号

01

测试内容

登陆模块提供的功能

一、 验证用户的合法性

二、 角色的选择提供

三、 合法用户导航到响应的系统页面

四、 不合法用户提示

预计结果

一、 可以判断用户输入的密码是否正确

二、 能根据提供的角色来验证用户合法性

三、 考生可进入考生管理页面,管理者可进入管理者页面

四、 不合法用户提示“帐号或密码错误”

测试结果

经过

  考生管理功能模块测试结果见表5-3所示:

5-3 考生管理功能模块测试结果

编号

02

测试内容

考生管理模块提供的功能

一、 考生信息的查看、修改、添加和删除

二、 考生信息的分页显示

预计结果

一、 能完成考生信息的查看、修改、添加和删除

二、 修改和添加考生信息时考生的ID、密码、姓名不能为空

三、 分页显示能够循环下一页,也能够跳转到指定也

测试结果

经过

  试题管理功能模块测试结果见表5-4所示:

5-4 试题管理功能模块测试结果

编号

03

测试内容

试题管理模块提供的功能

一、 试题模板的下载

二、 试题模板的上传

三、 发布试题的描述、时间限制

预计结果

一、 能提供试题模板的下载

二、 能对试题文件、描述和时间限制的合法性进行检验并提示

三、 发布试题成功的提示

测试结果

经过

  成绩统计功能模块测试结果见表5-5所示:

5-5 成绩统计功能模块测试结果

编号

04

测试内容

成绩统计模块提供的功能

一、 已发布考试的查看

二、 选择查询的考试成绩统计

三、 已考考生的分数

四、 未考考生的信息

预计结果

一、 能看到全部发布的试题

二、 能根据发布的试题查当作绩统计

三、 能根据发布的试题显示已考学生的分数

四、 能根据发布的试题显示未考考生的信息

测试结果

经过

  修改密码功能模块测试结果见表5-6所示:

5-6 修改密码功能模块测试结果

编号

05

测试内容

修改密码模块提供的功能

一、 原密码的显示

二、 二次密码的确认输入

预计结果

一、 能修改密码成功

二、 能以密码的形式显示原先的密码

三、 能二次密码的核对校验

测试结果

经过

  在线考试功能模块测试结果见表5-7所示:

5-7 在线考试功能模块测试结果

编号

06

测试内容

在线考试模块提供的功能

一、 考生信息显示

二、 倒计时的显示

三、 题目的显示

四、 题目的导航

五、 交卷计算分数

预计结果

一、 能显示考生的头像、姓名、性别、考试理由等信息

二、 能有计时器,并在计时器时间为0时自动交卷

三、 能有题目问题和选项的显示

四、 能导航到本次考试的任意题目

五、 交卷后能统计出得分

测试结果

经过

  个人信息功能模块测试结果见表5-8所示:

5-8 个人信息功能模块测试结果

编号

07

测试内容

个人信息模块提供的功能

一、 考生信息显示

二、 考生头像的上传

预计结果

一、 能显示考生的头像、姓名、性别、考试理由等信息

二、 能自定义上传头像而且更新显示

测试结果

经过

5.3.2 用户体验测试

  用户体验测试主要为了保证各个功能页面操做简洁、方便而且有适当的提示信息反馈,页面操做响应符合要求。

  用户体验测试结果见表5-9所示:

5-9 个人信息功能模块测试结果

编号

08

测试内容

验证界面是否美观、操做是否简单、关键操做是否有提示反馈信息

预计结果

一、 界面操做简单易懂,操做方便

二、 页面响应在2-4秒之内

测试结果

经过

总结

  本文主要介绍了基于B/S架构实现的在线考试系统的设计与实现,使用在线考试系统能够解决传统教学过程当中人工计分的繁琐工做,减轻教育相关部门在教学考核中的工做量,提升工做效率。通过一系列需求的分析和功能测试,本系统可以基本知足目前传统教学中选择题和判断题的考核任务。但本系统也存在一些不足的地方,如界面不够美观、未测试服务器是否能承受多用户在线考核等非功能需求。本在线考试系统还须要持续地完善和改进。

参考文献

[1] 杨忠维.基于WebApp的医学在线考试系统设计与实现[D]:[硕士学位论文].南京:东南大学,2018

[2] 耿祥义,张跃平.JSP实用教程[M].第3版.北京:清华大学出版社,2015.184-189

[3] 陈婉凌.HTML5+CSS+jQuery Mobile轻松构建APP与移动网络[M].2版.北京:清华大学出版社,2016.118-138

[4] RUNOOB.JSP文件上传[EB/OL]. https://www.runoob.com/jsp/jsp-file-uploading.html,无/2019-06-8

[5] 君临-行者无界.Java解析Excel(xls,xlsx两种格式)[EB/OL].

http://www.javashuo.com/article/p-yruweuqu-eb.html, 2017-07-29/2019-06-11

[6] 驾考一点通.在线仿真考试[EB/OL]. https://www.jsyks.com/kmy-fzks,无/2019-06-01

相关文章
相关标签/搜索