200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > python面向对象实现简易银行管理员页面系统

python面向对象实现简易银行管理员页面系统

时间:2020-05-03 22:12:37

相关推荐

python面向对象实现简易银行管理员页面系统

'''银行管理员页面系统设计:card 类: cardId password moneyuser 类: username phone id cards[]银行的工作人员: 账号 密码 登录 展现管理系统所有功能Bank类:开户取钱存钱转账销户查账解锁...'''import pickleimport random# 银行卡import time#card 类class Card:def __init__(self, cardid, password, money):self.cardid = cardidself.password = passwordself.money = moneyself.cardlock = Falsedef __str__(self):return '卡号:{},余额:{}'.format(self.cardid, self.money)# 创建用户类class User:def __init__(self, uid, name, phone, card): # 此时的card,而是一个card对象self.uid = uidself.name = nameself.phone = phoneself.card = carddef __str__(self):return '用户名:{},联系方式:{}'.format(self.name, self.phone)#创建银行工作人员类class BankWorker:__login_name = 'admina'__password = 'icbc111'def printWelcomePage(self):print('----------------------------')print('欢迎使用ICBC管理系统 ')print('----------------------------')def workerLogin(self):login_name = input('输入账户名:')password = input('输入密码:')if self.__login_name != login_name:print('账户名输入有误!')return -1if self.__password != password:print('密码输入有误!')return -1print('登录成功,加载中....')time.sleep(2)return 0def bankFunction(self):s = '''功能如下:1. 开户2. 取钱3. 存钱4. 转账5. 销户6. 查账7. 解锁8. 改密9. 修改信息10. 退出'''print(s)# 创建Bank类class Bank:def __init__(self, users):self.users = usersdef create_user(self):# uid, name, phone, carduid = input('输入身份证号码:')name = input('输入姓名:')phone = input('输入手机号码:')# 对card 进行操作# 产生卡号cardid = self.generate_cardid()# 输入密码password = input('请输入密码:')repassword = input('再次输入密码:')if password and repassword:if password == repassword:print('密码设置成功!')else:print('两次密码不一致!')return -1else:print('必须输入密码!')return -1# moneymoney = 0card = Card(cardid, password, money)user = User(uid, name, phone, card)# 通过字典将卡号与用户进行绑定self.users[cardid] = userprint('恭喜{}开户成功!卡号是:{}'.format(name,cardid))def generate_cardid(self):no = '62'for i in range(3):n = random.randint(0, 9)no += str(n)return nodef save_money(self):islogin, user = self.user_login()if not islogin:return -1# 输入存款金额money = int(input('验证成功!请输入存款金额:'))# 存钱成功if money <= 0:print('存款金额必须大于0,存款失败!')return -1user.card.money += moneyprint('您成功存款:{},账户余额是:{}'.format(money, user.card.money))def withdraw_money(self):islogin, user = self.user_login()if not islogin:return -1## 输入取款金额money = int(input('验证成功!请输入取款金额:'))if money <= 0:print('取款金额必须要大于0!取款失败!')return -1if money > user.card.money:print('卡中余额不足,取款失败!')return -1user.card.money -= moneyprint('您成功取款:{},账户余额是:{}'.format(money, user.card.money))def transfer_accounts(self):islogin, user = self.user_login()if not islogin:return -1# 输入转账金额money = int(input('验证成功!请输入转账金额:'))if money < 0 or money > user.card.money:print("金额输入有误或者账户金额不足,转账失败!")return -1cardid = input('输入收款人的卡号:')other_user = self.users.get(cardid)# 有没有这个卡号对应用户if not other_user:print('不存在此卡号,转账失败!')return -1# 如果有这个用户,此卡是否被锁定if other_user.card.cardlock:print('该卡已经锁定,无法完成转账')return -1print('转账中请稍后.....')user.card.money -= moneyother_user.card.money += moneytime.sleep(1)print('成功转账:{},卡中余额是:{}'.format(money, user.card.money))def user_login(self):cardid = input('输入银行卡号:')user = self.users.get(cardid, None)# 有没有这个卡号对应用户if not user:print('不存在此卡号,存款失败!')return False, user# 如果有这个用户,此卡是否被锁定if user.card.cardlock:print('该卡已经锁定,请解锁...')return False, user# 如果没有锁定则需要输入密码,如果密码输入错误三次则锁定此卡r = self.check_password(user.card.password)if not r:# 锁定账户print('密码连续3次输入错误,此卡锁定!')return False, userreturn True, userdef check_password(self, password):for i in range(3):pwd = input('输入登录密码:')if pwd == password:return Truereturn Falsedef update_password(self):islogin, user = self.user_login()if not islogin:return -1# 修改密码new_pwd = input('输入新密码:')renew_pwd = input('再次输入新密码:')if not new_pwd or not renew_pwd:print('密码不能为空,修改密码失败!')return -1if new_pwd != renew_pwd:print('密码不一致,修改密码失败!!')return -1user.card.password = new_pwdprint('修改密码成功!')def update_msg(self):islogin, user = self.user_login()if not islogin:return -1# 修改手机号new_phone = input('输入新密码:')renew_phone= input('再次输入新密码:')if not new_phone or not renew_phone:print('手机号不能为空,修改失败!')return -1if new_phone != renew_phone:print('输入不一致,修改失败!!')return -1user.card.phone = new_phoneprint('修改手机号成功!')def del_user(self):islogin, user = self.user_login()if not islogin:return -1answer = input('确认要注销用户吗?(yes/no)')if answer == 'yes':del self.users[user.card.cardid]time.sleep(1)print('账户注销成功!')def select_user(self):islogin, user = self.user_login()if not islogin:return -1print(user)print('卡号:{}的账户金额是:{}'.format(user.card.cardid, user.card.money))def unlock_user(self):cardid = input('输入银行卡号:')user = self.users.get(cardid, None)# 有没有这个卡号对应用户if not user:print('不存在此卡号,存款失败!')return -1uid = input('输入身份证号码:')if user.uid != uid:print('无效的身份证号码!解锁失败!')return -1user.card.cardlock = Falseprint('解锁成功!')# 入口def main():# 1. 创建银行工作人员类bworker = BankWorker()# 2.加载欢迎页面bworker.printWelcomePage()# 3.登录r = bworker.workerLogin()if r == -1:return -1# 加载数据库中的数据:# with open('users.txt', 'rb') as rs:#users = pickle.load(rs)users = {}# print(users)# 516237458697000bank = Bank(users)while True:bworker.bankFunction()choice = input('请选择功能:')if choice == '1':print('----------开户----------')bank.create_user()elif choice == '2':# 取钱print('----------取钱----------')bank.withdraw_money()elif choice == '3':# 存钱print('----------存钱----------')bank.save_money()elif choice == '4':# 转账print('----------转账----------')bank.transfer_accounts()elif choice == '5':print('----------销户----------')bank.del_user()elif choice == '6':print('----------查账----------')bank.select_user()elif choice == '7':print('----------解锁----------')bank.unlock_user()elif choice == '8':print('----------改密----------')bank.update_password()elif choice == '9':print('----------修改手机号----------')bank.update_msg()elif choice == '10':# 退出answer = input('是否确定退出?(yes/no)')if answer.lower() == 'yes':print('退出中.......')time.sleep(2)with open('users.txt', 'wb') as ws:pickle.dump(bank.users, ws)print('退出完成!')breakif __name__ == '__main__':main()

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。