个人作业三-ATM管理系统
| 博客班级 | https://edu.cnblogs.com/campus/ahgc/AHPU-SE-19 |
| ---- | ---- | ---- |
| 作业要求 | https://edu.cnblogs.com/campus/ahgc/AHPU-SE-19/homework/11477 |
| 作业目标 | ATM管理系统 |
| 学号 |3190704230 |
源代码
import time
import json
info = """
ATM柜员管理系统
1,登陆系统
2,注册帐号
3,冻结帐号
4,显示已经注册的用户
5,退出
"""
logininfo = """ #登录成功后显示的界面
1,取款
2,存款
3,转账
4,查询余额
5,修改密码
6,查看账户信息
7,退出该界面
"""
def enroll(x): #注册用户
info = ['passwd', 'money']
cardin = raw_input("请输入注册的id:")
d = readfile()
if cardin not in d:
x['cardid'] = cardin
x['status'] = 0
for j in info:
input = raw_input("请输入用户的%s:" % j)
x[j] = input
else:
print "注册成功"
return cardin,x
else:
print '用户已经存在'
print d.get(cardin)
main1()
def login(cardin,passwd): #用户登录函数
print logininfo
select1 = raw_input("输入你需要的选项:")
d=readfile()
if select1 == '1':
money3 = input("请输入取款金额:")
x=d.get(cardin).get('money')
if int(x) < money3:
print "余额不足"
login(cardin,passwd)
else:
x1 = d.get(cardin).get('money')
y1=int(x1)-money3
d[cardin].update({'money': str(y1)})
addfile(d)
print time.ctime(),"取款成功"
login(cardin,passwd)
elif select1 == '2':
money2 = input("请输入存款金额:")
x2=d.get(cardin).get('money')
y2=int(x2)+money2
print time.ctime(),"存款成功"
d[cardin].update({'money': str(y2)})
addfile(d)
login(cardin,passwd)
elif select1 == '3':
cardid2 = raw_input("请输入要转账的账户id:")
if cardid2 in d.keys():
money1 = input("请输入转账的金额:")
if int(d.get(cardin).get('money')) < money1:
print "余额不足"
login(cardin)
else:
x3=int(d.get(cardin).get('money'))
y3= x3 - money1
d[cardin].update({'money':str(y3)})
x4=int(d.get(cardid2).get('money'))
y4=x4+money1
d[cardid2].update({'money': str(y4)})
print time.ctime(),"转账成功"
addfile(d)
login(cardin,passwd)
else:
print "该用户不存在"
login(cardin,passwd)
elif select1 == '4':
print "用户余额:{0}元".format(d.get(cardin).get('money'))
login(cardin,passwd)
elif select1 == '5':
newpass = raw_input("请输入新密码:")
if newpass == d.get(cardin).get('passwd'):
print "与旧密码重复"
login(cardin,passwd)
else:
d[cardin].update({'passwd': newpass})
addfile(d)
print "成功修改密码"
login(cardin,passwd)
elif select1 == '6':
print d.get(cardin)
login(cardin,passwd)
else:
print "请输入正确的选项"
main1()
def mask(): #用户冻结函数
d=readfile()
cardin = raw_input("输入将要冻结的卡号:")
if cardin in d.keys():
if d.get(cardin).get('status') == 1:
froze=raw_input("该用户已经被冻结,是否要解除冻结?是输入1,否输入0:")
if froze == 0:
main1()
elif froze == '1':
d[cardin].update({'status':0})
addfile(d)
print "成功解除冻结"
main1()
else:
print "请输入正确的选项"
mask()
else:
passwd = raw_input("请输入该用户的密码")
if passwd == d.get(cardin).get('passwd'):
d[cardin].update({'status': 1})
addfile(d)
print "用户冻结成功"
main1()
else:
print "密码错误"
mask()
else:
print "此用户不存在"
def addfile(x): #将信息写入文件
filename = 'atm.txt'
with open(filename,'w') as f_atm:
json.dump(x,f_atm)
def readfile(): #从文件中读取信息
filename = 'atm.txt'
with open(filename) as f_atm:
x = json.load(f_atm)
return x
def main1(): #定义的主函数
print info
while True:
option = input("请输入需要的功能:")
if option == 1:
cardin = raw_input("请输入你要登陆的卡号:")
d = readfile()
if cardin in d.keys():
if d.get(cardin).get('status') == 1:
print "该用户已经被冻结"
main1()
else:
passwd = raw_input("请输入该用户的密码:")
if passwd == d.get(cardin).get('passwd'):
print time.ctime(),"登陆成功"
login(cardin,passwd)
else:
print "密码错误"
main1()
else:
print "该用户不存在请先注册"
print info
elif option == 2:
n = {}
c,d1=enroll(n)
d = readfile()
d[c] = d1
addfile(d)
main1()
elif option == 3:
mask()
main1()
elif option == 4:
if d.keys():
print d.keys()
main1()
else:
print "目前还没有用户注册"
main1()
elif option == 5:
exit()
else:
print "请输入正确的选项"
main1()
任务内容 | 计划完成所需时间(min) | 实际完成所需时间(min) |
---|---|---|
计划 | 10 | 10 |
完成任务所需时间,并规划工作步骤 | 10 | 10 |
开发 | 150 | 200 |
需求分析 | 0 | 0 |
生成设计文档 | 0 | 0 |
设计复审 | 0 | 0 |
代码规范 | 0 | 0 |
具体设计 | 10 | 10 |
具体编码 | 5 | 5 |
代码复审 | 7 | 7 |
测试 | 20 | 20 |
报告 | 0 | 0 |
测试报告 | 0 | 0 |
计算工作量 | 10 | 10 |
事后总结,并提出过程改进计划 | 10 | 20 |
项目小结 | ||
这次编程,在网络上找的python代码,起初运行不了。虽然大部分都看不懂,但还是尝试着不断修改,最终还是完成了。 | ||
希望以后自己的代码编写能力能更进一步吧,不然在煎熬了。 |