如何在控制台上设计一个模拟银行ATM的程序,实现查询余额、取款、存款和退出功能?同时,该程序应如何处理用户输入的非1到4范围内的数字并给出相应提示?
时间: 2024-12-18 08:35:46 浏览: 4
设计一个简单的控制台版银行ATM模拟程序,你可以按照以下步骤进行:
1. **初始化**:
- 创建一个`BankAccount`类,包含属性如账户号、初始余额等,并提供查询余额、存款、取款的方法。
```python
class BankAccount:
def __init__(self, account_number, initial_balance=0):
self.account_number = account_number
self.balance = initial_balance
# 方法声明
def query_balance(self):
print(f"您的账户余额是:{self.balance}")
def deposit(self, amount):
if amount > 0:
self.balance += amount
print(f"存款成功,当前余额为:{self.balance}")
else:
print("请输入正数作为存款金额。")
def withdraw(self, amount):
if amount > 0 and amount <= self.balance:
self.balance -= amount
print(f"取款成功,当前余额为:{self.balance}")
else:
print("取款失败,余额不足或请求金额超过余额。")
def exit_program(self):
print("感谢使用ATM服务,再见!")
```
2. **主循环**:
- 设计一个无限循环,获取用户的操作选择并调用相应的函数。
- 使用try-except处理用户输入非数字或超出范围的情况。
```python
def main():
while True:
try:
action = int(input("请选择操作(1.查询余额 2.存款 3.取款 4.退出): "))
if action < 1 or action > 4:
raise ValueError("无效的选择,请输入1到4之间的数字。")
except ValueError as e:
print(str(e))
continue
account = BankAccount("123456") # 示例账户
if action == 1:
account.query_balance()
elif action == 2:
amount = float(input("请输入存款金额: "))
account.deposit(amount)
elif action == 3:
amount = float(input("请输入取款金额: "))
account.withdraw(amount)
elif action == 4:
account.exit_program()
break
if __name__ == "__main__":
main()
```
阅读全文