2 Star 2 Fork 0

gchen li / 上机考试系统

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

上机考试系统

介绍

该系统为上机考试系统,由Java Web进行编写,经过软件测试,具备一定的实用性,并已部署在远程服务器提供浏览器访问,网址;该系统的主要目标是通过绑定ip地址的方式控制学生登录,从而保证参加考试的学生必须独立完成并提交程序,杜绝代别人提交的情况。上机考试管理系统面向三类用户:管理员、教师和学生。管理员用户负责系统整体管理,包括管理教师帐号、清理考试数据、更改系统全局配置等。教师用户可以创建考试,在考前上传试卷、导入参加考试学生名单;创建考试的教师可以开启和结束考试;考试中所有登录教师可以查看学生登录和提交情况、根据实际情况解除个别学生登录锁定,向参加考试学生发送通知消息,考后创建考试的教师可以打包下载学生提交文件并导出提交记录。学生用户在上机考试期间的主要操作是下载试卷和提交答案,可以查看自己提交过文件信息;教师发出的通知消息要及时显示。

img

软件架构

项目本身采用mvc框架,方便后期修改;

项目采用tomcat进行部署,支持所有主流浏览器的访问;

数据库采取Dbcp连接池,方便与远程数据库的数据交互,降低了远程数据库实时工作量;

安装教程

  1. 项目本身由eclipse编写,由git pull到本地即可进行运行;
  2. 数据库采用了MySQL,数据库文件在项目文件夹中,导入后即可与项目程序直接进行数据交互;

项目功能要求

管理员功能需求

img

l 登录:提供管理员登录的入口,在程序中可以预设默认管理员登录信息(admin/admin),如果数据库中有管理员身份的帐号信息,则默认管理员失效。对于非默认管理员,登录后除了可以进行后面所列操作,还可以修改密码。

l 教师管理:可以对教师用户进行增删改查操作,并可以指定特定教师作为系统管理员,系统可以有多个管理员。如果系统数据库中没有任何一个教师具有管理员身份,则默认管理员登录信息有效。

img

l 考试清理:清除考试的相关数据,包括数据库中的学生信息、登录ip地址绑定信息、提交信息等,以及文件系统中的提交文件。考试清理只有在主考教师已经打包下载学生提交文件后才可以进行。清理后的考试可以删除。

l 系统配置:设置一些全局性的系统选项,包括后台任务的时间周期、分页查询时的每页记录数、手动开启考试的时间阈值、学生上传文件字节数的有效范围等。另外可以指定是否允许主考教师清理和删除考试。

img

img

2)教师功能需求

img

l 登录:提供教师登录的入口,可用的教师登录信息要由管理员提前写入数据库中。登录后除了可以进行后面所列出的操作,还可以修改密码、退出登录。

l 新建考试:教师可以新建考试,指定考试名称、开始时间、是否自动开始等信息。

l 编辑考试:对于未开始的考试,创建的教师可以对考试信息进行编辑,不仅可以更改考试名称、开始时间等信息,还可以上传试卷、导入学生名单、开启考试等。

img

l 试卷上传:在考试开始前可以上传考题文件,具体文件格式不限,多次上传以最后一次上传为准。

l 学生名单导入:教师可以查看已有的学生名单;教师可以手工添加个别学生信息;也可以通过Excel表格或CSV文件形式批量导入学生名单,文件格式要求:Excel文件是Excel 2003的.xls文件,学生名单数据应有3列,第一行是列的名字,分别是学号、姓名、班级,CSV文件结构类似。

l 开启考试:如果考试指定自动考试,则系统会在指定开始时间自动开启考试;无论是否设置自动开启,主考教师均可在指定的考试开始时间附近手动开启考试,手动开启时允许的时间偏差范围由管理员在全局配置中设置,默认为15分钟。 注意:开启考试后学生才可以登录,为了避免相互干扰,系统中同一时间只允许开启一场考试。

l 查看考试情况:考试中间监考教师可以查看考试概况,包括有应考试学生数、已登录/未登录学生数、已提交/未提交学生数;并且可以查看详细情况,包括已登录/未登录学生名单、已登录学生中已提交/未提交学生名单。

img

l 学生信息管理:考试中间,如果出现导入学生信息不全或者临时增加参加考试学生的情况,监考教师可以手工添加学生信息;监考教师可以根据学号、姓名等查询学生信息。

l 解除学生登录锁定:考试中间学生考试用计算机出现问题时,需要更换计算机,需要监考教师对其已经登录的ip地址解锁后,学生才可以在其他计算机上登录。可以根据学号、姓名、ip地址等查询特定学生信息,然后进行解锁操作。

l 通知管理:考试中间监考教师都可以发布通知消息,例如临时提出附加要求,提醒及时提交等。通知消息已字符串列表形式管理,可以新增通知条目,也可以删除现有条目。所有通知条目会在学生登录后的页面中以列表形式显示。

l 考试结束:主考教师可以指定考试结束,考试一旦结束,则学生不能再进行任何操作(不能提交、不能查看、不能登录),监考教师亦不能进行任何操作,因此在结束考试前一定要查看考试情况,确认学生正确提交。

l 答卷下载:可以把所有学生提交答案打包下载,各个学生提交内容会根据对应学号、姓名放在不同文件夹下。

l 导出提交信息:可以把所有学生提交的信息(包括班级、学号、姓名、最后提交时间)导出到一个Excel表中,用于评阅时参考。因为允许学生多次提交,只需记录最后一次提交的时间。

l 考试清理和删除:清除本人创建考试的相关数据,包括数据库中的学生信息、登录ip地址绑定信息、提交信息等,以及文件系统中的提交文件。考试清理只有在已经打包下载学生提交文件后才可以进行;清理后的考试可以删除。教师是否能够进行考试清理和删除,需要管理员在全局配置中设置。

3) 学生功能需求

img

l 登录:如果考试已经开启,学生可以填写自己的学号和姓名进行登录。登录信息通过ip地址绑定的方式锁定以防止学生冒名登录,即:如果该学号和姓名已经在其他计算机上登录过,或者本机已经登录过其他学生,则不允许登录。

l 试卷下载:学生可以下载教师考前上传的试卷。

img

l 答案上传:学生完成部分或全部答案后,可以打包相关文件,然后上传。不同学生上传文件在不同目录下,不会相互覆盖;同一学生上传同名文件会覆盖之前文件。

img

l 查看已提交文件:可以查看自己已经上传的文件。

(1) 其他要求

因为本项目强调所开发系统的实用性,因此在功能要求之外,还对性能提出了要求。另外,对于系统的跨平台部署和访问、开发过程的协作方式也有一些具体要求。

1)性能要求

l 单次考试支持500以上在线用户。

l 200以上用户并发提交答案时能够正确提交。

2)跨平台要求

l 系统可以部署在Windows/Linux系统上。

l 客户端可以使用主流浏览器(Firefox、Chrome、IE等)。

参与贡献

  1. Guangchen Li
  2. Haoyu Zhang
  3. He Tang

系统概要设计

相关的业务逻辑图,UML类图和顺序图等图描述见项目文件夹内的设计文档

此处仅截取表格部分;

数据字典

数据流编号: F-01
数据结构名称: 答卷
简述: 考生作答完成后提交的答卷
来源: 考生
去向: 考后处理模块
数据流组成: {考生信息+答卷}
数据流量: 100份/秒
高峰流量: 200份/秒
数据流编号: F-02
数据结构名称: 已提交答卷
简述: 考生已提交的答卷
来源: 考后处理模块
去向: 考生
数据流组成: {已提交答卷+提交时间}
数据流量: 100份/秒
高峰流量: 200份/秒
数据流编号: F-03
数据结构名称: 学生名单
简述: 老师导入的学生名单
来源: 学生数据库
去向: 考前准备模块
数据流组成: {学生名单}
数据流量: 100份/秒
高峰流量: 200份/秒
数据流编号: F-04
数据结构名称: 当前学生IP
简述: 分配给当前学生的IP
来源: 考前准备模块
去向: 学生数据库
数据流组成: {当前学生IP}
数据流量: 100份/秒
高峰流量: 200份/秒
数据流编号: F-05
数据结构名称: 更改后学生IP
简述: 由老师更改后重新分配给当前学生的IP
来源: 考试系统
去向: 学生数据库
数据流组成: {更改后学生IP}
数据流量: 100份/秒
高峰流量: 200份/秒
数据流编号: F-06
数据结构名称: 考前机房剩余IP
简述: 考试前机房实时剩余的IP
来源: 机房
去向: 考前准备模块
数据流组成: {当前机房剩余IP}
数据流量: 100份/秒
高峰流量: 200份/秒
数据流编号: F5-07
数据结构名称: 考试占用后剩余IP
简述: 考试占用后机房实时剩余的IP
来源: 考后处理模块
去向: 机房
数据流组成: {考试占用后剩余IP}
数据流量: 100份/秒
高峰流量: 200份/秒
数据流编号: F-08
数据结构名称: 考试结束后释放的IP
简述: 考试结束后由考试系统释放的IP
来源: 考后处理模块
去向: 机房
数据流组成: {考试结束后释放的IP}
数据流量: 100份/秒
高峰流量: 200份/秒
数据流编号: F-09
数据结构名称: 试卷
简述: 老师考前提交的试卷
来源: 老师
去向: 考前准备模块
数据流组成: {试卷}
数据流量: 100份/秒
高峰流量: 200份/秒
数据流编号: F-10
数据结构名称: 更改IP申请
简述: 老师向系统申请更改特定学生IP
来源: 老师
去向: 考试进行模块
数据流组成: {更改IP申请}
数据流量: 100份/秒
高峰流量: 200份/秒
数据流编号: F-11
数据结构名称: 考试信息
简述: 考试实时信息
来源: 考前准备模块,考后处理模块
去向: 老师
数据流组成: {考试已到人数+考试已提交人数}
数据流量: 100份/秒
高峰流量: 200份/秒
数据流编号: F-12
数据结构名称: 下载答卷
简述: 考生提交答卷的压缩包
来源: 考后处理模块
去向: 老师
数据流组成: {考生提交答卷的压缩包}
数据流量: 100份/秒
高峰流量: 200份/秒
数据流编号: F-13
数据结构名称: 机房管理申请
简述: 管理员管理机房信息的申请
来源: 管理员
去向: 管理员管理模块
数据流组成: {机房管理申请}
数据流量: 100份/秒
高峰流量: 200份/秒
数据流编号: F-14
数据结构名称: 管理员修改后机房IP信息
简述: 管理员修改后机房IP信息
来源: 管理员管理模块
去向: 机房
数据流组成: {管理员修改后机房IP信息}
数据流量: 100份/秒
高峰流量: 200份/秒
数据流编号: F-15
数据结构名称: 试卷下载申请
简述: 考生下载试卷的申请
来源: 考生
去向: 考试进行模块
数据流组成: {试卷下载申请}
数据流量: 100份/秒
高峰流量: 200份/秒
数据流编号: F-16
数据结构名称: 试卷
简述: 考生下载试卷
来源: 考试进行模块
去向: 考生
数据流组成: {试卷}
数据流量: 100份/秒
高峰流量: 200份/秒
数据流编号: F-17
数据结构名称: 老师账号管理
简述: 管理员对老师账号的管理申请
来源: 管理员
去向: 管理员管理模块
数据流组成: {管理员对老师账号的管理申请}
数据流量: 100份/秒
高峰流量: 200份/秒

空文件

简介

取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
Java
1
https://gitee.com/li-guangchen/computer-test-system.git
git@gitee.com:li-guangchen/computer-test-system.git
li-guangchen
computer-test-system
上机考试系统
master

搜索帮助