计算机课程设计|毕业设计之在线考试管理系统代码-基于SSM的在线考试管理系统
> > 所有工具下载链接:
1.开发环境
- 开发语言:Java
- 技术:SSM、BootStrap
- 数据库:MySQL
- 架构:B/S
- 源码类型: Web
- 编译工具:Idea、Eclipse、MyEclipse (选其一)
- 其他:jdk1.8、Tomcat8.5 、Navicat
2.系统的设计与实现
2.1 用户类型
用户角色分为 管理员、教师、学生 这两类用户。
2.2 各角色功能模块
2.2.1 管理员
- 登录
- 基本信息管理
- 班级管理
- 教师管理
- 学生管理
- 试卷管理
- 试题管理
- 考试安排管理
- 以往考试信息
- 作业管理
2.2.2 教师【教师跟管理员功能一样,有些功能没有修改删除权限】
- 登录
- 基本信息管理
- 班级管理
- 教师管理
- 学生管理
- 试卷管理
- 试题管理
- 考试安排管理
- 以往考试信息
- 作业管理
2.2.3 学生
- 登录注册
- 考试中心【需要教师安排考试才能参加】
- 考试历史
- 作业下载【需要管理员布置作业后,学生才有作业】
2.3 部分功能模块展示
学生登录模态框
学生考试中心
学生考试历史
学生作业
管理员之试卷管理
管理员之试题管理
管理员之考试安排
管理员之作业管理
2.4部分代码
/**
* 提交作业
*
* @param request
* @param homeWork
* @param file
* @return
* @author 疯狂行者
*
*/
@RequestMapping(value = "/publishwork")
public ModelAndView publishwork(HttpServletRequest request, HomeWork homeWork, @RequestParam("inputfile") MultipartFile file) {
String f = UUID.randomUUID().toString();
String filePath = "D:/ityueqiangu/ssmfile";
String extension = FilenameUtils.getExtension(file.getOriginalFilename());
String fileName = f + "." + extension;
logger.info("保存上传文件 " + fileName + " 到 " + filePath);
/** 保存上传 文件 */
this.saveUploadFile(file, filePath + File.separator + fileName);
StringBuffer url = request.getRequestURL();
//获取 头部文件
String headerUrl = url.delete(url.length() - request.getRequestURI().length(), url.length()).toString();
TeacherInfo loginTeacher = (TeacherInfo) request.getSession().getAttribute("loginTeacher");
//保存到 作业表中
homeWork.setFileId(f);
homeWork.setPublishPath(headerUrl + "/file/" + fileName);
homeWork.setPublishTime(new Date());
homeWork.setCreatTime(new Date());
homeWork.setCreatBy(loginTeacher.getTeacherId());
ModelAndView modelAndView = new ModelAndView();
Integer result = homeWorkService.insert(homeWork);
if (result < 0) {
modelAndView.addObject("error", "布置作业失败");
modelAndView.setViewName("error");
} else {
modelAndView.setViewName("redirect:homework");
modelAndView.addObject("success", "布置作业成功");
}
return modelAndView;
}
/**
* 获取学生端列表
* @author FlowerStone
* @date 2021年11月21日 0021 19:10:53
* @param studentId
* @return
*/
@RequestMapping(value = "/finishhomeworklist/{studentId}")
public ModelAndView finishhomeworklist(@PathVariable("studentId") Integer studentId){
ModelAndView modelAndView = new ModelAndView();
if (studentId == null) {
logger.error("学生编号 为空");
modelAndView.setViewName("error");
return modelAndView;
}
//根据 学生id 查询学生的信息
StudentInfo studentInfo = studentInfoService.getStudentById(studentId);
//查询批阅信息
Homeworkcommit hc = new Homeworkcommit();
hc.setCreatBy(studentId);
List<Homeworkcommit> homeworkcommits = homeworkcommitService.list(hc);
Map<Integer,List<Homeworkcommit>> homeworkcommitMap = homeworkcommits.stream().collect(Collectors.toMap(Homeworkcommit::getHomeworkId, homeworkcommit -> homeworkcommits));
//根据班级查询作业情况
HomeWork homeWork = new HomeWork();
homeWork.setClassId(studentInfo.getClassInfo().getClassId());
Homeworkcommit homeworkcommit = new Homeworkcommit();
homeworkcommit.setCreatBy(studentId);
homeWork.setHomeworkcommit(homeworkcommit);
//所有的作业
List<HomeWork> homeWorkList = homeWorkService.list(homeWork);
//设置老师建议
homeWorkList.stream().forEach(element->{
if (homeworkcommitMap.get(element.getId())!=null) {
//个人的
HomeWork paramHomework = new HomeWork();
paramHomework.setId(element.getId());
Homeworkcommit paramHomeworkcommit = new Homeworkcommit();
paramHomeworkcommit.setCreatBy(studentId);
paramHomework.setHomeworkcommit(paramHomeworkcommit);
List<HomeWork> personHomeWorks = homeWorkService.listHomeworkcommit(paramHomework);
// List<Homeworkcommit> homeworkcommitList = homeworkcommitMap.get(element.getId());
// homeworkcommitList.forEach(item->{
// element.setTeacherSuggest(personHomeWorks.get(0).getTeacherSuggest());
// });
if (!CollectionUtils.isEmpty(personHomeWorks)) {
element.setTeacherSuggest(personHomeWorks.get(0).getTeacherSuggest());
}
}
});
modelAndView.setViewName("/reception/finishhomeworklist");
modelAndView.addObject("homeWorks",homeWorkList);
return modelAndView;
}
2.5作业上传注意
注意:作业默认提交到D:/ityueqiangu/ssmfile下,本人是使用IDEA运行项目,所以需要配置路径映射,如下:
大家点赞、收藏、关注、评论啦 、需要源码可以评论区咨询