课设--学生成绩管理系统(核心代码部分)

2a20c54b85e042bfa2440367ae4807e9.gif

欢迎来到 Papicatch的博客

2a20c54b85e042bfa2440367ae4807e9.gif

系统介绍

课设--学生成绩管理系统(一)-CSDN博客

课设--学生成绩管理系统(二)-CSDN博客

课设--学生成绩管理系统(三)-CSDN博客

2a20c54b85e042bfa2440367ae4807e9.gif

目录

🍉内部接口

🍈 登录接口

🍈课程管理接口

🍈成绩管理接口

🍈用户管理接口

🍈 文件管理接口


2a20c54b85e042bfa2440367ae4807e9.gif

🍉内部接口

🍈 登录接口

@GetMapping("/login")
@PassToken
public User getStudentInfo(@RequestParam Map<String, Object> condition) {Map<String, Object> map = new HashMap<>();map.put("username", condition.get("username").toString());map.put("password", condition.get("password").toString());map.put("level", condition.get("level"));User user = userService.getStudentInfo(map);String token = userService.getToken(user, 24 * 60 * 60 * 1000);String refreshToken = userService.getToken(user, 24 * 60 * 60 * 1000); // 有效期一天user.setToken(token);user.setRefreshToken(refreshToken);return user;
}

🍈课程管理接口

@PostMapping
public void addCourse(@RequestBody Course course) {courseService.addCourse(course);
}@DeleteMapping("/{ids}")
public void delete(@PathVariable("ids") Integer[] ids) {List<Integer> idsList = Arrays.asList(ids);courseService.delete(idsList);
}@PutMapping
public void update(@RequestBody Course course) {courseService.update(course);
}@GetMapping("/getCourseList")
private PagingResult<Course> getCourseList(@RequestParam Map<String, Object> condition,@RequestParam(required = false, name = "$limit", defaultValue = "10") Integer limit,@RequestParam(required = false, name = "$offset", defaultValue = "0") Integer offset) {RowBounds rowBounds = new RowBounds(offset, limit);return courseService.getCourseList(rowBounds, condition);
}@GetMapping("/getCourseByMap")
private List<Course> getCourseByMap(@RequestParam Map<String, Object> condition) {return courseService.getCourseByMap(condition);
}

🍈成绩管理接口

@GetMapping("/getCourseList")
public PagingResult<Course> getCourseList(@RequestParam Map<String, Object> condition,@RequestParam(required = false, name = "$limit", defaultValue = "10") Integer limit,@RequestParam(required = false, name = "$offset", defaultValue = "0") Integer offset) {RowBounds rowBounds = new RowBounds(offset, limit);return scoreService.getCourseList(rowBounds, condition);
}@PostMapping
private void addEntry(@RequestBody JSONArray UserScore) {List<Score> list = JSONObject.parseArray(UserScore.toJSONString(), Score.class);scoreService.addEntry(list);
}@GetMapping("/export")
public List<Course> getExportList(@RequestParam Map<String, Object> condition) {return scoreService.getExportList(condition);
}@GetMapping("/getUserNum")
public List<Map<String, Object>> getUserNum(@RequestParam Map<String, Object> condition) {return scoreService.getUserNum(condition);
}@GetMapping("/getUserTotal")
public Map<String, Object> getUserTotal(@RequestParam Map<String, Object> condition) {return scoreService.getUserTotal(condition);
}

🍈用户管理接口

@GetMapping("/edit/password")
public boolean update(@RequestParam Map<String, Object> condition) {Map<String, Object> map = new HashMap<>();map.put("username", condition.get("username").toString());map.put("password", condition.get("password").toString());map.put("passwordAgain", condition.get("passwordAgain").toString());;map.put("level", condition.get("level").toString());return userService.update(map);
}@GetMapping("/getTree")
public List<Object> getTree() {return userService.getTree();
}@PassToken
@GetMapping("/getSilent")
public boolean getSilent() {return userService.getSilent();
}@PutMapping("/setSilent/{state}")
public boolean setSilent(@PathVariable("state") Integer state) {return userService.setSilent(state);
}

🍈 文件管理接口

@PostMapping("/headImg")
@ResponseBody
public String upload(MultipartFile file, HttpServletRequest request) throws IOException {if (!file.isEmpty()) {try {byte[] bytes = file.getBytes();// 储存位置String staticDir = ResourceUtil.getPath();// 图片名String ImgName = file.getOriginalFilename();String uid = UUID.randomUUID().toString();assert ImgName != null;// 获取后缀名String str = ImgName.substring(ImgName.lastIndexOf("."));// 重定义文件名String newName = uid + str;// 图片存储地址Path path = Paths.get(staticDir + newName);// 写入文件Files.write(path, bytes);String imgUrl = "/files/" + newName;String userId = request.getParameter("id");int level = parseInt(request.getParameter("level"));Upload upload = new Upload();upload.setUserId(userId);upload.setLevel(level);upload.setUrl(imgUrl);uploadService.upload(upload);// url去除"sms"return imgUrl;} catch (IOException e) {e.printStackTrace();}}return "";
}@GetMapping("/getHeadImg")
@UserLoginToken
public String getAdminList(@RequestParam Map<String, Object> condition, HttpServletRequest httpServletRequest) {return uploadService.getHeader(condition);
}

🍉性能 

🍈精度 

        要按照严格的数据格式输入,不能输入非法字符,否则系统不给予响应进行处理,查询时要保证准确率为100%,所有包含查询关键字的书籍都应能查到,不能有遗漏。 

🍈时间特性

(1)响应时间:用户任意操作后5秒内系统给予反馈信息。

(2)更新处理时间:由系统运行状态来决定。

(3)数据的转换和传送时间:能够在20秒内完成。

🍈灵活性 

        当需求发生某些变化时,该软件的基本操作、数据结构、运行环境等等基本不会发生变化,只是对系统的数据库的文件和记录进行处理,就可以满足需求。 

🍉测试

功能点

测试用例

输出结果

管理员用户登录

选择管理员角色,输入管理员的用户名和密码,点击登录

跳转到学生成绩管理系统首页,并展示管理员相关功能菜单

教师用户登录

选择教师角色,输入管理员的用户名和密码,点击登录

跳转到学生成绩管理系统首页,并展示教师相关功能菜单

学生用户登录

选择管理员角色,输入管理员的用户名和密码,点击登录

跳转到学生成绩管理系统首页,并展示读者相关功能菜单

课程信息新增

点击新增,输入课程信息,点击确认新增

未填写完整表单,提示对应异常,填写完整表单,提示新增成功

课程信息查询

输入对应查询条件,点击查询

课程信息列表

课程信息修改

选中课程信息,弹出课程信息修改框,修改对应信息,点击修改

未填写完整表单,提示对应异常,填写完整表单,提示修改成功

课程信息删除

选中删除的数据

提示删除成功

录入课程表

选中对应学年对应学期的课程表,录入对应课程

出现下拉框录入课程信息

成绩信息查询

输入对应查询条件,点击查询

成绩信息列表

录入成绩

选中对应成绩信息

录入成绩

修改成绩

选中对应成绩信息

修改成绩

修改课程表

选中对应学年学期的课程表,修改已有的课程表信息

出现下拉框修改课程信息

用户新增

点击新增,输入用户信息,点击确认新增

未填写完整表单,提示对应异常,填写完整表单,提示新增成功

用户信息查询

输入对应查询条件,点击查询

用户信息列表

用户修改

选中用户信息,弹出用户信息修改框,修改对应信息,点击修改

未填写完整表单,提示对应异常,填写完整表单,提示修改成功

用户删除

选中删除的数据

提示删除成功

2a20c54b85e042bfa2440367ae4807e9.gif

上面代码为主要核心代码

2a20c54b85e042bfa2440367ae4807e9.gif

源码资源包已上传哦

2a20c54b85e042bfa2440367ae4807e9.gif

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

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

相关文章

Navicat 安装及初步配置指南

Navicat 是一款广泛使用的数据库管理工具&#xff0c;支持多种数据库&#xff0c;如 MySQL、PostgreSQL、SQLite 等。以下是 Navicat 安装步骤的详细说明&#xff1a; 在 Windows 上安装 Navicat 下载 Navicat 安装包&#xff1a; 访问 Navicat 官方网站&#xff1a;Navicat 官…

第2讲:pixi.js 绘制HelloWorld

基于第0讲和第1讲&#xff0c;我们增添了vite.config.ts文件。并配置了其他的http端口。 此时&#xff0c;我们删除掉没用的东西。 删除 conter.ts、typescript.svg 在main.ts中改成如下内容&#xff1a; import {Application, Text} from pixi.js import ./style.css// 指明…

Nginx06-rewrite模块详解与实验

目录 写在前面Nginx06nginx rewriterewrite 模块return案例01 访问/admin/ 返回403案例02 域名间跳转 if案例03 只允许GET、POST请求&#xff0c;其他禁止访问 set案例04 设置是否处于维护状态&#xff0c;是则返回503&#xff0c;否则正常访问 rewrite案例05 域名跳转案例06 r…

Unity | Shader基础知识(第十四集:简单效果练习)

目录 前言 一、效果预览 1.弧形边缘光 二、效果制作 1. 制作弧形边缘光 2.弧形边缘光进阶 3.弧形边缘光调节渐变范围 4.边缘光突变 5.同心圆 三、加入世界坐标做效果 1.绘制结界 2.斑马球 3.效果合并 四、作者的碎碎念 前言 有粉丝建议说&#xff0c;让我继续更新…

JMU 数科 数据库与数据仓库期末总结(4)实验设计题

E-R图 实体-关系图 E-R图的组成要素主要包括&#xff1a; 实体&#xff08;Entity&#xff09;&#xff1a;实体代表现实世界中可相互区别的对象或事物&#xff0c;如顾客、订单、产品等。在图中&#xff0c;实体通常用矩形表示&#xff0c;并在矩形内标注实体的名称。 属性…

纯css星空动画

让大家实现一个这样的星空动画效果,大家会怎么做? js,不! 其实使用css就能写 我也不藏着掖着,源码直接放下面了 <script setup></script><template><div class"box"><div v-for"i in 5" :key"i" :class"layer…

解放代码:识别与消除循环依赖的实战指南

目录 一、对循环依赖的基本认识 &#xff08;一&#xff09;代码中形成循环依赖的说明 &#xff08;二&#xff09;无环依赖的原则 二、识别和消除循环依赖的方法 &#xff08;一&#xff09;使用JDepend识别循环依赖 使用 Maven 集成 JDepend 分析报告识别循环依赖 &a…

用Python pillow 创建和保存GIF动画

使用pillow库来创建和保存gif GIFs:图形交换格式(gif)是一种位图图像格式&#xff0c;由美国计算机科学家Steve Wilhite于1987年6月15日领导的在线服务提供商CompuServe的一个团队开发。 一个GIF文件通常存储一个图像&#xff0c;但该格式允许在一个文件中存储多个图像。该格…

【Java05】Java中的多维数组

从数组底层运行机制上看&#xff0c;Java没有多维数组一说。所谓多维数组&#xff0c;是说一个引用变量指向的元素也是引用变量。 例如&#xff0c;type[] arrayName是个指向type类型元素的数组。倘若type也是数组引用变量&#xff0c;比如int[]&#xff0c;那么这个数组就可以…

中国银行信息科技运营中心、软件中心春招笔试测评面试体检全记录

本文介绍2024届春招中&#xff0c;中国银行下属各部门统一笔试&#xff0c;以及信息科技运营中心与软件中心各自的面试&#xff0c;以及编程能力测评、体检等相关环节的具体流程、相关信息等。 2024年04月投递了中国银行的信息科技类岗位&#xff0c;一共投递了4个岗位&#xf…

数字孪生定义及应用介绍

数字孪生定义及应用介绍 1 数字孪生&#xff08;Digital Twin, DT&#xff09;概述1.1 定义1.2 功能1.3 使用场景1.4 数字孪生三步走1.4.1 数字模型1.4.2 数字影子1.4.3 数字孪生 数字孪生地球平台Earth-2 参考 1 数字孪生&#xff08;Digital Twin, DT&#xff09;概述 数字孪…

基于自编码器的心电信号异常检测(Pytorch)

代码较为简单&#xff0c;很容易读懂。 # Importing necessary libraries for TensorFlow, pandas, numpy, and matplotlib import tensorflow as tf import pandas as pd import numpy as np import matplotlib.pyplot as plt import copy# Importing the PyTorch library im…

ml307A模块连接阿里云(详细版)

1、需要的信息 MQTT连接参数、订阅或发布的主题、服务器地址、端口1883 服务器地址&#xff1a; alFMz7jnArW.iot-as-mqtt.cn-shanghai.aliyuncs.com 注&#xff1a;重要的信息阿里云信息大家不要透露&#xff0c;写完笔记会及时删除产品及设备&#xff0c;大家用自己的信息…

linux精通 4.1

2.1.3 http服务器实现 目的 reactor应用——webserver webclient 每次上课前 看大纲down code 复习&#xff1a; 不行啊 编译给的代码报错啊 给的最新的不是0430那一版就不行啊 reactor.c:(.text0x254): relocation truncated to fit: R_X86_64_PC32 against symbol begin de…

《QT实用小工具·七十一》基于Qt+Qml开发的文件传输工具

1、概述 源码放在文章末尾 该项目基于QTQML实现了文件传输的功能&#xff0c;可以在局域网环境下使用(热点)&#xff0c;扫描使用UDP&#xff0c;传输使用TCP&#xff0c;每一个文件传输使用独立的线程进行处理&#xff0c;高效便捷。 开发环境 使用Qt/Qml开发 QT版本&#x…

Linux服务器上激活conda环境conda: error: argument COMMAND: invalid choice: ‘activate‘

正常我们使用如下来流程&#xff1a; 创建环境&#xff1a;conda create -n 环境名称 激活环境&#xff1a;conda activate 环境名称 但是&#xff0c;在Linux服务器上&#xff0c;使用conda activate 环境名称&#xff0c;出现如上图所示的报错。conda: error: argument CO…

Excel 常用技巧(六)

Microsoft Excel 是微软为 Windows、macOS、Android 和 iOS 开发的电子表格软件&#xff0c;可以用来制作电子表格、完成许多复杂的数据运算&#xff0c;进行数据的分析和预测&#xff0c;并且具有强大的制作图表的功能。由于 Excel 具有十分友好的人机界面和强大的计算功能&am…

CMSIS-RTOS2简介

本文介绍CMSIS-RTOS2。 1.引入 CMSIS-RTOS2在基于Arm Cortex处理器的设备上运行的实时操作系统内核上指定了通用RTOS接口。应用程序和中间件组件可以使用CMSIS-RTOS2 API在各种软件生态系统中实现更好的代码重用和更简单的集成。 CMSIS-RTOS2还指定了RTOS内核使用的标准OS T…

windows上安装redis,并且用pycharm联通调用测试

在 Windows 上启动 Redis&#xff0c;官网版本不支持windows直接安装&#xff0c;你可以按照以下步骤进行操作&#xff1a; 使用Github Redis 版本启动 Redis 如果你想使用 Redis 在 Windows 上启动 Redis&#xff0c;以下是基本的步骤&#xff1a; 下载 Redis&#xff1a; 访…

自定义starter并发布maven私服

一、搭建nexus私服 nexus就是maven的私有服务器&#xff0c;这个搭建教程可以在网络上找到很多&#xff0c;这里就不赘述了。搭建完成之后再进行下一步 二、本地maven的setting配置文件中配置nexus的用户名和密码 <servers><server><id>nexus-releases<…