一个用于协助班委统计和分析班级同学量化积分的程序,支持积分管理、批量加扣分、作业统计、分组管理等功能。
- Python 版本:3.10 或更高版本
- 依赖的第三方库:
tkinter
:用于图形界面pandas
:用于数据处理os
:用于文件操作datetime
:用于时间操作decimal
:用于精确处理积分
- 安装 Python 3.10 或更高版本。
- 安装所需的第三方库:
pip install pandas
该文件需包含班级所有学生的姓名,每个姓名占一行,文件格式如下:
张三
李四
王五
分组文件用于按小组批量加扣分以及查看小组平均分。若没有此功能需求,可创建一个简单的 分组.txt
文件,内容如下:
1:张三
每个小组一行,组号与成员间用全角 :
分隔,成员姓名之间用空格分隔。
例如:
1:张三 赵六
2:李四 王五
3:小明 小红
若没有提供分组文件,程序将无法正常启动。
加扣分包括三个部分:
- 加扣分类型:用于分类,便于后续导出到 Excel 后进行分析。如果不需要特殊分类,选择 "其他" 即可。
- 加扣分原因:注明每次扣分的原因。
- 加扣分数:输入数字。加分输入
1
或+1
,扣分输入-1
。
- 录入分数后,可以按
Enter
键或点击 “添加分数” 按钮来添加分数。 - 每次录入后,程序会自动清空姓名输入框,方便下次录入。
- 录入的分数会存储在程序目录下的
积分.txt
文件中。用户可以查看、分享或删除错误的积分记录。删除时,请确保不要留下空行,否则程序会报错。
每条积分记录包含:时间、类型、原因、加扣分数。
- 撤销:支持撤销当前程序会话中的所有积分记录,并显示撤销内容。
- 重做:撤销后可以重做先前的操作,同样会显示重做内容。
-
作业统计表的要求:
- A列为姓名。
- 第一行是日期,日期以
12.1
这样的格式表示。 - 未完成的作业标记为“X”。
导入后,程序会自动解析统计表,生成作业未完成的扣分记录,并根据这些记录进行积分。
- 个人积分会自动按照积分进行降序排列,并附上个人排行。
- 小组平均分会按照每组的平均分进行降序排列,并显示每组成员的得分。
- 没有积分记录的成员不会显示积分。
- 点击后弹出窗口,用户可以选择一个分组文件。
- 选择的分组文件格式应与
分组.txt
文件一致。如果成员不一致也可以使用。 - 根据小组名单执行批量加扣分操作。
- 在负责人统计作业扣分后,用户输入本周应交作业的数量。
- 程序输出本周所有因作业扣分的条目,每个未交作业计一次作业未完成,并生成完成率排行榜。
- 表格一:展示各同学的完成率。
- 表格二:展示未完成作业的详细记录。
- 导出的 Excel 文件包括四个表格:
- 详细记录:包含每个学生的积分记录。
- 分类型记录:按类型分类的积分记录。
- 个人排序:按个人积分降序排列的同学和积分。
- 小组排序:按小组平均积分排序,并显示每组成员得分。
Class-Scoring-Program/
│
├── class_scoring_program.py # 主程序文件
├── 积分.txt # 积分记录文件
├── 班级名单.txt # 班级成员名单文件
├── 分组.txt # 分组文件
└── README.md # 本文档
- 创建
班级名单.txt
文件,列出班级所有同学的姓名。 - 创建
分组.txt
文件,列出各小组的成员。 - 启动程序并添加分数记录,使用 "添加分数" 按钮进行录入。
- 导入作业统计表,生成作业扣分记录并查看相关报表。
- 导出数据到 Excel 进行进一步分析。
欢迎提交问题报告、功能请求和贡献代码!您可以通过 Fork 项目并创建 Pull Request 来贡献您的代码。
本项目采用 MIT 许可证,详情请见 LICENSE 文件。
如果有任何问题或者更多的功能需求,欢迎随时联系!