zoukankan      html  css  js  c++  java
  • 创建一个银行类

    # -*- conding:utf-8 -*-
    '''
        类:
      创建一个银行类
    属性:
      一个属于银行的类属性
      用来存储所有银行的开户信息,包含卡号、密码、用户名、余额
    (外界不能随意访问和修改。开户时要进行卡号验证,查看卡号是否已经存在)
    每个对象拥有
      卡号,密码,用户名,余额
      (外界不能随意访问和修改。)
    方法:银行类拥有
             查看本银行的开户总数
              查看所有用户的个人信息(包含卡号,密码,用户名,余额)
    每个对象拥有
    实例化对象的时候传入相关参数
    初始化对象及类属性
    取钱(需要卡号和密码验证)
      通过验证卡号和密码对个人的余额进行操作,如果取钱的金额大于余额,则返回余额不足
    存钱(需要卡号和密码验证)
         通过验证卡号和密码对个人的余额进行操作,返回成功
      查看个人相信信息(需要卡号和密码验证)
       返回个人的卡号、用户名、余额信息
    
    '''
    class Bank:
        #创建一个类属性,
        __Users = { } #字典 用来存储所有银行的开会信息,包含卡号、密码、用户名、余额
        def __init__(self,carId,userName,pwd,balance):
            if carId not in Bank.__Users:
                Bank.__Users[carId]={'userName':userName,'pwd':pwd,'balance':balance}
                self.__userName = userName
                self.__pwd = pwd
                self.__balance = balance
        # 查看本银行的开户总数
        @classmethod   #类方法
        def nums(cls):
            num = len(cls.__Users)
            print('银行的开户总数: %d'%num)
        #查看所有用户的个人信息(包含卡号,密码,用户名,余额)
        @classmethod
        def get_user(cls):
            for key,val in cls.__Users.items():
                print('卡号: %s 
    用户名: %s 
    密码: %s 
    余额: %d 
    '%(key,val['userName'],val['pwd'],val['balance']))
        #验证方法
        @staticmethod
        def check_user(carId,pwd):
            if( (carId  in Bank.__Users) and (pwd == Bank.__Users[carId]['pwd']) ):
                return True
            else:
                return False
        #验证金额
        @staticmethod
        def check_money(money):
            if isinstance(money,int):
                return  True
            else:
                return  False
        #取钱(需要卡号和密码验证)
        def q_money(self,carId,pwd,money):
            if Bank.check_user(carId,pwd):
                if Bank.check_money(money):
                    if Bank.__Users[carId]['balance']>=money:
                        Bank.__Users[carId]['balance'] -= money
                        print('当前卡号%s,当前取款金额%d,当前余额%d'%(carId,money,Bank.__Users[carId]['balance']))
                    else:
                        print('金额不足')
                else:
                    print('您输入的金额有误!')
            else:
                print('卡号或密码错误!')
        #存钱
        def c_money(self,carId,pwd,money):
            if Bank.check_user(carId,pwd):
                if Bank.check_money(money):
                        Bank.__Users[carId]['balance'] += money
                        print('当前卡号%s,当前存款金额%d,当前余额%d'%(carId,money,Bank.__Users[carId]['balance']))
                else:
                    print('您输入的金额有误!')
            else:
                print('卡号或密码错误!')
        #查看个人详细信息(需要卡号和密码验证)
        def getInfor(self,carId,pwd):
            if Bank.check_user(carId,pwd):
    
                 print('当前卡号%s,当前存款金额%d,当前余额%d'%(carId,money,Bank.__Users[carId]['balance']))
            else:
                print('卡号或密码错误!')
    
    xuyg = Bank('0000','xuyg','123',100)
    xuyg.nums()
    xuyg.get_user()
    xuyg.q_money('0000','123',50)
    xuyg.c_money('0000','123',500)
  • 相关阅读:
    LinkedList的实现源码分析
    ArrayList实现源码分析
    探索HashMap实现原理及其在jdk8数据结构的改进
    Maven的安装使用以及 Maven+Spring hello world example
    RedisHelper帮助类
    Stream 和 byte[] 之间的转换
    WCF For Silverlight跨域策略
    Linq Query常见错误
    Linq to Sharepoint--如何获取Linq Query 生成的CALM
    如何使用代码备份SQL Server数据库
  • 原文地址:https://www.cnblogs.com/xyg-zyx/p/8968915.html
Copyright © 2011-2022 走看看