成绩计算电脑程序的使用说明
为了计算成绩,特制作这个电脑程序,说明如下:
一、开发软件:Python
二、使用说明:
在电脑D盘根目录下建立两个excel文件,一个是1.xlsx,另一个是2.xlsx
其中,1.xlsx中,是学生成绩表,首行顺序不能变。
所在班级的意思,比如董庄一年级1班,可以编成dz101,一年级2班,可以编成dz102,大东平一年级1班,可以编成ddp101,以此类推。姓名列内容可以空着,但得有这一列。语文数学英语科学道法,顺序不能变,注意,一二年级不考英语,但是要填上0分。
2.xlsx中,是老师信息表,首行顺序也不能变。
班级编号和1.xlsx表是对应的,是相互联系的。老师信息表中的班级编号,表示一个班各个老师所在的班级,成绩表中的班级编号,表示这个班各个学生的成绩。
然后,把1.xlsx和2.xlsx保存在电脑D盘的根目录下,也就是在D:\。
接下来,双击运行exe文件,程序运行结束后,就会在D盘根目录下建立一个我们想要的文件,3.xls
最后,打开3.xls文件,用筛选功能,就可以得到想要的数据了。
附:设计思路。
这个程序的功能是为了得到各个老师的评价成绩、和其他同年级同科目老师相比的分差、名次,类别。所以,需要两个表,一个是学生成绩表,一个是老师信息表。学生成绩表是为了计算某班某科目的评价成绩。老师信息表,是通过班级编号,找到这个老师所教班级科目的评价成绩。然后复制到3.xls里。再通过相同年级相同科目,计算这个老师的名次、分差和类别。
1、计算评价成绩。
因为要去掉5%的学生,所以我用的是班级人数*95%后四舍五入的算法。就是通过1.xlsx表中的班级编号,得到这个班的某一科目的成绩,把成绩存到一个叫列表(数组)里,根据这个数组,就可以得到班级人数,再通过round(len(list_yw) * 0.95)得到这个班要计算成绩的学生的人数。得到人数后,把这个数组里的成绩从高分到低分排序。再通过for循环,计算去掉5%后的这个班级的这个科目的总分。然后就能计算平均分了。
优秀率是根据这个数组计算的。通过for循环,得到>=85分的学生人数,再除以上面得到的去掉5%后的学生人数,就得到优秀率了。及格率类似。语文数学英语是85分优秀,科学是51分优秀,道法是34分优秀。
评价得分就根据平均分、优秀率、及格率计算的,这里我都保留的是小数点后两位。语文数学英语是平均分*0.6+优秀率*20+及格率*20计算的。科学是按平均分*0.6+优秀率*12+及格率*12计算的,道法是按平均分*0.6+优秀率*8+及格率*8计算的。
得到各个班级各个科目的评价成绩后,就保存导出到3.xls里。
2、计算分差、名次、类别。
上面得到评价得分后,打开上面保存导出的3.xls。通过年级来筛选某一科目的评价得分,把得到的结果保存到一个数组里。这样就可以得到这个年级这个科目的评价得分的最高分。
得到最高分后,再次通过上面的表3.xls查询这个年级的各个老师的评价得分,用最高分减去这个老师的评价得分,得到的结果就是分差。语数英都是4分一个类别。<=4是1类,<=8是2类,以此类推,我弄到了10类,超过10类的都是11类。科学是3.6一类,道法是2.4一类。这样得到了这个老师的所教科目的分差和类别。< span="">
名次我是这样算的。把上面得到的这个年级的老师的这个科目的评价得分的数组,从大到小排序,再通过3.xlsx表查询到这个年级的这个老师的评价成绩和数组来对比,是第几个名次就是第几。
通过以上的操作,完成了耗费许多人工的成绩计算的工作,希望解放人力,让老师领导们能有更多的时间来做教育教学的事。能让电脑做的事都应该让电脑来做。
习锐2020年10月18日