定义一个 Student 类,在该类定义中包括一个数据成员 score(分 数)、两个静态数据成员 total(总分)和学生人数 count;成员函 数 scoretotalcount(float s)用于设置分数、求总分和累计学生人数; 静态成员函数 sum()用于返回总分;静态成员函数 average() 用于求平均值。在 main()函数中,输入某班同学的成绩,并调用 上述函数求全班学生的总分和平均分。
时间: 2024-01-08 08:03:17 浏览: 117
以下是一个简单的实现:
```python
class Student:
total = 0
count = 0
def __init__(self):
self.score = 0
def scoretotalcount(self, s):
self.score = s
Student.total += s
Student.count += 1
@staticmethod
def sum():
return Student.total
@staticmethod
def average():
return Student.total / Student.count
if __name__ == '__main__':
students = []
while True:
s = input("请输入学生的成绩:")
if s == 'exit':
break
try:
s = float(s)
if s < 0 or s > 100:
print("输入的成绩不合法,请重新输入")
else:
student = Student()
student.scoretotalcount(s)
students.append(student)
except ValueError:
print("输入的成绩不合法,请重新输入")
print("全班学生的总分为:", Student.sum())
print("全班学生的平均分为:", Student.average())
```
在这个例子中,我们首先定义了一个 `Student` 类,并声明了两个静态数据成员 `total` 和 `count`,分别表示全班学生的总分和学生人数。同时,我们还定义了一个成员函数 `scoretotalcount`,用于设置学生的分数、累计总分和学生人数。静态成员函数 `sum` 用于返回全班学生的总分,而静态成员函数 `average` 则用于计算全班学生的平均分。
在 `main` 函数中,我们先创建一个空的学生列表,然后通过循环依次输入每个学生的成绩。注意,我们在输入成绩时进行了一些简单的验证,确保输入的成绩在 0 到 100 之间。如果输入的成绩合法,我们就创建一个 `Student` 对象,并调用其 `scoretotalcount` 方法,将该学生的成绩加入到全班学生的总分中。最后,我们输出全班学生的总分和平均分。
阅读全文