摘  要

随着互联网的发展,教育的方式逐渐步入信息化、智能化,网络教育逐渐成为教育未来发展的重要趋势,在线考试系统成为教育成果考察的主流方向。在线考试充分利用现代信息化技术的优势,使考试更方便、更高效。

根据中国现阶段网络的发展状况,设计一个基于Java Web的在线考试管理系统,系统面使用B/S架构设计开发,视图层面使用Vue架构技术,服务端使用SSMP架构搭建设计,数据管理技术方面则使用MySQL数据库系统进行设计,该软件系统将部署于Tomcat服务器中,以保障在线考试体系的正常工作。

该系统利用Spring Boot框架的优势,极大的降低了开发的难度,提高了系统的运行流畅度,利用MySQL的安全性和高效性等优点,让考试试题的存储更加安全,也可以提高对试题的读写速度,同时提升系统的性能。

关键词MySQL;在线考试;Java Web;Spring;

Abstract

With the development of the Internet, the way of education gradually into information, intelligent, network education gradually become an important trend of the future development of education, online examination system has become the mainstream direction of education results. Online examination makes full use of the advantages of modern information technology to make the examination more convenient and efficient.

According to the current development of Network in China, we are designing an online examination management system based on Java Web. The system surface is designed and developed using B/S architecture. Vue architecture technology is used for view level, SSMP architecture is used for server design, and MySQL database system is used for data management technology. The software system will be deployed in Tomcat server to ensure the normal work of education system.

The system uses the advantages of Spring Boot framework, greatly reduce the difficulty of development, improve the running smoothness of the system, using the security and efficiency of MySQL and other advantages, so that the storage of test questions more secure, can also improve the speed of reading and writing test questions, and improve the performance of the system.

Keywords: Online exams;Java Web;MySQL;Spring;

目 录

摘  要

Abstract

第一章 绪  论

1.1 研究的目的以及意义

1.2 研究与开发的现状分析

1.3 研究内容

第二章 相关技术介绍

2.1 Java Web技术

2.1.1 Java语言

2.1.2 Spring

2.1.3 MyBatis-Plus

2.1.4 Tomcat服务器

2.2 信息展示技术

2.2.1 CSS3

2.2.2 JavaScript

2.2.3 Vue

2.3 数据库技术

第三章 基于Java Web的在线考试系统的系统分析

3.1 可行性分析

3.2 功能性需求分析

3.3 非功能性需求分析

3.4 系统业务流程分析

3.5 系统功能分析

3.5.1 参加考试

3.5.2 自动批阅试卷

3.5.3 查询成绩

3.5.4 随机组卷

3.5.5 考试管理

3.5.6 试题管理

3.5.7 用户管理

3.5.8 统计成绩

第四章 基于Java Web的在线考试系统设计

4.1 概要设计

4.1.1 架构设计

4.1.2 系统静态结构概要设计

4.1.3 系统动态结构概要设计

4.1.4 数据库概要设计

4.2 防止作弊机制设计

4.3 阅卷设计

4.4 系统功能详细设计

4.4.1 参加考试功能详细设计

4.4.2 自动批阅试卷功能详细设计

4.4.3 考试管理功能详细设计

4.4.4 试题管理功能详细设计

4.4.5 统计成绩功能详细设计

4.5 数据库详细设计

第五章 基于Java Web的在线考试系统实现

5.1 工程的创建

5.2 逻辑功能实现

5.2.1 实体类实现

5.2.2 控制层实现

5.2.3 服务层实现

5.2.4 数据库访问层实现

5.3 视图层实现

第六章 基于Java Web的在线考试系统部署与测试

6.1 系统部署

6.2 系统测试

6.2.1 单元测试

6.2.2 集成测试

6.2.3 兼容性测试

6.2.4 压力测试

6.2.5 稳定性测试

结论与展望

致 谢

参考文献

第一章 绪  论

1.1 研究的目的以及意义

在学校教学的进程中,测试一直是至关重要的内容,而长期以来,在世界各地的测试通常都是采用笔试方式进行,出试卷、组成考卷、打印试卷、甚至要求学员到场测试、收试卷、批阅试卷、统计成绩等等是传统考试的必须流程,并且这些流程有严格的先后顺序,必须按部就班。在这些流程中,出试题、组成试卷和批阅试卷的过程是最繁琐的,并且如果考试的人数过多时,会导致批阅试卷的工作任务过于繁重,且因为老师的个人因素会有误批的可能性,降低了批阅试卷的准确率,不能完全的达到公平公正。在批阅完试卷之后,进行统计成绩的过程非常麻烦,需要花费大量的时间。因此这种传统考试的方式对教师而言,工作任务太过繁重、工作效率低下,容易出现误批,并且不方便对学生整个学习阶段的成绩变化进行统计分析[1]。

随着网络的不断发展,互联网到目前已经非常的普及,因此在线考试这种方式相对于传统考试方式而言,可以充分利用现代信息化技术的优势,使考试不必在某个地方集中开展,通过互联网就可以进行无纸化的考试。由计算机自动进行组卷、阅卷,可以在某种程度上节省测试费用,提高测试效率,还可以确保公平、公正、科学的考试结果。在线考试不仅能够动态地去管理考试信息,还能够提高教学的灵活度,相信随着技术的持续发展和网络覆盖面的进一步扩大,在持续完善在线考试系统的同时,也会在更大的范围上应用实践[2]。

本文希望基于Java Web技术开发出一套在线考试系统来解决出试题、组合试卷、批阅试卷和统计成绩耗费时间过多的问题。

1.2 研究与开发的现状分析

对于在线考试这类体系,结合目前国内外的研究情况来看,有各种各样的在线考试系统,所采用的开发技术也多种多样,比如JAVA、VC、C++、ASP、JSP、PHP等多种开发编程语言。ASP是多种编程语言中使用最多的一个,因为ASP能够和数据库系统进行很好的融合,这个对程序员来说很有用。因为互联网快速的发展,人们对Web服务的开发需求越来越高。

在国内外,虽然网络考试管理系统的研究和实际应用开始的还比较晚,不过发展速度却相当快,而且研发活动也相当踊跃,到目前为止真正的应用也相当多,包括中国国家电脑等级考试、全国普通话水平考试等,都是通过线上完成的。综上所述,在线考试管理系统的应用更加广泛,考试形式趋于多样化,优势和重要性也越来越突出[3]。

在线考试平台一般可采用C/S和B/S两个基础架构,但是目前采用了B/S结构的在线考试平台还是比较多。C/S结构,即Client/Server(用户/服务器)的结构,这种结构为用户与服务器分派了不同的工作,客户端也可以做一些基本逻辑处理,这也使得系统的消息链接开销降低了许多,不过客户端需要下载到本地并安装才能进行使用。B/S框架,即Brower/Server(网页/服务器)的框架,它由视图层、业务层和数据访问层组成,这三者之间在逻辑上是彼此隔离的,视图层专注于向使用者显示数据,业务层负责请求并遵循逻辑规范,而数据访问层和数据库之间实现通讯,因此B/S框架统一了服务器端,无须在本地设置内容,只要有网页浏览器就能够使用整个系统。因此,针对于在线考试系统的便捷与高效,优先采用B/S架构进行设计。

1.3 研究内容

本系统研发是为了实现一个基于Java Web的在线考试系统,实现该系统需要完成以下几个方面的研究:

(1)分析考试的整体流程,并与传统考试流程和现有的网络考试流程作比较,设计出该体系的执行流程及其总体架构,并绘制总体的结构图。

(2)研究Java Web开发技术,通过查阅资料,参考一些相关的文献,了解并学习该系统开发所需要使用的技术栈。

(3)研究试题组卷技术,该系统会采用自主组卷与随机组卷两种方式,对于随机组卷采用考试难度等级划分。

(4)系统进行了信息保密措施,对所有客户信息以及试题答案都进行了加密,以保证系统在操作过程中的安全。

第二章 相关技术介绍

2.1 Java Web技术

2.1.1 Java语言

Java语言快速、可靠,在1995年的时候被发布。从电脑到数据管理中心,从游戏控制到科学的超级计算机,从移动手机到因特网,Java无处不在。Java作为面向对象的编程语句,它吸收了C++程序设计语句的许多长处,并省去了C++的多继承、指针等一些繁琐的知识,使得Java程序设计语句具有了简洁易用和功能强大二个突出特点。Java语言很好地展示了OOP的原理,让程序员能够用现实中的思维方式去完成复杂的程序编写。与面向过程理论相比,面向对象理论可以更加贴近人们的思维方式,它具有很强的可维护性和可扩充性,这也使得我们的代码更具有健壮性。

2.1.2 Spring

Spring是一种专门用来解决更复杂的企业应用开发的轻量级Java语言开发架构。它的前身为Interface21框架,后面修改为Spring并且正式发布[4]。Spring框架也处理了在业务层和其他层次相互之间的松耦合问题,从而在整个系统应用中,面向接口的编程思维处处可见。Spring框架的模块图如图2.1所示。

图2.1 Spring框架模块图

该框架的一个主要优势就是它的分层架构,让用户在应用开发时自己选择需要使用的构件,并且很容易就能整合。Spring中使用了最基本的JavaBean,可以实现过去只有EJB可以做到的所有事情。Spring对于Java应用程序来说,在多个方面都能有很好地收益。简而言之,Spring是一种层次化的轻量级开源架构。Spring的核心概念是控制反转[5]和面向切面。

2.1.3 MyBatis-Plus

MyBatis-Plus是一款功能强大的MyBatis增强工具,它仅提供加强而不更改,以简化开发和提高效率。可以极其方便的实现单一查询、批量查询和分页查询等操作,而且不用编写任何SQL语句。MyBatis-Plus的增强,其实就是在MyBatis的基础上进行了自己的封装和拓展,可以让使用者不写xml文件,只用简单的配置一下,就可以快速的进行CRUD 操作,从而节省了大量开发用时[6]。

MyBatis框架是一种非常优秀的数据库操作架构,它将复杂的使用JDBC链接数据库系统的所有步骤都经过了重新封装[7],包括注册驱动、获取Connection对象等等,这样使得程序员只关注SQL语句的编写就行。

Mybatis相对原始JDBC的优势:

(1)Mybatis框架可以将用于连接数据库的信息直接写入到系统配置文件中,从而不会产生硬解码的问题,便于后期的维护[8]。

(2)Mybatis框架通过自身默认配置的数据库连接池,可以提高数据链接语句和数据库操作语句。

2.1.4 Tomcat服务器

Tomcat是一款自由公开的Web应用程序,是一种轻型的应用程序,它被广泛使用于中小型的系统编程领域,所以也是网络编程的研究与调试的选择。Tomcat服务器的使用方式非常简单,只需要简单的安装在本地环境上,以及基础的信息配置完成后就能使用。Tomcat其实是Apache服务器的一种形式,但是执行的过程是独立的,因为Tomcat本身使用了HTTP,所以,当执行后,Tomcat将会独立于 Apache[9]。Tomcat开源、自由、长期开发(先发制人),早已得到了市场的广泛认同,相比于 Jetty和 Undertow, Tomcat的稳定性和成熟度要高得多,特别是对于企业级的应用, Tomcat依然是首选。

2.2 信息展示技术

2.2.1 CSS3

HTML标签主要专注于定义文本的内容,不用去关注文档的布局怎么设置。不过,原有的Netscape和IE浏览器并不会重视这些,而是将很多新增的HTML标记和属性都加入到了规范中,使得内容结构与布局更完全地耦合到了一起,需要通过改变网站的内容才对整个网站表现改变,导致了站点的维护更加麻烦。

为了解决此问题,万维网联盟在HTML 4.0之外创造了CSS,让CSS来控制网页的外观,让HTML继续提供内容。有了CSS,程序员只需集中精力用HTML来组织网页的内容,美观问题完全交给CSS来完成。

CSS文本不需要重新编辑,而且网页也能够直接解析执行,所以当程序员需要更改内容的样式时,只需要重新修改CSS文本就可,之后,网页中的每个元素都会自动更新,这样极大地提高了开发效率。

2.2.2 JavaScript

JS语言是一个可以跨浏览器和跨平台的语言,该语言内部定义的变量都是弱类型的,这种类型对具体的数据没有过多的要求,语言内部可以像Java开发语言一样执行一些基本的循环判断控制,这样的设计简单紧凑。在WEB二点零时代下,由于JavaScript编程语言就如同桥梁一般,把前端网页直接与后尾服务器进行相连,所以前端网页既不必了解编写服务器所用的是什么编程语言,也不需了解是怎么写成的,而仅仅了解在前端将传递一些格式固定的数据消息即可。

2.2.3 Vue

Vue是一个构建用户界面的渐进式架构,它使用了从底往上的增量开发设计。Vue是一种非常容易掌握并且非常容易集成的架构,因为它的核心只关心视图层怎么制作。而由于Vue的主要目标是使用简化的API来实现响应式的数据信息捆绑和可组合的视图组件,所以Vue具有简洁、敏捷的API,并同时提出了MVVM数据信息捆绑和一组可集成的组件体系。

可以说Vue是一套响应式系统。数据模式层的是普通JavaScript对象,每一条{}都是这一JavaScript元素,在更新相应的HTML代码后就能够进行修饰[10],而这种片段叫做“视图(view)”。因为这种方式的系统控制更加非常容易和直接,能够做到信息的双向绑定,所以人们又叫做响应型系统。 

2.3 数据库技术

MySQL是一种安全性、跨网络平台、高效率的数据库管理系统,并和主要的程序设计语句密切联系。MySQL数据库系统拥有卓越的反应速度、力量、精准。

MySQL可以为测试系统数据库进行“热”备份,减少数据丢失的危险。MySQL目前已经在网络上的中小站点中获得了普遍的使用。MySQL数据库具备轻量级、快捷、综合成本低、开源的特性,因此许多企业为了节省成本而采用 MySQL数据库。MySQL也是SQL数据库中最快速的语言。

MySQL所具备的特点如下所述。

  1. MySQL提出了大量的数据库系统存储引擎,这些引擎各有千秋,用户能够根据需要,选用合适的引擎。
  2. MySQL能够处理大量的网页访问,并且支援事务、视图、储存流程和触发器等;
  3. MySQL数据库系统可以移植在任意平台下;
  4. MySQL最大的特点就是速度很快,它采用快速树形磁盘表格(MyISAM)和索引压缩技术[11],能够很迅速地完成浏览操作;
  5. MySQL数据库管理系统的最高效表尺度,一般取决于操作系统的文档规模,而并非MySQL的内在制约,InnoDB储存引擎能够将InnoDB表储存到某个能够用多个文档建立的表空隙中,最多64 TB的表空间[12],可以很容易地处理具有几百万条记录的大型数据库。

第三章 基于Java Web的在线考试系统的系统分析

3.1 可行性分析

(1)经济可行性

随着经济技术的发展,目前硬件价格持续走低,网络环境被大力建设,因此经济投入主要是系统研发中使用开发软件的少许经费。根据市场调研,在线考试模式是用户乐于接受并完全有能力承担必要的基本开销。另外,该系统在硬件、软件、人员等方面的投资较长期、稳定,具有较好的长期效益,可以有效地减少管理费用、人工成本、人员利用率、工作质量、人力资源配置等。这样既方便了老师们的工作,又可以满足多个用户的各种需要,而且可以在任何时间、任何地点,根据用户的需要进行测试。在线考试系统改善了成本支出,同时增加了工作效率,所以从经济性上来说是可行的。

(2)技术可行性

目前,网络上应用软件执行的模型大致有两类:C/S模型和B/S模型。

前者最大的缺陷在于维修和更新较为繁琐;后者是近年来在网络上出现的一种技术,其用户/主机端模式很类似,主机端为标准web浏览器,而服务端则为网络服务器。同时,基于Web Server和数据库管理系统、使用服务器之间的密切联系,使该模块的应用范围获得了进一步的扩大。它运用方便、操作简单,效率很高,但要求的技术水平却不需要十分顶尖,因此技术上是可行的。

(3)操作可行性

在线考试系统在用户上分为三种:超级管理员、考试管理员和普通用户。在操作使用上,管理员能够执行的操作相对复杂,因为需要对于整个系统进行管理,涉及的功能会比较多;而普通用户使用主要是参与在线考试、查看成绩等一些简单功能。

无论用户是哪种类型,对于在线考试系统来说操作都并不复杂,用户可以通过网络进行访问和操作,界面简单,基本上处于用户需要执行什么动作,就点击什么样的功能按钮这类傻瓜式操作。因此,操作不构成难度,也是可行的。

综上所述,根据在线考试系统可行性分析报告可以得出结论,在线考试系统很有研发和深入的价值。

3.2 功能性需求分析

首先,从使用者的视角出发,本系统主要包括三个类别的用户,第一种是超级管理员用户,该类别用户掌握了整个系统的运行环境和权限,维护考试、数据库和应用信息,超级管理员用户实例如图3.1所示;第二种是试卷管理员用户,该应用负责管理考试和试题等方面的维护,也包括成绩维护,试卷管理员用户用例如图3.2所示;第三种是普通用户,该用户是最多的用户,具有参加考试的功能,普通用户用例如图3.3所示。

图3.1 超级管理员功能用例图

如图3.1中所示,在线考试平台中,超级管理员拥有进入/退出管理系统、考试维护、数据库维护、用户管理等使用需求,其中考试维护又分为考试管理和试题管理,考试管理包括添加考试、删除考试、修改考试、查看考试等功能,试题管理包括批量添加试题、查看试题、删除试题等功能;用户管理又包括添加用户、查看用户、删除用户等功能。

图3.2 试卷管理员功能用例图

如图3.2所显示,在在线考试管理系统中,试卷管理员具有登录/退出系统、考试管理、成绩维护、试题管理等功能,其中考试管理包括对考试的增、删、改、查等功能,试题管理包括对试题的添加、删除、查看等功能,其中添加和查看试题根据试题的类型分为五种,如单项选择题、不定项选择题、判断题、填空题和问答题[13]。

 

图3.3 普通用户功能用例图

除了管理员以外,普通用户是整个系统中占比最多的用户类型,如图3.3所示,普通用户具有登录/退出系统、选择考试、在线考试、查询成绩等基本功能需求。

3.3 非功能需求分析

在整个在线考试系统的设计中,该系统必须满足以下要求:

(1)数据安全性

为了储存与隐私有关的在线考试及其它问题,必须保证资料的安全。在网站设计过程中,为了避免出现安全隐患,比如,如何阻止学生上网查看答案。

(2)易用性

在用户的权限下,能够在一个统一的风格用户界面中完成全部的流程动作及相应的信息管理,这样大大提高了运营管理人员的效率以及应用的灵活性。

(3)可维护性

由于越来越多的服务可能需要用到考试,因此设计的系统必须方便不同需求的用户进行维护更改。

(4)可扩展性

随着网络管理业务的发展,在线考试系统必然会被应用在更多更复杂的情况下,因此,从设计之初就必须考虑系统的可扩展能力。

(5)并发处理能力

在考试过程中,会有多个用户同时使用该系统,在单位时间内,可能会有多个请求同时发出,因此设计的系统必须能够良好的处理并发请求。

3.4 系统业务流程分析

研究传统考试的过程,以及实际情况,分析在线考试系统的整个业务流程,具体流程如图3.4所示。

图3.4 系统业务流程图

对于在线考试系统的业务流程详细描述如下。

(1)超级管理员初始化系统,添加考试管理员与普通用户等基本用户信息。

(2)考试管理员依照考试的试题属性,如试题类型、难度等,添加试题的详细信息到试题库中。

(3)考试管理员选择自主组织试卷或者由计算机随机组成试卷的方式添加详细的考试信息,如果考试管理员选择计算机随机组成试卷,则按照提示输入各类试题的总分值、考试的难度等信息,在普通用户考试前由计算机随机组成试卷。

(4)在发布考试后,普通用户登录系统,选择需要参加的考试,进行在线考试,考试信息会保存在数据库中,系统分配给不同的普通用户的试题顺序、试题内容不同,防止考试作弊。

(5)普通用户得到系统分发的试卷后,进行作答,答题完成或到达考试结束时间后对考试填写的答案进行提交。

(6)系统收到提交的答案后,会进行对非主观题的判定,若考试中有主观题,则交由考试管理员对主观题判定分数,最后会将考试成绩保存在数据库内。

(7)普通用户在收到查询成绩的通知后,可以登录系统查询自己的成绩。

3.5 系统功能分析

在线考试系统有多种功能,主要功能分为:参加考试、查询成绩、自动批阅试题、随机组卷、考试管理、试题管理、用户管理、统计成绩。系统功能概要如图3.5所示。

图3.5 系统功能概要图

3.5.1 参加考试

参加考试的功能是该系统中最重要的功能,实现用户在线考试操作。在线考试功能是普通用户登录完成后可执行的操作之一。普通用户通过正确的账号和密码登录系统后,在界面上可以选择需要参加的考试,点击进入考试后便可以在线答卷,其中所参加的考试的所有试题数据全部来自数据库,在用户点击进入考试之后进行读取。

3.5.2 自动批阅试卷

自动批阅试卷功能是设计在线考试系统的缘由之一,这个功能可以极大的减轻考试过程中教师的工作负担。在普通用户提交考试之后,自动批阅试卷功能会对考生所提交的非主观题进行批阅,批阅完成后将每到考题的得分记录在数据库中,方便查询统计。

3.5.3 查询成绩

在普通用户提交考试之后,如果考试中没有主观题,则可以直接查询到此次考试的成绩,如果有主观题,则在教师批阅完主观题之后,普通用户收到了查询成绩的通知之后,可以登录系统查询对应的考试成绩。

3.5.4 随机组卷

在考试管理员选择随机组卷后,用户在登录系统发送开始考试的请求时,系统内部会根据考试管理员设置的本次考试难度在数据库中随机读取试题。考试的难度有一星到五星,试题在设置时难度等级也与之对应,若考试的难度为三星,则会在所有的三星难度的试题中随机选择一部分试题,由这些试题组成一套考试试卷。

3.5.5 考试管理

考试信息管理功能是对所有考试信息内容的加、删、改、查等功能的合集,重点是实现对全部的考试信息内容进行统一管理。

在新增考试的时候,除了考试的基本信息之外,考试管理员在添加试题时有两个选择,分别是自主创建考试试题和随机创建考试试题。自主创建需要考试管理员手动在试题库中选择要考的题,这是一套固定的考试试题;随机创建则需要考试管理员输入考试试题相关的属性,如试题数量、试题总分值、试题难度等,这是一套不固定的考试试题,当普通用户参加考试的时候才会随机创建一套试题。

对于已经创建好的考试,可以进行修改、删除等操作,这些考试都可以进行发布操作,当考试管理员发布这套考试后,普通用户可以在自己的账号界面内看到这次考试,只要在规定的时间内参加考试即可。

3.5.6 试题管理

试题管理功能是对试题库中试题信息的增、删、改、查统一管理。

在试题管理中,可以用Excel表格批量添加试题,首先下载系统内置的Excel模板文件,编辑好文件后将文件上传到系统中,系统会解析这个Excel文件,解析出来的试题信息会保存到数据库的试题库中。除此之外,可以通过条件查询相关的试题,对已有的试题进行编辑和删除的操作,所有的操作最终会执行到数据库中去。

3.5.7 用户管理

用户管理是系统的重要功能之一,该功能是对超级管理员设计的功能。在系统最初的状况下,超级管理员在系统中就有了一个管理员,只要注册成功,就能够对其它用户实施管理,包括添加、删除等。系统实现了对考试管理员和一般用户的管理。

在添加用户的时候,可以选择批量添加,如同试题管理一样,编辑好下载的模板文件后,将文件上传到系统中,系统会解析添加用户,减轻工作负担,提高效率。除此之外,就是对用户信息的常规操作,修改、删除、查询用户信息的功能。

3.5.8 统计成绩

在普通用户参加完考试后,考试的成绩信息会保存在数据库中,管理员可以通过后台模块,查询所有考试的成绩信息,将成绩进行排名汇总,方便分析考试的结果。

第四章 基于Java Web的在线考试系统设计

4.1 概要设计

4.1.1 架构设计

设计通过B/S的三层结构完成,在该结构中,由浏览器端、服务器端以及中间件共同组成,通过它们之间的相互调用来完成系统的功能任务。

浏览器端:电脑上的浏览器,这是用户和系统间实现互动的入口,用户通过操作浏览器显示的网页,将与操作相关的请求传递给服务器端,并把服务器端返回的操作数据进行整理和展示,通过可视化页面可以很容易地让用户使用系统。

服务器端:提供服务,在被调用时会收到传入的数据后,对数据进行逻辑处理等等,然后把数据处理的结果返回给中间件。

中间件:是浏览器端与服务器端之间沟通的重要桥梁。这层主要的任务是根据用户的需求控制访问服务器端提供的接口,把用户发送的请求和数据预处理加工,在调用服务的时候把加工好的数据作为参数传递,获得服务器返回的结果,再将结果包装返回给浏览器端,浏览器端和服务器端需要交互的信息是通过中间件来控制。系统架构如图4.1所示。

图4.1 系统架构图

4.1.2 系统静态结构概要设计

在线考试系统的实体层设计的类有Exam、Examination、Question、User、Choose、Interlocution;控制层设计的类有ExamController、ExaminationController、QuestionController、UserController,服务层设计的类有ExamService、ExaminationService、QuestionService、UserService,持久化层设计的类有ExamDao、ExaminationDao、QuestionDao、UserDao,类及关系如图4.2所示。

图4.2 系统静态结构图

4.1.3 系统动态结构概要设计

系统在启动后,整个系统的服务模块处于等待状态,等待用户发送请求。用户点击页面内的按钮,每个按钮都有自己的请求方式去发送,发送的请求首先会通过网络传递给Controller的类的对应方法中,Controller中的方法对请求做包装,方法再去调用Service层提供的服务方法,Service层会控制Dao层进行数据库的读写操作,Service层处理完成之后,把处理结果再次返回给Controller,Controller将接收到的结果包装到通用信息类(R)中,将R返回给显示层,将数据展示给用户。系统的执行时序如图4.3所示。

图4.3 系统执行时序图

4.1.4 数据库概要设计

本系统中要存储的数据有用户信息、考试信息、试题信息等,因些在数据库中可设计用户信息表、考试信息表、试题信息内容表、试题信息内容列表等,为实体保存有关的信息内容、属性以及实体之间的关系如图4.4所示。

图4.4 表关系E-R图

4.2 防止作弊机制设计

(1)禁止鼠标移出浏览器范围

在页面中采用js技术动态获取鼠标位置,如果鼠标位置不在指定范围内,则弹出提示,在5秒内点击确定按钮,如果超过5秒,则自动交卷,点击确定按钮后,光标自动回到指定位置,继续考试。

(2)防止最小化浏览器

用js的window.onresize()方法监测浏览器的窗体活动,当遇到浏览器窗体发生改变后,自动将浏览器的窗体最大化。若浏览器关闭,则自动提交考试。

(3)设置题目显示模式和出题方式

使用随机的方式完成题目的显示和出题。其中,试题的顺序可以是固定的,即每一张试卷的主题都是一样的,同时试卷的次序也是一样的;试卷的排序很可能是随机的,即每一张试卷都从试题库中选择了相同的题目,但题目的次序却不同;所谓“随机”,就是在每个考卷中,从题库中随机抽取考题[14]。

4.3 阅卷设计

试卷的自动批改分两步进行,第一个阶段是考生的答卷中非主观题与系统在试卷上预先设定的答案进行对比,若两者一致,则考生的回答是正确的;第二个阶段采用老师手工的方式批改主观题,老师登陆系统进入批改界面,打开对应的试卷,检查考生的答题卡,老师根据考生的答题结果进行评分[15]。

4.4 系统功能详细设计

4.4.1 参加考试功能详细设计

设计ExaminationController类用来控制用户参加考试时发送的请求,将请求处理并调用ExaminationService服务类的joinExam()方法获取考试试题信息,将信息返回给页面,展示给用户。参加考试功能的时序如图4.5所示,参加考试类关系如图4.7所示。

图4.5 参加考试功能时序图

4.4.2 自动批阅试卷功能详细设计

在普通用户(考生)提交考试之后,请求发到ExaminationController类,它再去调用ExaminationService服务类的submitExam()方法,服务类会先去查询对应试题的正确答案,正确答案与考生提交的答案进行对比,正确则得分,不正确则不得分,批阅完所有非主观题后,调用ExaminationDao类的insertExam()方法保存考生的答题信息。自动批阅试卷功能的时序如图4.6所示,参加考试类关系如图4.7所示。

图4.6 自动批阅试卷功能时序图

图4.7 参加考试类图

4.4.3 考试管理功能详细设计

考试管理功能是对添加、修改、删除、查询考试的统一管理,在管理员点击进入考试管理界面后,会分页查询目前所有的考试信息,同时管理者也可对现有的考试信息进行更改、删除等操作,同时管理者也可增加新的考试信息内容,在增加新的考试信息内容的同时,正常输入考试的基本信息,然后选择是否采取随机出题的策略,如果选择了随机出题策略,则只需要管理员输入每道题的总分值和试题难度等信息,如果没有选择,则需要管理员自主选择要考试的试题,最后会将这些信息保存到数据库中,等待考生参加考试,这些操作在系统内部执行完之后会给前端返回统一数据格式的数据信息R。考试管理功能模块涉及的类为ExamController、ExamService、ExamDao和R,该功能的时序流程如图4.8所示,考试管理模块类关系如图4.9所示。

图4.8 考试管理功能时序图

图4.9 考试管理类图

4.4.4 试题管理功能详细设计

试卷管理功能主要是对各种新增、更改、删除、查询试卷的工作统一管理,当管理者单击进入试卷管理系统页面以后,会分页查看各类试卷的详细信息,试卷类别共有五个,依次是单项选择题、不定项选择题、判定题、填空题和问答题,所有的试题在页面上根据试题类型进行卡片方式统一管理,当管理员需要对哪一类试题管理时,点击相应的卡片标题,首先就会分页查看相应种类试卷的信息内容,之后管理者就可以对此类试卷进行更改或者删除操作了,试题管理功能模块涉及的类为QuestionController、QuestionService、QuestionDao和R,试题管理类关系如图4.10所示,该功能的时序流程如图4.11所示。

图4.10 试题管理类图

图4.11 试题管理功能时序图

增加新的试题时,管理者就需要先下载批量增加试卷的模板文件,将要添加的试题编辑好之后,将这个文件进行上传,当系统收到这个文件之后,会解析文件内容,将内容包装保存在数据库中,该操作的时序流程如图4.12所示。

图4.12 批量添加试题时序图

4.4.5 统计成绩功能详细设计

管理员用户可以对已经考完的试题进行成绩统计和分析,管理员进入成绩管理界面,首先会分页查询已考完的试题的考试情况信息,点击其中一项考试的详细信息按钮,请求发送给ScoreController类,ScoreController调用ScoreDao类的getScore()方法去数据库中查询该考试的所有考试考试情况,并统计平均分、最高分、最低分等信息,将这些信息展示在页面上。统计成绩功能的时序如图4.13所示,统计成绩类关系如图4.14所示。

图4.13 统计成绩功能时序图

图4.14 统计成绩类图

4.5 数据库详细设计

根据设计的考试相关的数据逻辑,设计了用户信息表、考试信息表、选择题信息表、问答题表和考生答卷情况表等,如表4.1所示。

表4.1 数据库表

序号

表名

说明

1

sys_user

用户表

2

sys_student

普通用户表

3

sys_teacher

考试管理员表

4

sys_exam

考试表

5

sys_choose

选择题表

6

sys_interlocution

问答题表

7

sys_answer

考生答案表

8

sys_answer_details

考生答卷详情表

所有表的详细结构描述见表4.2-4.9。

表4.2 用户信息表

字段名

数据类型

长度

字段含义

是否主键

是否外键

id

INT

11

用户id

user_id

INT

11

角色id

username

VARCHAR

20

用户账户名

password

VARCHAR

20

用户密码

rank

SMALLINT

5

权限

表4.3 考生答卷详情表

字段名

数据类型

长度

字段含义

是否主键

是否外键

id

INT

11

id

Stu_id

INT

11

用户id

Exam_id

INT

11

考试id

Stu_score

SMALLINT

5

用户得分

表4.4 考生答案表

字段名

数据类型

长度

字段含义

是否主键

是否外键

id

INT

11

id

stu_id

INT

11

用户id

exam_id

INT

11

考试id

q_id

INT

11

试题id

q_type

VARCHAR

10

试题类型

stu_answer

VARCHAR

10

考生答案

stu_score

SMALLINT

5

考生得分

表4.5 考试信息表

字段名

数据类型

长度

字段含义

是否主键

是否外键

id

INT

11

id

t_id

INT

11

管理员id

exam_description

VARCHAR

255

考试描述

exam_begin_time

DATETIME

5

开始时间

exam_end_time

DATETIME

5

结束时间

exam_one_choose_id

VARCHAR

255

单选题id

exam_no_choose_id

VARCHAR

255

不定项选择题id

exam_judgment_id

VARCHAR

255

判断题id

exam_fill_id

VARCHAR

255

填空题id

exam_interlocution_id

VARCHAR

255

问答题id

exam_score

INT

11

总分

exam_random

SMALLINT

5

是否是随机出题

表4.6 选择题信息表

字段名

数据类型

长度

字段含义

是否主键

是否外键

id

INT

11

id

question

VARCHAR

255

问题

option_a

VARCHAR

255

选项A

option_b

VARCHAR

255

选项B

option_c

VARCHAR

255

选项C

option_d

VARCHAR

255

选项D

correct_answer

VARCHAR

255

正确选项

score

SMALLINT

5

分值

type

VARCHAR

10

试题类型

grade

SMALLINT

5

试题难度

表4.7 普通用户表

字段名

数据类型

长度

字段含义

是否主键

是否外键

id

INT

11

id

stu_number

VARCHAR

10

用户编号

stu_name

VARCHAR

20

用户姓名

stu_sex

VARCHAR

2

用户性别

stu_class

VARCHAR

10

用户班级

表4.8 考试管理员表

字段名

数据类型

长度

字段含义

是否主键

是否外键

id

INT

11

id

t_number

VARCHAR

8

管理员编号

t_name

VARCHAR

20

管理员姓名

t_sex

INT

2

管理员性别

t_class

INT

10

管理员班级

表4.9 问答题信息表

字段名

数据类型

长度

字段含义

是否主键

是否外键

id

INT

11

id

question

VARCHAR

255

问题

answer

VARCHAR

255

正确答案

score

SMALLINT

5

分值

type

VARCHAR

10

试题类型

grade

SMALLINT

5

试题难度

第五章 基于Java Web的在线考试系统实现

5.1 工程的创建

本系统使用了Spring、MyBatis-plus、Vue等框架设计,其中Spring和Spring Boot框架作用在系统的整个业务代码模块,MyBatis-plus框架作用在系统与数据库交互模块,Vue框架作用在系统展示的页面模块。

对于整个系统划分为两个包,分别是java和resources包。java包内是系统的整个业务逻辑代码,内部详细的划分为config包、controller包、dao包、domain包、service包和util包。Config包内配置了一些系统的配置文件类;controller包内配置了一些用于接收和预处理页面请求的类;dao包内定义了与数据库交互的接口;domain包内定义了系统中的实体类;service包内定义的是服务的接口和每个服务对应的实现类,这些实现类处理请求和控制访问数据库;util包内定义了一些工具类和工具方法,用于处理一些公共文件。resources包内存放的是系统的一些静态文件、配置文件这类的资源,前端的静态页面和模板资源都存放在这个包内。系统的项目结构图如图5.1所示。

图5.1 项目结构图

Controller层用来接收和预处理View层发出的用户请求,再根据请求调用对应的服务接口并接收服务反馈的数据,将数据打包发送给View层,展示给用户;Service层则是整个操作系统的逻辑内核,它按照应用的要求去管理并访问数据库,然后对应用的数据进行逻辑管理,再将数据反给Controller层调用它的方法;Dao层用来与数据库交互,里面都是操作数据库的接口类,被Service层控制。

5.2 逻辑功能实现

5.2.1 实体类实现

实体类(domain)是系统中所操作的对象与现实生活中实体的映射,例如:普通用户就是一个实体,内部封装了普通用户的一些信息。

在线考试系统中的实体类如下:

User.java:用户实体,在用户登录时封装输入的账号信息、密码信息,然后会在数据库中验证,得到权限;

Teacher.java:考试管理员实体,内部封装考试管理员的基本信息;

Exam.java:考试实体,考试的相关信息封装在里面,如考试描述、考试时间、考试的试题id信息等等;

Choose.java:选择题实体,关于选择题的所有信息封装在里面;

Interlocution.java:问答题实体,除选择题之外的所有类型的试题封装在这里面;

ExamQuestion.java:考试试题实体,考生进行考试时,从数据库中查询的对应考试的所有试题封装在里面;

Answer.java:封装考生的答题信息,如考生输入的答案和对应的试题信息,在用户提交考试之后会进行答案的判断;

AnswerDetails.java:封装考生考试的详细信息以及最终的得分信息等等。

5.2.2 控制层实现

控制层(Controller)用来接收视图层发送的要求,对请求做预处理,然后根据请求去调用服务层提供的方法,将处理好的数据打包发送给服务层方法,等待方法返回处理结果,再将处理结果打包成一个公共类返回给视图层。

控制层使用Restful风格开发,按照请求方式的不同而调用不同的操作的方式,get请求认定为是查询读取操作请求,post请求认为是刷新操作请求,put请求认定为是增加操作请求,delete请求认定为是移除操作请求。采用Spring注解开发方式,不仅可以简化开发过程,还可以让代码看起来更加清晰。

依据不同的操作对象和操作过程,控制层主要有以下5个类。

ExamController.java:对考试管理功能所发出请求的控制。

ExaminationController.java:对普通用户参加考试过程中发出请求的控制。

QuestionController.java:对试题管理功能所发出请求的控制。

UserController.java:对用户管理功能所发出请求的控制。

ScoreController.java:统计成绩功能所发出请求的控制。

5.2.3 服务层实现

服务层(Service)内部定义了多个服务接口,这些服务提供给控制层调用,控制层通过这些接口将预处理好的数据请求发送到服务层。每个服务层的接口都有与之对应的实现,实现类里面定义逻辑处理方法和对数据库的访问控制,得到处理之后的数据,将这些数据再返回给控制层。

服务层是系统的核心逻辑处理模块,内部都是逻辑处理代码,首先根据不同的不同的操作对象定义多个接口,再定义多个对应的类,分别实现那些接口,通过@Service注解将每个类都被注册为Spring的Bean,方便管理,以及方便控制层来调用这些逻辑处理方法。服务层设计的接口有:IExamService.java(对考试管理的服务)、IExaminationService.java(对普通用户参加考试流程的服务)、IQuestionService.java(对试题管理的服务)、IUserService.java(对用户管理的服务)、IScoreService.java(对统计成绩的服务)。每个接口都有对应的实现类,这些实现类统一存放在service包下的impl包中,例如:ExamServiceImpl.java、QuestionServiceImpl.java、UserServiceImpl.java等等。

5.2.4 数据库访问层实现

数据库访问层(Dao)是系统和数据库的交互模块,系统中所有数据都存放在MySQL数据库中,数据库访问层通过和MySQL数据库的连接访问所有的数据。

通过Druid数据库连接池管理连接操作,用.yml配置文件去配置Druid数据库连接池的连接信息。对于数据库系统的访问层,使用了MyBatis-plus架构搭建,在数据库系统中有多个表,并根据这些表设计了数据库访问层内部的接口技术,将这种接口技术提交给业务层调度,以达到由业务层直接控制数据库系统的使用,每一个接口继承MyBatis-plus框架提供的BaseMapper,因为每张表都有对应的实体类,所以数据库访问层的所有接口将与之对应的实体类作为泛型参数传递给BaseMapper接口。

数据库访问层内部设计的接口有:ExamDao.java、ChooseDao.java、InterlocutionDao.java、UserDao.java、StudentDao.java、TeacherDao.java、AnswerDao.java、AnswerDetailsDao.java。

5.3 视图层实现

视图层(View)是直接和用户进行交互的前端界面,视图层通过HTML、CSS、JavaScript和Vue框架搭建,页面内的元素采用Element-UI组件控制展示效果,所有发送的请求采用Ajax方式发送异步请求,页面的内容存放在.html文件内,页面的展示效果存放在.css文件内,页面的操作行为存放在.js文件内,因此根据页面属性的不同划分四个包,pages包内是所有的页面内容信息,js包内是页面的行为信息,css包内是页面的样式信息,img包内是页面展示时使用的图片信息。以下是几个系统的重要页面。

main.html+main.css+main.js:这个是后台系统控制页面,通过内嵌网页的方式,所有的后台功能页面都会展示在这个页面内。

student.html、teacher.html:这两个页面是用户管理功能的页面,分别对考试管理员(教师)和普通用户(考生)进行信息管理。

exam.html+exam.css+exam.js:考试管理页面,对所有考试信息的增删改查操作。

question.html+question.js:试题管理页面,对所有试题信息的增删改查操作。

score.html+score.js:成绩统计页面。

examination.html+examination.js:考生参加考试的页面。

第六章 基于Java Web的在线考试系统部署与测试

6.1 系统部署

系统功能开发完成之后,首先在本机开发环境下对系统的各个功能进行单元测试,单元测试通过之后,将系统编译打包为war包,这打包好的文件部署在实际的物理服务器上,部署流程如下所述。

(1)安装Window Server 10版本的操作系统到物理服务器上;

(2)安装Web服务,安装并配置Tomcat 8.5服务器;

(3)安装MySQL 5.7数据库,将数据库的信息设置成和程序配置文件中的信息一致,将基础的数据信息导入数据库中;

(4)安装JDK 1.8,程序使用的是Java语言编写,因此要执行该系统的业务功能,需要具有与开发系统所用的JDK版本保持一致;

(5)将系统部署到Tomcat服务器的Tomcat\apache-tomcat-8.5.68\webapps\ROOT目录下,这时该系统就是服务器的默认应用;

(6)设置系统的默认用户登录页面,以及默认管理页面。

6.2 系统测试

6.2.1 单元测试

(1)添加考试信息功能测试

对于该功能的测试代码如图6.1所示。代码执行完成后,在数据库中可以完整看到测试信息。

图6.1 添加考试信息功能单元测试

(2)删除试题信息功能测试

对于该功能的测试代码如图6.2所示。代码执行完成后,在数据库中查询不到测试id的信息。

图6.2 删除试题信息功能单元测试

6.2.2 集成测试

当控制系统设计完成后,为保证系统的正常工作和各种活动均可以实现预期的目标,对整个控制系统进行综合测试,设置基础的测试用例,用最后的实际测试结果进行验证。测试用例信息如表6.1所示。

表6.1 测试用例表

功能

输入数据

预期结果

实际结果

参加考试

选择一门考试,点击进入考试按钮

进入到考试界面,界面内显示考试的试题信息

成功进入到考试界面,并且正确显示试题信息

查询成绩

点击查询成绩按钮

界面显示所有的考试成绩

成功显示

考试管理-新增

考试的信息

在界面中可以看到该考试的信息

成功显示

考试管理-删除

选择一个考试,点击删除按钮

界面和数据库中删除该考试

成功删除该考试信息

试题管理-批量添加

编辑好的Excel文件

在试题展示界面可以看到所有添加的试题信息

成功显示

用户管理-修改

将用户“张三”的姓名改为“李四”

在用户信息界面看到“张三”的姓名变为“李四”

成功修改

随机出题

不同的用户点击进入考试

显示的试题信息不同

试题的题目顺序大多数都不相同

6.2.3 兼容性测试

本系统为B/S结构,因此兼容性测试是指系统在执行于不同的操作系统上时,不同的浏览器进行访问操作,得到的结果是否正确。

(1)平台测试

该操作系统部署在不同的操作系统平台上,可以使用浏览器来访问,主要测试的平台是Windows和Linux等操作系统,系统部署完成之后,对各个功能进行操作,实际的操作结果没有出现访问错误或者展示错误的情况。因此,目前测试的两个平台兼容性良好,达到了预期的结果。

(2)浏览器测试

操作系统配置在Windows平台下,能够通过不同的网页登陆操作系统,并对系统执行控制,以检验系统与各种网页的兼容。测试时采用了IE浏览器、Google客户端以及火狐浏览器,当通过这些服务器端登陆系统时,执行了相同的操作,最后的实际操作结果一样,没有出现访问错误情况。因为不同的浏览器对页面代码的解析方式不太一样,所以系统在浏览器界面内的展示样式有细微的差别,但是并没有达到影响用户操作的程度,浏览器的兼容性测试达到了预期效果。

6.2.4 压力测试

在系统正常启动后,使用压力测试软件Apache JMeter对系统进行压力测试,在一定的访问压力下,系统运行达到了预想结果,没有报错或者宕机,访问的反映时间也到达了理想情况。

6.2.5 稳定性测试

系统不断的运行了一周,在这段时间内使用测试软件不停向系统发送请求,这些请求中有正常的获取请求,还有一些对系统而言是非法的获取和添加请求,但是,在这期间系统没有出现异常,或者死机情况的发生。

结论与展望

本篇课题详细的介绍了基于Java Web的在线考试系统的实现,在实现这个系统的过程中,我完成了以下几项工作:

(1)通过查阅和参考了一些相关的文献资料,了解到国内外的在线考试系统的发展,并且深入思考和规划了该系统的工作流程。

(2)通过对系统工作流程的规划,对整个系统进行了整体结构的设计,并绘制了结构图。

(3)通过对 Java Web技术、 Spring技术、 MySQL等技术的深入研究,为系统原型的开发提供技术支撑,并在实际应用中找到了解决问题的方法。

(4)依照设计的系统结构,对每个功能进行详细的设计,例如:考试模块,其中包括考试试题展示、考生答案的存储等;管理模块,其中包括对考试、试题、用户的管理等。

(5)本系统在研究设计的基础上,完成了整个设计方案中所提及的多个部分的功能。

(6)部署和测试该系统,虽然在测试期间仍然存在着一些问题,但这都是可以被解决的。

本文对在线考试系统的应用领域和未来的发展趋势进行研究,并结合目前传统考试方式,以及通过对系统的可行性、功能要求、非功能要求分析,实现了系统的基本架构设计,在架构基础上对普通用户和管理员用户的功能需求进行了详细的设计与实现。

本文介绍了基于 JavaWeb的在线考试系统的实现方法、理论、技术等方面的内容,并对其进行了深入的研究和发展。但是以下几个方面,还需要作进一步的研究和开发。

(1)文章仅对试题中的一些基本要素进行了研究,而没有对试题种类等问题深入挖掘。所以该系统应对复杂的试题信息仍需进一步强化。可以对试题信息表中有关的部分进行改进,使试题的信息更加完整。

  1. 与Spring和MyBatis-Plus等相关的Java与Web技术,在系统的研发过程中运用的范围不是很广泛,因此尚有进一步提升的余地。

致 谢

参考文献

  1. 宋巍. 基于B/S构架的在线考试系统设计与研究[J]. 电大理工,2021(2):18-20,25.
  2. Pooja,Yuldashev Nodirbek,Lai A.F.,Liu I.C.,Oktapiani R.,Ramdhani L.S.,Andika E.,Djajasukma D.,Heryanto H.. The role and utilizing of web based online examination system in all educational areas[J]. ACADEMICIA: An International Multidisciplinary Research Journal,2021,11(12).
  3. 贾寒霜,黄军峰. 浅析在线考试系统的发展现状与趋势研究[J]. 电脑迷,2018(31):271.
  4. 郝佳. Spring源码深度解析[M].人民邮电出版社:, 201309.397.
  5. 许文柯.Spring技术内幕:深入解析Spring架构与设计原理[M].北京:机械工业出版社,2012:18~19
  6. Yao Zhang Li,Sheng Gao,Jing Pan,Bi Feng Guo,Pei Feng Xie. Research and Application of Template Engine for Web Back-end Based on MyBatis-Plus[J]. Procedia Computer Science,2020,166(C).
  7. 陈永政,张正龙.Java EE框架技术:SpringMVC+Spring+MyBatis[M].西安:西安电子科技大学出版社,2018:1~3.
  8. 刘昊,李民.基于SSM框架的客户管理系统设计与实现[J].软件导刊,2017,16(07):87-89.
  9. 温立辉.开源中间件Tomcat高级应用浅谈[J].科技资讯, 2019,17(11):7-8.
  10. 薛敏. 基于Laravel框架的P2P网贷系统的设计与实现[D].吉林大学,2016.
  11. Bouamrane Karim,Matallah Houcine,Belalem Ghalem. Comparative Study Between the MySQL Relational Database and the MongoDB NoSQL Database[J]. International Journal of Software Science and Computational Intelligence (IJSSCI),2021,13(3).
  12. 祁欣玥,陈雪洁,俞晓明,等.在线考试系统的设计与实现[J].福建电脑,2020,36(4):94-96.
  13. 余庆茂,吴美姗.采用JavaWeb技术的基础平台考试系统[J].福建电脑,2021,37(04):120-122
  14. 杨晓吟.在线考试系统防止作弊机制[J].电子技术与软件工程,2017(22):160-161.
  15. 李继伟.基于ASP.NET和Ajax技术的在线考试系统关键技术研究[J].电子测试,2020(14):74-75+85.

基于Java Web的在线考试系统的实现相关推荐

  1. 毕业设计 - 基于java web的在线考试系统【源码+论文】

    文章目录 前言 一.项目设计 1. 模块设计 2. 基本功能 2.1 登录功能 2.2 系统答题 2.3 答题得分 2.4 错题解析 3. 实现效果 二.部分源码 项目源码 前言 今天学长向大家分享一 ...

  2. 基于java web的在线考试系统(源码+论文)

    今天介绍的一个项目是, 基于java web的在线考试系统 1 设计内容及要求 1.1 在线考试系统概述 基于Java web开发的在线考试系统不仅可以充分利用校园内各种资源,对学校的各种教学资源进行 ...

  3. 计算机毕业设计 基于java web的在线考试系统(源码+论文)

    文章目录 1 项目简介 2 实现效果 3 系统设计 3.2 系统设计流程 4 关键代码 5 论文概览 6 最后 1 项目简介

  4. 基于JAVA四六级在线考试系统计算机毕业设计源码+数据库+lw文档+系统+部署

    基于JAVA四六级在线考试系统计算机毕业设计源码+数据库+lw文档+系统+部署 基于JAVA四六级在线考试系统计算机毕业设计源码+数据库+lw文档+系统+部署 本源码技术栈: 项目架构:B/S架构 开 ...

  5. 【27】基于java的学生在线考试系统

    一.项目简介 随着互联网迅速发展,人们的生活已经越来越离不开互联网,人们足不出户就可以工作.学习等.对于在校学生,通过网络教育不仅可以随时进行网络学习,也可以根据学习的情况自我检测,有利于学生高效.快 ...

  6. 基于java的springboot在线考试系统毕业设计springboot开题报告

    (1)注册登录:游客进行账号注册.登录平台 (2)查看网站介绍:网站介绍.关于我们.联系我们.加入我们.法律声明 (3)考试列表:显示网站提供的所有试卷:可以按试卷的类型来分类. (4)试卷详情:在试 ...

  7. 【毕业设计】基于SSM的网络在线考试系统的设计与实现

    文章目录 前言 1 课题描述 2 相关技术 3 系统需求分析 3.1 功能需求分析 3.1.1 学生端: 3.1.2 超级管理员端: 3.1.3 试题管理员端(老师): 4 系统设计框架 4.1 系统 ...

  8. 基于Web的在线考试系统

    基于Web的在线考试系统     二十一世纪的今天,随着社会的迅猛发展,科技也越来越发达,互联网已经遍布于家家户户,深入到人们的日常生活中.网络技术给我们当今的教育方式的带来了一次历史性的变革,在线考 ...

  9. 基于J2EE架构的在线考试系统-Java(报告+源码+PPT

    目前国内基于B/S.C/S结构的在线考试系统产品已经有许多,本文首先介绍了这些考试系统的形成和发展过程,大致结构.然后通过仔细分析,提出了目前的这些系统还存有系统更新和维护等种种弊端,仍不够成熟.基于 ...

最新文章

  1. 20160531-20160607springmvc入门
  2. 好程序员Java教程分享之jvm篇
  3. Matlab GUI 如何自动缩放
  4. 机器学习中的损失函数
  5. folderutils.java_值得分享的超全文件工具类FileUtil
  6. DI(依赖注入)简单理解 NO1
  7. mc服务器如何开修改物品开挂,如何在我的世界电脑服务器开挂
  8. C++ STL 一般总结
  9. HP, That's A Dream Or Not?
  10. 【转】spring之任务调度
  11. XAF-UI元素概述
  12. 按值设置选择选项“已选择”
  13. IronPython 小试牛角
  14. MATLAB离散控制系统
  15. outlook图片显示红叉
  16. 泰克Tektronix示波器软件TDS420|TDS430|TDS460上位机软件NS-Scope
  17. 锁存器(latch)和触发器(filp-flop)的概念和区别?为什么多用register。行为级描述中latch如何产生的?
  18. Kubernetes入门一:介绍及环境准备
  19. Delphi CreateMutex 防止程序多次运行
  20. 视频教程-SharePoint 2016进阶教程-其他

热门文章

  1. Markdown富文本编辑器(数学公式教程)
  2. 【慕课网】人工智能-语音入门|公开课知识整理
  3. 网易云音乐接入微信状态
  4. 极速掌握HTML(一)基础入门
  5. MyEclipse10激活方法
  6. 并发和多线程(一)并发、进程、线程概念
  7. Kylin接入外部Jdbc Mysql数据源
  8. JJWT:JWS, JWE, JWK, JWA, JWT
  9. 解决mysql sum求和返回null问题或IFNULL应用
  10. lisp 阿基米德螺旋_用CAD如何画阿基米德螺旋线