• springboot学生在线考试管理系统


    作者主页:夜未央5788

     简介:Java领域优质创作者、Java项目、学习资料、技术互助

    文末获取源码

    项目介绍

    学生在线考试管理系统,分为管理员与老师、学生三种角色;

    教师/管理员主要功能:

    1. 学生管理:查看所有学生的基本信息,管理员则还可以对学生的基本信息(除了账号和密码外)进行修改和对学生的删除操作。

    2. 教师管理:查看所有教师的基本信息(除密码外),并修改自己的基本信息,而管理员除了以上功能还可以对所有教师的所有信息进行修改删除操作,也能添加教师。

    3. 班级管理:要能对班级的信息进行管理。

    4. 试题管理:首先要能对试题进行增删改查,并且应该对试题进行不同科目的分类以方便试卷的生成。

    5. 试卷管理:试卷的主体是试题,然后用户能对试卷进行增删改查操作。

    6. 考试管理:可以选择相应的试卷设置时间进行考试。考试一旦生成后无法修改。

    7. 记录管理:查看试卷的考试情况;以班级为单位根据班级考试情况生成每个考试的不同班级的及格率以方便排名。

    学生主要功能:

    1. 学生注册:学生可以通过注册一个账号,然后可以用于登陆系统。

    2. 参与考试:学生要可以参与考试

    3. 查询历史考试情况:学生在考完试后系统便会记录它的考试得分,进行准确率的分析,并提供试卷详情查看,且这此的考试信息会存入数据库中以便于下次查看。

    环境需要

    1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。

    2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;

    3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可

    4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS;

    5.是否Maven项目: 是;查看源码目录中是否包含pom.xml;若包含,则为maven项目,否则为非maven项目

    6.数据库:MySql 5.7版本;

    技术栈

    1. 后端:SpringBoot+Mybatis

    2. 前端:Thymleaf+BootStrap+Html

    使用说明

    1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件;

    2.使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven;

    若为maven项目,导入成功后请执行maven clean;maven install命令,配置tomcat,然后运行;

    3. 将项目中application.yml配置文件中的数据库配置改为自己的配置;

    4. 访问地址:http://localhost:8080

    运行截图

     

     

     

     

     

     

     

     

     

     

     

    相关代码

    登录控制器

    1. @Controller
    2. public class LoginController {
    3. @Autowired
    4. private StudentService studentService;
    5. @Autowired
    6. private TeacherService teacherService;
    7. @Autowired
    8. private QuestionService questionService;
    9. @Autowired
    10. private PaperService paperService;
    11. @Autowired
    12. private ClasseService classeService;
    13. @Autowired
    14. private RecordService recordService;
    15. @RequestMapping("/")
    16. public String view(Model model){
    17. //查询所有用户
    18. int teas=teacherService.queryCountAll();
    19. int stus=studentService.queryCOuntALlstu();
    20. int alllogers=teas+stus;
    21. //统计试题
    22. int allQues=questionService.queryCountAllQues();
    23. //统计试卷
    24. int allPaps=paperService.queryCountALlPaps();
    25. model.addAttribute("allPaps",allPaps);
    26. model.addAttribute("allQues",allQues);
    27. model.addAttribute("alllogers",alllogers);
    28. return "stage/prexam";
    29. }
    30. //后台切换到前台登录
    31. @RequestMapping("/foreLogin")
    32. public String foreLogin(){
    33. return "stage/login";
    34. }
    35. //前台切换到后台登录
    36. @RequestMapping("/backLogin")
    37. public String backLogin(){
    38. return "stage/loginx";
    39. }
    40. //后台教师登录验证
    41. @ResponseBody
    42. @RequestMapping("/backLogin/check")
    43. public Object backCheck(Teacher teacher, HttpServletRequest request){
    44. AjaxResult result=new AjaxResult();
    45. HttpSession session=request.getSession();
    46. Teacher teac=teacherService.check(teacher);
    47. if(teac!=null){
    48. session.setAttribute("logerd",teac);
    49. result.setSuccess(true);
    50. }else {
    51. result.setSuccess(false);
    52. }
    53. return result;
    54. }
    55. @RequestMapping("/index")
    56. public String index(Model model){
    57. //查询所有用户
    58. int teas=teacherService.queryCountAll();
    59. int stus=studentService.queryCOuntALlstu();
    60. int alllogers=teas+stus;
    61. //统计试题
    62. int allQues=questionService.queryCountAllQues();
    63. //统计试卷
    64. int allPaps=paperService.queryCountALlPaps();
    65. List<Record> ScoreHStu=recordService.queryRankScoreRecord();
    66. List<Record> AccHStu=recordService.queryRankAccRecord();
    67. model.addAttribute("ScoreHStu",ScoreHStu);
    68. model.addAttribute("AccHStu",AccHStu);
    69. model.addAttribute("allPaps",allPaps);
    70. model.addAttribute("allQues",allQues);
    71. model.addAttribute("alllogers",alllogers);
    72. return "index";
    73. }
    74. //前台学生登录考试
    75. @ResponseBody
    76. @RequestMapping("/foreCheck/check")
    77. public Object foreCheck(Student student, HttpServletRequest request){
    78. AjaxResult result=new AjaxResult();
    79. HttpSession session=request.getSession();
    80. Student stud=studentService.check(student);
    81. if(stud!=null){
    82. session.setAttribute("loger",stud);
    83. result.setSuccess(true);
    84. }else {
    85. result.setSuccess(false);
    86. }
    87. return result;
    88. }
    89. //前台登录到展示页面
    90. @RequestMapping("/indexprexam")
    91. public String indexprexam(){
    92. return "stage/prexamed";
    93. }
    94. //退出系统
    95. @RequestMapping(value = {"*/logout","/logout","teacher/logout"})
    96. public String logout(HttpSession session) {
    97. //session里可能不止存放一个数据,移除麻烦,所以让其失效跟直接
    98. session.invalidate();
    99. return "redirect:/";
    100. }
    101. //学生注册
    102. //去添加页面
    103. @RequestMapping("/prexam/toAddStudent")
    104. public String toAddStudent(Model model){
    105. List<Classe> allClasees = classeService.getAll();
    106. model.addAttribute("allClasees",allClasees);
    107. return "stage/studentAdd";
    108. }
    109. //添加具体操作
    110. @RequestMapping("/prexam/AddStudent")
    111. public String AddStudent(Student student){
    112. studentService.AddStudent(student);
    113. return "redirect:/foreLogin";
    114. }
    115. @RequestMapping("/about")
    116. public String help(){
    117. return "stage/about";
    118. }
    119. }

    班级控制器

    1. @Controller
    2. @RequestMapping("/classe")
    3. public class ClasseController {
    4. @Autowired
    5. private ClasseService classeService;
    6. @Autowired
    7. private TeacherService teacherService;
    8. //查看所有班级
    9. @RequestMapping("/getAllClasse")
    10. public String getAllClasse(Model model){
    11. List<Classe> classes = classeService.getAll();
    12. model.addAttribute("classes",classes);
    13. return "classe/classeList";
    14. }
    15. //班级添加或者修改操作,先去添加页面
    16. @RequestMapping("/toAddClasse")
    17. public String toAddClasse(Model model){
    18. List<Teacher> teachers=teacherService.queryTeacherNotAdvisor();
    19. model.addAttribute("teachers",teachers);
    20. return "classe/classeAdd";
    21. }
    22. //添加具体操作
    23. @RequestMapping("/addClasse")
    24. public String addClasse(Classe classe){
    25. classeService.addClasse(classe);
    26. return "redirect:/classe/getAllClasse";
    27. }
    28. //班级去修改页面
    29. @RequestMapping("/toEditClasse/{id}")
    30. public String toEditClasse(@PathVariable("id") Integer id,Model model){
    31. //根据id查询班级
    32. Classe classe=classeService.getClasseById(id);
    33. //过去班级的班主任,回显
    34. int teacherIdd=classe.getTeacherId();
    35. Teacher teacherold=teacherService.getTeacherById(teacherIdd);
    36. //查询可分配班主任得教师
    37. List<Teacher> teachers=teacherService.queryTeacherNotAdvisor();
    38. teachers.add(teacherold);
    39. model.addAttribute("teachers",teachers);
    40. model.addAttribute("classe",classe);
    41. return "classe/classeEdit";
    42. }
    43. //修改具体操作
    44. @RequestMapping("/EditClasse")
    45. public String EditClasse(Classe classe){
    46. classeService.editClasse(classe);
    47. return "redirect:/classe/getAllClasse";
    48. }
    49. //班级删除
    50. @RequestMapping("/deleteClasse/{id}")
    51. public String deleteClasseById(@PathVariable("id") Integer id){
    52. classeService.deleteClasseById(id);
    53. return "redirect:/classe/getAllClasse";
    54. }
    55. }

    如果也想学习本系统,下面领取。回复:054springboot   

  • 相关阅读:
    【无标题】
    这10款文案神器帮你速码,做自媒体还担心写不出文案吗?
    golang设计模式——组合模式
    vue3 封装自定义指令,监听元素宽高的变化
    找x。。。
    IDE工具(48) idea常用插件
    如何在vscode中添加less插件
    C++之std::function的介绍
    图像运算和图像增强六
    redis的事务
  • 原文地址:https://blog.csdn.net/hanyunlong1989/article/details/125513871