设计 3 个类 , 分别是学生类 Student, 本科生类 Undergaduate, 研究生类 Postgraduate。 其中 Student 类是一个抽象类 , 它包含一些基本的学生信息如姓名、所学课程、课程成绩等 , 而 Undergraduate 类和 Postgraduate 都是 Student 类的子类 , 它们之间的主要差别是计算课程成绩等级的方法有所不同 , 研究生的标准要比本科生的标准高一些 , 如下表所示: 本科生标准 研究生标准 80-100 优秀 90-100 优秀 70-80 良好 80-90 良好 60-70 一般 70-80 一般 50-60 及格 60-70 及格 50以下 不及格 60以下 不及格 假设某班级里既有本科生也有研究生 , 请编写程序统计出全班学生的成绩等级并显示出来。 本题需要补充本科生的成绩等级计算方法。
时间: 2024-02-20 22:57:55 浏览: 139
下面是三个类的代码实现:
```python
# 定义一个学生类,是一个抽象类
class Student:
def __init__(self, name, course, score):
self.name = name
self.course = course
self.score = score
# 抽象方法,需要在子类中实现
def calculate_score_level(self):
pass
# 定义一个本科生类,继承自学生类
class Undergraduate(Student):
def calculate_score_level(self):
if self.score >= 80:
return "优秀"
elif self.score >= 70:
return "良好"
elif self.score >= 60:
return "一般"
elif self.score >= 50:
return "及格"
else:
return "不及格"
# 定义一个研究生类,继承自学生类
class Postgraduate(Student):
def calculate_score_level(self):
if self.score >= 90:
return "优秀"
elif self.score >= 80:
return "良好"
elif self.score >= 70:
return "一般"
elif self.score >= 60:
return "及格"
else:
return "不及格"
```
接下来是程序的主体部分,用于统计全班学生的成绩等级并显示出来:
```python
students = [] # 存储所有的学生对象
# 添加本科生对象
students.append(Undergraduate("张三", "英语", 85))
students.append(Undergraduate("李四", "数学", 75))
students.append(Undergraduate("王五", "计算机科学", 65))
# 添加研究生对象
students.append(Postgraduate("赵六", "物理", 92))
students.append(Postgraduate("钱七", "化学", 85))
students.append(Postgraduate("孙八", "生物", 72))
# 遍历所有学生对象,计算成绩等级并输出
for student in students:
score_level = student.calculate_score_level()
print("{}的{}课程成绩为{},成绩等级为{}".format(student.name, student.course, student.score, score_level))
```
输出结果如下:
```
张三的英语课程成绩为85,成绩等级为优秀
李四的数学课程成绩为75,成绩等级为良好
王五的计算机科学课程成绩为65,成绩等级为一般
赵六的物理课程成绩为92,成绩等级为优秀
钱七的化学课程成绩为85,成绩等级为良好
孙八的生物课程成绩为72,成绩等级为一般
```
阅读全文