选课成绩管理系统

文章目录

  • 员工管理系统
    • 一、项目演示
    • 二、项目介绍
    • 三、系统部分功能截图
    • 四、部分代码展示
    • 五、底部获取项目(9.9¥)

员工管理系统

一、项目演示

课程管理系统

二、项目介绍

基于springboot+vue的前后端分离选课成绩管理系统

该系统可做课程管理系统、成绩管理系统、选课管理系统

系统角色:学生、教师、管理员

1、管理员模块:系管理 专业管理 班级管理 学生管理 教师管理 课程管理 选课修改 管理员管理

2、教师模块:教师首页 授课查询 教师课表 成绩录入

3、学生模块:学生首页 选修课程 学生课程 课表查询 成绩查询 信息维护

三、系统部分功能截图

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

四、部分代码展示

package com.rainng.coursesystem.service.admin;import com.rainng.coursesystem.manager.admin.CourseManager;
import com.rainng.coursesystem.model.bo.CourseItemBO;
import com.rainng.coursesystem.model.entity.CourseEntity;
import com.rainng.coursesystem.model.vo.response.ResultVO;
import com.rainng.coursesystem.model.vo.response.table.CourseItemVO;
import com.rainng.coursesystem.service.BaseService;
import com.rainng.coursesystem.util.LessonTimeConverter;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;import java.util.ArrayList;
import java.util.List;@Service
public class CourseService extends BaseService {private final CourseManager manager;private final LessonTimeConverter lessonTimeConverter;public CourseService(CourseManager manager, LessonTimeConverter lessonTimeConverter) {this.manager = manager;this.lessonTimeConverter = lessonTimeConverter;}public ResultVO getPageCount(String departmentName, String teacherName, String name) {return result(manager.getPageCount(departmentName, teacherName, name));}public ResultVO getPage(Integer index, String departmentName, String teacherName, String name) {List<CourseItemBO> boList = manager.getPage(index, departmentName, teacherName, name);List<CourseItemVO> voList = new ArrayList<>(boList.size());for (CourseItemBO bo : boList) {CourseItemVO vo = new CourseItemVO();BeanUtils.copyProperties(bo, vo);vo.setTime(lessonTimeConverter.covertTimePart(bo.getTime()));voList.add(vo);}return result(voList);}public ResultVO get(Integer id) {CourseEntity entity = manager.get(id);if (entity == null) {return failedResult("课程Id: " + id + "不存在!");}return result(entity);}public ResultVO update(CourseEntity entity) {CourseEntity origin = manager.get(entity.getId());if (origin == null) {return failedResult("课程Id: " + entity.getId() + "不存在!");}if (manager.getTeacherById(entity.getTeacherId()) == null) {return failedResult("授课教师Id: " + entity.getTeacherId() + "不存在!");}entity.setSelectedCount(origin.getSelectedCount());manager.update(entity);return result("更新成功");}public ResultVO delete(Integer id) {if (manager.get(id) == null) {return failedResult("课程Id: " + id + "不存在!");}if (manager.hasStudentCourse(id)) {return failedResult("还有学生未退选此课程");}manager.delete(id);return result("删除成功");}public ResultVO create(CourseEntity entity) {if (manager.get(entity.getId()) != null) {return failedResult("课程Id: " + entity.getId() + "已存在!");}if (manager.getTeacherById(entity.getTeacherId()) == null) {return failedResult("授课教师Id: " + entity.getTeacherId() + "不存在!");}manager.create(entity);return result("添加成功");}public ResultVO listName() {return result(manager.listName());}
}
package com.rainng.coursesystem.service.admin;import com.rainng.coursesystem.manager.admin.StudentCourseManager;
import com.rainng.coursesystem.model.entity.CourseEntity;
import com.rainng.coursesystem.model.entity.StudentCourseEntity;
import com.rainng.coursesystem.model.vo.response.ResultVO;
import com.rainng.coursesystem.service.BaseService;
import org.springframework.stereotype.Service;@Service
public class StudentCourseService extends BaseService {private final StudentCourseManager manager;public StudentCourseService(StudentCourseManager manager) {this.manager = manager;}public ResultVO getPageCount(String className, String courseName, String studentName) {return result(manager.getPageCount(className, courseName, studentName));}public ResultVO getPage(Integer index, String className, String courseName, String studentName) {return result(manager.getPage(index, className, courseName, studentName));}public ResultVO get(Integer id) {StudentCourseEntity entity = manager.get(id);if (entity == null) {return failedResult("学生选课Id: " + id + "不存在!");}return result(entity);}public ResultVO update(StudentCourseEntity entity) {StudentCourseEntity originEntity = manager.get(entity.getId());if (originEntity == null) {return failedResult("学生选课Id: " + entity.getId() + "不存在!");}if (!originEntity.getCourseId().equals(entity.getCourseId())) {return failedResult("课程Id被篡改");}if (!originEntity.getStudentId().equals(entity.getStudentId())) {return failedResult("学生Id被篡改");}manager.update(entity);return result("更新成功");}public ResultVO delete(Integer id) {StudentCourseEntity entity = manager.get(id);if (entity == null) {return failedResult("学生选课Id: " + id + "不存在!");}manager.delete(entity);return result("删除成功");}public ResultVO create(StudentCourseEntity entity) {if (manager.get(entity.getId()) != null) {return failedResult("学生选课Id: " + entity.getId() + "已存在!");}if (manager.getStudentById(entity.getStudentId()) == null) {return failedResult("所属学生Id: " + entity.getStudentId() + "不存在!");}if (manager.getByCourseIdAndStudentId(entity.getCourseId(), entity.getStudentId()) != null) {return failedResult("学生已经选修此课程");}CourseEntity course = manager.getCourseById(entity.getCourseId());if (course == null) {return failedResult("所属课程Id: " + entity.getCourseId() + "不存在!");}if (course.getSelectedCount() >= course.getMaxSize()) {return failedResult("课容量已满");}if (!manager.inSameDepartment(entity.getCourseId(), entity.getStudentId())) {return failedResult("课程与学生不在同一教学系");}if (!course.getGrade().equals(manager.getStudentGradeById(entity.getStudentId()))) {return failedResult("课程与学生不在同一年级");}manager.create(entity);return result("添加成功");}
}
package com.rainng.coursesystem.service.admin;import com.rainng.coursesystem.manager.admin.TeacherManager;
import com.rainng.coursesystem.model.entity.TeacherEntity;
import com.rainng.coursesystem.model.vo.response.ResultVO;
import com.rainng.coursesystem.service.BaseService;
import com.rainng.coursesystem.service.UserService;
import org.springframework.stereotype.Service;@Service
public class TeacherService extends BaseService {private final TeacherManager manager;private final UserService userService;public TeacherService(TeacherManager manager, UserService userService) {this.manager = manager;this.userService = userService;}public ResultVO getPageCount(String departmentName, String name) {return result(manager.getPageCount(departmentName, name));}public ResultVO getPage(Integer index, String departmentName, String name) {return result(manager.getPage(index, departmentName, name));}public ResultVO get(Integer id) {TeacherEntity entity = manager.get(id);if (entity == null) {return failedResult("教师Id: " + id + "不存在!");}entity.setPassword("");return result(entity);}public ResultVO update(TeacherEntity entity) {TeacherEntity originEntity = manager.get(entity.getId());if (originEntity == null) {return failedResult("教师Id: " + entity.getId() + "不存在!");}if (manager.getDepartmentById(entity.getDepartmentId()) == null) {return failedResult("所属系Id: " + entity.getDepartmentId() + "不存在!");}if (entity.getPassword().equals("")) {entity.setPassword(originEntity.getPassword());} else {entity.setPassword(userService.computePasswordHash(entity.getPassword()));}manager.update(entity);return result("更新成功");}public ResultVO delete(Integer id) {if (manager.get(id) == null) {return failedResult("教师Id: " + id + "不存在!");}if (manager.hasCourse(id)) {return failedResult("此教师还有教授的课程未被删除");}manager.delete(id);return result("删除成功");}public ResultVO create(TeacherEntity entity) {if (manager.get(entity.getId()) != null) {return failedResult("教师Id: " + entity.getId() + "已存在!");}if (manager.getDepartmentById(entity.getDepartmentId()) == null) {return failedResult("所属系Id: " + entity.getDepartmentId() + "不存在!");}//     entity.setPassword(userService.computePasswordHash(entity.getPassword()));manager.create(entity);return result("添加成功");}public ResultVO listName() {return result(manager.listName());}
}

五、底部获取项目(9.9¥)

有问题,或者需要协助调试运行项目的也可以

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

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

相关文章

基础算法之二分算法

前言 本次博客&#xff0c;将要介绍二分算法的基本原理以及如何使用&#xff0c;深入浅出 二分可以针对整型以及浮点型接下来对其讲解希望对小白有所帮助吧 整型的二分法 一般要在一个数组中猜出一个数是否存在我们可以遍历一遍整个数组&#xff0c;判断是否存在&#xff0…

使用Windows11自带的WSL安装Ubuntu Linux系统教程

WSL介绍 WSL全称Windows Subsystem for Linux&#xff0c;它是Windows10带来的新特性&#xff0c;用于Windows系统上的Linux子系统。也就是说&#xff0c;可以在Windows系统中获取Linux系统&#xff0c;这个过程无需通过虚拟机&#xff0c;而是直连计算机硬件。 简而言之&#…

Linux--进程间的通信-命名管道

前文&#xff1a; Linux–进程间的通信-匿名管道 Linux–进程间的通信–进程池 命名管道的概念 命名管道是一种进程间通信&#xff08;IPC&#xff09;机制&#xff0c;运行不同进程之间进行可靠的、单向或双向的数据通信。 特点和作用&#xff1a; 跨平台性&#xff1a;在W…

ResNet最新变体!性能反超Transformer,模型准确率达98.42%

目前ResNet&#xff08;残差网络&#xff09;有两大主流创新思路&#xff1a;一是与其他技术或模型结合&#xff0c;比如前文讲到的ResNetTransformer&#xff1b;二是在原始设计的基础上进行改进。 尽管ResNet通过残差学习有效改善了深层网络的训练和性能&#xff0c;但同时它…

永磁同步电机无感FOC(扩展卡尔曼滤波EKF位置观测控制)

文章目录 1、前言2、扩展卡尔曼滤波器原理2.1 预测阶段&#xff08;时间更新阶段&#xff09;2.2 校正阶段&#xff08;状态更新阶段&#xff09; 3、永磁同步电机EKF的模型4、永磁同步电机EKF的无位置状态观测仿真4.1 核心模块&#xff08;在滑膜、龙伯格、磁链等观测器基础上…

三角洲期刊投稿发表论文

《三角洲》杂志是由国家新闻出版总署批准&#xff0c;南通市委宣传部主管&#xff0c;南通日报社、南通市文学艺术界联合会主办的正规文学类期刊。适用于发表高品质文学学术作品&#xff0c;科研机构的专家学者以及高等院校的师生等具有原创性的学术理论、工作实践、科研成果和…

openEuler-23.03下载

下载地址&#xff1a;openEuler下载 | 欧拉系统ISO镜像 | openEuler社区官网 下载版本&#xff1a;openEuler-23.03-x86_64-dvd.iso

H264标准协议基础3

参考博文 上一篇H264标准协议基础2 1.解码视频帧的poc计算 2.残差4x4 矩阵中的trailingones & numcoeff 2.1查表 trailingones 表达出尾部one(1,-1)系数的个数,按照zigzag扫描出(1,-1)个数,trailingones的最大为3; numcoeff 表达非零值系数的个数,最多为16个…

Linux shell 脚本基础与部署SpringCloud实战

博主介绍&#xff1a;✌全网粉丝5W&#xff0c;全栈开发工程师&#xff0c;从事多年软件开发&#xff0c;在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建与毕业项目实战&#xff0c;博主也曾写过优秀论文&#xff0c;查重率极低&#xff0c;在这方面有丰富的经验…

供应链投毒预警 | 开源供应链投毒202403月报发布啦!(含投毒案例分析)

悬镜供应链安全情报中心通过持续监测全网主流开源软件仓库&#xff0c;结合程序动静态分析方式对潜在风险的开源组件包进行动态跟踪和捕获&#xff0c;能够第一时间捕获开源组件仓库中的恶意投毒攻击。在2024年3月份&#xff0c;悬镜供应链安全情报中心在NPM官方仓库&#xff0…

Flattened Butterfly 扁平蝶形拓扑

Flattened Butterfly 扁平蝶形拓扑 1. 传统蝶形网络 Butterfly Topology2. 扁平蝶形拓扑 Flattened Butterfly3.On-Chip Flattened Butterfly 扁平蝶形拓扑应用于片上网络 Flattened Butterfly 扁平蝶形拓扑 扁平蝶形拓扑是一种经济高效的拓扑&#xff0c;适用于高基数路由器…

OpenHarmony南向开发案例:【智能照相机】

样例简介 本Demo是基于Hi3516开发板&#xff0c;使用OpenHarmony3.0-LTS开发的应用。通过获取摄像头数据&#xff0c;实现预览拍照以及路视频等功能。并且通过后台AI服务识别唤醒词来进行语音控制拍照及录制视频。 应用运行效果图&#xff1a; 此为相机的预览界面。 样例原理…

OpenHarmony多媒体-ohos_videocompressor

介绍 videoCompressor是一款ohos高性能视频压缩器。 目前实现的能力&#xff1a; 支持视频压缩 使用本工程 有两种方式可以下载本工程&#xff1a; 开发者如果想要使用本工程,可以使用git命令 git clone https://gitee.com/openharmony-sig/ohos_videocompressor.git --…

推荐一款免费虚拟主机,小编亲测好用!

虚拟主机是一种将物理服务器分割成多个虚拟服务器的技术&#xff0c;每个虚拟服务器都具有独立的操作系统和资源。相较于独立服务器&#xff0c;虚拟主机具有较低的成本和维护难度&#xff0c;因此受到了许多个人和小型企业的青睐。本文将为大家推荐一款免费且性能优秀的虚拟主…

鸿蒙入门05-真机运行“遥遥领先”

如果你有一台真的 "遥遥领先"那么是可以直接在手机上真机运行你的项目的我们也来尝试一下运行 一、手机设置开发者模式 打开手机设置 打开手机设置界面 向下滑动到关于手机位置 快速连续点击版本号位置 下图所示位置快速连续点击 打开 3 - 5 次即可 会提示您已经进…

跨境电商MercadoLibre(美客多)平台预约号操作流程自动化系统

目录 一、前置配置准备 1. 安装Chrome插件 2. 添加预约配置 二、开始使用 MercadoLibre&#xff08;美客多&#xff09;于2021年10月18号上线了新预约入仓系统&#xff0c;在MercadoLibre美客多平台上&#xff0c;新入仓预约系统是一项非常重要的功能&#xff0c;它可以帮助…

每日两题 / 53. 最大子数组和 56. 合并区间(LeetCode热题100)

53. 最大子数组和 - 力扣&#xff08;LeetCode&#xff09; 经典dp题&#xff0c;dp[i]表示以nums[i]为结尾的所有子数组中&#xff0c;最大的和 将i从左到右遍历&#xff0c;考虑dp[i]如何维护&#xff1f; 以nums[i]结尾的子数组只有两种情况&#xff0c;子数组只有nums[i]…

【Lattice FPGA 开发】Diamond的使用

文章目录 Diamond的使用教程界面器件查看与更改管脚分配RTL分析图查看 第三方工具关联Notepad 问题与解决管脚被分类到unconnected&#xff0c;导致无法分配管脚 Diamond的使用教程 【Lattice FPGA 开发】Diamond的工程建立、文件输入、ip核配置、管脚配置、综合及布线以及下载…

2024年五一杯数学建模B题思路分析

文章目录 1 赛题思路2 比赛日期和时间3 组织机构4 建模常见问题类型4.1 分类问题4.2 优化问题4.3 预测问题4.4 评价问题 5 建模资料 1 赛题思路 (赛题出来以后第一时间在CSDN分享) https://blog.csdn.net/dc_sinor?typeblog 2 比赛日期和时间 报名截止时间&#xff1a;2024…

Unity类银河恶魔城学习记录12-17 p139 In game UI源代码

Alex教程每一P的教程原代码加上我自己的理解初步理解写的注释&#xff0c;可供学习Alex教程的人参考 此代码仅为较上一P有所改变的代码 【Unity教程】从0编程制作类银河恶魔城游戏_哔哩哔哩_bilibili UI.cs using UnityEngine;public class UI : MonoBehaviour {[SerializeFie…