README
1. 依赖
python3
bs4库
lxml库
2. 文件说明
parse_score.py
获取某次作业中,所有同学所有题目的第一次pass时间,并存入文件
parse_file.py
根据多个parse_score.py
得到的文件,统计学生的分数
3. 使用方式
-
以助教或教师身份登录编程网格,在chrome的console中,输入
document.cookie
,获得类似passport=xxxxxx
的cookie。用xxxxxx这部分内容,替换掉parse_score.py文件中的mycookie -
对于需要统计分数的作业,进入教师页面。
复制该页面的链接,替换掉parse_score.py文件中的myurl
替换掉parse_score.py文件中的file_name,为方便后续处理建议文件名取为数字
运行
python3 parse_score.py
即可获取所有学生该次作业的所有题目的第一次正确提交时间。 -
修改url,和输出文件名,对所有需要统计的作业进行第2步操作
-
修改parse_file.py中的
for i in range(2, 6):
,这里本来是读取读取2.txt至5.txt,按实际情况修改执行
python3 parse_file.py
,会计算出所有同学的最终成绩
4. 成绩计算方式
第一步 每题排序:对于每一道题目,按照题目第一次提交成功的时间,对所有成功提交的学生排一个序;然后,把哪些没有提交、或没有成功提交的学生排在最后;这样得到全班学生的一个排序。
第二步 每题给分:首先,对于每个题目,排在第一位的学生得满分100分,排在最后的学生得75分(中间同学的成绩用线性插值的方式处理);然后,把排在最后的那些没有提交或没有成功提交的学生分数设置为0;如果发现抄袭现象,则把抄袭者的分数置为0。
第三部 综合给出平时成绩:计算每个学生所有题目分数的平均值,作为平时成绩。
==该计算方式,会使有较多题目没有pass的同学,得到相对低的分数==