您好,欢迎来到测品娱乐。
搜索
您的当前位置:首页基于Python的学生综合成绩分析程序设计

基于Python的学生综合成绩分析程序设计

来源:测品娱乐
2019年第11期

信息与电脑China Computer & Communication软件开发与应用

基于Python的学生综合成绩分析程序设计

王 媛

(福建省邮电学校,福建 福州 350008)

摘 要:学生成绩是体现学生学习能力水平的重要数据之一。如何从各学期、各科目的大量学生成绩中快速准确读取分析学生的综合能力,成为学校各项工作的重要数据支持。通过使用Python语言提供的库,设计了一个读取学生指定科目成绩,并处理读取到的成绩,最终以雷达图展示的程序,为学校能够更加准确评价学生,选拔技能人才,因材施教,提供了直观的数据依据。

关键词:Python语言;库;雷达图

中图分类号:TP311.52  文献标识码:A  文章编号:1003-9767(2019)11-099-03

Design of Student Comprehensive Grade Analysis Program

Based on Python

Wang Yuan

Abstract: Student achievement is one of the important data reflecting the level of students'learning ability. How to quickly and

(Fujian Province Post and Telecommunications School, Fuzhou Fujian 350008, China)

accurately read and analyze the comprehensive ability of students from the scores of a large number of students in each semester

and subject has become an important data support for school work. By using the library provided by Python language, a program is which provides an intuitive data basis for schools to evaluate students more accurately, select skilled talents and teach students in accordance with their aptitude.

Key words: Python; library; radar map

行的对象信息以二进制的形式保存到文件中,反序列化操作能够从储存的文件中读取还原上一次序列化操作保存的程序对象。本文使用Pickle库实现学生指定科目成绩的数据读取 和存储。

Numpy库是Python语言用于实现科学计算的类库。它为Python语言提供了许多数值编辑工具和精密的运算库[4],专门为严格的数字科学计算而产生。本文使用Numpy库提供的二维数组对象,存储和处理学生各科目成绩。

Matplotlib库是一个2D图形库,能够为多个平台提供界面可以交互的2D图形[5],如圆形图、函数曲线图等。本文使用Matplotlib库绘制雷达图,并使用Pyplot模块根据学生各科目的实际成绩绘制曲线。

designed to read the students'assigned subject scores and process the read results. Finally, the program is displayed by radar chart,

0 引言

随着信息技术的飞速发展,互联网早已进入了大数据时代。对学校来说,教师、学生和家长最关心的数据是学生的成绩,如何从海量学生成绩中快速准确挖掘有用信息,成为学校各项工作中非常重要的一环。Python是目前最热门的编程语言[1],使用Python语言设计一个可以展示学生综合成绩分析的程序至关重要。

1 Python语言及库

Python语言是一种面向对象的动态类型编程语言[2]。其具有简洁性、易读性以及可扩展性,深受编程人员喜爱,特别适用于数据挖掘类应用程序的开发设计。本文程序使用了Pickle库、Numpy库以及Matplotlib库。

Pickle库是Python语言中自带的标准库,主要用于实现数据的序列化和反序列化[3]。序列化操作能够将程序中运

2 程序设计

本文使用Python语言设计的学生综合成绩分析程序主要

作者简介:王媛(1983—),女,吉林抚松人,本科,讲师。研究方向:计算机技术。

— 99 —

软件开发与应用

信息与电脑China Computer & Communication2019年第11期

包含三个模块,分别是读取数据模块、处理数据模块和绘制图形模块。2.1 读取数据模块

随着信息化技术的发展,大多数学校学生的成绩管理都实现了数字化管理。以网页形式存储的学生成绩原始表单不仅有一些多余的空格和回车,而且有综合成绩分析不需要的列,需要在读取数据时去掉空格和多余列,整理科目名并读取学生成绩。具体代码如下:

text = text.replace(\" \

result = re.findall(r'table-advance\"border=\"1\">.*?',text)[0]

major_text = re.findall(r'.*?',result)major_text = major_text[3:-2]

major = [name[4:-5] for name in major_text]result = re.findall(r'.*?',result)[0]students = re.findall('.*?',result)2.2 处理数据模块

读取学生姓名和各学科成绩后,要通过Pickle库进行序列化操作,将学生各科目的成绩按照建立日期的先后顺序,通过重载类的加法方法以叠加两个类的学期成绩,为后续进行科目选取和数据分析提供有效数据。具体代码如下:

class Student: name = '' semester = []

def __init__(self,name): self.name = name def __add__(self,other):

self.semester += other.semester return selffor student in students:

new_studnet = student_data(student,className) if not(new_studnet.name in Students): Students[new_studnet.name] = new_studnet else:

Students[new_studnet.name] = Students[new_studnet.name] + new_studnet2.3 图形绘制模块

数据读取和基本处理后,为了直观展现学生成绩,本文通过Numpy库重新建立了二维表数据,并使用该二维表数据通过Matplotlib库借助二维图形显示。依据多元化智能理论,学生的综合能力体现在各个方面。因此,在众多二维图

形中选取了雷达图配合多点曲线显示。极坐标格式下,绘制一个封闭的雷达图,设置雷达图的角度,用于平分切开一个圆面,每科成绩占一条线,表示从0分到100分。根据学生各学科的成绩,在每条线上绘出红点,再绘制曲线,并将全部红点连接形成闭合曲面。具体绘图代码如下:

fig=plt.figure()N = len(student.values)

angles=np.linspace(0, 2*np.pi, N, endpoint=False)values=np.concatenate((student.values,[student.values[0]]))

angles=np.concatenate((angles,[angles[0]])) ax = fig.add_subplot(111, polar=True)ax.plot(angles, values, 'o-', linewidth=2)ax.fill(angles, values, alpha=0.25)

ax.set_thetagrids(angles * 180/np.pi, student.class_name)ax.set_ylim(0,100) plt.title(student.name)2.4 分析结果模块

本文以笔者所在学校17级网络班学生的成绩为例,选取了12门课的成绩作为学生综合成绩分析的代表科目,执行程序后,得到每位学生的综合成绩分析雷达图谱,如图1所示。

根据雷达图谱所示,底层灰色使用一个全100的圆形作为参考背景,红色圆点表示学生各科目的成绩,用红色线依次连接红点,闭合曲线围成的红色区域就是学生的综合能力。红色曲线面积越大,说明学生综合能力越强,曲线越靠近灰色边缘,说明学生这方面的能力越强。因此,根据每位学生成绩分析的雷达图谱,不仅可以直观看到每位学生的综合能力,而且可以看到每位学生的长处和短板,为学校开展各项工作提供重要的数据支持。

3 结 语

当今信息化时代,充分利用数字化大数据很有必要。本文通过Python语言设计了一个直观展示学生综合成绩分析的程序,为学校选拔人才、推荐就业、因材施教等工作的开展提供了便利。

参考文献

[1]李琳.基于Python的网络爬虫系统的设计与实现[J].信息通信,2017(9):26-27.

[2]王弘博,孙传庆.Python3程序开发指南[M].第2版.北京:人民邮电出版社,2011:46.

— 100 —

2019年第11期

信息与电脑China Computer & Communication软件开发与应用

陈窗雨体育与健康

陈财体育与健康

中国传统文化

美术基础

中国传统文化

美术基础

养成教育/安全教育

20

职业生涯规划

入学教育与军训(周时)

100806040

计算机网络基础

养成教育/安全教育

入学教育与军训

(周时)100806040

职业生涯规划

20

计算机网络基础

计算机组装与维护实训

计算机基础

计算机组装与维护实训

计算机基础

平面设计

数学杜荣辉体育与健康

中国传统文化

英语

平面设计

数学

英语

郭芷妍体育与健康

美术基础

中国传统文化

美术基础

养成教育/安全教育

20

职业生涯规划

入学教育与军训(周时)

100806040

养成教育/安全教育

入学教育与军训(周时)

80

100

计算机网络基础

20

职业生涯规划

40

60

计算机网络基础

计算机组装与维护实训

计算机基础

计算机组装与维护实训

计算机基础

平面设计

数学

英语

平面设计

数学

英语

图1 学生综合成绩分析雷达图谱

[3]嵩天,黄天羽,礼欣.Python语言:程序设计课程教学改革的理想选择[J].中国大学教学,2016(2):42-47.

[4]刘春茂,裴雨龙.Python程序设计案例课堂[M].北京:

清华大学出版社,2017:135.

[5]谢克武.大数据环境下基于Python的网络爬虫技术[J].软件开发,2017(9):44-45.

(上接第98页)2.4 系统实现

以某软件开发企业为例,该企业拥有员工百余人,利用Java进行软件开发,以Tomcat作为中间服务器,并利用多种功能模块处理数据。传统的DevOps系统中,集成流程为本地环境下利用Java开发新功能,测试完毕后下线,开始测试其他环节,该测试部署服务器中提交的代码无法顺利应用,一点就出错。由于受到多种因素,导致整个处理工作难度较高、效率较低。与此相比,Docker平台的DevOps系统能够有效克服上述问题。在整个项目中设立一个构架师,研发、测试、运维人员的工作进度直接上报构架师,一旦发现

异常问题,可及时调整,工作效率显著提升。

3 结 语

本系统能够在Docker平台的基础上克服以往系统问题,优化工作流程,极大提升工作效率。

参考文献

[1]凌云.基于Docker平台的DevOps运维系统的研究与改进[J].电脑知识与技术,2018,14(26):215-217.

[2]丁海斌,崔隽,陆凯.基于Docker的DevOps系统设计与实现[J].指挥信息系统与技术,2017,8(3):87-92.

— 101 —

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- cepb.cn 版权所有 湘ICP备2022005869号-7

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务