——————————DescriptionStart——————————
运行环境
Java≥8、MySQL≥5.7
开发工具
eclipse/idea/myeclipse/sts等均可配置运行
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明








基于javaweb的SpringBoot学生在线考试管理系统(java+springboot+thymleaf+bootstrap+html+mysql+maven)
项目介绍
学生在线考试管理系统,分为管理员与老师、学生三种角色;
教师/管理员主要功能:
1. 学生管理:查看所有学生的基本信息,管理员则还可以对学生的基本信息(除了账号和密码外)进行修改和对学生的删除操作。
2. 教师管理:查看所有教师的基本信息(除密码外),并修改自己的基本信息,而管理员除了以上功能还可以对所有教师的所有信息进行修改删除操作,也能添加教师。
3. 班级管理:要能对班级的信息进行管理。
4. 试题管理:首先要能对试题进行增删改查,并且应该对试题进行不同科目的分类以方便试卷的生成。
5. 试卷管理:试卷的主体是试题,然后用户能对试卷进行增删改查操作。
6. 考试管理:可以选择相应的试卷设置时间进行考试。考试一旦生成后无法修改。
7. 记录管理:查看试卷的考试情况;以班级为单位根据班级考试情况生成每个考试的不同班级的及格率以方便排名。
学生主要功能:
1. 学生注册:学生可以通过注册一个账号,然后可以用于登陆系统。
2. 参与考试:学生要可以参与考试
3. 查询历史考试情况:学生在考完试后系统便会记录它的考试得分,进行准确率的分析,并提供试卷详情查看,且这此的考试信息会存入数据库中以便于下次查看。
环境需要
1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。
2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;
3.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS;
4.数据库:MySql 5.7版本;
技术栈
后端:SpringBoot+Mybatis
前端:Thymleaf+BootStrap+Html
使用说明
访问地址:http://localhost:8080
——————————CodeStart——————————
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
|
@RequestMapping("/EditClasse") public String EditClasse(Classe classe){ classeService.editClasse(classe); return "redirect:/classe/getAllClasse"; }
@RequestMapping("/deleteClasse/{id}") public String deleteClasseById(@PathVariable("id") Integer id){ classeService.deleteClasseById(id); return "redirect:/classe/getAllClasse"; }
} package edu.ccsfu.quiz.controller;
@Controller @RequestMapping("/teacher") public class TeacherController { @Autowired private TeacherService teacherService; @Autowired private ClasseService classeService; @RequestMapping("/getAllTeacher") public String getAllTeacher(Model model){ List<Teacher> teachers = teacherService.getAll(); List<Classe> classes=classeService.queryAllTeacherId(); List<Integer> teaId=new ArrayList<>(); for(Classe cla:classes){ teaId.add(cla.getTeacherId()); } model.addAttribute("teaId",teaId); model.addAttribute("teachers",teachers); return "teacher/teacherList";
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
| List<Integer> teaId=new ArrayList<>(); for(Classe cla:classes){ teaId.add(cla.getTeacherId()); } model.addAttribute("teaId",teaId); model.addAttribute("teachers",teachers); return "teacher/teacherList"; } @RequestMapping("/toAddTeacher") public String toAddTeacher(){ return "teacher/teacherAdd"; }
@RequestMapping("/addTeacher") public String addTeacher(Teacher teacher){ int teacherId = teacher.getTeacherId(); if(teacherId==0){ teacherService.addTeacher(teacher); }else { teacherService.editTeacher(teacher); } return "redirect:/teacher/getAllTeacher"; }
@RequestMapping("/{id}") public String toEditTeacher(@PathVariable("id") Integer id,Model model){ Teacher teacher=teacherService.getTeacherById(id); model.addAttribute("teacher",teacher); return "teacher/teacherAdd"; } @RequestMapping("/deleteTeacher/{id}") public String deleteTeacherById(@PathVariable("id") Integer id,Model model){ teacherService.deleteTeacherById(id); return "redirect:/teacher/getAllTeacher"; }
}
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
| List<QuestionPaper> questionPapers = paperService.paperQueryALlQuestionByIdOrderByType(papid); List<String> ans = Arrays.asList(answers.split(",")); model.addAttribute("questionPapers",questionPapers); model.addAttribute("ans",ans); return "record/showExamHist"; }
@RequestMapping("/showClaAcc") public String showClaAcc(Model model){ List<Record> records=recordService.queryAllExam(); List<ClaAcc> claAccRes=new ArrayList<>(); for(Record rec:records){ int paperid=rec.getPaperId(); int toscore=recordService.queryToscore(paperid); String exaName=rec.getRecordName(); List<Classe> clas=recordService.queryAllClass(exaName); int allScore=0; int accScore=0; for(Classe cla:clas){ int claId=cla.getClasseId(); Classe claName=classeService.queryClaNameById(claId); if (claName ==null){ log.error("找不到id为"+claId+"的班级"); continue; } RecordExam recordExam=new RecordExam(); recordExam.setClaId(claId); recordExam.setExaName(exaName); double setToscore=toscore*0.6; recordExam.setToscore(setToscore); allScore=recordService.queryAllScore(recordExam); accScore=recordService.queryAccScore(recordExam); double accre=(double)accScore/allScore; double acc = (double) Math.round(accre * 100) / 100;
ClaAcc claAcc=new ClaAcc(); claAcc.setExamName(exaName); claAcc.setClaName(claName.getClasseName()); claAcc.setToscPer(allScore); claAcc.setAcscPer(accScore);
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
| @RequestMapping("/toRandomQuestion/{id}") public String toRandomQuestion(@PathVariable ("id") Integer papid,Question question,Model model){ List<Question> questionCourses=questionService.queryAllCourse(); questionCourses.add(new Question("bug","all")); int TotalQuestionNums=questionService.queryAllQuestionNums(); List<Map> maps = questionService.queryNumOfQuestionType(); List<String> course=new ArrayList<>(); List<Integer> count=new ArrayList<>(); for (Map map:maps){ for (Object key : map.keySet()) { if(map.get(key) instanceof String){ course.add(map.get(key).toString()); }else{ count.add(Integer.parseInt(map.get(key).toString())); } } } Paper paperName=paperService.queryPaperNameById(papid); model.addAttribute("paperName",paperName.getPaperName()); model.addAttribute("count",count); model.addAttribute("course",course); model.addAttribute("TotalQuestionNums",TotalQuestionNums); model.addAttribute("paperId",papid); model.addAttribute("questionCourses",questionCourses); return "paper/RandomQuestion"; }
@RequestMapping("/RandomADDQuestion/{id}") public String RandomADDQuestion(@PathVariable ("id") Integer papid,String questionCourse,int QuesNums){ PapIdQuesCourse papIdQuesCourse=new PapIdQuesCourse(); papIdQuesCourse.setPapid(papid); papIdQuesCourse.setQuestionCourse(questionCourse); List<Question> questionsNodivIds=questionService.queryAllQueIdNotInPaperById(papIdQuesCourse); List<Integer> list=new ArrayList<>(); for(Question question:questionsNodivIds){ list.add(question.getQuestionId()); } Collections.shuffle(list); List<QuestionPaper> questionPapers=new ArrayList<>(); for(int i=0;i<QuesNums;i++){ QuestionPaper questionPaper=new QuestionPaper(list.get(i),papid); questionPapers.add(questionPaper); }
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
|
@Controller @RequestMapping("/classe") public class ClasseController { @Autowired private ClasseService classeService; @Autowired private TeacherService teacherService;
@RequestMapping("/getAllClasse") public String getAllClasse(Model model){ List<Classe> classes = classeService.getAll(); model.addAttribute("classes",classes); return "classe/classeList"; }
@RequestMapping("/toAddClasse") public String toAddClasse(Model model){ List<Teacher> teachers=teacherService.queryTeacherNotAdvisor(); model.addAttribute("teachers",teachers); return "classe/classeAdd"; }
@RequestMapping("/addClasse") public String addClasse(Classe classe){ classeService.addClasse(classe); return "redirect:/classe/getAllClasse"; }
@RequestMapping("/toEditClasse/{id}") public String toEditClasse(@PathVariable("id") Integer id,Model model){ Classe classe=classeService.getClasseById(id); int teacherIdd=classe.getTeacherId(); Teacher teacherold=teacherService.getTeacherById(teacherIdd); List<Teacher> teachers=teacherService.queryTeacherNotAdvisor(); teachers.add(teacherold); model.addAttribute("teachers",teachers); model.addAttribute("classe",classe); return "classe/classeEdit"; }
|
——————————PayStart——————————
项目链接:
https://javayms.github.io?id=261422282105200cy
https://javayms.pages.dev?id=261422282105200cy