编写一个程序进行一个班某门课程成绩的录入,能够控制录入成绩总人数,对录入成绩统计其及格人数和不及格人数。设计一个异常类,当输入的成绩小0分或大于100分时,抛出该异常类对象,程序将捕捉这个异常对象,并调用执行该异常类对象的toString()方法,该方法获取当前无效分数值,并返回一个此分数无效的字符串。
时间: 2024-03-25 15:40:23 浏览: 13
好的,以下是Python代码示例实现:
```python
class InvalidScoreException(Exception):
def __init__(self, score):
self.score = score
def __str__(self):
return f"无效分数:{self.score}"
def input_scores():
n = int(input("请输入成绩总人数:"))
scores = []
pass_count = 0
for i in range(n):
try:
score = float(input(f"请输入第{i+1}个学生的成绩:"))
if score < 0 or score > 100:
raise InvalidScoreException(score)
scores.append(score)
if score >= 60:
pass_count += 1
except ValueError:
print("输入无效,请输入数字!")
except InvalidScoreException as e:
print(e)
fail_count = n - pass_count
print(f"及格人数:{pass_count},不及格人数:{fail_count}")
if __name__ == '__main__':
input_scores()
```
程序中定义了一个名为InvalidScoreException的异常类,用于表示输入无效分数的情况。在输入成绩时,如果输入的分数小于0或大于100,则抛出该异常类对象,并在程序中进行捕获和处理。
程序通过一个循环来依次输入每个学生的成绩,如果输入的是无效的数字,则会捕获ValueError异常,并提示用户重新输入。否则,如果输入的分数小于0或大于100,则会抛出InvalidScoreException异常,并提示用户输入无效。如果输入的分数有效,则将其添加到scores列表中,并统计及格人数。
最后输出及格人数和不及格人数。