创建一个Student类,包括姓名、ID 和成绩的属性。创建方法实现设置成绩。创建继承Student的子类,里面包含学生列表。它包括以下方法: get_average_grades:输出全班所有学生的平均成绩; find_student_grades:输入学生证并返回该学生的成绩; get_student_list:按降序输出学生的姓名和成绩。
时间: 2023-06-14 18:02:47 浏览: 188
设计一个学生类Student(学生学号、姓名、数学、英语、计算机成绩;)
5星 · 资源好评率100%
以下是Python实现:
```python
class Student:
def __init__(self, name, student_id):
self.name = name
self.student_id = student_id
self.grades = []
def set_grade(self, grade):
self.grades.append(grade)
class Class(Student):
student_list = []
def add_student(self, student):
self.student_list.append(student)
def get_average_grades(self):
total_grades = 0
total_students = len(self.student_list)
for student in self.student_list:
total_grades += sum(student.grades)
return total_grades / total_students
def find_student_grades(self, student_id):
for student in self.student_list:
if student.student_id == student_id:
return student.grades
def get_student_list(self):
sorted_list = sorted(self.student_list, key=lambda x: sum(x.grades), reverse=True)
for student in sorted_list:
print(f"{student.name}: {sum(student.grades)}")
```
使用方法:
```python
class1 = Class()
# 添加学生
student1 = Student("Alice", 1001)
student1.set_grade(90)
student1.set_grade(85)
class1.add_student(student1)
student2 = Student("Bob", 1002)
student2.set_grade(80)
student2.set_grade(75)
class1.add_student(student2)
# 输出全班平均成绩
print(class1.get_average_grades())
# 查找学生成绩
print(class1.find_student_grades(1001))
# 输出学生列表
class1.get_student_list()
```
阅读全文