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

举报
tsinghuazhuoqing 发表于 2022/06/21 23:06:43 2022/06/21
【摘要】 简 介: 本文给出了作业信息处理过程一个相应的处理小程序。 关键词: 信号与系统,作业,信息统计 ...

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

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

作业统计
目 录
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.2.1 必做题得分统计

▲ 图1.2.1 必做题得分统计

(2)选做题得分统计

Average:1.519812
Std:2.239650

  
 
  • 1
  • 2

▲ 图1.2.2 选做题统计情况

▲ 图1.2.2 选做题统计情况

(3)实验题得分统计

Average:0.562044
Std:1.503579

  
 
  • 1
  • 2

▲ 图1.2.3 实验题得分统计

▲ 图1.2.3 实验题得分统计

三、信息公布查询抬头

信号与系统2022作业统计

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

必做题:%6

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

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

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

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

 

 结 ※


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

一、处理程序

▲ 图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)

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41

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

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34

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

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45


■ 相关文献链接:

● 相关图表链接:

文章来源: zhuoqing.blog.csdn.net,作者:卓晴,版权归原作者所有,如需转载,请联系作者。

原文链接:zhuoqing.blog.csdn.net/article/details/125344026

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。