zoukankan      html  css  js  c++  java
  • 第三次作业(ATM)

    #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
    

      

  • 相关阅读:
    Best Time to Buy and Sell Stock
    Remove Nth Node From End of List
    Unique Paths
    Swap Nodes in Pairs
    Convert Sorted Array to Binary Search Tree
    Populating Next Right Pointers in Each Node
    Maximum Subarray
    Climbing Stairs
    Unique Binary Search Trees
    Remove Duplicates from Sorted Array
  • 原文地址:https://www.cnblogs.com/datatool/p/13416196.html
Copyright © 2011-2022 走看看