摘 要
在线考试管理系统是一款集成考试报名、题库管理、在线考试、自动评分及成绩查询等多项功能的软件系统。它充分利用现代信息技术手段,实现考试流程的自动化和无纸化,提高考试效率和准确性。为考生和考试机构提供便捷、高效的服务,是现代考试管理的有力工具。
系统采用基于Java语言网站开发技术设计的,结合Mysql数据库管理系统对旅游相关信息进行管理。按照软件工程学理论完成各阶段设计,经过调试测试达到了在线考试管理系统的能力。满足了管理员、教师和用户的需要。论文从系统开发过程概述、开发工具简介、系统总体设计、系统开发、软件测试等几个方面进行了介绍。最后总结了系统开发的得失。
关键词:在线考试;java技术;springboot框架;Mysql;
4 系统总体设计
4.1系统功能结构设计图
根据需求说明设计系统各功能模块。采用模块化设计方法实现一个复杂结构进行简化,分成一个个小的容易解决的板块,然后再将小的板块继续分化成功能单一的更小模块。模块化设计方法使测试调试、维护更容易,减少模块间的干扰。各模块可以同时开发提高开发效率。本系统功能结构图:
图 4-1系统功能结构图
4.2.3 系统数据表设计(共18张表)
数据库表的设计通常是根据业务逻辑设置的。数据库模型在数据库中设计,并根据模型创建数据库表。数据库包含以下数据表来实现对数据库的存储和调用。以下是每个数据表的字段名称、类型、长度、字段说明、主键和默认值。
表4-1:在线考试表
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
id |
bigint |
主键 |
主键 |
||
addtime |
timestamp |
创建时间 |
CURRENT_TIMESTAMP |
||
name |
varchar |
200 |
在线考试名称 |
||
time |
int |
考试时长(分钟) |
|||
status |
int |
在线考试状态 |
0 |
||
jiaoshizhanghao |
varchar |
200 |
教师账号 |
表4-2:token表
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
id |
bigint |
主键 |
主键 |
||
userid |
bigint |
用户id |
|||
username |
varchar |
100 |
用户名 |
||
tablename |
varchar |
100 |
表名 |
||
role |
varchar |
100 |
角色 |
||
token |
varchar |
200 |
密码 |
||
addtime |
timestamp |
新增时间 |
CURRENT_TIMESTAMP |
||
expiratedtime |
timestamp |
过期时间 |
CURRENT_TIMESTAMP |
此处省略16张表。。。
表4-18:试题表
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
id |
bigint |
主键 |
主键 |
||
addtime |
timestamp |
创建时间 |
CURRENT_TIMESTAMP |
||
paperid |
bigint |
所属在线考试id(外键) |
|||
papername |
varchar |
200 |
在线考试名称 |
||
questionname |
varchar |
200 |
试题名称 |
||
options |
longtext |
4294967295 |
选项,json字符串 |
||
score |
bigint |
分值 |
0 |
||
answer |
varchar |
200 |
正确答案 |
||
analysis |
longtext |
4294967295 |
答案解析 |
||
type |
bigint |
试题类型,0:单选题 1:多选题 2:判断题 3:填空题(暂不考虑多项填空)4:主观题 |
0 |
||
sequence |
bigint |
试题排序,值越大排越前面 |
100 |
||
jiaoshizhanghao |
varchar |
200 |
教师账号 |
4.3小结
本章刚开始总结了整个系统的总体功能,以树型图展示出来,使得看上去更加清晰明朗,而后介绍了每一个模型的属性和对数据库表的设计。
5 系统详细设计与实现
按照软件工程的流程来说,在系统的详细设计与实现阶段,要把模块、视图、模板进行相应的组合完成一个个所需的功能,此章将会把设计中模块一一说明如何设计和实现的。
5.1前台功能实现
5.1.1系统首页页面
当人们打开系统的网址后,首先看到的就是首页界面。在这里,人们能够看到系统的导航条,通过导航条导航进入各功能展示页面进行操作。系统首页界面如图5-1所示:
图5-1 系统首页界面
在注册流程中,用户在Vue前端填写必要信息(如用户名、密码等)并提交。前端将这些信息通过HTTP请求发送到Java后端。后端处理这些信息,检查用户名是否唯一,并将新用户数据存入MySQL数据库。完成后,后端向前端发送注册成功的确认,前端随后通知用户完成注册。这个过程实现了新用户的数据收集、验证和存储。系统注册页面如图5-2所示:
图5-2系统注册页面
习题资料:点击习题资料页面可以看到习题资料详情信息,并根椐需要进行评论、下载或收藏;习题资料页面如图5-3所示:
图5-3习题资料详细页面
考试信息:点击考试信息页面可以看到考试信息详情,并根据需要进行操作;考试信息页面如图5-4所示:
图5-4考试信息详细页面
5.1.2个人中心
个人中心:在个人中心页面可以对个人中心、修改密码、考试记录、错题本、我的收藏进行详细操作;如图5-5所示:
图5-5个人中心界面
5.2后台模块实现
在登录流程中,用户首先在Vue前端界面输入用户名和密码。这些信息通过HTTP请求发送到Java后端。后端接收请求,通过与MySQL数据库交互验证用户凭证。如果认证成功,后端会返回给前端,允许用户访问系统。这个过程涵盖了从用户输入到系统验证和响应的全过程。如图5-6所示。
图5-6 管理员登录界面
5.2.1管理员功能实现
管理员进入主页面,主要功能包括对用户管理、教师管理、资料类型管理、习题资料管理、考试信息管理、试题管理、试题库管理、在线考试管理、系统管理、考试管理、用户信息等进行操作。管理员主页面如图5-7所示:
图5-7管理员主界面
教师管理功能在视图层(view层)进行交互,比如点击“查询、添加或删除”按钮或填写教师管理信息表单。这些教师管理表单动作被视图层捕获并作为请求发送给相应的控制器层(controller层)。控制器接收到这些请求后,调用服务层(service层)以执行相关的业务逻辑,例如验证输入数据的有效性和与数据库的交互。服务层处理完这些逻辑后,进一步与数据访问对象层(DAO层)交互,后者负责具体的数据操作如查看、修改或删除教师管理信息,并将操作结果返回给控制器。最终,控制器根据这些结果更新视图层,以便教师管理功能可以看到最新的信息或相应的操作反馈。用户界面如图5-8所示:
图5-8教师管理界面
资料类型管理功能在视图层(view层)进行交互,比如点击“查询、添加或删除”按钮或填写资料类型管理信息表单。这些资料类型管理表单动作被视图层捕获并作为请求发送给相应的控制器层(controller层)。控制器接收到这些请求后,调用服务层(service层)以执行相关的业务逻辑,例如验证输入数据的有效性和与数据库的交互。服务层处理完这些逻辑后,进一步与数据访问对象层(DAO层)交互,后者负责具体的数据操作如查看、修改或删除资料类型管理信息,并将操作结果返回给控制器。最终,控制器根据这些结果更新视图层,以便资料类型管理功能可以看到最新的信息或相应的操作反馈。资料类型管理界面如图5-9所示:
图5-9资料类型管理界面
习题资料管理功能在视图层(view层)进行交互,比如点击“查询、添加或删除”按钮或填写习题资料管理信息表单。这些习题资料管理表单动作被视图层捕获并作为请求发送给相应的控制器层(controller层)。控制器接收到这些请求后,调用服务层(service层)以执行相关的业务逻辑,例如验证输入数据的有效性和与数据库的交互。服务层处理完这些逻辑后,进一步与数据访问对象层(DAO层)交互,后者负责具体的数据操作如查看、修改、查看评论或删除习题资料管理信息,并将操作结果返回给控制器。最终,控制器根据这些结果更新视图层,以便习题资料管理功能可以看到最新的信息或相应的操作反馈。习题资料管理界面如图5-10所示:
图5-10习题资料管理界面
考试信息管理功能在视图层(view层)进行交互,比如点击“查询、添加或删除”按钮或填写考试信息管理表单。这些考试信息管理表单动作被视图层捕获并作为请求发送给相应的控制器层(controller层)。控制器接收到这些请求后,调用服务层(service层)以执行相关的业务逻辑,例如验证输入数据的有效性和与数据库的交互。服务层处理完这些逻辑后,进一步与数据访问对象层(DAO层)交互,后者负责具体的数据操作如查看、修改或删除考试信息管理,并将操作结果返回给控制器。最终,控制器根据这些结果更新视图层,以便考试信息管理功能可以看到最新的信息或相应的操作反馈。考试信息管理界面如图5-11所示:
图5-11考试信息管理界面
5.2.2教师功能实现
教师进入主页面,主要功能包括对教师管理、资料类型管理、习题资料管理、考试信息管理、在线考试管理、试题管理、试题库管理、系统管理、考试管理、用户管理等进行操作。教师主页面如图5-12所示:
图5-12考教师主界面