Java implementation of online examination system (system description)

1. The system and now have an exam system has the following advantages:

a. and now some systems comparison, the system has subjects, chapters, teacher, student, class and other management information, as well as marking the examination papers Viewing marking the examination papers and so on. The traditional test systems division is not fine, simple business functions.
b. School examination system and also outside comparison test system, the system is B / S structure, generally less school examination system B / S structure of C / S structure, performance, and the C / S interface requires the installation the client, the client a lot of pressure, I just need a computer system with a browser, you can exam on the same local area network.
c. From the architecture is concerned, our system is a distributed architecture, the traditional examination system no reasonable our architecture.

2. Online Examination System Technology Architecture

The main technical
the Spring, SpringMVC, Mybatis
JSP, JSTL, jQuery, HTML, CSS, JS
Mysql
Bootstrap
development tools and environments
the Eclipse
Maven
Tomcat 7
the JDK 1.8
Mysql 5.6
Win10 operating system,
the traditional architecture of
the traditional examination system using this architecture
Write pictures described here
distributed architecture
The system uses distributed architecture
Write pictures described here

3. System Features

Write pictures described here

4. The system database table relationships

/*为了方便查询,所以不满足范式要求,但是查询效率很高*/
/*因为表特别多,因此表之间的结构关系就不在详细说明了*/
-- 管理员
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 systems rely on engineering and construction

Write pictures described here

Published 39 original articles · won 157 Like · views 90000 +

Guess you like

Origin blog.csdn.net/qq_34417749/article/details/80850571