2.ATM取款问题,编写一个程序模拟取款,用户最多尝试输入密码三次,密码正确后输入取款金额。 ATM 只能输出100的纸币,要求取款金额在100-1000之间,且为100的倍数
时间: 2024-10-09 17:12:08 浏览: 42
ATM.rar_ATM取款机_atm_java ATM_修改密码_取款机
为了模拟这个ATM取款的过程,我们可以使用Python编写一个简单的控制台程序。首先,我们需要设置一个`User`类来代表用户,包含初始化密码、尝试次数以及取款金额的方法。然后有一个`ATM`类,用于处理取款操作和验证。
```python
class User:
def __init__(self):
self.password = "1234"
self.attempts = 3
self.withdrawal_amount = None
def enter_password(self):
while True:
entered_password = input("请输入您的密码 (最多3次机会): ")
if entered_password == self.password or self.attempts > 0:
break
else:
print("错误! 请重新输入。")
self.attempts -= 1
if self.attempts == 0:
print("您已无密码尝试机会,账户锁定。")
return False
return True
def set_withdrawal_amount(self):
while True:
withdrawal = int(input("请输入您想取出的金额(100-1000元,100的倍数): "))
if 100 <= withdrawal <= 1000 and withdrawal % 100 == 0:
self.withdrawal_amount = withdrawal
break
else:
print("输入无效,请输入100到1000之间的100的倍数。")
class ATM:
def withdraw(self, user):
if user.withdrawal_amount is not None:
print(f"成功取出 {user.withdrawal_amount} 元。")
else:
print("未输入有效的取款金额。")
# 主程序
def main():
user = User()
if user.enter_password():
user.set_withdrawal_amount()
atm = ATM()
atm.withdraw(user)
if __name__ == "__main__":
main()
```
在这个程序中,用户有三次机会输入正确的密码,密码正确后可以设置取款金额。如果输入的金额符合要求,ATM会完成取款操作;如果不符,会提示用户重新输入。
阅读全文