# -*- coding:utf-8 -*-
# 1,
# 一,银行开户(当卡号已经被开户时需要判断),开户完成后打印出当前开户者的信息,包括用户名,卡号,余额
# 二,存钱(判断卡号是否存在,不存在的情况下无法存钱)
# 三,取钱(除了判断卡号卡,还要判断余额是否足够取)
# 四,获取银行用户信息(只有银行自己才能打印出所有用户的信息,而用户个人只能得到自己的开户信息)
# 用户个人(实例化出来的对象)
# 银行(银行类本身)
class Bank():
__Users={}
def __init__(self,CardId,pwd,name,balance):
if CardId not in Bank.__Users:
Bank.__Users[CardId]={'pwd':pwd,'Username':name,'Balance':balance}
self.__CardID=CardId
self.__pwd=pwd
self.__name=name
self.__balance=balance
#查看银行的开户总数
@classmethod
def nums(cls):
print('当前用户数:%d'%(len(cls.__Users)))
#查看所有用户的个人信息(包含卡号,密码,用户名,余额)
@classmethod
def get_Users(cls):
for key,val, in cls.__Users.items():
print('卡号: %s \n用户名: %s \n密码: %d \n余额: %d'%(key,val['Username'],val['pwd'],val['Balance']))
#验证方法
@staticmethod
def check_User(CardId,pwd):
if(CardId in Bank.__Users) and (pwd==Bank.__Users[CardId]['pwd']):
return True
else:
return False
#验证金额
@staticmethod
def check_money(money):
if isinstance(money,int):
return True
else:
return False
#取钱(需要卡号和密码验证)
def q_money(self,CardId,pwd,money):
if Bank.check_User(CardId,pwd):
#开始取钱
if Bank.check_money(money):
if Bank.__Users[CardId]['Balance']>=money:
Bank.__Users[CardId]['Balance'] -= money
print('当前卡号%s,当前取款金额%d,当前余额%d'%(CardId,money, Bank.__Users[CardId]['Balance']))
else:
print('余额不足')
else:
print('您输入的金额有误')
else:
print('卡号或者密码错误')
# 存钱(需要卡号和密码验证)
def c_money(self, CardId, pwd, money):
if Bank.check_User(CardId, pwd):
# 开始存钱
if Bank.check_money(money):
Bank.__Users[CardId]['Balance'] += money
print('当前卡号%s,当前存款金额%d,当前余额%d' % (CardId, money, Bank.__Users[CardId]['Balance']))
else:
print('您输入的金额有误')
else:
print('卡号或者密码错误')
#查看个人详细信息(需要卡号密码验证)
def getInfo(self,CardId,pwd):
if Bank.check_User(CardId,pwd):
print('当前卡号%s,当前用户名%s,当前余额%d' % (CardId, Bank.__Users[CardId]['Username'], Bank.__Users[CardId]['Balance']))
else:
print('卡号或者密码错误')
joe= Bank('1001',111111,'joe',100)
Bank.nums()
print('_'*50)
Bank.get_Users()
print('_'*50)
joe.c_money('1001',111111,500)
print('_'*50)
joe.q_money('1001',111111,300)
print('_'*50)
joe.getInfo('1001',111111)