1.建立下面几个py文件,然后编写每一个类的属性与方法,下面的注释写得很清楚,不懂可以留言,我一 一回复
card.py 卡类
class Card():
#初始化卡的属性cardnum, password, money,islock是否上锁 ,默认不上锁
def __init__(self, cardnum, password, money, islock=False):
self.cardnum = cardnum
self.password = password
self.money = money
self.islock = islock
user.py 用户类
class User():
#初始化用户的属性name,idcard,phone,card
def __init__(self,name,idcard,phone,card):
self.name = name
self.idcard = idcard
self.phone = phone
self.card = card
atm.py ATM系统
from day03.ATM.card import Card#导入card的构造方法
from day03.ATM.user import User#导入user的构造方法
import random
class ATM():
#判断是否锁卡了,锁卡了不能进行其他操作
n = False
#这个字典存储登录的账号和密码
dict_l = {}
#这个字典存储卡号和钱
dict_m = {}
#存储所有信息
dict_c = {}
#默认是不登录的,不登录,只能进行1,2选项
islogin = False
@staticmethod
def welcome():
print('''
**********************
* *
* welcome to bank *
* *
**********************
''')
@staticmethod
def select():
print('''
**********************
* 1.登陆 2.开户 *
* 3.查询 4.取款 *
* 5.存款 0.退出 *
* 6.转账 7.改密 *
* 8.锁卡 9.解锁 *
**********************
''')
num = input("请选择服务项目:")
return num
#随机生成卡号
@staticmethod
def randomcard():
iccard_s = random.choices(['1', '2', '3', '4', '5', '6', '7', '8', '9'], k=6)
iccard = ''.join(iccard_s)
return iccard
#登录
@classmethod
def login(cls):
card = input('请输入你的卡号:')
psd = input('请输入你的密码')
if card in ATM.dict_l:
if psd == cls.dict_l[card]:
cls.islogin = card
print('登录成功')
else:
print('卡号不存在,请开户')
#开户
@classmethod
def openUser(cls):
name = input('请输入你的名字:')
idcard= input('请输入你的身份证:')
phone= input('请输入你的电话:')
psw1 = input('请输入你的密码')
psw2 = input('请确认你的密码')
if psw1 == psw2:
cardnum = cls.randomcard()
money = int(input('请输入金额:'))
card = Card(cardnum,psw1,money)
user = User(name, idcard, phone, card)
cls.dict_c ={cardnum:user}
dict_m1 = {cardnum:money}
cls.dict_l = {cardnum:psw1}
cls.dict_m.update(dict_m1)
print('开户成功,你的账号为%s,密码为%s,请牢记!'%(cardnum,psw1))
print(cls.dict_m)
else:
print('输入的密码不一致,请重新输入')
#查询信息
@classmethod
def index(cls):
if cls.n:
print('卡已被锁定')
return
print('查询余额')
for i in cls.dict_l:
pass
a = cls.dict_m[i]
print('余额为:%d'%a)
#取款
@classmethod
def draw(cls):
if cls.n:
print('卡已被锁定')
return
qnum = int(input('请输入你要取款的金额:'))
for i in cls.dict_l:
pass
cls.dict_m[i] -= qnum
print('您现在的余额为:',cls.dict_m[i])
print(cls.dict_m)
# 存款
@classmethod
def save(cls):
if cls.n:
print('卡已被锁定')
return
qnum = int(input('请输入你要存款的金额:'))
for i in cls.dict_l:
pass
cls.dict_m[i] += qnum
print('您现在的余额为:',cls.dict_m[i])
print(cls.dict_m)
#转账
@classmethod
def send(cls):
if cls.n:
print('卡已被锁定')
return
zhanghao = input('请输入要转账的号码:')
znum = int(input('请输入要转账的金额:'))
for i in cls.dict_l:
pass
cls.dict_m[i] -= znum
cls.dict_m[zhanghao] += znum
print(cls.dict_m)
print('转账成功')
#修改密码
@classmethod
def change_psw(cls):
if cls.n:
print('卡已被锁定')
return
for i in cls.dict_l:
pass
x_psw = input('请输入你的新密码:')
cls.dict_l[i] = x_psw
print('修改密码成功,新密码为:%s'%x_psw)
#锁卡
@classmethod
def suo(cls):
cls.n = True
print('锁卡成功')
return
#开锁
@classmethod
def opensuo(cls):
cls.n = False
print('开卡成功')
return
main.py 主方法
from day03.ATM.atm import ATM
import time
if __name__ == '__main__':
ATM.welcome()
time.sleep(1)
while True:
num = ATM.select()
#登录
if num == '1':
ATM.login()
#开户
elif num == '2':
ATM.openUser()
#退出系统
elif num == '0':
print('退出系统')
with open ('user.text','w') as f2:
f2.write(str(ATM.dict_c))
break
elif ATM.islogin:
#查询
if num == '3':
print('查询')
ATM.index()
#取款
if num == '4':
print('取款')
ATM.draw()
if num == '5':
print('存款')
ATM.save()
if num == '6':
print('转账')
ATM.send()
if num == '7':
print('改密码')
ATM.change_psw()
if num == '8':
print('锁卡')
ATM.suo()
if num == '9':
print('解锁')
ATM.opensuo()
else:
print('未登录,请登录')
continue