ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

JAVA在线考试系统online exam

2021-04-13 22:01:59  阅读:1025  来源: 互联网

标签:COMMENT __ 13 JAVA exam utf8mb4 DEFAULT online NULL


该系统涵盖了出题、组卷、发布考试、导入考生信息、监考、自动评卷/人工评卷等完整流程。在线考试系统采用功能强大、高效灵活的B/S模式,具有高度的可扩展性,被授权的考试用户不管身处何地,只要可以使用网络浏览器 (IE6,IE7,IE8,IE9,IE10,360,FireFox,Chrome等),就可通过网络登录在线考试系统。

对于单选和多选,采用自动判断。
对于大题采用的是管理员,老师阅卷给分。


1、对于答案的数据库设计:

CREATE TABLE `grade` (
  `id` int(8) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `student_id` int(8) DEFAULT NULL COMMENT '考生主键ID',
  `contest_id` int(8) DEFAULT NULL COMMENT '考试主键ID',
  `result` int(8) DEFAULT '0' COMMENT '最终分数',
  `auto_result` int(8) DEFAULT '0' COMMENT '电脑自动评判选择题分数',
  `manul_result` int(8) DEFAULT NULL COMMENT '人工手动评判分数',
  `answer_json` longtext COLLATE utf8mb4_unicode_ci COMMENT '考试作答答案json',
  `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '考试交卷时间',
  `finish_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '改卷完成时间',
  `state` int(8) DEFAULT '0' COMMENT '0表示已交卷但是未评卷,1表示已交卷已评卷',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC;


INSERT INTO `grade` VALUES (8, 2, 8, 0, 0, 0, '_~__~__~__~__~__~__~__~_AB', '2021-04-13 11:07:13', '2021-04-13 11:07:48', 1);
INSERT INTO `grade` VALUES (9, 2, 8, 1, 1, 0, '_~__~__~__~__~__~__~__~_AB', '2021-04-13 11:09:10', '2021-04-13 11:09:29', 1);
INSERT INTO `grade` VALUES (10, 2, 8, 28, 16, 12, 'A_~_B_~_C_~_C_~_D_~_D_~_D_~_A_~_AB', '2021-04-13 11:19:02', '2021-04-13 12:32:28', 1);
INSERT INTO `grade` VALUES (11, 2, 8, 90, 0, 90, '_~__~__~__~__~__~__~__~__~_111', '2021-04-13 11:20:40', '2021-04-13 12:32:34', 1);


CREATE TABLE `question`  (
  `id` int(8) NOT NULL AUTO_INCREMENT,
  `title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '题目标题',
  `content` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL COMMENT '题目内容',
  `question_type` int(8) NULL DEFAULT NULL COMMENT '题目类型,0表示单项选择题,1表示多项选择题,2表示问答题,3表示编程题',
  `option_a` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '选项A',
  `option_b` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '选项B',
  `option_c` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '选项C',
  `option_d` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '选项D',
  `answer` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL COMMENT '答案',
  `parse` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL COMMENT '答案解析',
  `subject_id` int(8) NULL DEFAULT NULL COMMENT '学科ID',
  `contest_id` int(8) NULL DEFAULT NULL COMMENT '试卷ID',
  `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `score` int(8) NULL DEFAULT NULL COMMENT '题目分值',
  `difficulty` int(8) NULL DEFAULT 1 COMMENT '题目难度',
  `state` int(8) NULL DEFAULT 1 COMMENT '0表示未考试题目,1表示已考试题目',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 18 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = DYNAMIC;


INSERT INTO `question` VALUES (4, '下列哪一个 Transact-SQL 语句能够实现收回 user2 查询基本表 T 的权限?( )', '下列哪一个 Transact-SQL 语句能够实现收回 user2 查询基本表 T 的权限?( )', 0, 'REVOKE UPDATE ON T', 'GRANT SELECT ON T TO user2', 'DENY SELECT ON T TO user2', 'REVOKE SELECT ON T FROM user2', 'D', 'DENY:在安全系统中创建一项,以拒绝给当前数据库内的安全帐户授予权限并防止安全帐户通过其组或角色成员资格继承权限。\nREVOKE:删除以前在当前数据库内的用户上授予或拒绝的权限。', 1, 8, '2020-06-13 23:01:21', '2021-04-13 11:15:26', 5, 1, 1);
INSERT INTO `question` VALUES (5, '用如下的 SQL 语句创建一个 s 表  CREATE  TABLE  s ( NO  CHAR ( 4 ) primary key ,  NAME  CHAR ( 8 ) NOT  NULL ,  SEX  CHAR ( 2 ),  AGE  INT )  那么可以插入到该表中的数据是( )', '用如下的 SQL 语句创建一个 s 表\n\nCREATE  TABLE  s ( NO  CHAR ( 4 ) primary key ,\n\nNAME  CHAR ( 8 ) NOT  NULL ,\n\nSEX  CHAR ( 2 ),\n\nAGE  INT )\n\n那么可以插入到该表中的数据是( )', 0, '(’1031’,’曾华’,NULL,NULL)', '(’1032’,’曾华’,男,23)', '(NULL,’曾华’,’男’,’23’)', '(’1033’,NULL,’男’,23)', 'A', '主键和NAME不能为空,所以C和D排除,插入char类型时要加单引号,插入int不用加单引号,综合,A对', 1, 8, '2020-06-13 23:01:21', '2021-04-13 11:15:29', 5, 4, 1);
INSERT INTO `question` VALUES (6, '数据库管理系统的工作不包括?()', '数据库管理系统的工作不包括?()', 0, '定义数据库', '对已定义的数据库进行管理', '为定义的数据库提供操作系统', '数据通信', 'C', '略', 1, 8, '2020-06-13 23:01:21', '2021-04-13 11:15:31', 5, 1, 1);
INSERT INTO `question` VALUES (7, '在关系数据库设计中,设计关系模式(二维表)是数据库设计中哪个阶段的任务。()', '在关系数据库设计中,设计关系模式(二维表)是数据库设计中哪个阶段的任务。()', 0, '逻辑设计阶段', '概念设计阶段', '物理设计阶段', '需求分析阶段', 'A', '逻辑设计的目的是从概念模型导出特定的DBMS可以处理的数据库的逻辑结构(数据库的模式和外模式)。在关系数据库设计中,设计关系模式是在数据库的逻辑设计阶段。', 8, 8, '2020-06-13 23:01:21', '2020-06-14 07:26:16', 5, 1, 1);
INSERT INTO `question` VALUES (8, '() 是存储在计算机内有结构的数据的集合。', '() 是存储在计算机内有结构的数据的集合。', 0, '数据库系统', '数据库', '数据库管理系统', '数据结构', 'B', '1、数据库系统(Database System)是由数据库及其管理软件组成的系统。\n\n2、数据库(Database)是按照数据结构来组织、存储和管理数据的建立在计算机存储设备上的仓库。\n\n3、数据库管理系统(Database Management System)是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库,简称DBMS。\n\n4、数据结构是计算机存储、组织数据的方式。', 8, 8, '2020-06-13 23:01:21', '2020-06-14 07:26:17', 5, 1, 1);
INSERT INTO `question` VALUES (9, '层次型、网状型和关系型数据库划分原则是。 ()', '层次型、网状型和关系型数据库划分原则是。 ()', 0, '记录长度', '文件的大小', '联系的复杂程度', '数据之间的联系', 'D', '略', 8, 8, '2020-06-13 23:01:21', '2020-06-14 07:26:17', 5, 1, 1);
INSERT INTO `question` VALUES (10, '实体是信息世界中的术语,与之对应的数据库术语为。 ()', '实体是信息世界中的术语,与之对应的数据库术语为。 ()', 0, '文件', '数据库', '字段', '记录', 'D', '略', 8, 8, '2020-06-13 23:01:21', '2020-06-14 07:26:17', 5, 1, 1);
INSERT INTO `question` VALUES (11, '表 test1 中包含两列: c1 为整型, c2 为 8 位长的字符串类型,使用如下语句创建视图......', '表 test1 中包含两列: c1 为整型, c2 为 8 位长的字符串类型,使用如下语句创建视图:\n\nCREATE VIEW v1 AS SELECT c1,c2 FROM test1 WHERE c1>30 WITH CHECK OPTION\n\n以下语句能够成功执行的有几条? ( )\n\nINSERT INTO v1 VALUES(1, \' 赵六 \')\n\nINSERT INTO v1 VALUES(101, \' 李四 \')\n\nINSERT INTO t1 VALUES(20, \' 王五 \')', 0, '0', '1', '2', '3', 'C', '略', 8, 8, '2020-06-13 23:01:21', '2020-06-14 07:26:17', 5, 1, 1);
INSERT INTO `question` VALUES (16, '多选题测试', '选AB', 1, '1', '1', '1', '1', 'AB', '', 1, 8, '2021-04-13 11:06:51', '2021-04-13 11:08:55', 1, 1, 1);
INSERT INTO `question` VALUES (17, '主观题测试', '主观题题目?', 2, '', '', '', '', '111', '111', 1, 8, '2021-04-13 11:20:23', '2021-04-13 12:32:22', 2, 1, 1);

 

2、考试界面

3、开启考试和结束考试的部分代码

    /**
     * 结束考试
     */
    @PostMapping("/api/endContest/{id}")
    public AjaxResult endContest(@PathVariable int id) {
        AjaxResult ajaxResult = new AjaxResult();
        boolean result = contestService.endContest(id);
        return new AjaxResult().setData(result);
    }

    /**
     * 开始考试
     */
    @PostMapping("/api/startContest/{id}")
    public AjaxResult startContest(@PathVariable int id) {
        AjaxResult ajaxResult = new AjaxResult();
        boolean result = contestService.startContest(id);
        return new AjaxResult().setData(result);
    }



系统环境

# 后台
* Springboot、SpringMVC
* MyBatis


# 前端
* Bootstrap
* jQuery

# 开发环境
* 操作系统:Windows 7+
* 编程语言: Java 8+
* 开发工具: IDEA、Navicat
* 项目构建: Maven
* 服务器:Tomcat
* 数据库: MySQL

 

标签:COMMENT,__,13,JAVA,exam,utf8mb4,DEFAULT,online,NULL
来源: https://blog.csdn.net/qq_23034755/article/details/115679944

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有