✌全网粉丝20W+,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌
文末获取项目下载方式
一、项目背景介绍:
在线考试借助于网络来进行,传统考试所必备的考场和监考对于在线考试来说并不是必要项目,因此可以有效减少组织考试做需要的成本以及设施。同时,由于在线考试系统本身具有智能阅卷的功能,也大大减少了考试组织者在考试结束后阅卷集成绩统计所需要进行的工作。考生参加考试并不一定要被聚集在线下考场,而是可以使用电脑或手机等电子设备在任何场景参加考试。
由于在线考试是在考试形式上发生了翻天覆地的变化,因此也会相对带来一系列的问题,比如在缺失考场和监考的环境下,如何保证成绩的真实性?这就需要借助于远程视频监控和考生桌面监控来解决了。
二、项目技术简介:
三、系统功能模块介绍:
四、数据库设计:
1:admin(admin)
字段名 | 类型 | 默认值 | 列注释 |
---|---|---|---|
id | int | NULL | |
name | varchar | NULL | 姓名 |
number | varchar | NULL | 工号 |
password | varchar | NULL | 密码 |
role_id | int | NULL | 角色id |
last_login_time | datetime | NULL | 最后登录时间 |
2:announce(announce)
字段名 | 类型 | 默认值 | 列注释 |
---|---|---|---|
id | int | NULL | |
title | varchar | NULL | 公告标题 |
content | text | NULL | 公告内容 |
author_id | varchar | NULL | 作者id |
role_id | int | NULL | 作者身份id:教师_3,管理员_1 |
author_name | varchar | NULL | 作者名 |
create_time | datetime | NULL | 公告创建时间 |
3:course(course)
字段名 | 类型 | 默认值 | 列注释 |
---|---|---|---|
id | int | NULL | |
course_name | varchar | NULL | |
teacher_name | varchar | NULL | 任课老师姓名 |
teacher_id | int | NULL | 该门课的出题老师(默认一门课一个老师出题) |
4:disk(disk)
字段名 | 类型 | 默认值 | 列注释 |
---|---|---|---|
id | int | NULL | |
name | varchar | NULL | 在网盘上看到的文件名 |
save_name | varchar | NULL | 文件真实的名字 |
byte_size | double | NULL | |
p_id | int | NULL | 父id |
type | varchar | NULL | 文件类型 |
create_time | timestamp | NULL | |
file_size | varchar | NULL | |
teacher_id | int | NULL | |
download_count | int | NULL | |
password | varchar | NULL | |
md5 | varchar | NULL |
5:major(major)
字段名 | 类型 | 默认值 | 列注释 |
---|---|---|---|
id | int | NULL | |
major | varchar | NULL | 专业班级 |
academy | varchar | NULL | 学院 |
6:paper(paper)
字段名 | 类型 | 默认值 | 列注释 |
---|---|---|---|
id | int | NULL | |
paper_name | varchar | NULL | 试卷名称 |
course_id | int | NULL | 课程id |
question_id | varchar | NULL | 问题id组合 |
begin_time | varchar | NULL | 试卷开始时间 |
end_time | varchar | NULL | 试卷结束时间 |
allow_time | varchar | NULL | 考试时长 |
score | varchar | NULL | 试卷总分 |
paper_state | varchar | NULL | 考试状态:未开始,进行中,已结束 |
paper_type | varchar | NULL | 试卷类型:正式,模拟 |
major_id | int | NULL | 专业班级id |
paper_form_id | int | NULL | 试卷组成id |
teacher_id | int | NULL | 出卷老师id |
7:paper_form(paper_form)
字段名 | 类型 | 默认值 | 列注释 |
---|---|---|---|
id | int | NULL | |
q_choice_num | varchar | NULL | 单选题数目 |
q_choice_score | varchar | NULL | 单选题分数 |
q_mul_choice_num | varchar | NULL | 多选题数目 |
q_mul_choice_score | varchar | NULL | 多选题分数 |
q_tof_num | varchar | NULL | 判断题数目 |
q_tof_score | varchar | NULL | 判断题分数 |
q_fill_num | varchar | NULL | 填空题数目 |
q_fill_score | varchar | NULL | 填空题分数 |
q_SAQ_num | varchar | NULL | 简答题数目 |
q_SAQ_score | varchar | NULL | 简答题分数 |
q_program_num | varchar | NULL | 编程题数目 |
q_program_score | varchar | NULL | 编程题分数 |
8:question(question)
字段名 | 类型 | 默认值 | 列注释 |
---|---|---|---|
id | int | NULL | |
question_name | text | NULL | 题目名称 |
option_a | varchar | NULL | 选项a |
option_b | varchar | NULL | 选项b |
option_c | varchar | NULL | 选项c |
option_d | varchar | NULL | 选项d |
type_id | int | NULL | 题目类型id |
answer | text | NULL | 题目答案 |
course_id | int | NULL | 课程id |
difficulty | varchar | NULL | 题目难度:容易,中等,较难 |
remark | text | NULL | 题目解析 |
9:role(role)
字段名 | 类型 | 默认值 | 列注释 |
---|---|---|---|
id | int | NULL | 角色id:管理员_1,学生_2,老师_3 |
role_name | varchar | NULL | 角色姓名 |
10:score(score)
字段名 | 类型 | 默认值 | 列注释 |
---|---|---|---|
id | int | NULL | |
stu_id | int | NULL | 考生id |
paper_id | int | NULL | 试卷id |
paper_name | varchar | NULL | 试卷名称 |
score | varchar | NULL | 试卷分数 |
wrong_ids | varchar | NULL | 错题id集合 |
11:stu_answer_record(stu_answer_record)
字段名 | 类型 | 默认值 | 列注释 |
---|---|---|---|
id | int | NULL | |
paper_id | int | NULL | 试卷id |
stu_id | int | NULL | 学生id |
question_id | int | NULL | 题目id |
answer | varchar | NULL | 题目答案 |
12:student(student)
字段名 | 类型 | 默认值 | 列注释 |
---|---|---|---|
id | int | NULL | |
name | varchar | NULL | 学生姓名 |
password | varchar | NULL | 学生登录密码 |
stu_number | varchar | NULL | 学号 |
major | varchar | NULL | 专业班级 |
role_id | int | NULL | 角色id |
sex | varchar | NULL | 性别 |
13:teacher(teacher)
字段名 | 类型 | 默认值 | 列注释 |
---|---|---|---|
id | int | NULL | |
name | varchar | NULL | 姓名 |
work_number | varchar | NULL | 工号 |
password | varchar | NULL | 密码 |
role_id | int | NULL | 角色id |
job | varchar | NULL | 职位 |
14:type(type)
字段名 | 类型 | 默认值 | 列注释 |
---|---|---|---|
id | int | NULL | |
type_name | varchar | NULL | 题目类型 |
score | varchar | NULL | 各个类型题目的分数 |
remark | varchar | NULL | 该类型题目说明 |
五、功能模块:
用户登录:包含老师学生管理员登录
试题管理:教师可以通过添加试题丰富题库,也可以对已存在的题目进行修改和删除操作。
试卷管理:教师首先创建或选择试卷模版,系统会根据模版自动从题库中抽取题目进行组卷。
试卷复查:考生的主观题答案会被保存到数据库中,教师可以对其进行复查。
成绩统计分析:本系统可以根据特定课程或特定班级使用柱状图,折线图,数据罗列等方式帮助教师更直观得了解学生成绩情况。
系统网盘:教师可以上传资料到网盘供学生下载学习
学生-我的考试:学生进入后会看到试卷信息,当有需要参加的考试时,点击进入即可来到考试界面。
考试结束系统会自动提交考卷并完成自动改卷任务。
考试详情:考试详情
我的成绩:展示每门考试的成绩列表。
成绩分析:系统会统计出该生本学期参加每门考试的成绩,以及该门课程的平均成绩,使用雷达图进行对比。
六、代码示例:
@Autowired
private PaperService paperService;
@GetMapping
public String list(@RequestParam(name = "p", required = false, defaultValue = "1") Integer pageNo,
Model model, HttpSession session) {
Integer teacherId = (Integer) session.getAttribute("teacherId");
PageInfo<Paper> pageInfo = paperService.pageForPaperList(teacherId, pageNo);
model.addAttribute("page", pageInfo);
return "paper/list";
}
@GetMapping("/show/{id:\\d+}")
public String show(@PathVariable Integer id, Model model) {
Paper paper = paperService.findById(id);
Course course = paperService.findCourseById(paper.getCourseId());
Major major = paperService.findMajorById(paper.getMajorId());
model.addAttribute("paper", paper);
model.addAttribute("course", course);
model.addAttribute("major", major);
return "paper/show";
}
@GetMapping("/newPaperForm")
public String addPaperForm() {
return "paper/newPaperForm";
}
/**
* 添加试卷组成模版
* @param paperForm
* @return
*/
@PostMapping("/newPaperForm")
public String addPaperForm(PaperForm paperForm) {
paperService.newPaperForm(paperForm);
return "redirect:/paper/newPaper/" + paperForm.getId();
}
/**
* 添加试卷 组卷
* @param model
* @param id (paperForm的id,默认模版为1)
* @param session
* @return
*/
@GetMapping("/newPaper/{id:\\d+}")
public String add(Model model, @PathVariable Integer id, HttpSession session) {
Integer teacherId = (Integer) session.getAttribute("teacherId");
List<Course> courseList = paperService.findCourseListByTeacherId(teacherId);
model.addAttribute("courseList", courseList);
return "paper/newPaper";
}
@PostMapping("/newPaper/{paperFormId:\\d+}")
public String add(Paper paper, @PathVariable("paperFormId") Integer paperFormId,
String major, RedirectAttributes redirectAttributes,
HttpSession session) {
paper.setPaperFormId(paperFormId);
Major majorObj = paperService.findMajorByMajorName(major);
paper.setMajorId(majorObj.getId());
try {
paperService.newPaper(paper);
return "redirect:/paper/show/" + paper.getId();
} catch (ServiceException e) {
e.printStackTrace();
redirectAttributes.addFlashAttribute("message", e.getMessage());
Teacher teacher = (Teacher) session.getAttribute("teacher");
return "redirect:/teacher/home/" + teacher.getId();
}
}
/**
* 展示所有试卷模版列表
* @param model
* @return
*/
@GetMapping("/showPaperForm")
public String showPaperForm(Model model) {
List<PaperForm> formList = paperService.findAllPaperForm();
model.addAttribute("formList", formList);
return "paper/showPaperForm";
}
/**
* Ajax删除模版不跳转页面
* @param id
* @return
*/
@GetMapping("/delPaperForm/{id:\\d+}")
@ResponseBody
public AjaxResult delPaperForm(@PathVariable Integer id) {
try {
paperService.delPaperFormById(id);
return AjaxResult.success();
} catch (Exception e) {
return AjaxResult.error(e.getMessage());
}
}
/**
* 级联删除试卷、分数、答案记录
* @param id
* @return
*/
@GetMapping("/delete/{id:\\d+}")
public String delPaper(@PathVariable Integer id) {
paperService.delPaperById(id);
return "redirect:/paper";
}
七、项目总结:
基于SSM的在线考试系统的整体功能模块的实现,主要是对自己在大学这几年时间所学内容的一个测试,对于系统,主要是通过现在智能化的基于SSM的在线考试系统进行开始系统的实现,经过一个学期的毕业设计的实现完成已接近尾声,到目前为止,当我回想起整个学期的系统开发日,收获颇丰。毕业设计的主要任务是建立一个智能化的基于SSM的在线考试系统 ,主要使用JAVA和Mysql数据库的开发工具,对系统的每个功能模块进行相对应的操作,最后,系统调试结果表明系统基本可以满足功能要求。
基于SSM的在线考试系统平台的开发对我大学学习的改进有很大帮助。它使我能够学习计算机知识的相关技术方面问题及与人交往的沟通交流方面,让我意识到无论我们做什么,我们都需要坚持不懈,努力工作,只有这样尝试了并且坚持去做了,我们才可以成功,才可以获得成功的喜悦,如果没有尝试,知识想,那连成功的机会都没有,实际操作进行做了,才会越来越近的靠近成功,随着道路一路向前,未来的路是美好的。对于驾校管理平台的实现,是自己第一次完成的设计一个管理系统。在项目的设计过程中,我克服了各种困难,并且在面对这些困难,我积极的面对,想办法解决问题,并且更好的掌握了理论知识和动手操作实践能力,从系统的开发到设计完成,我完成了一个更全面、更完善、更安全的平台管理系统,这也让我取得了很大的成就感,也使我对未来的生活更有信心。
八、源码获取:
大家点赞、收藏、关注、评论啦 、查看获取项目下载链接,博主联系方式
链接点击直达:下载链接