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