小练习-----银行提款机系统
Posted 独孤_败天
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了小练习-----银行提款机系统相关的知识,希望对你有一定的参考价值。
‘‘‘ 人 类名:Person 属性: 姓名 身份证号 电话号 卡 卡 类名:Card 属性:卡号 密码 余额 行为: 银行 类名:bank 属性:用户列表 提款机 提款机 类名:ATM 属性:用户字典 行为: 开户 查询 取款 存储 转账 改密 锁定 解锁 补卡 销户 管理员 类名:admin 属性: 行为:管理员界面 管理员登录 系统功能界面 退出 ‘‘‘ from admin import Admin from atm import ATM import time,pickle,os def main(): #存储所有用户信息 # all_user={} #打印界面 admin=Admin() #管理员开机 admin.printAdminView() if admin.admin_option(): return -1 #提款机对象 file_path = os.path.join(os.getcwd(), "all_users.txt") with open(file_path, "rb") as f: all_users = pickle.load(f) print(all_users) atm=ATM(all_users) while True: # 管理员开机界面 admin.printSysFunctionView() #等待用户操作 option=input("请输入您的操作选项:").strip() if option=="1": print("开户") atm.create_user() elif option=="2": atm.search_user_info() elif option=="3": pass elif option=="4": pass elif option=="5": pass elif option=="6": pass elif option=="7": atm.lock_user() elif option=="8": atm.unlock_user() elif option=="9": pass elif option=="0": pass elif option=="t": if not admin.admin_option(): with open(file_path,"wb") as f: pickle.dump(atm.all_users,f) return -1 else: print("输入有误。请重新输入。") time.sleep(2) if __name__=="__main__": main()
from card import Card from user import User import random class ATM(object): def __init__(self,all_users): self.all_users=all_users def create_user(self): name=input("请输入您的姓名:").strip() id_card=input("输入您的身份证号码:").strip() phone=input("请输入您的电话号码").strip() pre_store_money=int(input("请输入预存款金额:").strip()) if pre_store_money<0: print("预存款输入有误,开户失败") return -1 one_passwd=input("请输入密码").strip() if not self.check_password(one_passwd): print("秘密输入错误,开户失败。") return -1 card_str=self.random_card_id() card=Card(card_str,one_passwd,pre_store_money) user=User(name,id_card,phone,card) self.all_users[card_str]=user print("开户成功,请牢记卡号:%s和密码:%s"%(card_str,one_passwd)) def search_user_info(self): car_num=input("请输入您的卡号").strip() user=self.all_users.get(car_num) if not user: print("该卡号不存在!查询失败。。。。。") return -1 if user.card.card_lock: print("该卡已经被锁定!!请解锁后再使用其他功能。。。。") if not self.check_password(user.card.card_passwd): user.card.card_lock = True print("秘密错误。该卡已经被锁定!!请解锁后再使用其他功能。。。。") return -1 print("账号:%s 余额:%d"%(user.card.card_id,user.card.card_money)) def get_money(self): car_num = input("请输入您的卡号").strip() user = self.all_users.get(car_num) if not user: print("该卡号不存在!取款失败。。。。。") return -1 if user.card.card_lock: print("该卡已经被锁定!!请解锁后再使用其他功能。。。。") if not self.check_password(user.card.card_passwd): user.card.card_lock = True print("秘密错误。该卡已经被锁定!!请解锁后再使用其他功能。。。。") return -1 money=int(input("请输入要取款金额").strip()) if money>user.card.card_money: print("余额不足,取款失败。") return -1 if money<user.card.card_money: print("金额错误,取款失败。") return -1 user.card.card_money-=money print("取款成功!!!账号:%s 余额:%d" % (user.card.card_id, user.card.card_money)) def save_money(self): pass def transfer_money(self): pass def change_passwd(self): pass def lock_user(self): car_num=input("请输入您的卡号").strip() user=self.all_users.get(car_num) if not user: print("该卡号不存在!锁卡失败。。。。。") return -1 if user.card.card_lock: print("该卡已经被锁定!!请解锁后再使用其他功能。。。。") if not self.check_password(user.card.card_passwd): print("秘密错误。锁卡失败。。。。。。。") return -1 temp_id_card=input("请输入 您的身份证号码:").strip() if temp_id_card != user.id_card: print("身份证号码验证错误。锁卡失败。。。。。。。") return -1 user.card.card_lock=True print("锁卡成功") def unlock_user(self): car_num = input("请输入您的卡号").strip() user = self.all_users.get(car_num) if not user: print("该卡号不存在!解锁失败。。。。。") return -1 if not user.card.card_lock: print("该卡没有被锁定!!无需解锁。。。。") if not self.check_password(user.card.card_passwd): print("秘密错误。解卡失败。。。。。。。") return -1 temp_id_card=input("请输入 您的身份证号码:").strip() if temp_id_card != user.id_card: print("身份证号码验证错误。解卡失败。。。。。。。") return -1 user.card.card_lock=False print("解卡成功") def new_card(self): pass def kill_user(self): pass def check_password(self,real_passwd): for i in range(3): temp_passwd=input("请输入密码") if temp_passwd == real_passwd: return True else: print("密码输入错误。") return False def random_card_id(self): while True: str1="" for i in range(6): ch=chr(random.randrange(ord("0"),ord("9")+1)) str1+=ch if not self.all_users.get(str1): return str1 # if str1 in self.all_users: # print("有人,重新来过。") # else: # self.all_users[str1]=None # return str1
import time class Admin(object): admin="1" password="1" def printAdminView(self): print("**************************************************************************") print("**************************************************************************") print(" 欢迎登录中国银行 ") print("**************************************************************************") print("**************************************************************************") def printSysFunctionView(self): print("**************************************************************************") print("* 开户(1) 查询( 2) *") print("* 取款(3) 存款( 4) *") print("* 转账(5) 改密(6) *") print("* 锁定(7) 解锁(8) *") print("* 补卡(9) 销户(0) *") print("* 退出(t) *") def admin_option(self): input_admin = input("请输入管理员账号:").strip() if self.admin != input_admin: print("输入账号有误") return -1 input_passwd = input("请输入管理员密码").strip() if self.password != input_passwd: print("秘密输入有误。") return -1 print("操作成功!请稍后。。。。。。。。。") time.sleep(2) return 0
class User(object): def __init__(self,name,id_card,phone,card): self.name=name self.id_card=id_card self.phone=phone self.card=card
class Card(object): def __init__(self,card_id,card_passwd,card_money): self.card_id=card_id self.card_passwd=card_passwd self.card_money=card_money self.card_lock=False
以上是关于小练习-----银行提款机系统的主要内容,如果未能解决你的问题,请参考以下文章