面向小学 1-2 年级学生,随机选择两个整数加减法形成算式要求学生解答。要求至少具有如下功能: (1) 电脑随机出 10 道题,每题 10 分,程序结束时显示学生得分; (2) 确保算式没有超出 1-2 年级的水平,只允许进行 50 以内的加减法,不允许两数之和或两数之差超出 0~50 的范围,负数更是不允许的; (3) 每道题学生有三次机会输入答案,当学生输入错误答案时,提醒学生重新输入,如果三次机会结束则输出正确答案; (4) 对于每道题,学生第一次输入正确答案得 10 分,第二次输入正确答案得 7 分, 第三次输入正确答案得 5 分,否则不得分; (5) 总成绩 90 以上显示“SMART”, 80-90 显示“GOOD”, 70-80 显示“OK”, 60-70显示“PASS”,60 以下“TRY AGAIN”。
时间: 2024-03-13 09:45:54 浏览: 134
以下是一个 Python 实现的示例程序:
```python
import random
def generate_question():
"""生成一道随机的加减法算式"""
a = random.randint(1, 50)
b = random.randint(1, 50)
op = random.choice(['+', '-'])
if op == '+':
c = a + b
else:
c = a - b
return (a, op, b, c)
def check_answer(answer, correct):
"""检查学生输入的答案是否正确"""
if answer == correct:
return 10
elif answer == None:
return 0
else:
for i in range(2):
answer = input("Wrong answer, please try again: ")
if answer == correct:
return 7 - i * 2
print("Correct answer is:", correct)
return 0
def main():
score = 0
for i in range(10):
a, op, b, c = generate_question()
print(f"Question {i + 1}: {a} {op} {b} = ")
for j in range(3):
answer = input()
answer = int(answer) if answer.isnumeric() else None
s = check_answer(answer, c)
if s > 0:
score += s
break
else:
print("No chance left, correct answer is:", c)
print("Your score is:", score)
if score >= 90:
print("SMART")
elif score >= 80:
print("GOOD")
elif score >= 70:
print("OK")
elif score >= 60:
print("PASS")
else:
print("TRY AGAIN")
if __name__ == '__main__':
main()
```
程序中使用了 `random` 模块生成随机数,使用了 `input` 函数获取学生输入的答案,并使用了一个 `check_answer` 函数来检查答案是否正确。在 `main` 函数中循环生成 10 道题目,每道题目学生有三次机会输入答案,如果输入错误则要求重新输入,超过三次机会则输出正确答案。每次输入正确答案的得分分别为 10 分、7 分和 5 分,总成绩根据得分范围分别显示为 SMART、GOOD、OK、PASS 和 TRY AGAIN。
阅读全文