• 基于springboot的高校学生实践成长检测系统


    博主主页猫头鹰源码

    博主简介:Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万+、专注Java技术领域和毕业设计项目实战

    主要内容:毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询

    文末联系获取

    项目介绍: 

    该系统创作于2022年3月,包含详细数据库设计。基于springboot技术,数据层为MyBatis,mysql数据库,具有完整的业务逻辑,适合选题:高校、学生选课、实践、实践成长、大学选课、实践课程等。

    项目功能:

    1. 分为3个角色
    2. 管理员
    3. 创建课程,选择教师和学生
    4. 增删改查课程信息,学生信息和教师信息
    5. 修改学生的课程分数
    6. 统计各课程各学生的得分情况,可以进行增删改查功能
    7. 可以对成绩进行统计,图表形式对能力进行分析
    8. 教师
    9. 登陆注册,查看修改个人信息
    10. 创建课程,选择学生,取消选择学生,查看学生信息
    11. 给学生的课程打分,包括专业能力,工程能力,创新能力和其他非技术能力和评价
    12. 统计该课程学生的分数情况,不及格标红,对学生分数排序,可以进行增删改查功能
    13. 学生
    14. 登录注册,查看修改个人信息
    15. 选择加入课程,查看课程信息和分数
    16. 查看不同课程对应的得分情况

    数模设计:

    数据库表结构文档:

    系统包含技术:

    后端:springboot、mybatis
    前端:layui,js,css等
    开发工具:idea
    数据库:mysql 5.7
    JDK版本:jdk1.8

    部分截图说明:

    下面是登录页面

    管理员首页

    管理员 对教师进行维护

     管理员 对学生进行维护

    管理员 课程管理

    选课管理

    对不同学生进行能力分析 

    教师添加课程

     学生进行选课 

    部分代码:

    拦截器

    1. @Override
    2. public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
    3. HttpSession session = request.getSession();
    4. if(session.getAttribute("ad") != null){
    5. return true;
    6. }
    7. // 不符合条件的给出提示信息,并转发到主页面
    8. request.setAttribute("msg", "您还没有登录,请先登录!");
    9. request.getRequestDispatcher("/gologin.jsp").forward(request, response);
    10. //返回true通过,返回false拦截
    11. return false;
    12. }

     登录功能

    1. /**
    2. * 登录
    3. * 将提交数据(username,password)写入Admin对象
    4. */
    5. @RequestMapping(value = "/login")
    6. public String login(Teacher teacher, Model model, HttpSession session, HttpServletRequest request) {
    7. if(teacher.getUsername()==null || teacher.getUsername().length()<=0 ){
    8. model.addAttribute("msg", "请输入登录名!");
    9. return "login";
    10. }
    11. if(teacher.getPassword()==null || teacher.getPassword().length()<1){
    12. model.addAttribute("msg", "请输入密码!");
    13. return "login";
    14. }
    15. if(teacher.getType()==null || teacher.getType().length()<1){
    16. model.addAttribute("msg", "请选择人员类型!");
    17. return "login";
    18. }
    19. Map mp = new HashMap();
    20. mp.put("username",teacher.getUsername());
    21. mp.put("password",teacher.getPassword());
    22. if(teacher.getType().equals("01")){
    23. List<Admin> ad = adminService.queryFilter(mp);
    24. if(ad!=null && ad.size()==1){
    25. session.setAttribute("ad", ad.get(0));
    26. session.setAttribute("type", "01");
    27. return "homepage1";
    28. }else{
    29. model.addAttribute("msg", "请确定账户信息是否正确!");
    30. return "login";
    31. }
    32. }else if(teacher.getType().equals("02")){
    33. List<Teacher> ad = teacherService.queryFilter(mp);
    34. if(ad!=null && ad.size()==1){
    35. session.setAttribute("ad", ad.get(0));
    36. session.setAttribute("type", "02");
    37. return "homepage2";
    38. }else{
    39. model.addAttribute("msg", "请确定账户信息是否正确!");
    40. return "login";
    41. }
    42. }else{
    43. List<Student> ad = studentService.queryFilter(mp);
    44. if(ad!=null && ad.size()==1){
    45. session.setAttribute("ad", ad.get(0));
    46. session.setAttribute("type", "03");
    47. return "homepage3";
    48. }else{
    49. model.addAttribute("msg", "请确定账户信息是否正确!");
    50. return "login";
    51. }
    52. }
    53. }

    学生相关操作

    1. /**
    2. * 分页查询
    3. * pageIndex 当前页码
    4. * pageSize 显示条数
    5. */
    6. @RequestMapping(value = "/findStudent")
    7. public String findStudent(Integer pageIndex, Integer pageSize,String realname, Model model,HttpServletRequest request) {
    8. HttpSession session = request.getSession();
    9. if(session.getAttribute("ad") == null){
    10. session.setAttribute("msg", "对不起,请登录!");
    11. return "login";
    12. }
    13. Map mp = new HashMap();
    14. mp.put("realname",realname);
    15. PageInfo<Student> pageList = studentService.findPageInfo(pageIndex,pageSize,mp);
    16. model.addAttribute("pageList",pageList);
    17. return "StudentList";
    18. }
    19. /**
    20. * 添加
    21. */
    22. @RequestMapping(value = "/addStudent" ,method = RequestMethod.POST)
    23. @ResponseBody
    24. public String addStudent( @RequestBody Student student) {
    25. try{
    26. List<Student> studentList = studentService.getAll();
    27. for(int i=0;i<studentList.size();i++){
    28. if(student.getUsername().equals(studentList.get(i).getUsername())){
    29. return "202";
    30. }
    31. }
    32. SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    33. student.setCreateTime(sf.format(new Date()));
    34. studentService.addStudent(student);
    35. return "200";
    36. }catch (Exception e){
    37. e.printStackTrace();
    38. return "201";
    39. }
    40. }
    41. /**
    42. * 删除
    43. */
    44. @RequestMapping( "/deleteStudent")
    45. @ResponseBody
    46. public String deleteStudent(String id) {
    47. int d = studentService.deleteStudent(id);
    48. return "StudentList";
    49. }
    50. /**
    51. * 修改
    52. */
    53. @RequestMapping( "/updateStudent")
    54. @ResponseBody
    55. public String updateStudent(@RequestBody Student student) {
    56. try{
    57. List<Student> studentList = studentService.getAll();
    58. for(int i=0;i<studentList.size();i++){
    59. if(student.getUsername().equals(studentList.get(i).getUsername()) && !student.getId().equals(studentList.get(i).getId())){
    60. return "202";
    61. }
    62. }
    63. studentService.updateStudent(student);
    64. return "200";
    65. }catch (Exception e){
    66. e.printStackTrace();
    67. return "201";
    68. }
    69. }

    以上就是部分功能展示,从整体上来看,本系统功能是十分完整的,界面设计简洁大方,交互友好,数据库设计也很合理,规模适中,代码工整,清晰,适合学习使用。

    好了,今天就到这儿吧,小伙伴们点赞、收藏、评论,一键三连走起呀,下期见~~

  • 相关阅读:
    【centos7】centos7卸载gitlab
    Android SELinux
    决策树算法的一点基础知识补充
    案例 | 医学大数据智能平台:专科疾病临床+科研,数字化两手都要抓
    论文阅读【2】PreQR: Pre-training Representation for SQL Understanding
    Vuex概述及核心概念
    数据源报表
    通信入门系列——锁相环、平方环、Costas环
    算法高级部分--并查集
    【Nginx】nginx配置文件学习
  • 原文地址:https://blog.csdn.net/mtyedu/article/details/126695013