设计一个Group类,该类包括:若干个数据成员,成员方法sum()用于累计总分,成员方法average()用于求平均值。交互式输入某组3名学生的三科成绩,显示各自的总分和平均分。
时间: 2024-11-29 21:38:45 浏览: 17
设计一个名为`Group`的类,我们可以按照以下步骤来实现:
```python
class Group:
def __init__(self):
self.students = {} # 使用字典存储学生及其成绩
def add_student(self, name, scores):
"""
添加学生及其成绩
:param name: 学生姓名
:param scores: 一个包含三科成绩的列表或元组
"""
if not isinstance(scores, (list, tuple)) or len(scores) != 3:
raise ValueError("学生需要提供包含三科成绩的数据")
self.students[name] = scores
def sum_scores(self, student_name):
"""
计算指定学生的所有成绩之和
:param student_name: 学生姓名
:return: 总分
"""
return sum(self.students.get(student_name, [0, 0, 0]))
def average_scores(self, student_name):
"""
计算指定学生的成绩平均值
:param student_name: 学生姓名
:return: 平均分
"""
total = self.sum_scores(student_name)
try:
return total / 3.0
except ZeroDivisionError:
return 0 # 如果没有成绩,返回0作为默认值
def display_results(self, student_name):
"""
显示指定学生的总分和平均分
:param student_name: 学生姓名
"""
total = self.sum_scores(student_name)
avg = self.average_scores(student_name)
print(f"{student_name}的总分为:{total}, 平均为:{avg}")
# 示例使用
group = Group()
group.add_student("张三", [90, 85, 95])
group.add_student("李四", [80, 75, 85])
group.add_student("王五", [70, 60, 75])
group.display_results("张三")
group.display_results("李四")
group.display_results("王五")
```
阅读全文