基于java web的在线考试系统

基于java web的在线考试系统

1 设计内容及要求

1.1 在线考试系统概述

基于Java web开发的在线考试系统不仅可以充分利用校园内各种资源,对学校的各种教学资源进行最大限度的利用,对教学资源的使用也通过网络跨越了时间和空间上的限制,给校园内的教师、考生提供方便快捷的学习工具,可以更大范围地使教学资源得到共享,而且可以提高教学效率,实现教学为了改革传统考试方式,建立合理考试机制,科学、规范地实现教育、教学管理,最大限度地减轻教师出题、组卷、判卷等繁重工作。实现考生在线进行考试,及时进行考试回顾。教师了解考生考试情况,进行合理分析,提高教学质量。

1.2 相关技术介绍

1.2.1 HTML技术

HTML称为超文本标记语言,是一种标识性的语言。它包括一系列标签.通过这些标签可以将网络上的文档格式统一,使分散的Internet资源连接为一个逻辑整体。HTML文本是由HTML命令组成的描述性文本,HTML命令可以说明文字,图形、动画、声音、表格、链接等。

1.2.2 JSP技术

JSP(全称JavaServer Pages)是由Sun Microsystems公司主导创建的一种动态网页技术标准。JSP部署于网络服务器上,可以响应客户端发送的请求,并根据请求内容动态地生成HTML、XML或其他格式文档的Web网页,然后返回给请求者。JSP技术以Java语言作为脚本语言,为用户的HTTP请求提供服务,并能与服务器上的其它Java程序共同处理复杂的业务需求。

1.2.3 spring框架

2003年兴起的轻量级的Java开发框架一Spring框架,由RodJohnson创建,是一个开源框架。Spring框架是目前较为流行的企业级框架之一。Spring 中的各模块使用简单的IoC文件配置依赖关系,通过面向接口进行编程,实现低耦合开发。该框架可以使用JUnit进行单元测试,不需配置服务器就能本地测试。另外,该框架支持AOP编程,遵循0CP开发原则,利于进行功能扩展。Spring框架在申明式事务、配置其他框架方面也有–定的优势。

1.2.4 SpringMVC框架

SpringMVC是Spring框架最重要的模块之一,借助SpringloC简化框架配置,是Spring为用户开发提供的基于MVC的主流Web框架。SpringMVC主要组件包括前端控制器、处理器映射器、处理器适配器、视图解析器、处理器Handler和视图View。通过处理器映射器来选择使用哪个控制器来处理请求,选择结果通过视图解析器处理结果并解析。视图View则是一个接口,实现类支持不同的View类型,例如JSP页面、freemarker 或者PDF文件等。

1.2.5 My Batis框架

MyBatis是由apache的一个开源项目发展而来的。MyBatis 是一个持久层框架。它通过简单的XML或注解来配置数据映射,将接口和Java POJOs映射成数据库数据,避免使用繁琐的Java代码来编写数据连接获取数据。MyBatis框架简单易学,运用灵活,是一个优秀的数据持久层框架。

1.2.6数据库技术

MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),使用最常用的数据库管理语言–结构化查询语言(SQL)进行数据库管理。MySQL数据库是一种C/S模型(即客户端和服务端模型),客户端通过账号、密码来连接服务器,连接成功之后才可以进行数据库的操作(CRUD:增加、删除、变更、查询)。MySQL的服务端采用IO复用 + 可伸缩的连接池,实现了网络高并发的经典模型。

1.2.7 Web服务器技术

Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。可利用它响应HTML(标准通用标记语言下的一个应用)页面的访问请求。实际上Tomcat是Apache 服务器的扩展,但运行时它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。

2 概要设计

2.1 系统主要功能

图1系统功能框图
基于java web的在线考试系统
考生模块:
(1)在线考试:考生在规定时间里选择考试科目,进行考试。
(2)历史考试:考生可以查看历史考试的信息信息。
(3)修改密码:考生可以修改自己的登录密码。
(4)账户信息:考生可以修改的真实姓名和手机号码。
教师模块:
(1)系统设置: 教师可以进行菜单管理添加、编辑、删除,角色管理添加、编辑、删除,修改密码。
(2)用户管理:教师可以进行用户列表的添加、编辑、删除。
(3)系统日志:教师可以进行日志列表的添加、删除。
(4)学科管理: 教师可以进行学科列表的添加、编辑、删除。
(5)考生管理:教师可以进行考生列表的添加、编辑、删除。
(6)试题管理:教师可以进行试题列表的添加、编辑、删除,批量导入试题。
(7)考试管理:教师可以进行考试列表的添加、编辑、删除。
(8)试卷管理:教师可以进行试卷列表的编辑、删除。
(9)答题管理:教师可以进行学生答题情况的查询。
(10)成绩统计:教师可以进行查看考试的成绩统计图表。

2.2 数据库设计

表1 subject表
字段名 数据类型 是否为空 是否为主键 默认值 描述
id int(8) No Yes ID号
name varchar(64) No 学科名称
remark varchar(256) 学科备注
表2 user表
字段名 数据类型 是否为空 是否为主键 默认值 描述
id int(8) No Yes ID号
username varchar(32) No 用户名
password varchar(32) No 密码
roleId int(11) No 所属角色
photo varchar(2) 用户头像
sex int(1) No 性别
age int(3) No 年龄
address varchar(128) 地址

表3 student表
字段名 数据类型 是否为空 是否为主键 默认值 描述
id int(11) No Yes ID号
subjectId int(11) No 所属学科
name varchar(32) No 登录名
password varchar(32) No 登录密码
trueName varchar(32) 姓名
tel varchar(16) 手机号码
createTime datetime 注册时间

表4 question表
字段名 数据类型 是否为空 是否为主键 默认值 描述
id int(11) No Yes ID号
subjectId int(11) No 所属学科
questionType int(2) No 试题类型
title varchar(256) No 试题题目
score int(3) No 分值
attrA varchar(256) No 选项A
attrB varchar(256) No 选项B
attrC varchar(256) 选项C
attrD varchar(256) 选项D
answer varchar(16) No 正确答案
crateTime datetime 添加时间
表5 exam表
字段名 数据类型 是否为空 是否为主键 默认值 描述
id int(11) No Yes ID号
name varchar(255) No Null 姓名
subjectId int(11) No
stratTime datetime No
endTime datetime No
avaliableTime int(8) No
questionNum int(5) No
totalScore int(5) No
passScore int(5) No
singleQuestion int(5) No
muiltQuestionNum int(5) No
chargeQuestionNum int(5) No
paperNum int(5) No
examedNum int(5) No
passNum int(5) No
creatTime datetime

表6 exampaperanswer表
字段名 数据类型 是否为空 是否为主键 默认值 描述
id int(11) No Yes ID号
examId int(11) 所属试卷
examPaperId int(11) 试卷ID
studentId int(11) 所属考生
questionId int(11) 所属试题
answer varchar(32) 提交答案
isCorrect int(2) 是否正确
表7 exampaper表
字段名 数据类型 是否为空 是否为主键 默认值 描述
id int(11) No Yes ID号
examId int(11) 所属试卷
studentId int(11) 所属考生
status int(2) 考试状态
totalScore int(5) 试卷总分
score int(5) 考生得分
startExamTime datetime 开始时间
endExamTime datetime 结束时间
useTime Int(8) 考试用时
creatTime datatime 添加时间
表8 authority表
字段名 数据类型 是否为空 是否为主键 默认值 描述
id int No Yes ID号
roleId int 权限号
menuId int 菜单号
表9 c3p0testtable表
字段名 数据类型 是否为空 是否为主键 默认值 描述
a char 用于数据连接
表10 log表
字段名 数据类型 是否为空 是否为主键 默认值 描述
id int No Yes Id号
content varchar 内容
createTime datetime 创建时间
表11 menu表
字段名 数据类型 是否为空 是否为主键 默认值 描述
id int Id号
parentId int 父类ID号
name varchar 名称
url varchar 链接
icon varchar 图标

表12 role表
字段名 数据类型 是否为空 是否为主键 默认值 描述
id int Id号
name varchar 名称
remark varchar 备注

基于java web的在线考试系统