【开源】SpringBoot框架开发高校学生管理系统

在这里插入图片描述


目录

  • 一、摘要
    • 1.1 项目介绍
    • 1.2 项目录屏
  • 二、功能模块
    • 2.1 学生管理模块
    • 2.2 学院课程模块
    • 2.3 学生选课模块
    • 2.4 成绩管理模块
  • 三、系统设计
    • 3.1 用例设计
    • 3.2 数据库设计
      • 3.2.1 学生表
      • 3.2.2 学院课程表
      • 3.2.3 学生选课表
      • 3.2.4 学生成绩表
  • 四、系统展示
  • 五、核心代码
    • 5.1 查询课程
    • 5.2 新增学生选课
    • 5.3 编辑学生选课
    • 5.4 课程打分
    • 5.5 安排补考
  • 六、免责说明


一、摘要

1.1 项目介绍

基于Vue+SpringBoot+MySQL的高校学生管理系统包含学院课程模块、学生选课模块、课程补考模块,还包含系统自带的用户管理、部门管理、角色管理、菜单管理、日志管理、数据字典管理、文件管理、图表展示等基础模块,高校学生管理系统基于角色的访问控制,给教务管理员、教师、学生使用,可将权限精确到按钮级别,您可以自定义角色并分配权限,系统适合设计精确的权限约束需求。

1.2 项目录屏


二、功能模块

在这里插入图片描述

2.1 学生管理模块

学生管理模块帮助学校或教育机构更好地管理和监督学生的学习情况,提高教育质量,学生管理模块可以记录学生的个人基本信息、学习成绩、考勤状态等信息,有助于将学生数据保存,这些信息对于学校了解学生的情况、与家长沟通以及做出教育决策非常重要。学生管理模块帮助学校创建和发布课程,让学生了解他们的上课时间和内容,也可以使用它来管理考试,例如考试时间表和成绩统计,学生管理模块帮助学校更好地管理课堂,包括课堂内的互动、活动组织和学生评分,学生管理模块可以方便教师和家长之间的沟通,传达学生的在校表现和学习情况,学生管理模块能够帮助学校更好地管理和监督学生,提高教育质量,全面提高学生的成绩,有助于学生管理模式的促进发展。

2.2 学院课程模块

大学课程模块使学生和其他用户更容易找到、选择、管理和学习适合学生的内容,在现代社会,知识的代际变化非常快,有必要通过学习不断提高自己,传统的教育方式越来越难以满足大众化和个性化学习的需要,学院课程模块可以通过互联网技术和数据分析的方法,为学生提供更加多样化和灵活的学习资源和服务,学院课程模块为学生提供更全面、个性化和高效的学习模式,它可以提供好处,帮助您更好地满足时代对知识更新的需求。

2.3 学生选课模块

学生选课模块帮助学校更好地管理和安排教育资源,同时为学生提供更独立、更方便的选择体验,首先,学校可以通过学生选修科目模块实现对选修科目数据的实时监控和统计,掌握每节课的选考情况,对下学期的教学进度做出科学合理的决策。第二,学生可以通过学生选择模块自由选择自己感兴趣的课程,并可以实时查看选择结果,了解自己的选择情况,从而大大提高选修课的效率和准确性。最后,在学生选课模块中,学生可以看到班级介绍、班级评价等信息,从而更好地了解自己选择的班级的内容和特点,更好地规划自己的学习生活。

2.4 成绩管理模块

成绩管理模块帮助学生和教师更好地管理和理解学生的表现,对于学生来说,通过成绩管理模块,他们可以及时跟踪自己的成绩、考试时间表和各科的学习进度,从而全面掌握自己的学习情况,同时成绩管理模块为学生提供个性化的成绩报告,让他们更好地了解自己需要加强的地方。对于教师来说,成绩中心模块帮助他们快速准确地输入和组织学生的成绩信息,并根据学生的表现提供合理的评估和分析,这样教师可以及时发现学生的问题和困难,并根据目的进行指导和指导,有助于提高学生的学习效果和学业水平。此外成绩管理模块为教师提供了统计分析的功能,使他们能够更全面地了解班级或学院的学业情况,并制定更合理的教育计划和策略。


三、系统设计

3.1 用例设计

在这里插入图片描述

3.2 数据库设计

3.2.1 学生表

在这里插入图片描述

3.2.2 学院课程表

在这里插入图片描述

3.2.3 学生选课表

在这里插入图片描述

3.2.4 学生成绩表

在这里插入图片描述


四、系统展示

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


五、核心代码

5.1 查询课程

@RequestMapping(value = "/getByPage", method = RequestMethod.GET)
@ApiOperation(value = "查询课程")
public Result<IPage<Curriculum>> getByPage(@ModelAttribute Curriculum curriculum ,@ModelAttribute PageVo page){QueryWrapper<Curriculum> qw = new QueryWrapper<>();if(!ZwzNullUtils.isNull(curriculum.getTitle())) {qw.like("title",curriculum.getTitle());}if(!ZwzNullUtils.isNull(curriculum.getType())) {qw.eq("type",curriculum.getType());}if(!ZwzNullUtils.isNull(curriculum.getLevel())) {qw.eq("level",curriculum.getLevel());}IPage<Curriculum> data = iCurriculumService.page(PageUtil.initMpPage(page),qw);return new ResultUtil<IPage<Curriculum>>().setData(data);
}

5.2 新增学生选课

@RequestMapping(value = "/insert", method = RequestMethod.POST)
@ApiOperation(value = "新增选课")
public Result<CourseSelection> insert(CourseSelection courseSelection){Curriculum curriculum = iCurriculumService.getById(courseSelection.getCurriculumId());if(curriculum == null) {return ResultUtil.error("课程不存在");}QueryWrapper<CourseSelection> oldQw = new QueryWrapper<>();oldQw.eq("curriculum_id",courseSelection.getCurriculumId());oldQw.eq("student_id",courseSelection.getStudentId());if(iCourseSelectionService.count(oldQw) > 0L) {return ResultUtil.error("已完成选课");}courseSelection.setTitle(curriculum.getTitle());courseSelection.setType(curriculum.getType());courseSelection.setContent(curriculum.getContent());courseSelection.setKnowledgePoints(curriculum.getKnowledgePoints());courseSelection.setWeeklyHours(curriculum.getWeeklyHours());courseSelection.setLevel(curriculum.getLevel());User student = iUserService.getById(courseSelection.getStudentId());if(student == null) {return ResultUtil.error("学生不存在");}courseSelection.setStudentName(student.getNickname());courseSelection.setGrade(BigDecimal.ZERO);courseSelection.setGradeUser("");courseSelection.setGradeTime("");courseSelection.setMakeupExam("");iCourseSelectionService.saveOrUpdate(courseSelection);return new ResultUtil<CourseSelection>().setData(courseSelection);
}

5.3 编辑学生选课

@RequestMapping(value = "/update", method = RequestMethod.POST)
@ApiOperation(value = "编辑选课")
public Result<CourseSelection> update(CourseSelection courseSelection){Curriculum curriculum = iCurriculumService.getById(courseSelection.getCurriculumId());if(curriculum == null) {return ResultUtil.error("课程不存在");}QueryWrapper<CourseSelection> oldQw = new QueryWrapper<>();oldQw.eq("curriculum_id",courseSelection.getCurriculumId());oldQw.eq("student_id",courseSelection.getStudentId());if(iCourseSelectionService.count(oldQw) > 0L) {return ResultUtil.error("已完成选课");}courseSelection.setTitle(curriculum.getTitle());courseSelection.setType(curriculum.getType());courseSelection.setContent(curriculum.getContent());courseSelection.setKnowledgePoints(curriculum.getKnowledgePoints());courseSelection.setWeeklyHours(curriculum.getWeeklyHours());courseSelection.setLevel(curriculum.getLevel());User student = iUserService.getById(courseSelection.getStudentId());if(student == null) {return ResultUtil.error("学生不存在");}courseSelection.setStudentName(student.getNickname());iCourseSelectionService.saveOrUpdate(courseSelection);return new ResultUtil<CourseSelection>().setData(courseSelection);
}

5.4 课程打分

@RequestMapping(value = "/check", method = RequestMethod.GET)
@ApiOperation(value = "打分")
public Result<CourseSelection> check(@RequestParam String id,@RequestParam BigDecimal grade){CourseSelection cs = iCourseSelectionService.getById(id);if(cs == null) {return ResultUtil.error("选课不存在");}User currUser = securityUtil.getCurrUser();cs.setGrade(grade);cs.setGradeUser(currUser.getNickname());cs.setGradeTime(DateUtil.now());if(grade.compareTo(BigDecimal.valueOf(60)) >= 0) {cs.setMakeupExam("无需补考");} else {cs.setMakeupExam("补考待安排");}iCourseSelectionService.saveOrUpdate(cs);return ResultUtil.success();
}

5.5 安排补考

@RequestMapping(value = "/make", method = RequestMethod.GET)
@ApiOperation(value = "安排补考")
public Result<CourseSelection> make(@RequestParam String id,@RequestParam String makeupExam){CourseSelection cs = iCourseSelectionService.getById(id);if(cs == null) {return ResultUtil.error("选课不存在");}cs.setMakeupExam(makeupExam);iCourseSelectionService.saveOrUpdate(cs);return ResultUtil.success();
}

六、免责说明

  • 本项目仅供个人学习使用,商用授权请联系博主,否则后果自负。
  • 博主拥有本软件构建后的应用系统全部内容所有权及独立的知识产权,拥有最终解释权。
  • 如有问题,欢迎在仓库 Issue 留言,看到后会第一时间回复,相关意见会酌情考虑,但没有一定被采纳的承诺或保证。

下载本系统代码或使用本系统的用户,必须同意以下内容,否则请勿下载!

  1. 出于自愿而使用/开发本软件,了解使用本软件的风险,且同意自己承担使用本软件的风险。
  2. 利用本软件构建的网站的任何信息内容以及导致的任何版权纠纷和法律争议及后果和博主无关,博主对此不承担任何责任。
  3. 在任何情况下,对于因使用或无法使用本软件而导致的任何难以合理预估的损失(包括但不仅限于商业利润损失、业务中断与业务信息丢失),博主概不承担任何责任。
  4. 必须了解使用本软件的风险,博主不承诺提供一对一的技术支持、使用担保,也不承担任何因本软件而产生的难以预料的问题的相关责任。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/669657.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

服务器和CDN推荐

简介 陆云Roovps是一家成立于2021年的主机服务商&#xff0c;主要业务是销售美国服务器、香港服务器及国外湖北十堰高防服务器&#xff0c;还有相关CDN产品。&#xff08; 地址&#xff1a;roovps&#xff09; 一、相关产品

C语言之数据在内存中的存储

目录 1. 整数在内存中的存储2. 大小端字节序和字节序判断什么是大小端&#xff1f;为什么有大小端&#xff1f;练习1练习2练习3练习4练习5练习6 3. 浮点数在内存中的存储浮点数存的过程浮点数取得过程练习题解析 1. 整数在内存中的存储 在讲解操作符的时候&#xff0c;我们已经…

ffmpeg的使用,安装,抽帧,加水印,截图,生成gif,格式转换,抓屏等

实际使用中总结的关于ffmpeg对视频的处理的记录文档 具体信息&#xff1a; http://ffmpeg.org/download.html 官网下载ffmpeg 关于ffmpeg的安装详细步骤和说明 装ffmpeg 方式,Linux和windows下的 http://bbs.csdn.net/topics/390519382 php 调用ffmpeg , http://bbs.csdn.net/t…

(篇九)MySQL常用内置函数

目录 ⌛数学函数 ⌛字符串函数 ⌛聚合函数 ⌛日期函数 &#x1f4d0;获取当前时间 &#x1f4d0;获取时间的某些内容 &#x1f4d0;​编辑 &#x1f4d0;格式化函数 &#x1f4cf;format类型&#xff1a; ⌛系统信息函数 ⌛类型转换函数 数学函数 字符串函数 聚合函…

SSH口令问题

SSH&#xff08;Secure Shell&#xff09;是目前较可靠、专为远程登录会话和其他网络服务提供 安全性的协议&#xff0c;主要用于给远程登录会话数据进行加密&#xff0c;保证数据传输的安全。 SSH口令长度太短或者复杂度不够&#xff0c;如仅包含数字或仅包含字母等时&#xf…

html5 audio video

DOMException: play() failed because the user didn‘t interact with the document first.-CSDN博客 不可用&#xff1a; 可用&#xff1a; Google Chrome Close AutoUpdate-CSDN博客

[C++] 如何使用Visual Studio 2022 + QT6创建桌面应用

安装Visual Studio 2022和C环境 [Visual Studio] 基础教程 - Window10下如何安装VS 2022社区版_visual studio 2022 社区版-CSDN博客 安装QT6开源版 下载开源版本QT Try Qt | 开发应用程序和嵌入式系统 | Qt Open Source Development | Open Source License | Qt 下载完成&…

请问半吊子 C++选手该如何深入学习 C++?

请问半吊子 C选手该如何深入学习 C? 在开始前我有一些资料&#xff0c;是我根据网友给的问题精心整理了一份「C的资料从专业入门到高级教程」&#xff0c; 点个关注在评论区回复“888”之后私信回复“888”&#xff0c;全部无偿共享给大家&#xff01;&#xff01;&#xff0…

React 实现表单组件

表单是html的基础元素&#xff0c;接下来我会用React实现一个表单组件。支持包括输入状态管理&#xff0c;表单验证&#xff0c;错误信息展示&#xff0c;表单提交&#xff0c;动态表单元素等功能。 数据状态 表单元素的输入状态管理&#xff0c;可以基于react state 实现。 …

【证书管理】实验报告

证书管理实验 【实验环境】 ISES客户端 【实验步骤】 查看证书 查看证书详细信息 选择任意证书状态&#xff0c;在下方“证书列表”中出现符合要求的所有证书。在“证书列表”中点击要查看证书&#xff0c;在右侧“证书详细信息”栏出现被选证书信息。 上述操作如图1.2.…

Elasticsearch:基本 CRUD 操作 - Python

在我之前的文章 “Elasticsearch&#xff1a;关于在 Python 中使用 Elasticsearch 你需要知道的一切 - 8.x”&#xff0c;我详细讲述了如何建立 Elasticsearch 的客户端连接。我们也详述了如何对数据的写入及一些基本操作。在今天的文章中&#xff0c;我们针对数据的 CRUD (cre…

C++后端开发之Sylar学习三:VSCode连接Ubuntu配置Gitee

C后端开发之Sylar学习三&#xff1a;VSCode连接Ubuntu配置Gitee 为了记录学习的过程&#xff0c;学习Sylar时写的代码统一提交到Gitee仓库中。 Ubuntu配置Gitee 安装git sudo apt-get install -y git配置用户名和邮箱 git config --global user.name 用户名 …

ArcGISPro中Python相关命令总结

主要总结conda方面的相关命令 列出当前活动环境中的包 conda list 列出所有 conda 环境 conda env list 克隆环境 克隆以默认的 arcgispro-py3 环境为模版的 my_env 新环境。 conda create --clone arcgispro-py3 --name my_env --pinned 激活环境 activate my_env p…

相机图像质量研究(3)图像质量测试介绍

系列文章目录 相机图像质量研究(1)Camera成像流程介绍 相机图像质量研究(2)ISP专用平台调优介绍 相机图像质量研究(3)图像质量测试介绍 相机图像质量研究(4)常见问题总结&#xff1a;光学结构对成像的影响--焦距 相机图像质量研究(5)常见问题总结&#xff1a;光学结构对成…

RabbitMQ-1.介绍与安装

介绍与安装 1.RabbitMQ1.0.技术选型1.1.安装1.2.收发消息1.2.1.交换机1.2.2.队列1.2.3.绑定关系1.2.4.发送消息 1.2.数据隔离1.2.1.用户管理1.2.3.virtual host 1.RabbitMQ 1.0.技术选型 消息Broker&#xff0c;目前常见的实现方案就是消息队列&#xff08;MessageQueue&…

Linux操作系统下安装消息中间件RabbitMQ_00000

下载 在官网下载Linux版RabbitMQ安装文件。 erlang-21.3-1.el7.x86_64.rpm rabbitmq-server-3.8.8-1.el7.noarch.rpm 安装 1、将文件上传至Linux系统中。 上传到/usr/local/software目录下&#xff08;如果没有software目录&#xff0c;则创建。&#xff09;。 2、安装文件&…

操作系统-【预备学习-2】(Linux 文件操作命令)

文章目录 相关知识文件查看命令cat 命令head 命令tail 命令nl 命令文件编辑基本命令 演示 相关知识 文件查看命令 我们要查看一些文本文件的内容时&#xff0c;要使用文本编辑器来查看。在Linxu下&#xff0c;可以使用一些命令预览文本文件中的内容&#xff0c;而不必使用文本…

空气质量预测 | Matlab实现基于SVR支持向量机回归的空气质量预测模型

文章目录 效果一览文章概述源码设计参考资料效果一览 文章概述 政府机构使用空气质量指数 (AQI) 向公众传达当前空气污染程度或预测空气污染程度。 随着 AQI 的上升,公共卫生风险也会增加。 不同国家有自己的空气质量指数,对应不同国家的空气质量标准。 基于支持向量机(Su…

客户端会话技术-Cookie

一、会话技术 1.1 概述 会话&#xff1a;一次会话中包含多次**请求和响应** 一次会话&#xff1a;浏览器第一次给服务器资源发送请求&#xff0c;此时会话建立&#xff0c;直到有一方断开为止 会话的功能&#xff1a;在一次会话的范围内的多次请求间&#xff0c;共享数据 …

107 C++ STL 容器分类,array,vector详解

STL 的组成部分是个重要的部分&#xff0c;先回忆一下 容器&#xff0c;迭代器&#xff0c;算法&#xff08;函数&#xff09;&#xff0c;分配器&#xff08;分配内存&#xff09;&#xff0c;适配器&#xff0c;仿函数 一 容器的分类. vector &#xff0c; list&#xff0c…