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
#============================================================