python中ATM系统的实现
‘’’
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(“选择有误请重新选择…”)
‘’’
- ATM系统实现[7]——服务选择窗口[00原创]
- ATM系统实现[8]——转帐查询窗口[00原创]
- Python之实现简单的注册登录系统
- ATM系统实现[6]——密码面板组件[00原创]
- 使用Python MrJob的MapReduce实现电影推荐系统
- 聊聊Python用rpc实现分布式系统调用的那些事
- python实现程序重启和系统重启
- ATM系统实现[10]——转帐窗口[00原创]
- 应用Python快速实现系统原型
- Linux中使用shell+python实现监控系统负载+邮件报警
- 使用python获取CPU和内存信息的思路与实现(linux系统)
- python端口扫描系统实现方法
- python实现的系统实用log类实例
- python 10min系列之实现增删改查系统
- Python使用multiprocessing实现一个最简单的分布式作业调度系统
- ATM系统实现[11]——取款窗口[00原创]
- ATM系统实现[18]——数据管理类[00原创]
- 使用Python实现一个小型的航空订票系统(1)
- <4>c语言实现ATM存取款系统(链表)
- 用Python和Django实现多用户博客系统——UUBlog