#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