2020春季學期作業提交統計處理

 

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
#============================================================
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章