您的位置:首页 > 编程语言 > Python开发

python中ATM系统的实现

2019-07-29 21:00 99 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/qq1438438/article/details/97681118

‘’’
ATM系统
卡:卡号,密码,金额,锁
用户:name,idcard,phonenum,card
ATM系统:
属性:用户列表 登录状态
行为: 1.登陆 2.开户 3.查询 4.取款 5.存款 0.退出
6.转账 7.改密 8.锁卡 9.解锁
‘’’
‘’’
import time
import random
import pickle
class Card:
def init(self,kahao,mima,money,suo=False):
self.kahao=kahao
self.mima=mima
self.money=money
self.suo=suo
class Person:
def init(self,name,idcard,phonenum,card):
self.name=name#input(‘请输入姓名:’)
self.idcard=idcard#input(“请输入身份证号:”)
self.phonenum=phonenum#input(‘请输入手机号:’)
self.card=card
class ATM:
i=1
personDict={}
islogin=None
@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
@classmethod
def getcard(cls):
while 1:
kahao=’’
for i in range(6):
kahao+=str(random.randrange(0,10))
if kahao not in cls.personDict:
# return kahao
return kahao

@classmethod
def openUser(cls):
name = input("请输入您的姓名:")
idcard = input("请输入您的身份证号码:")
phonenum = input("请输入您的电话号码:")
psd = input("请设置您的密码:")
psd2 = input("请确认您的密码:")
if psd == psd2:
mon = int(input("请输入您的预存余额:"))
if mon > 0:
cardnum = cls.getcard()
card = Card(cardnum, psd, mon)
user = Person(name, idcard, phonenum, card)
cls.personDict[cardnum] = user
print("开卡成功,您的卡号为%s,请牢记..." % cardnum)

else:
print("预存余额非法,开卡失败...")

else:
print("两次输入密码不一致,开卡失败...")
@classmethod
def login(cls):
if cls.i>2:
# cls.personDict.get(cls.islogin).card.suo=True
print('的卡已被锁你住,请解锁')
# cls.personDict.get(cls.islogin).card.suo = True
else:
cardnum=input('请输入您的卡号:')
user=cls.personDict.get(cardnum)
if user:
psd=input('请输入您的密码:')
if psd==user.card.mima:
print('恭喜你登陆成功')
cls.islogin=cardnum
else:
cls.i+=1
print('密码错误,登陆失败')
else:
print('卡号不存在')
@classmethod
def search(cls):
if cls.islogin:
print("您当前的余额为%d" % (cls.personDict.get(cls.islogin).card.money))
else:
print("请登录后查询")

@classmethod
def qukuan(cls):
if cls.islogin:
n = int(input('请输入取款金额:'))
if n>cls.personDict.get(cls.islogin).card.money:
print('你卡里没那麽多钱')
else:
cls.personDict.get(cls.islogin).card.money -= n
else:
print("请登录后取款")
@classmethod
def cunkuan(cls):
if cls.islogin:
n = int(input('请输入存款金额:'))
cls.personDict.get(cls.islogin).card.money += n
else:
print("请登录后存款")

@classmethod
def zhuan(cls):
if cls.islogin:
kahao=int(input('请输入转帐账号:'))
n = int(input('请输入转帐金额:'))
if n>cls.personDict.get(cls.islogin).card.money:
print('你卡里没那麽多钱')
else:
cls.personDict.get(cls.islogin).card.money -= n
else:
print("请登录后转帐")
@classmethod
def mima(cls):
if cls.islogin:
print('您的原密码为%s'%cls.personDict.get(cls.islogin).card.mima)
mima=input('请输入新的密码:')
cls.personDict.get(cls.islogin).card.mima=mima
print('恭喜你改密成功')
else:
print("请登录后改密")
@classmethod
def suo(cls):
cls.i=3
print('您的卡已经被锁住')
@classmethod
def jiesuo(cls):
cls.i=0
print('解锁成功')

if name == ‘main’:
ATM.welcome()
try:
with open(‘use.txt’,‘rb’)as f:
ATM.personDict=pickle.load(f)
except:
pass
while True:
time.sleep(1)
print(ATM.personDict)
num = ATM.select()
if num == “2”:
print(“开户”)
ATM.openUser()
elif num==‘1’:
print(‘登陆’)
ATM.login()
elif num==‘3’:
print(‘查询’)
ATM.search()
elif num == ‘4’:
ATM.qukuan()
elif num == ‘5’:
ATM.cunkuan()
elif num == ‘6’:
ATM.zhuan()
elif num == ‘7’:
ATM.mima()
elif num == ‘8’:
ATM.suo()
elif num==‘9’:
ATM.jiesuo()
elif num == “0”:
print(“退出”)
with open(‘user.txt’,‘rb’)as f2:
pickle.dump(ATM.personDict,f2)
break
else:
print(“选择有误请重新选择…”)

‘’’

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: