输入某个班某门课程成绩,统计及格人数、不及格人数及课程平均分。设计一个异常类,当输入的成绩小于0或者大于100时抛出异常,程序将捕获这个异常,并作出相应处理。
时间: 2023-06-13 12:06:56 浏览: 453
以下是一个使用Python实现的代码,可以实现输入某个班某门课程成绩,统计及格人数、不及格人数及课程平均分,并且捕获输入成绩的异常:
```python
class ScoreError(Exception):
pass
class Score:
def __init__(self, scores):
self.scores = scores
def count(self):
passed = 0
failed = 0
total = 0
for score in self.scores:
if score < 0 or score > 100:
raise ScoreError("Invalid score: {}".format(score))
if score >= 60:
passed += 1
else:
failed += 1
total += score
average = total / len(self.scores)
return passed, failed, average
scores = []
n = int(input("请输入考试人数:"))
for i in range(n):
score = int(input("请输入第{}个学生的成绩:".format(i+1)))
scores.append(score)
try:
score = Score(scores)
passed, failed, average = score.count()
print("及格人数:{},不及格人数:{},平均分:{}".format(passed, failed, average))
except ScoreError as e:
print("输入成绩异常:{}".format(e))
```
这段代码中,我们定义了一个异常类`ScoreError`,用于表示输入成绩异常的情况。在`Score`类中,我们定义了一个`count`方法,用于统计及格人数、不及格人数及课程平均分。在`count`方法中,我们遍历成绩列表,如果成绩小于0或者大于100,就会抛出`ScoreError`异常;否则,我们会统计及格人数、不及格人数和总分数,并最终计算平均分。在主程序中,我们先输入考试人数和每个学生的成绩,并将成绩存储在一个列表中;然后,我们创建一个`Score`对象,并调用`count`方法来统计成绩。如果输入成绩异常,我们会捕获这个异常,并输出异常信息。
阅读全文