编写一个程序进行一个班某门课程成绩的录入,能够控制录入成绩总人数,对录入成绩统计其及格人数和不及格人数。设计一个异常类,当输入的成绩小0分或大于100分时,抛出该异常类对象,程序将捕捉这个异常对象,并调用执行该异常类对象的toString()方法,该方法获取当前无效分数值,并返回一个此分数无效的字符串。 输入格式: 从键盘中输入学生人数n 从键盘中输入第1个学生的成绩 从键盘中输入第2个学生的成绩 ... 从键盘中输入第n个学生的成绩 (注:当输入的成绩无效时(即分数为小于0或大于100)可重新输入,且输出端会输出此分数无效的提醒。)
时间: 2024-01-24 15:17:33 浏览: 18
以下是Python的实现代码:
```python
class InvalidScoreException(Exception):
def __init__(self, score):
self.score = score
def __str__(self):
return f"Invalid score: {self.score}"
def input_scores():
n = int(input("Enter the number of students: "))
passed = 0
failed = 0
for i in range(n):
while True:
try:
score = int(input(f"Enter the score of student {i + 1}: "))
if score < 0 or score > 100:
raise InvalidScoreException(score)
break
except ValueError:
print("Invalid input. Please enter an integer.")
except InvalidScoreException as e:
print(e)
if score >= 60:
passed += 1
else:
failed += 1
print(f"Passed: {passed}, Failed: {failed}")
if __name__ == "__main__":
input_scores()
```
运行程序后,会提示输入学生人数n,然后依次输入每个学生的成绩。如果输入的成绩无效,会重新提示输入,并输出异常信息。最后,程序会输出及格和不及格人数的统计结果。