Using Java to Realize Online Examination System in Computer Graduation Project

Online examination system technical architecture
Main technologies
Spring, SpringMVC, Mybatis
JSP, JSTL, jQuery, HTML, CSS, JS
Mysql
bootstrap
development tools and environment
Eclipse
Maven
Tomcat 7
JDK 1.8
Mysql 5.6
Win10 operating system
Traditional architecture
Traditional examination system adopts this architecture
image

Distributed architecture
This system uses a distributed architecture
image

3. System function introduction
Picture

4. The system database table relationships
/ for convenience query, so does not satisfy the requirements paradigm, but very efficient query /
/ because of the special multi-table, so no structural relationship between the tables described in detail /
- Administrator

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 system dependency and engineering structure
image

Guess you like

Origin blog.csdn.net/bwwork/article/details/114044590