创建一个ATM系统,使用Python实现,可以通过面向对象编程(OOP)来设计系统,定义用户和ATM机等类,并封装它们的功能。以下是一个简单的ATM系统实现示例:
```python
class User:
def __init__(self, name, id_card, phone_num, card_no):
self.name = name
self.id_card = id_card
self.phone_num = phone_num
self.card_no = card_no
class ATM:
def __init__(self):
self.accounts = {
'67788': {
'password': '',
'balance': 1200.0,
'valid': True
},
可以添加更多账户
}
def check_balance(self, card_no, password):
if card_no in self.accounts and self.accounts[card_no]['password'] == password:
return self.accounts[card_no]['balance']
else:
return None
def deposit(self, card_no, password, amount):
if card_no in self.accounts and self.accounts[card_no]['password'] == password:
self.accounts[card_no]['balance'] += amount
return self.accounts[card_no]['balance']
else:
return None
def withdraw(self, card_no, password, amount):
if card_no in self.accounts and self.accounts[card_no]['password'] == password:
if self.accounts[card_no]['balance'] >= amount:
self.accounts[card_no]['balance'] -= amount
return self.accounts[card_no]['balance']
else:
return "余额不足"
else:
return None
主程序
def main():
atm = ATM()
while True:
print("欢迎使用ATM系统")
print("请选择操作:")
print("1. 查询余额")
print("2. 存款")
print("3. 取款")
print("4. 退出")
choice = input("请输入操作编号(1-4): ")
if choice == '1':
card_no = input("请输入卡号: ")
password = input("请输入密码: ")
balance = atm.check_balance(card_no, password)
if balance is not None:
print(f"余额为: {balance}")
else:
print("账户不存在或密码错误")
elif choice == '2':
card_no = input("请输入卡号: ")
password = input("请输入密码: ")
amount = float(input("请输入存款金额: "))
new_balance = atm.deposit(card_no, password, amount)
if new_balance is not None:
print(f"存款成功,新余额为: {new_balance}")
else:
print("账户不存在或密码错误")
elif choice == '3':
card_no = input("请输入卡号: ")
password = input("请输入密码: ")
amount = float(input("请输入取款金额: "))
new_balance = atm.withdraw(card_no, password, amount)
if new_balance is not None:
print(f"取款成功,新余额为: {new_balance}")
else:
print("账户不存在或密码错误或余额不足")
elif choice == '4':
print("感谢使用,再见!")
break
else:
print("无效的操作编号,请重新输入")
if __name__ == "__main__":
main()
这个示例代码定义了两个类:`User` 和 `ATM`。`User` 类用于存储用户信息,`ATM` 类用于管理账户和交易。在主程序中,用户可以通过输入操作编号来选择不同的功能,如查询余额、存款和取款。
请注意,这个示例代码是一个简化的版本,实际应用中可能需要考虑更多的安全性和错误处理措施。