模拟ATM系统(登录、存取款操作、显示余额)完成用户的注册和用户的登录,完成一个模块的增删改查,用户信息和模块信息存储到数组或者集合或者文件,或者数据库中均可。
时间: 2024-01-21 17:17:26 浏览: 21
好的,这是一个比较完整的项目,需要多个类和文件来实现。我们可以先定义一些基本的类和方法来实现这个项目。
首先,我们需要一个 User 类来存储用户的信息,包括用户名、密码、账户余额等等。这个类可以定义在一个名为 user.py 的文件中:
```python
class User:
def __init__(self, username, password, balance):
self.username = username
self.password = password
self.balance = balance
```
接下来,我们需要一个 ATM 类来实现登录、存取款操作、显示余额等功能。这个类可以定义在一个名为 atm.py 的文件中:
```python
class ATM:
def __init__(self, users):
self.users = users
self.current_user = None
def register(self):
username = input("请输入用户名:")
password = input("请输入密码:")
balance = float(input("请输入初始余额:"))
user = User(username, password, balance)
self.users.append(user)
print("注册成功!")
def login(self):
username = input("请输入用户名:")
password = input("请输入密码:")
for user in self.users:
if user.username == username and user.password == password:
self.current_user = user
print("登录成功!")
return
print("用户名或密码错误!")
def deposit(self):
amount = float(input("请输入存款金额:"))
self.current_user.balance += amount
print("存款成功!")
def withdraw(self):
amount = float(input("请输入取款金额:"))
if amount > self.current_user.balance:
print("余额不足!")
else:
self.current_user.balance -= amount
print("取款成功!")
def check_balance(self):
print("当前余额:%.2f" % self.current_user.balance)
```
最后,我们需要一个 main.py 文件来调用 ATM 类的方法,并且将用户信息存储到文件中。我们可以使用 json 模块来将用户信息存储到文件中。代码如下:
```python
import json
from user import User
from atm import ATM
def load_users():
try:
with open("users.json", "r") as f:
users = json.load(f)
except:
users = []
return [User(user["username"], user["password"], user["balance"]) for user in users]
def save_users(users):
with open("users.json", "w") as f:
json.dump([{"username": user.username, "password": user.password, "balance": user.balance} for user in users], f)
if __name__ == "__main__":
users = load_users()
atm = ATM(users)
while True:
print("请选择操作:")
print("1. 注册")
print("2. 登录")
print("3. 存款")
print("4. 取款")
print("5. 查询余额")
print("6. 退出")
choice = input()
if choice == "1":
atm.register()
save_users(atm.users)
elif choice == "2":
atm.login()
elif choice == "3":
atm.deposit()
save_users(atm.users)
elif choice == "4":
atm.withdraw()
save_users(atm.users)
elif choice == "5":
atm.check_balance()
elif choice == "6":
break
else:
print("无效操作!")
```
这样,我们就完成了一个简单的模拟 ATM 系统。用户信息被存储在 users.json 文件中,如果文件不存在或者为空,则默认没有用户信息。