Python ATM功能实现代码实例
编写ATM程序实现下述功能,数据来源于文件db.txt
1、充值功能:用户输入充值钱数,db.txt中该账号钱数完成修改
2、转账功能:用户A向用户B转账1000元,db.txt中完成用户A账号减钱,用户B账号加钱
3、提现功能:用户输入提现金额,db.txt中该账号钱数减少
4、查询余额功能:输入账号查询余额
登录功能
用户登录成功后,内存中记录下该状态,上述功能以当前登录状态为准,必须先登录才能操作
代码如下
importos
user_staus={'username':None}
defad_credit(username,amount):
"""
充值功能
:paramusername:
:paramamount:
:return:
"""
ifuser_staus['username']isNone:
login()
withopen('db.txt','rt',encoding='utf-8')asf1,\
open('db.txt.swap','wt',encoding='utf-8')asf2:
whileTrue:
cont=f1.readline()
iflen(cont)==0:
break
name,remain=cont.strip().split(':')
ifusernameinname:
remain=int(remain)+int(amount)
f2.write('{}:{}\n'.format(name,remain))
print('充值成功,{}的余额为{}'.format(username,remain))
else:
f2.write(cont)
os.remove('db.txt')
os.rename('db.txt.swap','db.txt')
deftransfer(user_out,user_in,amount):
'''3
转账功能
:paramuser_out:
:paramuser_in:
:paramamount:
:return:
'''
ifuser_staus['username']isNone:
login()
withopen('db.txt','rt',encoding='utf-8')asf1,\
open('db.txt.swap','wt',encoding='utf-8')asf2:
userinfo={}
forlineinf1:
name,remind=line.strip().split(':')
userinfo[name]=int(remind)
ifuser_outnotinuserinfo:
print('用户不存在')
return
ifuser_innotinuserinfo:
print('收款方不存在')
return
ifuser_outinuserinfoanduser_ininuserinfo:
ifuserinfo[user_out]>=int(amount):
userinfo[user_out]-=int(amount)
userinfo[user_in]+=int(amount)
print('转账成功,已成功从{}向{}汇款{}'.format(user_out,user_in,amount))
elifuserinfo[user_out]=int(amount):
userinfo[username]-=int(amount)
print('已从余额中取出{},现余额为{}'.format(amount,userinfo[username]))
elifuserinfo[username]
以下是模拟结果
'''
/Users/chenfeng/PycharmProjects/ATM/venv/bin/python/Users/chenfeng/PycharmProjects/ATM/main.py
输入用户名xilou
输入密码666
登陆成功
请输入你想使用的功能序号
1:充值
2:转账
3:提现
4:查询余额
0:登出
1
输入用户名:xilou
输入充值金额:200
充值成功,xilou的余额为700
请输入你想使用的功能序号
1:充值
2:转账
3:提现
4:查询余额
0:登出
2
请输入转账方:xilou
请输入接收方:heiren
输入转账金额:200
转账成功,已成功从xilou向heiren汇款200
请输入你想使用的功能序号
1:充值
2:转账
3:提现
4:查询余额
0:登出
3
输入用户名:xilou
输入提现金额100
已从余额中取出100,现余额为400
请输入你想使用的功能序号
1:充值
2:转账
3:提现
4:查询余额
0:登出
4
输入用户名:xilou
当前余额为:400
请输入你想使用的功能序号
1:充值
2:转账
3:提现
4:查询余额
0:登出
0
已成功登出
Processfinishedwithexitcode0
'''以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。