#ATM功能 def __init__(self,allUser): self.User = allUser # 开户 def CreateUser(self): user_name = input("请输入您的姓名:") user_ID = input("请输入您的身份证号:") user_phone = input("请输入您的手机号:") # 设置姓名、身份证号和手机号的输入条件 if (user_name != '' and ' ' not in user_name) and (user_ID != '' and ' ' not in user_ID) and (user_phone != '' and ' ' not in user_phone): user_money = int(input("请输入您要存入的金额(最低100):")) if user_money >= 100: while True: user_card_password = input("请设置银行卡密码:") if user_card_password != '' and ' ' not in user_card_password: repeat_password = input("请确认银行卡密码:") if repeat_password == user_card_password: cardID = self.CreateCardNum() user = {} user['姓名:'] = user_name user['身份证号:'] = user_ID user['手机号:'] = user_phone user['卡号:'] = cardID user['密码:'] = user_card_password user['金额:'] = user_money user['状态:'] = 0 self.User[cardID] = user print(self.User) break else: print("两次密码不一致,请重新输入密码!") else: print('密码不能为空!') else: print('存入金额有误,无法开户!') else: print("您输入的姓名、身份证号或者手机号不符合格式!") # 查询 def CheckCard(self): CardId = input("请输入卡号:") if self.User.get(CardId): if self.User.get(CardId)["状态:"] == 0: count = 0 while count < 3: CardPassword = input("请输入密码:") if CardPassword == self.User.get(CardId).get("密码:"): print('账号:%s,余额:%s'%(CardId,self.User.get(CardId).get('金额:'))) print(self.User) break else: count += 1 print("账号:%s 的密码错误,请重新输入!"%(CardId)) if count == 3: self.User.get(CardId)['状态:'] = 1 print("账号已被锁定,无法执行该操作!") print(self.User) else: print("该账号已被锁定,不能执行此操作!") else: print('卡号不存在,查询失败。。。。') # 取款 def GetMoney(self): CardId = input("请输入卡号:") if self.User.get(CardId): if self.User.get(CardId)["状态:"] == 0: count = 0 while count < 3: CardPassword = input("请输入密码:") if CardPassword == self.User.get(CardId).get("密码:"): getMoney = int(input("请输入取款金额:")) if getMoney >= 100: Money = self.User.get(CardId).get("金额:") # print(Money,type(Money)) if getMoney <= Money: Money -= getMoney self.User.get(CardId)["金额:"] = Money print('账号:%s 取款成功,余额还有:%s!'%(CardId,Money)) print(self.User) break else: print('账号:%s 的余额不足,取款失败!'%(CardId)) break else: print('取款金额不足100,取款失败!') break else: count += 1 print("账号:%s 的密码错误,请重新输入!" % (CardId)) if count == 3: self.User.get(CardId)['状态:'] = 1 print("账号已被锁定,无法执行该操作!") print(self.User) else: print('该账号已被锁定,不能执行此操作!') else: print('账号:%s 卡号不存在,取款失败!' % (CardId)) # 存钱 def SaveMoney(self): CardId = input("请输入卡号:") if self.User.get(CardId): if self.User.get(CardId)["状态:"] == 0: saveMoney = int(input('请输入需要存入的金额:')) if saveMoney > 0: Money = self.User.get(CardId).get("金额:") Money += saveMoney self.User.get(CardId)["金额:"] = Money print('账号:%s 存款成功,现今余额:%s!' % (CardId, Money)) print(self.User) else: print('存入金额有误,存钱失败!') else: print('该账号已被锁定,不能执行此操作!') else: print("账号:%s 不存在,存款失败!" % (CardId)) # 转账 def TransferMoney(self): OutId = input('输入转出的账号:') if self.User.get(OutId): if self.User.get(OutId)["状态:"] == 0: count = 0 while count < 3: Password_OutId = input("请输入密码:") if Password_OutId == self.User.get(OutId).get('密码:'): while True: InId = input('请输入转入的账号:') # 不能给自己转账 if OutId != InId: if self.User.get(InId): if self.User.get(InId)["状态:"] == 0: transferMoney = int(input("请输入需要转出的金额:")) Money = self.User.get(OutId).get("金额:") money = self.User.get(InId).get('金额:') if transferMoney <= Money and transferMoney > 0: Money -= transferMoney money += transferMoney self.User.get(OutId)['金额:'] = Money self.User.get(InId)['金额:'] = money print('转账成功。。。。') print(self.User) count = 3 break else: print("转账金额有误,转账失败!") break else: print('该账号已被锁定,不能向它转账!') break else: print('转入的账号:%s 不存在!'%(InId)) else: print('不能给自己转账!') else: count += 1 print("账号:%s 的密码错误,请重新输入!" % (OutId)) if count == 3: self.User.get(OutId)['状态:'] = 1 print("账号已被锁定,无法执行该操作!") print(self.User) else: print('该账号已被锁定,不能执行此操作!') else: print('转出账号:%s 的不存在,转出失败!'%(OutId)) # 改密 def ChangePassword(self): CardId = input('请输入需要改密的账号:') if self.User.get(CardId): if self.User.get(CardId)["状态:"] == 0: CardPassword = input('请输入需要改密账号的密码:') if CardPassword == self.User.get(CardId).get('密码:'): # 验明身份 ID = input("请输入该账号的身份证号:") if ID == self.User.get(CardId)['身份证号:']: NewPassword = input('请输入新密码:') if NewPassword != CardPassword: NewPassword1 = input("请确认新密码:") if NewPassword == NewPassword1: self.User.get(CardId)['密码:'] = NewPassword print('改密成功!') print(self.User) else: print('两次密码不一致,改密失败!') else: print('新密码与原密码一样,改密失败!') else: print('身份验证失败,无法改密!') else: print('卡号密码匹配不上,,不能修改!') else: print('该账号已被锁定,不能执行此操作!') else: print('账号不存在,不能改密!') # 解锁 def UnLockCard(self): CardId = input("请输入需要解锁的账号:") if self.User.get(CardId): if self.User.get(CardId)["状态:"] != 0: CardPassword = input('请输入需要解锁账号的密码:') if CardPassword == self.User.get(CardId)['密码:']: ID = input('请输入解锁账号的身份证号:') if ID == self.User.get(CardId)['身份证号:']: self.User.get(CardId)['状态:'] = 0 print(self.User) print('该账号解锁成功!') else: print('身份验明失败,无法解锁!') else: print('该账号未被锁定,无法解锁!') else: print("账号不存在,无法解锁!") # 锁卡 def LockCard(self): CardId = input('请输入需要锁定的卡号:') if self.User.get(CardId): if self.User.get(CardId)['状态:'] == 0: CardPassword = input('请输入密码:') if CardPassword == self.User.get(CardId).get('密码:'): # 验明身份 ID = input("请输入该账号的身份证号:") if ID == self.User.get(CardId)['身份证号:']: self.User.get(CardId)['状态:'] = 1 print(self.User) print('账号密码正确,该账号已被锁定!') else: print('身份验证失败,无法锁卡!') else: print('密码错误,锁卡失败!') else: print('该账号已被锁定!') else: print('卡号不存在,无法锁定!') # 补卡 def NewCard(self): CardId = input('请输入需要补卡的账号:') if self.User.get(CardId): CardPassword = input('请输入密码:') if CardPassword == self.User.get(CardId)['密码:']: # 验明身份 ID = input("请输入该账号的身份证号:") if ID == self.User.get(CardId)['身份证号:']: # 新旧卡号的替换 就是更换字典中的key值 newCard = self.CreateCardNum() self.User[newCard] = self.User.pop(CardId) self.User.get(newCard)['卡号:'] = newCard print('补卡成功!') print(self.User) else: print('身份验证失败,无法锁卡!') else: print('原卡密码错误,无法补办!') else: print('该账号不存在,无法补办!') # 销户 def ClearUser(self): CardId = input("请输入需要销户的账号:") if self.User.get(CardId): CardPassword = input('请输入销户的密码:') if CardPassword == self.User.get(CardId)['密码:']: ID = input('请输入销户的身份证号:') if ID == self.User.get(CardId)['身份证号:']: self.User.pop(CardId) print('销户成功!') print(self.User) else: print('身份验证不通过,无法销户!') else: print('销户账号的密码错误,无法销户!') else: print('账号不存在,无法销户!') # 设置随机银行卡号 def CreateCardNum(self): CardID = '' key = self.User.keys() while True: num = random.randint(1, 9) CardID += str(num) if len(CardID) == 5 and CardID not in key: break return CardID