信号与系统2022春季学期作业统计处理

简 介: 本文给出了作业信息处理过程一个相应的处理小程序。

关键词 信号与系统作业信息统计

作业统计
目 录
Contents
作业原始资料
处理过程
总 结
处理程序

§01 业统计


  是2022年信号与系统春季学期学生提交作业统一处理。对于 同一学期 CDIE 学生作业处理工作已经在 信号与系统 2022s 作业统计处理 - CDIE 进行完毕。这里是针对 AUTO 大班学生作业处理情况。

一、作业原始资料

  作业原始资料来自于助教在(2022-06-16)提交的所有同学作业批改EXCEL表格。数据文件如下。(解开该文件请参见: 将数据存储在博文中的图片中

1、EXCEL文件格式

  助教提交的作业统计文件包括有14个Sheet, 分别命名为 week1 - week14。 表单包括五栏,分别是:学号、姓名、必做题、选做题、实验题。

▲ 图1.1.1 EXCEL 作业统计文件格式

▲ 图1.1.1 EXCEL 作业统计文件格式

2、作业处理

(1)处理目标

  将所有的作业提交情况按照以下格式生成 TEXT 文件,便于学生能够通过公众号查询。每个学生信息占一行,每行的格式如下:

  • 学号 姓名 必做题 选做题 实验题

  其中的必做题、选做题、实验题的文字格式如下:

1 -10,2-9,3-10,....,14-10

  每次作业之间通过逗号(‘,’),前面是作业次数,右面是作业得分。

(2)作业处理流程

  为了使用Python处理作业信息, 分成以下两步完成作业处理:

  • 第一步: 将EXCEL表中的表单信息另存为14个TEXT文件;
  • 第二步: 通过程序读取所有 TEXT文件信息,将其合并在alldata.npz数据文件中;
  • 第三步: 根据输出要求,生成TEXT文件。

二、处理过程

1、信息合并

  将所有 text 中的信息合并成数据文件:hmall.npz。

HMALL数据结构:
id:序号
name:姓名
hmall:必做题
selall:选做题
expall:实验题

2、信息统计

(1)必做题得分统计

Average:9.180396
Std:1.734996

▲ 图1.2.1 必做题得分统计

▲ 图1.2.1 必做题得分统计

(2)选做题得分统计

Average:1.519812
Std:2.239650

▲ 图1.2.2 选做题统计情况

▲ 图1.2.2 选做题统计情况

(3)实验题得分统计

Average:0.562044
Std:1.503579

▲ 图1.2.3 实验题得分统计

▲ 图1.2.3 实验题得分统计

三、信息公布查询抬头

信号与系统2022作业统计

学号:$1
姓名:$2
必做题总分:$3
选做题总分:$4
实验题总分:$5

必做题:%6

作业中的选做和实验总分将会与小论文
一起进行附加分的计算。

如果对于作业统计信息有疑问,请通过
EMAIL与助教联系:

吕康晨 lkc21@mails.tsinghua.edu.cn

 结 ※


  文给出了作业信息处理过程一个相应的处理小程序。

一、处理程序

▲ 图2.1 作业处理界面

▲ 图2.1 作业处理界面

1、作业信息预处理

from headm import *

textdir = tspstring2text('textdir')
filedim = os.listdir(textdir)

iddim = []
namedim = []
fname = os.path.join(textdir, filedim[0])
with open(fname, 'r') as f:
    for l in f.readlines():
        l = l.strip('\n').split('\t')
        if l[0] == '学号':
            continue

        iddim.append(l[0])
        namedim.append(l[1])

hmwall = [[] for _ in range(len(iddim))]
selall = [[] for _ in range(len(iddim))]
expall = [[] for _ in range(len(iddim))]

def str2number(s):
    if len(s) == 0: return 0
    return int(float(s))

for f in filedim:
    fname = os.path.join(textdir, f)
    with open(fname, 'r') as f:
        for l in f.readlines():
            l = l.strip('\n').split('\t')

            if l[0] == '学号': continue
            idindex = iddim.index(l[0])

            hmwall[idindex].append(str2number(l[2]))
            selall[idindex].append(str2number(l[3]))
            expall[idindex].append(str2number(l[4]))

tspsave('hmall', id=iddim,name=namedim, hm=hmwall, sel=selall, exp=expall)

printf(hmwall)

2、作业信息统计

#!/usr/local/bin/python
# -*- coding: gbk -*-
#============================================================
# STATICS.PY                   -- by Dr. ZhuoQing 2022-06-18
#
# Note:
#============================================================

from headm import *

id, name, hm, sel, exp = tspload('hmall', 'id', 'name', 'hm', 'sel', 'exp')

hm.resize(size(hm))
sel.resize(size(sel))
exp.resize(size(exp))

hm=exp
printf('Average:%f'%average(hm), 'Std:%f'%std(hm))

plt.hist(hm)

plt.xlabel("Value")
plt.ylabel("Frequency")
plt.grid(True)
plt.tight_layout()
plt.show()





#------------------------------------------------------------
#        END OF FILE : STATICS.PY
#============================================================

3、查询信息生成

#!/usr/local/bin/python
# -*- coding: gbk -*-
#============================================================
# GENERATE.PY                  -- by Dr. ZhuoQing 2022-06-18
#
# Note:
#============================================================

from headm import *

id, name, hm, sel, exp = tspload('hmall', 'id', 'name', 'hm', 'sel', 'exp')

outfile = r'd:\temp\hwauto.txt'

def dim2str(dim):
    rets = ''
    for id,num in enumerate(dim):
        rets = rets + '%d-%d,'%(id+1,num)

    return rets

with open(outfile, 'w') as f:

    for i in range(len(id)):
        ids = id[i]
        names = name[i]
        hws = dim2str(hm[i])
        sels = dim2str(sel[i])
        exps = dim2str(exp[i])

        hwn = sum(hm[i])
        seln = sum(sel[i])
        expn = sum(exp[i])

        print('%s %s %d %d %d %s %s %s'%(ids, names, hwn, seln, expn, hws, sels, exps), file=f)

#        break


printf('\a')


#------------------------------------------------------------
#        END OF FILE : GENERATE.PY
#============================================================


■ 相关文献链接:

● 相关图表链接:

猜你喜欢

转载自blog.csdn.net/zhuoqingjoking97298/article/details/125344026