Java项目实战之在线考试系统的实现(系统介绍)

1.本系统和现在有的考试系统有以下几种优势:

a.和现在有的系统比较起来,本系统有科目、章节、老师、学生、班级等信息的管理,还有批阅试卷查看已批阅试卷等。传统的考试系统划分并不细,业务功能简单。 b.和学校的考试系统还有外面的考试系统比较起来,本系统是B/S结构,学校的考试系统一般为C/S结构,性能方面不如B/S结构,并且C/S接口需要安装客户端,客户端压力很大,我的系统只需要电脑具有浏览器,在同一局域网就可以进行考试。 c.从架构方面来讲,我们的系统为分布式架构,传统的考试系统没有我们的架构合理。

2.在线考试系统技术架构

主要技术
Spring、SpringMVC、Mybatis
JSP、JSTL、jQuery、HTML、CSS、JS
Mysql
bootstrap
开发工具和环境
Eclipse
Maven
Tomcat 7
JDK 1.8
Mysql 5.6
Win10 操作系统
传统架构
传统考试系统采用该架构

分布式架构

本系统采用分布式架构

3.系统功能介绍

4.本系统数据库表关系

/*为了方便查询,所以不满足范式要求,但是查询效率很高*/
/*因为表特别多,因此表之间的结构关系就不在详细说明了*/
-- 管理员
CREATE TABLE `admin` (
 `id` varchar(20) NOT NULL COMMENT '管理员账号id',
 `NAME` varchar(20) NOT NULL COMMENT '姓名',
 `sex` varchar(2) NOT NULL COMMENT '性别',
 `age` int(11) DEFAULT NULL COMMENT '年龄',
 `idcard` varchar(20) NOT NULL COMMENT '身份证号',
 `phone` varchar(20) NOT NULL COMMENT '手机号',
 `QQ` varchar(20) DEFAULT NULL COMMENT 'QQ',
 `emai` varchar(20) DEFAULT NULL COMMENT '邮箱',
 `PASSWORD` varchar(20) DEFAULT NULL COMMENT '密码',
 PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
-- 老师
CREATE TABLE `teacher` (
 `id` varchar(20) NOT NULL,
 `NAME` varchar(20) NOT NULL,
 `sex` varchar(2) NOT NULL,
 `age` int(11) DEFAULT NULL,
 `idcard` varchar(20) NOT NULL,
 `phone` varchar(20) NOT NULL,
 `QQ` varchar(20) DEFAULT NULL,
 `email` varchar(20) DEFAULT NULL,
 `PASSWORD` varchar(20) DEFAULT NULL,
 PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
-- 学生
CREATE TABLE `student` (
 `id` varchar(20) NOT NULL,
 `classesId` int(11) DEFAULT NULL,
 `name` varchar(20) NOT NULL,
 `sex` varchar(2) NOT NULL,
 `age` int(11) DEFAULT NULL,
 `idcard` varchar(20) NOT NULL,
 `phone` varchar(20) NOT NULL,
 `QQ` varchar(20) DEFAULT NULL,
 `email` varchar(20) DEFAULT NULL,
 `password` varchar(20) DEFAULT NULL,
 `classesName` varchar(20) DEFAULT NULL,
 PRIMARY KEY (`id`),
 KEY `FK_studentClasses` (`classesId`),
 CONSTRAINT `FK_studentClasses` FOREIGN KEY (`classesId`) REFERENCES `classes` (`classesId`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
-- 科目
CREATE TABLE `subject` (
 `id` int(11) NOT NULL AUTO_INCREMENT,
 `NAME` varchar(20) NOT NULL,
 PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=29 DEFAULT CHARSET=utf8
-- 章节
CREATE TABLE `chapter` (
 `id` int(11) NOT NULL AUTO_INCREMENT,
 `sub_id` int(11) NOT NULL,
 `NAME` varchar(255) DEFAULT NULL,
 `title` varchar(255) DEFAULT NULL,
 PRIMARY KEY (`id`),
 KEY `FK_subjectChaper` (`sub_id`),
 CONSTRAINT `FK_subjectChaper` FOREIGN KEY (`sub_id`) REFERENCES `subject` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=189 DEFAULT CHARSET=utf8
--班级
CREATE TABLE `classes` (
 `classesId` int(11) NOT NULL AUTO_INCREMENT,
 `classesName` varchar(20) NOT NULL,
 `grade` varchar(20) NOT NULL,
 PRIMARY KEY (`classesId`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8
--科目班级映射表
CREATE TABLE `subjectclasses` (
 `classesId` int(11) NOT NULL,
 `id` int(11) NOT NULL,
 PRIMARY KEY (`classesId`,`id`),
 KEY `FK_subjectClasses2` (`id`),
 CONSTRAINT `FK_subjectClasses` FOREIGN KEY (`classesId`) REFERENCES `classes` (`classesId`),
 CONSTRAINT `FK_subjectClasses2` FOREIGN KEY (`id`) REFERENCES `subject` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
--老师班级表
CREATE TABLE `teacher_classes` (
 `id` varchar(20) NOT NULL,
 `classesId` int(11) NOT NULL,
 `subId` int(11) NOT NULL,
 PRIMARY KEY (`id`,`classesId`,`subId`),
 KEY `FK_teacher_classes2` (`classesId`),
 KEY `FK_teacher_classes3` (`subId`),
 CONSTRAINT `FK_teacher_classes` FOREIGN KEY (`id`) REFERENCES `teacher` (`id`),
 CONSTRAINT `FK_teacher_classes2` FOREIGN KEY (`classesId`) REFERENCES `classes` (`classesId`),
 CONSTRAINT `FK_teacher_classes3` FOREIGN KEY (`subId`) REFERENCES `subject` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
-- 老师科目表
CREATE TABLE `teacher_subject` (
 `id` varchar(20) NOT NULL,
 `sub_id` int(11) NOT NULL,
 PRIMARY KEY (`id`,`sub_id`),
 KEY `FK_teacher_subject2` (`sub_id`),
 CONSTRAINT `FK_teacher_subject` FOREIGN KEY (`id`) REFERENCES `teacher` (`id`),
 CONSTRAINT `FK_teacher_subject2` FOREIGN KEY (`sub_id`) REFERENCES `subject` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
--发布考试表
CREATE TABLE `publishexam` (
 `id` int(11) NOT NULL AUTO_INCREMENT,
 `admin_id` varchar(20) NOT NULL,
 `publishTime` datetime NOT NULL,
 `subject_id` int(11) NOT NULL,
 `examTime` datetime NOT NULL,
 `description` text,
 `exam` text,
 `examType` varchar(20) DEFAULT NULL,
 `STATUS` int(11) DEFAULT NULL,
 `admin_name` varchar(20) NOT NULL,
 `subject_name` varchar(20) NOT NULL,
 `examlength` int(11) NOT NULL,
 PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=utf8
-- 学生考试记录表
CREATE TABLE `examhis` (
 `studentId` varchar(20) NOT NULL,
 `studentName` varchar(20) DEFAULT NULL,
 `subjectId` int(11) NOT NULL,
 `subjectName` varchar(20) DEFAULT NULL,
 `classesId` int(11) DEFAULT NULL,
 `classesName` varchar(20) DEFAULT NULL,
 `examTime` datetime NOT NULL,
 `score` int(11) DEFAULT NULL,
 `examTest` text,
 `status` int(11) NOT NULL DEFAULT '0',
 `publishExamId` int(11) NOT NULL,
 PRIMARY KEY (`studentId`,`subjectId`,`examTime`),
 CONSTRAINT `FK_stu_his` FOREIGN KEY (`studentId`) REFERENCES `student` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
-- 试题模块表 (选择题,填空题等)
CREATE TABLE `textmodel` (
 `id` int(11) NOT NULL AUTO_INCREMENT,
 `textType` varchar(20) NOT NULL,
 PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8
-- 试题表
CREATE TABLE `text` (
 `id` int(11) NOT NULL AUTO_INCREMENT,
 `Tex_id` int(11) NOT NULL,
 `title` varchar(200) NOT NULL,
 `answer` varchar(200) NOT NULL,
 `diffculty` int(11) NOT NULL,
 `modelName` varchar(200) DEFAULT NULL,
 `subjectName` varchar(200) DEFAULT NULL,
 `subjectId` int(11) NOT NULL,
 `chapterId` int(11) DEFAULT NULL,
 `chapterName` varchar(200) NOT NULL,
 `type1` varchar(200) DEFAULT NULL,
 `type2` varchar(200) DEFAULT NULL,
 `type3` varchar(200) DEFAULT NULL,
 `type4` varchar(200) DEFAULT NULL,
 PRIMARY KEY (`id`),
 KEY `FK_text_type` (`Tex_id`),
 CONSTRAINT `FK_text_type` FOREIGN KEY (`Tex_id`) REFERENCES `textmodel` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=306 DEFAULT CHARSET=utf8

5.MAVEN系统依赖和工程结构

总结

以上所述是小编给大家介绍的Java项目实战之在线考试系统的实现(系统介绍),希望对大家有所帮助!

(0)

相关推荐

  • 计算机二级考试java软件操作教程 教大家如何学习java

    Java并不难,只是包含的内容比较多.语言本身相当精练,但功能非常强大.为了能够更加有效地使用Java编制程序,你需要学习该语言所包含的库,其中的内容十分丰富.在本书中.你将依次了解语言如何运行以及如何应用它.学习这些内容的顺序经过精心地安排,通过一些相对简单.明了的过程,你就可以获得一定的专业知识,建立运用Java进行程序设计的信心.每一章都尽量避免使用你还没有学习到的东西.这样一来,你不能马上编写嵌入Weh网页的Java程序,但是这确实是一种诱人的想法,有点像冒险跳入深水学习游泳.一般说来,

  • CCF考试试题之门禁系统java解题代码

    问题描述 涛涛最近要负责图书馆的管理工作,需要记录下每天读者的到访情况.每位读者有一个编号,每条记录用读者的编号来表示.给出读者的来访记录,请问每一条记录中的读者是第几次出现. 输入格式 输入的第一行包含一个整数n,表示涛涛的记录条数. 第二行包含n个整数,依次表示涛涛的记录中每位读者的编号. 输出格式 输出一行,包含n个整数,由空格分隔,依次表示每条记录中的读者编号是第几次出现. 样例输入 5 1 2 1 1 3 样例输出 1 1 2 3 1 评测用例规模与约定 1≤n≤1,000,读者的编号

  • Java实现在线考试系统与设计(学生功能)

    学生模块功能比较少,就是进行考试和查看自己成绩两个大的功能. 学生进行考试的功能比较复杂(首先做了校验,不在考试时间范围内,不能进行考试) 考试试题是数据库根据发布考试时的条件随机产生的一套试题.因为每次考试题型题量都是不同的,因此我们继续采用JSON的格式去保存数据,当状态为1:表示正在考试:状态为2:表示已经考试结束:状态为3:表示老师已经阅完试卷 (1)当考试考试的时候,会给考上随机产生一套试题,并存储到数据库中,如果考试中电脑突然坏了可以保证重新打开还是之前的试题 (2)考试时间结束会自

  • Java项目实战之在线考试系统的实现(系统介绍)

    1.本系统和现在有的考试系统有以下几种优势: a.和现在有的系统比较起来,本系统有科目.章节.老师.学生.班级等信息的管理,还有批阅试卷查看已批阅试卷等.传统的考试系统划分并不细,业务功能简单. b.和学校的考试系统还有外面的考试系统比较起来,本系统是B/S结构,学校的考试系统一般为C/S结构,性能方面不如B/S结构,并且C/S接口需要安装客户端,客户端压力很大,我的系统只需要电脑具有浏览器,在同一局域网就可以进行考试. c.从架构方面来讲,我们的系统为分布式架构,传统的考试系统没有我们的架构合

  • Java毕业设计实战之在线高中考试系统的实现

    项目分为前台和后台,前台主要为学生角色.后台主要为管理员角色. 管理员添加试题和发布试卷,学生负责在线考试.在线查看成绩和错题记录列表等. 管理员功能有:年级管理.课程管理.试题管理.试卷管理.学生管理等. 运行环境:jdk1.8.mysql5.x.eclipse.tomcat8.5\7.0.maven3.5\3.6. 统一管理学生 教师 管理员信息: /** * 统一管理学生 教师 管理员信息 */ @RestController public class UserController { @

  • Java 实战项目之小说在线阅读系统的实现流程

    一.项目简述 功能包括(管理员和游客角色): 1:用户及主要操作功能 游客可以浏览网站的主页,但是需要注册为会员后部分小 说才能对网络小说进免费行阅读或阅读.用户可以收藏书 架,留言评论,上次阅读,阅读历史,章节选择等等功 能. 2:管理模块 网络小说管理模块包括不同网络小说类别的添加,删除以 及网络小说的上传,删除管理.可以包括武侠小书,都市 言情,穿越小书等各个类等等功能. 二.项目运行 环境配置: Jdk1.8 + Tomcat8.5 + mysql + Eclispe (IntelliJ

  • Java Online Exam在线考试系统的实现

    一.项目简述 本系统主要实现的功能有: 学生以及老师的注册登录,在线考试,错题查询,学生管理,问题管理,错题管理,错题查询,分数查询,试卷管 理,人工组卷.自动组卷,教师,班级,统计等等管理功能. 二.项目运行 环境配置: Jdk1.8 + Tomcat8.5 + mysql + Eclispe (IntelliJ IDEA,Eclispe,MyEclispe,Sts 都支持) 项目技术: VUE+Springboot+ SpringMVC + MyBatis + ThymeLeaf + Jav

  • Java实战之在线租房系统的实现

    目录 介绍 效果图 核心代码 用户控制器 管理员控制层 个人中心控制器 介绍 该系统有三个角色,分别是:普通用户.房屋中介.管理员.普通用户的功能:浏览房屋信息.预约看房.和中介聊天.申请成为中介等等.房屋中介的功能:发布房屋信息.和用户聊天.回复预约信息等等.管理员的功能:管理所有用户信息.管理权限信息.管理所有房屋信息.管理所有预约信息等等. 应用技术:SpringBoot + Redis + MySQL + Vue + SpringSecurity + JWT + ElasticSearc

  • php实现在线考试系统【附源码】

    说明:本篇文章是为了记录下学习开发思路,程序不具备商业价值,明白开发思路,商用需二次升级! 效果图如下: 题库首页展示 试题在线测试 分数统计 通过该小项目目的是练习PHP基础知识,通过对数组操作实现考题信息存储加载,引入模板文件,实现考题数据的调用布局. 1.由于小项目未使用数据库,考题以数组的形式存储在PHP文件中,部分代码如下: <?php//考试题库二return [ //题库标题 'title' => 'PHP基础语法考试题(二)', //答题时限(秒数) 'timeout' =&g

  • Django框架实现在线考试系统的示例代码

    1.Django的简介 Django是一个基于MVC构造的框架.但是在Django中,控制器接受用户输入的部分由框架自行处理,所以 Django 里更关注的是模型(Model).模板(Template)和视图(Views),称为 MTV模式.它们各自的职责如下: 层次 职责 模型(Model),即数据存取层 模型(Model),即数据存取层 模板(Template),即表现层 处理与表现相关的决定: 如何在页面或其他类型文档中进行显示. 视图(View),即业务逻辑层 存取模型及调取恰当模板的相

  • Java毕业设计实战之在线蛋糕销售商城的实现

    一.项目简述 功能: 主页显示商品: 所有蛋糕商品展示,可进行商品搜索: 点击商品进入商品详情页,具有立即购买功能,可增减购买商品数量亦可手动输入,热销商品展示. 立即购买进入确认订单页面,可选择已经添加的地址,亦可新增地址. 可选择购买哪些商品,可删除不需要的商品. 点击结算进入确认订单页面,确认后提交订单.后台管理:(修改密码等),商品管理(商品批量添加.上下架等),订单管理. 二.项目运行 环境配置: Jdk1.8 + Tomcat8.5 + mysql + Eclispe(Intelli

  • Java毕业设计实战之食品溯源系统的实现

    一.项目运行 环境配置: Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持). 项目技术: Springboot + Maven + mybatis+ Vue 等等组成,B/S模式 + Maven管理等等. 系统控制器: /** * 系统控制器 * @author yy * */ @RequestMapping("/system") @Co

随机推荐