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

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,一经查实,立即删除!

相关文章

awtk界面实现下拉屏功能

单页面下拉屏 1.src/common/下创建slidescreen.h slidescreen.c slidescreen.h #ifndef SLIDESCREEN_H #define SLIDESCREEN_H#include "awtk.h" #include "../common/navigator.h"BEGIN_C_DECLS#define false 0 #define true 1//滑屏动作值 #define SL…

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// 指明…

C语言笔记25 •顺序表介绍•

数据结构是计算机存储、组织数据的⽅式。数据结构是指相互之间存在⼀种或多种特定关系 的数据元素的集合。数据结构反映数据的内部构成&#xff0c;即数据由那部分构成&#xff0c;以什么⽅式构成&#xff0c;以及数据元素之间呈现的结构。也就是能够存储数据&#xff1b; 存储…

中介子方程二十二

X$XFX$XdXuXWXπX$XWXeXyXeXyXeXWX$XπXWXuXdX$XFX$XEXyXαXiX$XαXiXrXkXtXyX$XpXVX$XdXuXWXπX$XWXeXyXeXyXeXWX$XπXWXuXdX$XVXpX$XyXtXkXrXiXαX$XiXαXyXEX$XFX$XEXyXαXiX$XαXiXrXkXtXyX$XpXVX$XdXuXWXπX$XWXeXyXeXyXeXWX$XπXWXuXdX$XVXpX$XyXtXkXrXiXαX$XiXαXyXEX$…

导航台运营状态明细

Select a.部门, a.最近登陆时间, b.prev_exec_start 访问时间, b.username 访问用户, b.姓名 From zlClients A, (Select a.Prev_Exec_Start, a.Username, Terminal, c.姓名 From sys.gv_$session A, 上机人员表 B, 人员…

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;并在矩形内标注实体的名称。 属性…

基于c语言的简单的数据库

​‌​⁠​​​​​⁠​‬​‬‌​‍​​​‌​‌‬​‌​⁠​​&#xfeff;‬‍‬​​⁠​‬‍&#xfeff;​​‬​​​‬简单的数据库 - 飞书云文档 (feishu.cn) mydatabase: 实现一个简单的数据库&#xff0c;基于B树 (gitee.com)

纯css星空动画

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

基于C#、Visual Studio 2017以及.NET Framework 4.5的Log4Net使用教程

在使用Log4Net记录日志时&#xff0c;以下是一个基于C#、Visual Studio 2017以及.NET Framework 4.5的详细步骤教程。这个教程适合初学者&#xff0c;会从添加Log4Net库、配置日志、编写日志记录代码等方面进行说明。 步骤1&#xff1a;安装Log4Net 通过NuGet安装 打开您的Vi…

信友队:南风的收集

C. [202406C]楠枫的收集 文件操作 时间限制: 1000ms 空间限制: 262144KB 输入文件名: 202406C.in 输出文件名: 202406C.out Accepted 100 分 题目描述 一年四季&#xff0c;寒暑交替&#xff0c;楠枫总是会收集每一个季节的树叶&#xff0c;并把它们制作成标本收集起来。当…

力扣 24.两两交换链表的结点

class Solution { public: ListNode* swapPairs(ListNode* head) { if(headnullptr ||head->nextnullptr) return head; auto tmpswapPairs(head->next->next); auto rethead->next; head->next->nexthead; head->nexttmp; return ret; } };

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

目录 一、对循环依赖的基本认识 &#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;但该格式允许在一个文件中存储多个图像。该格…

为什么要学习这么多“没用”的知识

最近也在看一些东西&#xff0c;很多很杂&#xff0c;底层的知识&#xff0c;高级的架构&#xff0c;正确且废话的方法论。。。越看越迷茫。和同学聊天&#xff0c;也在自嘲现在看的这些八股文&#xff0c;源代码&#xff0c;除了面试那几天用一下&#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;概述 数字孪…