01下载学生提交作业
在网络学堂作业批改页面将提交的信息存储成TEXT文件,每一次存储成一个文件,共15次:
▲ 将提交学生的信息进行选择、拷贝、粘贴
▲ 每次提交作业存储的文件
下面是text文本文件的基本格式。
分组 学号 姓名 院系 班级 上交时间 状态 成绩 批阅老师 操作
全体 2016012194 王伟帆 新雅书院 CDIE7 2020-02-24 23:40 未批改 批阅
全体 2017010684 刘一纯 新雅书院 CDIE7 2020-02-22 19:50 未批改 批阅
全体 2017011907 邓文静 新雅书院 CDIE7 2020-02-24 12:26 未批改 批阅
全体 2017013634 崔琢宜 新雅书院 CDIE7 2020-02-24 22:06 未批改 批阅
全体 2017013657 李卓勋 新雅书院 CDIE7 2020-02-20 21:03 未批改 批阅
全体 2017013661 刘雨佳 新雅书院 CDIE7 2020-02-24 17:06 未批改 批阅
全体 2017013670 张皓烨 新雅书院 CDIE7 2020-02-21 17:09 未批改 批阅
全体 2017013672 孙兆晗 新雅书院 CDIE7 2020-02-24 17:22 未批改 批阅
全体 2017013677 郑智 新雅书院 CDIE7 2020-02-23 21:12 未批改 批阅
全体 2017013687 吴炳炎 新雅书院 CDIE7 2020-02-21 20:42 未批改 批阅
全体 2017013693 黄连聚 新雅书院 CDIE7 2020-02-24 20:44 未批改 批阅
02生成学生作业统计信息
1.统计作业的功能
在DOP文件中声明相应的作业所处的目录:
homeworkdir:
D:\Teaching\SignalsSystems\SS2020S\HOMEWORKA\XINYA
autodir:
D:\Teaching\SignalsSystems\SS2020S\HOMEWORKA\AUTO
通过调用hmwasub中的addhwtextfile相关命令,将所有提交的作业情况进行汇总。具体的过程参见下面的子程序。
处理过程中,在MESSAGE窗口显示如下的信息:
Total Students:11
2016012194 王伟帆 15 NULL [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
2017010684 刘一纯 15 NULL [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
2017011907 邓文静 15 NULL [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
2017013634 崔琢宜 13 [2][8] [1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1]
2017013657 李卓勋 15 NULL [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
2017013661 刘雨佳 15 NULL [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
2017013670 张皓烨 14 [13] [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1]
2017013672 孙兆晗 12 [3][5][10] [1, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1]
2017013677 郑智 15 NULL [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
2017013687 吴炳炎 15 NULL [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
2017013693 黄连聚 11 [11][12][13][15] [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0]
2.形成公众号可查询文件
通过对MESSAGE窗口显示文本增加查询说明,可以形成在公众号可查询文件。使用相应的查询命令:
下面是相关的查询文本样例:
信号与系统2020春季作业统计
学号:$1
姓名:$2
作业提交次数:$3
缺少作业:$4
--------------------------------------
Total Students:174
2014011587 黄卓 13 [7][15] [1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0]
2015011437 薛盛元 15 NULL [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
2016011434 张翔峰 13 [12][13] [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1]
2016012223 潘咭翔 15 NULL [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
2017010462 左天宇 15 NULL [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
2017010527 刘泽源 15 NULL [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
2017010749 劳天成 15 NULL [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
2017010864 倪赞林 15 NULL [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
2017011595 陈梦醒 13 [2][13] [1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1]
2017011653 李炜 14 [7] [1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1]
2017011939 李晟永 15 NULL [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
2017012018 陈惠来 15 NULL [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
2017012359 张一帆 14 [9] [1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1]
2017012375 刘书昕 15 NULL [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
新雅学院信号与系统课程
学号:$1
姓名:$2
试卷分数:$10
作业情况:$11
课程情况:$15
预估总分:$16
备注:预估总分=试卷分数*0.7+作业*1.5/1.3+课程*0.15/1.2
-----------------------------------------------
2015011180 张晨宇 10.5 8 17 11 17 5 9 77.5 10 58 39 4 101 78.41
2016013297 于港 8 8 15 9 20 5 7 72 9 57 38 3 98 73.03
2016013298 沈习远 13 10 20 15 25 5 8 96 13 65 51 4 120 97.20
2016013305 邓佳怡 10.5 9 17 12 20 4 2 74.5 13 64 50 4 118 81.90
2016013308 徐一支 10.5 10 14 12 20 5 10 81.5 12 64 43 3 110 84.65
2016013312 于天宇 13 8 19 14 25 5 10 94 13 63 53 4 120 95.80
2016013320 王依晨 6.5 6 15 15 17 3 8 70.5 9 65 44 4 113 73.86
2016013327 项雨桐 11.5 9 17.5 15 20 5 10 88 13 61 46 1 108 90.10
2016013334 王振飞 14 10 14 15 25 5 10 93 13 65 58 4 127 95.98
2016013335 张迟 10.5 7 15 13 24 5 8 82.5 13 66 45 4 115 87.13
2016013342 朱宇轩 14 10 19 15 21 5 8 92 13 51 48 12 111 93.28
2016013346 於汀 11 7 17 12 21 5 9 82 13 65 53 4 122 87.65
2016013339 郑雅文 10.5 10 18 13 22 5 8 86.5 11 65 49 4 118 87.99
3.处理作业的相关子程序
#!/usr/local/bin/python
# -*- coding: gbk -*-
#============================================================
# ALLSTUDENT.PY -- by Dr. ZhuoQing 2020-06-03
#
# Note:
# Get all the students name and ID from the text file.
#
#============================================================
from headm import *
import hmwasub
#------------------------------------------------------------
hmdir = tspstring2text('autodir')
hmfile = [os.path.join(hmdir, f) for f in os.listdir(hmdir) if f.find('.txt') >= 0]
#printf(hmfile)
for f in hmfile:
hmwasub.addhwtextfile(f)
tspmsgcopy()
hmwasub.savealldata('autostatistic')
printf("\a")
#------------------------------------------------------------
# END OF FILE : ALLSTUDENT.PY
#============================================================
#!/usr/local/bin/python
# -*- coding: gbk -*-
#============================================================
# HMWASUB.PY -- by Dr. ZhuoQing 2020-06-03
#
# Note:
#============================================================
from headm import *
#------------------------------------------------------------
idall = []
nameall = []
hwall = []
#------------------------------------------------------------
def addidhw(id, name):
global idall, nameall, hwall
if idall.count(id) > 0:
index = idall.index(id)
hwall[index][-1] = 1
else:
idall.append(id)
nameall.append(name)
newhw = []
if len(hwall) > 0:
for i in range(len(hwall[0]) - 1):
newhw.append(0)
newhw.append(1)
hwall.append(newhw)
#------------------------------------------------------------
def addidhwall0():
global hwall
for hw in hwall:
hw.append(0)
def nohomeworkstring(hwma):
str = ''
for id,h in enumerate(hwma):
if h == 0:
str = str + '[%d]'%(id+1)
if len(str) == 0: str='NULL'
return str
#------------------------------------------------------------
def savealldata(filename):
global idall, nameall, hwall
tspsave(filename, id=idall, name=nameall, hw=hwall)
printf('Total Students:%d'%len(idall))
totalwork = len(hwall[0])
for i, id in enumerate(idall):
nostr = nohomeworkstring(hwall[i])
printf('%s %s %d %s %s'%(id, nameall[i], sum(hwall[i]), nostr, str(hwall[i])))
#------------------------------------------------------------
def addhwtextfile(filename):
with open(filename, 'r', encoding='gbk' ) as f:
addidhwall0()
for l in (f.readlines()):
l.rstrip('\n')
ls = l.split()
if ls[0] != '全体':
continue
addidhw(ls[1], ls[2])
#------------------------------------------------------------
# END OF FILE : HMWASUB.PY
#============================================================