文章目录
- [1. 成绩统计分析说明](#1. 成绩统计分析说明)
-
- [1.1 项目概述](#1.1 项目概述)
- [1.2 一键运行](#1.2 一键运行)
- [1.3 使用流程](#1.3 使用流程)
- [1.4 成绩表格式](#1.4 成绩表格式)
- [1.5 统计口径](#1.5 统计口径)
- [1.6 着色规则](#1.6 着色规则)
- [1.7 目录结构](#1.7 目录结构)
- [1.8 数据库与数据表](#1.8 数据库与数据表)
-
- [1.8.1 数据库](#1.8.1 数据库)
- [1.8.2 数据表](#1.8.2 数据表)
- [2. 成绩统计分析演示](#2. 成绩统计分析演示)
1. 成绩统计分析说明
1.1 项目概述
- 本项目是一款基于 Spring Boot 3.3 + Thymeleaf + Bootstrap + MySQL 的成绩统计分析工具,面向教师与教务管理人员提供一键式成绩处理服务。系统支持导入 Excel 成绩表(.xlsx/.xls),自动识别姓名列与科目列,智能处理缺考、免考等特殊情况,并可按科目分设满分与等级阈值。统计结果以带颜色区分的表格呈现,包含平均分、标准差、各分数段人数比例图(直方图/饼图/3D)、单科排名等维度,学生明细中不及格标红、优秀标绿。最终可导出同款配色的 Excel 文件,便于打印与归档。通过
run.bat一键启动,访问http://localhost:8081即可使用。
1.2 一键运行
- 确认已安装 JDK 17+ 、Maven 3.6+ 、MySQL 8 (服务名默认
MySQL80)。 - 数据库账号密码、端口在
run.bat顶部修改。 - 双击
run.bat:自动检查环境 → 建库score_statistics→ 首次运行自动编译打包 → 启动并打开http://localhost:8081。
- 运行
run.bat文件

- 项目首页 -
http://localhost:8081/

1.3 使用流程
- 首页选择 Excel 成绩表(.xlsx / .xls),填写批次名称;
- 点击「导入并生成统计」进入统计页------各科满分与等级阈值分科设置:按各科最高分自动推测满分(≤100→100、≤120→120、≤150→150)并按 90%/80%/70%/60% 比例给出默认阈值,在"等级阈值(分科设置)"表格中逐科修改后「保存并重新统计」;
- 统计表下方为三个选项卡:学生成绩明细 / 各分数段人数比例图(直方图·饼图·3D)/ 单科排名;点「导出 Excel(含颜色)」下载同款样式的 xlsx(打印时自动展开全部选项卡)。
1.4 成绩表格式
-
样例成绩表

-
第一行是列标题:姓名 + 各科目(科目数量不限,自动识别姓名列);
-
分数为数值或数字文本;
缺考 / 免考 / 旷考或留空按缺考处理; -
默认读取第一个工作表。
1.5 统计口径
- 缺考不计入统计;比率分母为实考人数;
- 平均分保留 1 位小数,标准差(总体)保留 2 位小数;
- 五级人数:优秀(≥优秀线)、良好、中等、及格、不及格(< 及格线);
- 优良率 =(优秀+良好)÷ 实考人数;及格率 =(及格及以上)÷ 实考人数。
1.6 着色规则
- 页面与导出 Excel 一致
- 分科目统计表着色规则
| 行 | 颜色(四组四色) |
|---|---|
| 平均分 / 标准差 | 淡紫 D9D2E9 |
| 最高分 / 最低分 | 淡蓝 DDEBF7 |
| 优秀 / 良好 / 中等 / 及格 / 不及格 | 淡绿 EBF1DE |
| 优良率 / 及格率 | 浅黄 FFF2CC |
- 学生明细表着色规则:不及格标红、优秀标绿、单科最高分加粗下划线、缺考灰色斜体。
1.7 目录结构
-
目录结构简图
score_statistics/
├─ run.bat 一键启动
├─ pom.xml Spring Boot 3.3 + Apache POI 5.2
└─ src/main/
├─ java/com/stb/score/
│ ├─ ScoreApplication.java
│ ├─ service/ExcelImportService 表头/姓名列/科目列自动识别,缺考解析
│ ├─ service/StatService 统计计算 + 表格行组装 + 阈值
│ ├─ service/ExcelExportService 带颜色导出(统计表 + 学生明细)
│ ├─ service/BatchService 批次/明细持久化(MySQL)
│ └─ web/ScoreController
└─ resources/
├─ application.yml 端口 8081、MySQL score_statistics
├─ schema.sql score_batch / score_record
├─ templates/ index / stats
└─ static/ Bootstrap 本地副本 + app.css -
在项目根目录执行命令:
tree /F

1.8 数据库与数据表
1.8.1 数据库
- score_statistics

1.8.2 数据表
score_batch:批次(名称、文件名、学生数、科目数、科目清单、阈值、时间)

score_record:明细长表(批次、姓名、科目、分数,NULL=缺考)

2. 成绩统计分析演示
- 演示操作流程
