Python程序设计课程设计:学生的成绩处理

一、问题描述

数学专业2021级4个班120名同学的C语言程序设计课程的成绩存放在成绩表.csv文件中,成绩分为平时成绩和期末成绩两列,最终成绩为:平时成绩*0.2+期末成绩*0.8,现编程处理成绩,得到最终成绩相应信息。

二、问题要求

1.现已知成绩分为平时成绩和期末成绩两列,最终成绩为:平时成绩*0.2+期末成绩*0.8,利用已知条件和编程语言给出数学专业2021级4个班所有学生的最终C语言成绩。

2.求出4个班学生成绩的平均值,最高分,最低分,中位数及标准差。

3.统计每个分数阶段的人数占比 [A率(优秀),B率(良好),C率(中等),D率(及格),E率(不及格)]。并将所有成绩由高到低排序,并绘制成绩分布图,并将结果输出到out.txt文件中。

三、算法思想

1.基本统计值计算

一组数据表示为S=s_{0},s_{1}......s_{n-1},其算术平均值、标准差分别表示如下:

算术平均值                                           m=\frac{\sum_{i=0}^{n-1} s_{i}}{n}                

标准差   

中位数是指S中所有数按照从小到大/从大到小的顺序排列后,处于最中间位置的数据值。如果n是奇数,则序列S的最中间的一个位置是一个数据,可以表示为S\tfrac{n}{2} \left ( n=0,1,2..... \right ) ;如果n为偶数,序列S不存在一个最中间的位置,则中位数可以表示成最中间两个位置数据的平均值,即

S\tfrac{n-1}{2}+S\tfrac{n}{2},这个问题的IPO描述如下:

输入:从用户输入、文件、网格等途径获取一组数据

处理:适当的数据结构和算法

输出:平均值,标准差和中位数

2.Matplotlib作图

Matplotlib是Python中最基本的作图库,是一个最基础的Python可视化库,一般都是从 Matplotlib上手的Python数据可视化,然后开始做纵向与横向拓展。根据Matplotlib图像的四层图像结构,pyplot模块绘制图形基本都遵循一个流程,用这个流程可以完成大部分图形的绘制。步骤如下:

第一步,导入模块。绘图之前,需要先导入包含相应函数的模块,对于pyplot模块,一般使用如下风格导入

import numpy as np

import matplotlib.pylot as plt

第二步,创建画布与创建子图。第一部分主要是构建出一张空白的画布,如果需要同时展示几个图形,可以将画布划分为多个部分。然后使用对象方法来完成其余的工作,示例如下:

pic=plt.figure(figsize=(8,7),dpi=80)  #创建画布,尺寸为8*7,像素值为80

axl=pic.add_subplot(2,1,1)    #划分为2*1的图形阵,选择第一张图片

第三步,添加画布内容。第二部分是绘图的主体部分,添加标题,坐标轴名称等步骤与绘制图形是并列的,没有先后顺序,但是添加图例一定要在绘制图形之后。

第四步,图形保存与展示

3.Pandas处理数据

Pandas是一款开放源码的BSD许可的Python库。它提供了众多类,可满足不同的使用需求,其中常用的类如表所示。

表1 pandas常用的类

说明

Series

基本数据结构,一维标签数组,能够保存任何数据类型

DataFrame

基本数据结构,一般为二维数组,是一组有序的列

Index

索引对象,负责管理轴标签和其他元数据

groupby

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码农区

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值