4-30 目前完成了数据下载脚本的编写,位于download/目录下。
4-30 完成了对压缩文件的处理,现在可以从做题记录文件中提取出有用的提交代码替换原来的整个压缩文件
5-13 对下载模块继续优化:增加新功能,可以只下载最后一次提交的代码;将题目信息下载和用户代码下载分离,避免冗余地下载题目信息。
5-15下载器新增功能!
- 可以指定下载文件目录结构组织
- 可以方便的定制代码过滤器,定制文件目录结构
- 对原有多线程下载方法进行改良,下载速度显著提高
- 开始运行的时候可以打印一个帅气的banner!qwq
7-21 功能更新
- 分析代码
在check包的check包下:
-
main.py,程序入口;
-
ifEles.py,检查代码的“if-else”语句偏移情况;
-
checkByIO.py,检查代码的输出异常情况;
-
countlines.py,检查代码语句数量偏移情况;
-
check.py,连接器,综合三分指标并得出一个怀疑等级。
-
作图模块
在check包的draw包下:
draw模块(draw.py, draw_multi.py)使用 Python3 第三方开源库 pygal 对处理过的数据进行可视化处理,绘制的图表包括:
-
单个题目满分代码中被怀疑代码占总数的比例的饼图(Pie)
读入单个题目的一份字典(key为文件名,value为怀疑程度的度量),用pygal创建一个新的Pie对象,键入标题、数据(被怀疑文件数以及总被分析代码文件数),在项目根目录下pics目录中自动生成可互动式的
.svg
可缩放矢量图形。 -
单个题目满分代码被怀疑程度的降序排列的直方图(Bar)
读入单个题目的一份字典(key为文件名,value为怀疑程度的度量),用pygal创建一个新的Bar对象,键入标题、数据(所有的文件名以及怀疑程度),在项目根目录下pics目录中自动生成可互动式的
.svg
可缩放矢量图形。 -
多个题目并列对比的怀疑代码占比半饼图(Gauge)
读入包含多个题目的一份字典(key为题目编号,value为字典2(key2为文件名,value2为怀疑程度的度量)),用pygal创建一个新的Gauge对象,键入标题、数据(各个题目的被怀疑文件数以及总被分析代码文件数),在项目根目录下pics目录中自动生成可互动式的
.svg
可缩放矢量图形。 -
多个题目并列对比的怀疑程度分布情况的金字塔(Pyramid)
读入包含多个题目的一份字典(key为题目编号,value为字典2(key2为文件名,value2为怀疑程度的度量)),用pygal创建一个新的Pyramid对象,键入标题、数据(各个题目的怀疑程度在每个值处的分布数量),在项目根目录下pics目录中自动生成可互动式的
.svg
可缩放矢量图形。
单个题目的分析图会放在项目根目录的pics目录里的题号目录里
pics目录以及题号子目录会自动创建(如果没有)
-