创建一个简单的Python ATM程序涉及多个步骤,包括用户登录、取款、购物、还款和账单查询等。以下是一个基本的框架,使用面向对象编程的方法来实现这些功能。
1. 账户管理
首先,我们需要一个类来管理用户账户信息。
```python
class User:
def __init__(self, name, idcard, phonenum, card):
self.name = name
self.idcard = idcard
self.phonenum = phonenum
self.card = card
self.balance = 0
self.islocked = False
class Account:
def __init__(self):
self.users = {}
def add_user(self, user):
self.users[user.idcard] = user
def find_user(self, idcard):
return self.users.get(idcard)
def lock_account(self, idcard):
user = self.find_user(idcard)
if user:
user.islocked = True
def unlock_account(self, idcard):
user = self.find_user(idcard)
if user:
user.islocked = False
```
2. ATM类
接下来,我们创建一个ATM类,用于处理用户输入和调用相应的账户操作。
```python
import os
class ATM:
def __init__(self, account):
self.account = account
def login(self, idcard, password):
user = self.account.find_user(idcard)
if user and user.password == password and not user.islocked:
return user
return None
def logout(self, idcard):
user = self.account.find_user(idcard)
if user:
user.islocked = True
return True
return False
def deposit(self, idcard, amount):
user = self.account.find_user(idcard)
if user and not user.islocked:
user.balance += amount
return True
return False
def withdraw(self, idcard, amount):
user = self.account.find_user(idcard)
if user and not user.islocked and user.balance >= amount:
user.balance -= amount
return True
return False
def transfer(self, from_idcard, to_idcard, amount):
from_user = self.account.find_user(from_idcard)
to_user = self.account.find_user(to_idcard)
if from_user and to_user and not from_user.islocked and not to_user.islocked and from_user.balance >= amount:
from_user.balance -= amount
to_user.balance += amount
return True
return False
def query_balance(self, idcard):
user = self.account.find_user(idcard)
if user:
return user.balance
return None
```
3. 主程序
最后,我们编写主程序来运行ATM系统。