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
    

      

  • 相关阅读:
    Servlet基本用法(一)基本配置
    python 起航第一步吧
    shell脚本的执行方式
    linux 计划任务执行命令 crontab -e
    一个完整的 curl post登录带验证码的代码
    php curl post登录与带cookie模拟登录随笔
    liunx 配置 php curl 拓展库的方法
    php 魔术方法学习笔记
    php curl选项列表(超详细)
    正则表达式后面接的/isU, /is, /s含义
  • 原文地址:https://www.cnblogs.com/datatool/p/13416196.html
Copyright © 2011-2022 走看看