欢迎光临
我们一直在努力

计算机毕业设计选题推荐:基于spring boot的考试组卷管理系统、毕业设计选题、计算机毕设、选题推荐、毕设指导、项目定制、源码、高质量项目

💖💖作者:计算机编程小咖 💙💙个人简介:曾长期从事计算机专业培训教学,本人也热爱上课教学,语言擅长Java、微信小程序、Python、Golang、安卓Android等,开发项目包括大数据、深度学习、网站、小程序、安卓、算法。平常会做一些项目定制化开发、代码讲解、答辩教学、文档编写、也懂一些降重方面的技巧。平常喜欢分享一些自己开发中遇到的问题的解决办法,也喜欢交流技术,大家有技术代码这一块的问题可以问我! 💛💛想说的话:感谢大家的关注与支持! 💜💜 网站实战项目 安卓/小程序实战项目 大数据实战项目 深度学习实战项目

目录

  • 考试组卷管理系统介绍
  • 考试组卷管理系统演示视频
  • 考试组卷管理系统演示图片
  • 考试组卷管理系统代码展示
  • 考试组卷管理系统文档展示

考试组卷管理系统介绍

基于Spring Boot的考试组卷管理系统是一套面向高校教学场景设计的毕业设计项目,整体采用B/S架构,后端以Java语言搭配Spring Boot框架进行开发,同时也有Python语言搭配Django框架的版本可供选择,前端使用Vue、ElementUI和HTML完成页面交互,数据库采用MySQL,开发工具对应使用IDEA或PyCharm。系统围绕考试组卷这一核心业务展开,主要功能包括主页展示、个人中心、用户管理、教师管理、试题库管理、试题管理、试卷管理、系统管理、考试管理、个人中心以及修改密码等模块。教师用户登录后可以进入试题库管理界面,按照课程、题型、难度等维度维护试题信息,也可以对单道试题进行新增、修改、删除和查询操作;在试卷管理模块中,教师可以根据考试要求从试题库中挑选题目,设置分值、题型比例和试卷标题,生成一份完整试卷;考试管理模块则用于安排考试信息、关联试卷并记录考试状态;管理员可以通过用户管理和教师管理模块维护账号信息,通过系统管理模块完成基础配置,通过个人中心和修改密码模块维护自身账号安全。整套系统把试题、试卷、考试三个环节串联起来,让组卷过程从手工拼凑变成有库可查、有卷可存、有考可管的小型管理平台,比较适合作为计算机专业本科毕业设计题目进行开发与展示。

考试组卷管理系统演示视频

项目演示视频

考试组卷管理系统演示图片

在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述

考试组卷管理系统代码展示

import org.apache.spark.sql.SparkSession;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
import java.util.Map;
import java.util.HashMap;
import java.util.stream.Collectors;
@Service
public class CoreBusinessService {
@Autowired
private QuestionMapper questionMapper;
@Autowired
private PaperMapper paperMapper;
@Autowired
private ExamMapper examMapper;
private SparkSession sparkSession = SparkSession.builder().appName("ExamPaperSystem").master("local[*]").getOrCreate();
@Transactional
public Map<String, Object> generatePaperByRule(Long paperId, String courseName, Integer questionCount, List<String> questionTypes) {
Map<String, Object> result = new HashMap<>();
List<Question> allQuestions = questionMapper.selectByCourseAndTypes(courseName, questionTypes);
if (allQuestions == null || allQuestions.isEmpty()) {
result.put("success", false);
result.put("message", "试题库中没有符合条件的题目");
return result;
}
List<Question> selectedQuestions = allQuestions.stream().filter(q -> q.getStatus() == 1).limit(questionCount).collect(Collectors.toList());
if (selectedQuestions.size() < questionCount) {
result.put("success", false);
result.put("message", "可用题目数量不足,当前只有" + selectedQuestions.size() + "道");
return result;
}
int totalScore = 0;
for (Question q : selectedQuestions) {
totalScore += q.getScore() == null ? 0 : q.getScore();
q.setPaperId(paperId);
questionMapper.updatePaperId(q);
}
Paper paper = paperMapper.selectById(paperId);
paper.setQuestionCount(selectedQuestions.size());
paper.setTotalScore(totalScore);
paper.setStatus(1);
paperMapper.updateById(paper);
result.put("success", true);
result.put("paperId", paperId);
result.put("questionCount", selectedQuestions.size());
result.put("totalScore", totalScore);
result.put("message", "试卷自动组卷完成");
return result;
}
@Transactional
public Map<String, Object> publishExam(Long examId, Long paperId, String examTime) {
Map<String, Object> result = new HashMap<>();
Paper paper = paperMapper.selectById(paperId);
if (paper == null) {
result.put("success", false);
result.put("message", "试卷不存在,无法发布考试");
return result;
}
if (paper.getStatus() != 1) {
result.put("success", false);
result.put("message", "试卷尚未组卷完成,不能发布考试");
return result;
}
Exam exam = examMapper.selectById(examId);
if (exam == null) {
exam = new Exam();
exam.setPaperId(paperId);
exam.setExamTime(examTime);
exam.setStatus(0);
examMapper.insert(exam);
} else {
exam.setPaperId(paperId);
exam.setExamTime(examTime);
exam.setStatus(0);
examMapper.updateById(exam);
}
result.put("success", true);
result.put("examId", exam.getId());
result.put("paperId", paperId);
result.put("message", "考试发布成功,等待开考");
return result;
}
@Transactional
public Map<String, Object> analyzeQuestionBank(Long courseId) {
Map<String, Object> result = new HashMap<>();
List<Question> questionList = questionMapper.selectByCourseId(courseId);
if (questionList == null || questionList.isEmpty()) {
result.put("success", false);
result.put("message", "该课程下暂无试题数据");
return result;
}
List<String> typeList = questionList.stream().map(Question::getType).collect(Collectors.toList());
long singleCount = typeList.stream().filter(t -> "单选题".equals(t)).count();
long multiCount = typeList.stream().filter(t -> "多选题".equals(t)).count();
long judgeCount = typeList.stream().filter(t -> "判断题".equals(t)).count();
long blankCount = typeList.stream().filter(t -> "填空题".equals(t)).count();
double avgScore = questionList.stream().mapToInt(q -> q.getScore() == null ? 0 : q.getScore()).average().orElse(0);
int totalScore = questionList.stream().mapToInt(q -> q.getScore() == null ? 0 : q.getScore()).sum();
result.put("success", true);
result.put("courseId", courseId);
result.put("totalCount", questionList.size());
result.put("singleCount", singleCount);
result.put("multiCount", multiCount);
result.put("judgeCount", judgeCount);
result.put("blankCount", blankCount);
result.put("avgScore", avgScore);
result.put("totalScore", totalScore);
result.put("message", "试题库分析完成");
return result;
}
}

考试组卷管理系统文档展示

在这里插入图片描述

💖💖作者:计算机编程小咖 💙💙个人简介:曾长期从事计算机专业培训教学,本人也热爱上课教学,语言擅长Java、微信小程序、Python、Golang、安卓Android等,开发项目包括大数据、深度学习、网站、小程序、安卓、算法。平常会做一些项目定制化开发、代码讲解、答辩教学、文档编写、也懂一些降重方面的技巧。平常喜欢分享一些自己开发中遇到的问题的解决办法,也喜欢交流技术,大家有技术代码这一块的问题可以问我! 💛💛想说的话:感谢大家的关注与支持! 💜💜 网站实战项目 安卓/小程序实战项目 大数据实战项目 深度学习实战项目

赞(0)
未经允许不得转载:171主机测评 » 计算机毕业设计选题推荐:基于spring boot的考试组卷管理系统、毕业设计选题、计算机毕设、选题推荐、毕设指导、项目定制、源码、高质量项目
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址