目录
一、需求分析
二、系统设计
三、业务设计
四、数据字典设计
五、界面展示
六、资源获取
在线考试系统功能强大,对于整个考试流程而言,该系统是将考试组织、试题传输、阅卷审批、分析评价等功能一体化,避免了人工干预的可能,最大程度地保证考试的公平性、透明性。同时也节省了纸张资源,更符合可持续发展的绿色理念。随着网络的发展,在线考试系统应用越来越广泛,在国内外的许多大型考试中逐步被推广使用,凭借其便捷性和高效性深受师生们的喜爱。
本系统基于B/S系统架构,结合主流框架技术进行开发的在线考试系统。该系统拥有出题组卷、线上考试、题库练习、反作弊系统、阅卷批改、答题分析的全流程覆盖的功能,真正实现了无纸化考试,确保完整化的考务工作,减轻教师的负担,提升教学效果。同时,系统为学生提供了线上考试模式、题库练习模式两种做题模式。通过练习模式,查看解析及时巩固知识点。目前使用的高校考试系统,存在普遍的问题,缺乏对答题情况以及错题知识点的归纳,学生难以及时查漏补缺,学习效果并不显著。综合分析学生的答题情况,为学生展示错误题目的树状知识点清单,分析答题正确率,为学生提供一个在线考试、答题分析的考试系统,实现在线做题、分析总结一体化。
1、系统技术架构图
【前端】vue2.0 + ElementUI
【后端】SpringBoot + Mybatis + MySQL
2、功能架构
1、在线考试流程
如图5所示,学生在考试页面选择参加的考试,服务器根据用户密钥进行权限判断,主要包括是否符合专业要求、允许参加次数等,通过判断则将试卷必要信息传输到浏览器。浏览器再次进行逻辑判断,是否属于当前考试时间段,是则进入考试,全称监控切屏次数,超额将自动交卷。
2、查看考试成绩
如图6所示,学生通过个人成绩界面,可以查看到已经批改的试卷的题型分析雷达图、错题知识点思维导图。
3、试卷管理
如图7所示,教师根据题库试题在线组卷,选择题型类型,根据题目内容以及类型,搜索添加对应试题,可通过移动题目来自定义题目位置,最后确认考试科目完成组卷。
4、考试管理
如图8所示,考试管理主要流程为添加考试流程。教师选择已经存在的试卷,选择参加考试的学生专业,设置考试时间、允许参加次数、考试类型(口令考试或者开放考试),确认信息完成添加考试的操作。
如表2所示,数据库中需要存储用户的个人信息,如学号或工号、加密后密码、姓名,登录用户名等信息。
表2 用户表user
列名 |
数据类型 |
主键 |
描述 |
id |
varchar(36) |
是 |
用户编号 |
u_id |
varchar(20) |
用户工号 |
|
name |
varchar(10) |
用户姓名 |
|
username |
varchar(20) |
用户登录名 |
|
password |
varchar(20) |
登录密码 |
|
createtime |
datetime(0) |
创建时间 |
|
last_logintime |
datetime(0) |
最后登录时间 |
|
departmentid |
varchar(36) |
所属专业编号 |
如表3所示,系统角色表保存角色名以及权限描述。
表3 系统角色表role
列名 |
数据类型 |
主键 |
描述 |
id |
varchar(36) |
是 |
角色编号 |
name |
varchar(20) |
角色名称 |
|
description |
varchar(100) |
拥有功能介绍 |
|
createtime |
datetime(0) |
创建时间 |
如表4所示,角色表作用是存储该系统用户的角色,同时每个角色都拥有描述信息,介绍该角色拥有的功能。
表4 系统用户的当前角色表user_role
列名 |
数据类型 |
主键 |
描述 |
id |
varchar(36) |
是 |
数据编号 |
userid |
varchar(36) |
关联用户编号 |
|
roleid |
varchar(36) |
关联角色编号 |
|
createtime |
datetime(0) |
创建时间 |
如表5所示,系统角色权限表,存储角色编号,以及菜单编号,建立其两者的联系。根据这种联系,代表角色拥有的系统权限,通过这个表维护角色权限。
表5 系统角色权限表role_menu
列名 |
数据类型 |
主键 |
描述 |
id |
varchar(36) |
是 |
权限编号 |
roleid |
varchar(36) |
菜单名称 |
|
masterid |
varchar(36) |
关联父菜单 |
|
status |
int(11) |
是否隐藏菜单 |
|
createtime |
datetime(0) |
创建时间 |
如表6所示,对于用户专业表,重要的还是存储其关联的父类专业,维持各类专业之间的包含关系。
表6 用户专业表department
列名 |
数据类型 |
主键 |
描述 |
id |
varchar(36) |
是 |
专业编号 |
name |
varchar(20) |
专业名称 |
|
sort |
int(11) |
专业顺序 |
|
masterid |
varchar(36) |
关联父专业 |
|
createtime |
datetime(0) |
创建时间 |
如表7所示,系统需要借助数据库管理系统菜单栏,表中主要保存菜单名称、菜单图标、菜单路由地址,同时维护菜单的父子级关系结构。
表7 系统菜单表menu
列名 |
数据类型 |
主键 |
描述 |
id |
varchar(36) |
是 |
菜单编号 |
name |
varchar(20) |
菜单名称 |
|
sort |
int(11) |
菜单顺序 |
|
masterid |
varchar(36) |
关联父菜单 |
|
icon |
varchar(50) |
菜单图标 |
|
hidden |
int(11) |
是否隐藏菜单 |
|
route |
varchar(50) |
菜单路由连接 |
|
createtime |
datetime(0) |
创建时间 |
如表8、9所示,表8为学生参加某场考试记录表,记录关联用户编号、关联试卷编号、关联考试编号,维护它们之间的一对一关系;表9为学生参加某场考试的每道试题德答题情况表,保存关联学生参加某场考试记录表的数据编号、关联的试题编号、学生的实际作答结果、题目得分等。
表8 用户参加考试记录表user_join
列名 |
数据类型 |
主键 |
描述 |
id |
varchar(36) |
是 |
记录编号 |
userid |
varchar(36) |
关联用户编号 |
|
examination |
varchar(36) |
关联考试编号 |
|
testpaper |
varchar(36) |
关联试卷编号 |
|
starttime |
datetime(0) |
考试开始时间 |
|
endtime |
datetime(0) |
考试结束时间 |
|
type |
int(11) |
考试状态 |
|
score |
int(11) |
考试分数 |
表9 考试记录试题表user_join_info
列名 |
数据类型 |
主键 |
描述 |
id |
varchar(36) |
是 |
记录编号 |
masterid |
varchar(36) |
关联考试记录编号 |
|
question |
varchar(36) |
关联试题编号 |
|
reply |
varchar(1000) |
试题回答内容 |
|
correctScore |
int(11) |
当前题目实际得分 |
如表10所示,试题表是系统最重要的数据表之一,主要保存试题信息,包括试题内容、试题类型、选择题选项内容、题目解析、涉及的知识点编号。
表10 试题表question
列名 |
数据类型 |
主键 |
描述 |
id |
varchar(36) |
是 |
试题编号 |
content |
varchar(1000) |
试题内容 |
|
type |
varchar(20) |
试题类型 |
|
subject |
varchar(36) |
所属科目编号 |
|
opt_a |
varchar(200) |
选项A |
|
opt_b |
varchar(200) |
选项B |
|
opt_c |
varchar(200) |
选项C |
|
opt_d |
varchar(200) |
选项D |
|
score |
int(10) |
试题分数 |
|
imgurl |
varchar(200) |
试题图片 |
|
analysis |
varchar(1000) |
试题解析 |
|
answer |
varchar(1000) |
试题答案 |
|
kid |
varchar(36) |
关联知识点编号 |
|
createtime |
datetime(0) |
创建时间 |
如表11所示,试卷表也是系统最重要的数据表之一,主要保存试卷的名称、所属科目、统计保存各类题型的数量。
表11 试卷表testpaper
列名 |
数据类型 |
主键 |
描述 |
id |
varchar(36) |
是 |
试卷编号 |
name |
varchar(20) |
试卷名称 |
|
subject |
varchar(36) |
所属科目编号 |
|
xznum |
int(11) |
选择题数量 |
|
pdnum |
int(11) |
判断题数量 |
|
jdnum |
int(11) |
简答题数量 |
|
fillnum |
int(11) |
填空题数量 |
|
score |
int(11) |
试卷总分 |
|
time |
int(11) |
试卷用时 |
|
createtime |
datetime(0) |
创建时间 |
如表12所示,公告表保存着日常的系统或者教学公告。
表12 公告表notice
列名 |
数据类型 |
主键 |
描述 |
id |
varchar(36) |
是 |
公告编号 |
title |
varchar(255) |
公告题目 |
|
content |
longtext(0) |
公告详情 |
|
type |
varchar(20) |
公告类型 |
|
updatetime |
datetime(0) |
更新时间 |
|
createtime |
datetime(0) |
创建时间 |
如表13所示,考试表也是系统最重要的数据表之一,主要考试信息、关联的试卷编号、允许参加次数的限制。
表13 考试表examination
列名 |
数据类型 |
主键 |
描述 |
id |
varchar(36) |
是 |
考试编号 |
name |
varchar(20) |
考试名称 |
|
testpaper |
varchar(36) |
关联试卷编号 |
|
qualifiedscore |
int(11) |
考试满分 |
|
type |
int(11) |
考试状态 |
|
password |
varchar(20) |
考试口令 |
|
joinnum |
int(20) |
允许参加的次数 |
|
starttime |
datetime(0) |
开始时间 |
|
endtime |
datetime(0) |
结束时间 |
|
createtime |
datetime(0) |
创建时间 |
如表14所示,数据库需存储考试科目。如表15所示,试题需要关联到知识点,同时答题分析需要用到知识点的树状结构。
表14 科目表subject
列名 |
数据类型 |
主键 |
描述 |
id |
varchar(36) |
是 |
科目编号 |
name |
varchar(20) |
科目名称 |
表15 知识点表knowledge_point
列名 |
数据类型 |
主键 |
描述 |
id |
varchar(36) |
是 |
知识点编号 |
name |
varchar(20) |
知识点名称 |
|
masterid |
varchar(36) |
关联父知识点 |
|
createtime |
datetime(0) |
创建时间 |
1、系统登录界面
2、系统首页
3、系统管理
4、考试公告管理
5、添加试题
6、考试管理
7、试卷批改
8、成绩管理
9、进行在线考试
10、成绩分析
答题分析
错误知识点汇总
11、公告查看
12、题库练习
如果觉得文章有用的话,三连支持一下吧!!!!