|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- import pandas as pd
- import numpy as np
- import matplotlib.pyplot as plt
- # 定义学生类
- class Student:
- def __init__(self, name, scores):
- self.name = name
- self.scores = scores
- def get_avg_score(self):
- return np.mean(self.scores)
- # 定义成绩单类
- class Gradebook:
- def __init__(self, students):
- self.students = students
- # 获取平均分数列表
- def get_avg_scores(self):
- return [student.get_avg_score() for student in self.students]
- # 绘制成绩分布直方图
- def plot_histogram(self):
- plt.hist(self.get_avg_scores(), bins=np.arange(0, 101, 10))
- plt.xlabel('Score')
- plt.ylabel('Number of students')
- plt.title('Distribution of student scores')
- plt.show()
- # 导出成绩报告
- def export_report(self, filename):
- data = {'name': [student.name for student in self.students],
- 'scores': [student.scores for student in self.students],
- 'avg_score': self.get_avg_scores()}
- df = pd.DataFrame(data)
- df.to_csv(filename, index=False)
- # 创建学生对象
- student1 = Student('小明', [80, 90, 85])
- student2 = Student('小红', [90, 95, 92])
- student3 = Student('小张', [85, 88, 90])
- # 创建成绩单对象并添加学生
- gradebook = Gradebook([student1, student2, student3])
- # 绘制成绩分布直方图
- gradebook.plot_histogram()
- # 导出成绩报告
- gradebook.export_report('report.csv')
复制代码
|
评分
-
查看全部评分
|