导入库
import random
import string
import time
主菜单
usrinfo={} #总字典
main_screen = """
ATM管理系统
1、登陆
2、注册
3、退出
"""
login_screen = """
1、取款
2、存款
3、转账
4、查询账户信息
5、销户
6、修改密码
7、返回主页
"""
def Welcom_screen(fun):
def wapper(args,**kwargs):
print("WELCOM TO USE ATM....")
recive=fun(args,**kwargs)
return recive
return wapper
登录
def login(): #登陆函数
print("请登陆(q退出登陆)...")
while True:
idnum = input("卡号:")
if idnum in usrinfo.keys():
while True:
passwd = input("密码:")
if passwd == usrinfo.get(idnum).get(‘passwd‘):
if usrinfo.get(idnum).get(‘status‘)0:
print("登陆成功...")
login_operation(idnum)
else:
print("登录失败...\n账户已被冻结...")
time.sleep(2)
main()
else:
print("密码错误,请重新输入...")
time.sleep(3)
break
elif idnum‘q‘:
break
else:
print("卡号不存在,请重新输入...")
return
@Welcom_screen
def login_operation(idnum): #登陆成功操作
while True:
print(login_screen)
option = input("请选择操作:")
if option == ‘1‘:
draw_down_money(idnum) #取钱
elif option == ‘2‘:
save_money(idnum) # 存钱
elif option == ‘3‘:
trasf_accnt(idnum) # 转账
elif option == ‘4‘:
inquiry(idnum) #查询账户信息
elif option == ‘5‘:
blocked(idnum)
elif option == ‘6‘:
revise_passwd(idnum) # 修改密码
elif option == ‘7‘:
main()
else:
print("请输入正确的操作...")
取款
def draw_down_money(idnum): #取款
while True:
get_money = float(input("请输入取款金额:"))
print("您的取款金额为:%d" % (get_money))
option = input("是否确认(y/n/q(退出)):")
if option‘y‘:
spare_money=usrinfo.get(idnum).get(‘money‘)
if get_money<=spare_money:
new_spare_money=spare_money-get_money
usrinfo[idnum].update({‘money‘:new_spare_money})
print("正在取款....")
time.sleep(4)
print("取款成功...\n即将退出...")
time.sleep(3)
else:
print("余额不足...\n即将退出...")
time.sleep(3)
break
elif option‘n‘:
print("请重新输入...\n")
elif option‘q‘:
break
else:
print("输入错误...")
存款
def save_money(idnum): #存款
while True:
save_money = float(input("请输入存款金额:"))
print("您的存款金额为:%d" % (save_money))
option = input("是否确认(y/n/q(退出)):")
if option‘y‘:
spare_money=usrinfo.get(idnum).get(‘money‘)
new_spare_money=spare_money+save_money
usrinfo[idnum].update({‘money‘:new_spare_money})
print("正在存款....")
time.sleep(3)
print("存款成功...")
print("即将退出...")
time.sleep(3)
break
elif option‘n‘:
print("请重新输入...\n")
elif option‘q‘:
break
else:
print("输入错误...")
转账
def trasf_accnt(idnum): #转账
while True:
transf_cardnum=input("转账卡号:")
if transf_cardnum in usrinfo and usrinfo.get(transf_cardnum).get(‘status‘)0:
transf_money=float(input("转账金额:"))
if transf_money<=usrinfo.get(idnum).get(‘money‘):
spare_my_money=usrinfo.get(idnum).get(‘money‘)
spare_transfer_money=usrinfo.get(transf_cardnum).get(‘money‘)
new_my_money=spare_my_money-transf_money
new_transfer_money=spare_transfer_money+transf_money
usrinfo[idnum].update({‘money‘: new_my_money})
usrinfo[transf_cardnum].update({‘money‘:new_transfer_money})
print("正在转账....")
time.sleep(3)
print("您已经成功向%s帐号用户转账%.2f元" %(transf_cardnum,transf_money))
print("即将退出...")
time.sleep(3)
break
else:
print("对不起,您的余额不足...")
print("即将退出...")
time.sleep(3)
break
else:
print("帐号不存在或已被冻结...")
print("即将退出...")
time.sleep(3)
break
查询账户信息
def inquiry(idnum): #查询账户信息
for i in usrinfo[idnum].items():
print(i)
while True:
print("\n\n")
option=input("退出(q)??
if option‘q‘:
break
else:
print("请输入正确操作...")
销户
def blocked(idnum): #销户
while True:
option = input("是否确认销户(y/n)??
if option == ‘y‘:
new_status=1
usrinfo[idnum].update({‘status‘:new_status})
print("销户中....")
time.sleep(3)
print("销户成功,即将退出登陆,返回主页...")
time.sleep(3)
main()
elif option == ‘n‘:
print("不销户...\n即将退出...")
time.sleep(3)
break
else:
print("输入错误,请重新确认...")
修改密码
def revise_passwd(idnum): #修改密码
new_passwd=input("新密码:")
usrinfo[idnum].update({‘passwd‘:new_passwd})
print("修改密码成功!\ns后退出...")
time.sleep(3)
注册
def register(newinfo): #注册函数
while True:
name = input("请输入用户名:")
id=make_random_id()
if id not in usrinfo:
# pass # 读取文件usrinfo的信息
newinfo[‘cusumer‘] = name
newinfo[‘cardnum‘]=id
newinfo[‘status‘] = 0 # 状态激活
password = input("请输入账户密码:")
newinfo[‘passwd‘] = password
newinfo[‘money‘] =0.00
print("注册成功!")
print("您的卡号:%s" %(id))
return id, newinfo
else:
print("卡号生成失败...\n请重新注册...")
主函数
def main():
print(main_screen)
while True:
option = input("请选择操作:")
if option == ‘1‘: ##登陆
login()
elif option == ‘2‘: ##注册
newinfo={}
usrid,info=register(newinfo)
usrinfo[usrid]=info #字典嵌套
print(usrinfo)
elif option == ‘3‘:
exit()
else:
print("请输入正确的操作!")
主菜单
注册
登录
存款
取款
查询账户信息
转账
修改密码
销户
psp2.1 任务内容 计划完成需要的时间(min) 实际完成需要的时间(min)
Planning 计划 15 12
Estimate 估计这个任务需要多少
时间,并规划大致工作步骤 10 12
Development 开发 120 150
Analysis 需求分析(包括学习新技术) 15 20
Design Spec 生成设计文档 8 9
Design Review 设计复审 9 8
Coding Standard 代码规范 3 2
Design 具体设计 120 110
Coding 具体编码 60 71
Code Review 代码复审 9 7
Test 测试(自我测试,修改代码,提交修改) 16 15
Reporting 报告 8 7
Test Report 测试报告 4 2
Size Measurement 计算工作量 2 1
Postmortem & 事后总结,
Process Improvement Plan并提出过程改进计划 8 9
原文:https://www.cnblogs.com/wufei1133/p/13955571.html