Added the ability to calculate percentile GPA

This commit is contained in:
NianBroken
2024-02-01 13:27:28 +08:00 Unverified
parent 2fe75a3fe3
commit 128e355c90
3 changed files with 17 additions and 6 deletions
+15 -5
View File
@@ -125,17 +125,27 @@ for _ in range(run_count):
# 按照提交时间降序排序
sorted_grade = sorted(grade, key=lambda x: x["submission_time"], reverse=True)
# 学分绩点总和
total_xfjd = sum(float(course["xfjd"]) for course in grade)
# 学分总和
total_credit = sum(float(course["credit"]) for course in grade)
# (学分*绩点)的总和/学分总和
# 学分绩点总和
total_xfjd = sum(float(course["xfjd"]) for course in grade)
# (百分制成绩*学分)的总和
sum_of_percentage_grades_multiplied_by_credits = sum(
float(course["percentage_grades"]) * float(course["credit"]) for course in grade
)
# 百分制GPA计算 (百分制成绩*学分)的总和/学分总和
percentage_gpa = "{:.2f}".format(
sum_of_percentage_grades_multiplied_by_credits / total_credit
)
# GPS计算 (学分*绩点)的总和/学分总和
gpa = "{:.2f}".format(total_xfjd / total_credit)
# 整合个人信息
integrated_info += f"当前GPA{gpa}\n------"
integrated_info += f"当前GPA{gpa}(百分制:{percentage_gpa})\n" f"------"
# 初始化输出成绩信息字符串
integrated_grade_info = "成绩信息:"
+1
View File
@@ -0,0 +1 @@
[{'course_id': '04050003', 'title': '网页设计基础', 'teacher': '张丽妹', 'class_name': '(2023-2024-1)-04050003-1', 'credit': '3.5', 'category': '专业学习领域课', 'nature': '必修课', 'grade': 92, 'grade_point': '4.2', 'grade_nature': '正常考试', 'start_college': '计算机工程系', 'mark': '主修', 'submission_time': '2024-01-29 12:57:32', 'name_of_submitter': '张丽妹', 'xfjd': '14.70', 'percentage_grades': '92'}, {'course_id': 'FFC9462325AF13ABE055C1C514C140A8', 'title': 'Python程序设计', 'teacher': '陈胜娣;陈金峰', 'class_name': '(2023-2024-1)-04050032-1', 'credit': '4.5', 'category': '专业学习领域课', 'nature': '必修课', 'grade': 74, 'grade_point': '2.4', 'grade_nature': '正常考试', 'start_college': '计算机工程系', 'mark': '主修', 'submission_time': '2024-01-28 18:38:53', 'name_of_submitter': '陈胜娣', 'xfjd': '10.80', 'percentage_grades': '74'}, {'course_id': '29', 'title': '网球1', 'teacher': '朱海飞', 'class_name': '(2023-2024-1)-29-4', 'credit': '3.0', 'category': '公共基础领域课', 'nature': '必修课', 'grade': 66, 'grade_point': '1.6', 'grade_nature': '正常考试', 'start_college': '基础部', 'mark': '主修', 'submission_time': '2024-01-21 20:11:00', 'name_of_submitter': '朱海飞', 'xfjd': '4.80', 'percentage_grades': '66'}, {'course_id': 'E1EB8ADEBC0166D6E055C1C514C140A8', 'title': '军事技能', 'teacher': '周勇', 'class_name': '(2023-2024-1)-95010002-60', 'credit': '2.0', 'category': '公共基础领域课', 'nature': '必修课', 'grade': '及格', 'grade_point': '1.0', 'grade_nature': '正常考试', 'start_college': '计算机工程系', 'mark': '主修', 'submission_time': '2023-11-24 11:45:27', 'name_of_submitter': '周勇', 'xfjd': '2.00', 'percentage_grades': '60'}, {'course_id': 'E1E03C639E504455E055C1C514C140A8', 'title': '入学教育', 'teacher': '周勇', 'class_name': '(2023-2024-1)-98010001-21', 'credit': '1.0', 'category': '公共基础领域课', 'nature': '必修课', 'grade': 85, 'grade_point': '3.5', 'grade_nature': '正常考试', 'start_college': '计算机工程系', 'mark': '主修', 'submission_time': '2024-01-23 23:11:02', 'name_of_submitter': '周勇', 'xfjd': '3.50', 'percentage_grades': '85'}, {'course_id': 'E75E02A9F963458FE055C1C514C140A8', 'title': '应用数学', 'teacher': '彭仲元', 'class_name': '(2023-2024-1)-99010008-5', 'credit': '3.5', 'category': '公共基础领域课', 'nature': '必修课', 'grade': '良好', 'grade_point': '3.5', 'grade_nature': '正常考试', 'start_college': '基础部', 'mark': '主修', 'submission_time': '2024-02-01 11:22:23', 'name_of_submitter': '彭仲元', 'xfjd': '12.25', 'percentage_grades': '85'}, {'course_id': '071AC474870428F3E065C1C514C140A8', 'title': '中国音乐赏析', 'teacher': '崔可欣;曾蓓君', 'class_name': '(2023-2024-1)-99020013-1', 'credit': '2.0', 'category': '公共学习领域课', 'nature': '必修课', 'grade': 67, 'grade_point': '1.7', 'grade_nature': '正常考试', 'start_college': '基础部', 'mark': '主修', 'submission_time': '2024-01-23 22:48:10', 'name_of_submitter': '崔可欣', 'xfjd': '3.40', 'percentage_grades': '67'}]
+1 -1
View File
@@ -6,7 +6,6 @@ import time
import traceback
import unicodedata
from urllib.parse import urljoin
import requests
import rsa
from pyquery import PyQuery as pq
@@ -439,6 +438,7 @@ class Client:
"submission_time": i.get("tjsj"),
"name_of_submitter": i.get("tjrxm"),
"xfjd": i.get("xfjd"),
"percentage_grades": i.get("bfzcj"),
}
for i in grade_items
],