用简单的面向对象方法模拟一个银行终端处理器
首先,先处理管理员登录,在这里默认管理员登录账号为admin 密码为123456
# 管理员系统
class Admin:
# 输入参数 管理员卡号 管理员密码
def __init__(self, account='admin', password='123456'):
self.account = account
self.password = password
# 欢迎界面
def welcome(self):
print('+' + '-' * 30 + '+')
print('|' + ' ' * 30 + '|')
print('|' + ' ' * 3 + '欢迎使用xx银行操作系统' + ' ' * 5 + '|')
print('|' + ' ' * 30 + '|')
print('+' + '-' * 30 + '+')
# 操作界面
def menu(self):
print('+' + '-' * 30 + '+')
print('|' + '开 户[1] 销 户[2]' + '|')
print('|' + '查询余额[3] 取 款[4]' + '|')
print('|' + '存 款[5] 转 账[6]' + '|')
print('|' + '修改密码[7] 锁定账户[8]' + '|')
print('|' + '解锁账户[9] 退 出[0]' + '|')
print('|' + ' 查询所有账户信息[10] ' + '|')
print('+' + '-' * 30 + '+')
# 管理员登录
def login(self):
account = input('请输入管理员账号:')
password = input('请输入管理员密码:')
if account == 'admin' and password == '123456':
return True
return False
# 这里模拟了管理员的登录以及操作页面,接下来我们创建一个简单的用户登录的类
import os
import pickle
class User:
def __init__(self, name, uid, card):
self.name = name
self.uid = uid
self.card = card
def __str__(self):
return '姓名:{},身份证:{},卡号:{}'.format(self.name, self.uid, self.card.cid)
# 将用户封装到文件内:序列化
@staticmethod
def save_user(userinfo):
pathname = os.path.join(os.getcwd(), 'userinfo.bd')
with open(pathname, 'wb') as fp:
pickle.dump(userinfo, fp)
# 将数据读取
@staticmethod
def load_user():
pathname = os.path.join(os.getcwd(), 'userinfo.bd')
if os.path.exists(pathname):
with open(pathname, 'rb') as fp:
userinfo = pickle.load(fp)
return userinfo
else:
return {}
# 用户类包含了用户的信息以及用户信息的打印,与上个代码里的10:查看用户信息相对应,为了更加简单的测试,后两个类函数使用静态方法,可以使银行开户时把用户信息进行简单持久化存储(在这里用的是序列化的方式)和用户登录使用系统时提取用户数据
大家众所周知当我们去银行的时候,我们需要插入银行卡,那么我们就需要一个银行卡类来储存我们的用户密码,银行卡号,卡上金额。当然,当你信誉不好时,银行同样也会锁定你的银行卡
class Card:
def __init__(self, cid, pwd):
self.cid = cid
self.pwd = pwd
self.money = 0 # 余额
self.is_lock = False # 是否锁定
当我们把所有的类都创建好后,我们需要把我们写的类的内容进行一个操作整理
from user import User
from admin import Admin
from operate import Operate
if __name__ == '__main__':
# 创建管理员对象
admin = Admin()
# 统计管理员登录次数
count = 0
while