基于javaweb的SpringBoot学生成绩管理系统(java+springboot+maven+vue+elementui+redis+mysql)

运行环境

Java≥8、MySQL≥5.7、Node.js≥14

开发工具

后端:eclipse/idea/myeclipse/sts等均可配置运行
前端:WebStorm/VSCode/HBuilderX等均可

❗没学过node.js的不要搞前后端分离项目

适用

课程设计,大作业,毕业设计,项目练习,学习演示等

功能说明

111424140701

121424140701

131424140701

141424140701

151424140701

161424140701

171424140701

181424140701

512124023108

基于javaweb的SpringBoot学生成绩管理系统(java+springboot+maven+vue+elementui+redis+mysql)

项目介绍

角色:管理员、教师、学生 角色权限管理RBAC、学院管理、专业管理、班级管理、教师管理、学生管理、学期管理、考试管理、课程管理、留言管理、教学安排、成绩管理、成绩图表分析、统计分析、成绩打印等

环境需要

1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。 2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA; 3.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS; 4.数据库:MySql 5.7/8.0版本均可; 5.是否Maven项目:是;

技术栈

后端:SpringBoot+mybatisplus+redis

前端:Vue+Ant Design Vue

使用说明

项目运行: 1. 使用Navicat或者其它工具,在mysql中创建对应sql文件名称的数据库,并导入项目的sql文件; 2. 使用IDEA/Eclipse/MyEclipse导入项目,导入成功后请执行maven clean;maven install命令,然后运行; 3. 将项目中application.yml配置文件中的数据库配置改为自己的配置;

 登录页面展示:

系统主页展示:

 统计信息展示:

计划成绩分析统计展示:

教学安排展示: 

数学成绩分析展示:

 考试计划成绩分析:

考试计划页面展示:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
            message = "删除角色失败";
log.error(message, e);
throw new FebsException(message);
}
}

@Log("修改角色")
@PutMapping
@RequiresPermissions("role:update")
public FebsResponse updateRole(@RequestBody @Valid Role role) throws FebsException {
try {
this.roleService.updateRole(role);
return new FebsResponse().code("200").message("修改角色成功").status("success");
} catch (Exception e) {
message = "修改角色失败";
log.error(message, e);
throw new FebsException(message);
}
}

@PostMapping("excel")
@RequiresPermissions("role:export")
public void export(QueryRequest queryRequest, @RequestBody Role role, HttpServletResponse response) throws FebsException {
try {
List<Role> roles = this.roleService.findRoles(role, queryRequest).getRecords();
ExcelKit.$Export(Role.class, response).downXlsx(roles, false);
} catch (Exception e) {
message = "导出Excel失败";
log.error(message, e);
throw new FebsException(message);
}
}
}


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
    }

@ExceptionHandler({NotAcceptableStatusException.class, HttpMediaTypeNotAcceptableException.class})
@ResponseStatus(HttpStatus.NOT_ACCEPTABLE)
public FebsResponse handleNotAcceptableException(Exception e) {
log.warn(e.getMessage());
return new FebsResponse().message(Code.C406.getDesc()).code(Code.C406.getCode().toString()).status(ResponseStat.ERROR.getText());
}

@ExceptionHandler(value = UnauthorizedException.class)
@ResponseStatus(HttpStatus.FORBIDDEN)
public FebsResponse handleUnauthorizedException(Exception e) {
log.error("权限不足,{}", e.getMessage());
return new FebsResponse().message(Code.C401.getDesc()).code(Code.C401.getCode().toString()).status(ResponseStat.ERROR.getText());
}
}




/**
*/
@Slf4j
@Validated
@RestController
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
/**
* 根据课程安排加载学生考试成绩
*
* @param teachingArrangeId
*/

@GetMapping("/loadStudentScoreMaps/{teachingArrangeId}/{examId}")
@RequiresPermissions("education:teachingArrange:loadStudentScoreMaps")
public Map<String, Object> loadStudentScoreMaps(@PathVariable Long teachingArrangeId, @PathVariable Long examId) {
return iStudentScoreService.findStudentScoreMapByTeachingArrangeId(teachingArrangeId, examId);
}

/**
* 根据课程安排加载学生考试成绩
*
* @param teachingArrangeId
*/

@GetMapping("/loadStudentScoreMaps/{teachingArrangeId}")
@RequiresPermissions("education:teachingArrange:loadStudentScoreMaps2")
public Map<String, Object> loadStudentScoreMaps(@PathVariable Long teachingArrangeId) {
return iStudentScoreService.findStudentScoreMapByTeachingArrangeId(teachingArrangeId);
}

/**
* 保存考试成绩
*
* @param examScoreMap
* @throws FebsException
*/
@Log("保存考试成绩")
@PutMapping("/loadStudentScoreLists")
@RequiresPermissions("education:teachingArrange:saveStudentScoreLists")
public void saveStudentScoreLists(@RequestBody Map<String, String> examScoreMap) throws FebsException {
System.out.println(JSONUtil.toJsonPrettyStr(examScoreMap));
iStudentScoreService.saveStudentScoreMap(examScoreMap);
}


/**
* 导出
*
* @param request
* @param teachingArrange
* @param response
* @throws FebsException
*/
@PostMapping("excel")
@RequiresPermissions("education:teachingArrange:export")
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20


/**
*/
@Slf4j
@RestControllerAdvice
@Order(value = Ordered.HIGHEST_PRECEDENCE)
public class GlobalExceptionHandler {

@ExceptionHandler({FebsException.class,Exception.class})
@ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR)
public FebsResponse handleException(Exception e) {
log.error("系统内部异常,异常信息:", e);
String message=e instanceof FebsException?e.getMessage():Code.C500.getDesc();
return new FebsResponse().message(message).code(Code.C500.getCode().toString()).status(ResponseStat.ERROR.getText());

}
@ExceptionHandler(value = HttpRequestMethodNotSupportedException.class)
@ResponseStatus(HttpStatus.METHOD_NOT_ALLOWED)
public FebsResponse handleHttpRequestMethodNotSupportedException(Exception e) {
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
 * @return
*/
@GetMapping("/all")
@RequiresUser
public List<Semester> allSemesterList() {
return iSemesterService.list();
}


/**
* 学期列表
*
* @param request
* @param semester
* @return
*/
@GetMapping
@RequiresPermissions("education:semester:view")
public Map<String, Object> semesterList(QueryRequest request, Semester semester) {
return getDataTable(this.iSemesterService.findSemesters(request, semester));
}


/**
* 新增学期
*
* @param semester
* @throws FebsException
*/
@Log("新增学期")
@PostMapping
@RequiresPermissions("education:semester:add")
public void addSemester(@RequestBody @Valid Semester semester) throws FebsException {
try {
this.iSemesterService.insert(semester);
} catch (Exception e) {
message = "新增学期失败";
log.error(message, e);
throw new FebsException(message);
}
}


/**
* 修改学期
*
* @param semester
* @throws FebsException
*/


项目链接:
https://javayms.github.io?id=071524180701201hq
https://javayms.pages.dev?id=071524180701201hq