如何使用Python实现ATM系统

小编给大家分享一下如何使用Python实现ATM系统,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

案例剖析:

1.atm主页面显示.2.账号验证.3.查询余额.4.存款.5.取款.6.修改密码.

ps:我的思路是将以上的功能分成几大块,通过函数,循环和返回值来实现,话不多说直接上代码.

代码:

1.atm主页面显示

defindex(nowUser):
print('='*10,'自动存取款机','='*10)
print(getName(nowUser),'欢迎登陆!')
print('{:<10}{:^10}{:<10}'.format('1.修改密码','','2.查询余额'))
print('{:<10}{:^12}{:<10}'.format('3.存钱','','4.取钱'))
print('输入\'exit\'退出操作')

ps:使用format来进行格式的定义.

2.账号验证

defgetId(nowUser):
'''获取当前用户在列表中的位置'''
index=-1
foriinrange(len(userList)):
ifuserList[i]['cardid']==nowUser:
index=i#如果用户存在则返回它在列表中的下标
break
returnindex#如果用户不存在则返回-1


defgetName(nowUser):
'''获取用户姓名'''
index=getId(nowUser)
returnuserList[index]['name']


defcheckUser(cardid,password):
'''自定义用户检测功能,包括卡号及密码检测'''
index=getId(cardid)
ifindex==-1:#如果用户不存在
return'noCardId'#卡号不存在
else:
ifuserList[index]['cardid']==cardidanduserList[index]['password']==password:#用户存在并且账号密码正确
return'login'#密码正确
else:
return'errorPW'#密码错误

ps:使用循环和返回值来进行账号的对比和检测.

3.查询余额

defshowMoney(nowUser):
'''查询余额'''
index=getId(nowUser)
print('您当前的账户余额为:',userList[index]['money'],'元')

4.存钱

defsaveMoney(nowUser,money):
'''存钱'''
index=getId(nowUser)
print("输入的金额是:",money)
userList[index]['money']+=int(money)
print('存入成功!')

5.取钱

defdrawMoney(nowUser,money):
'''取钱'''
index=getId(nowUser)
nowMoney=userList[index]['money']
ifnowMoney>=int(money):
userList[index]['money']-=int(money)
print('已取出',money,'元')
else:
print('账户余额不足!')

6.修改密码

defchangePW(nowUser,newPW):
'''修改密码'''
index=getId(nowUser)
userList[index]['password']=newPW

7.定义用户操作函数

#用户操作
defuserChoice(nowUser):
choices=['1','2','3','4','exit']
#循环获取用户操作
whileTrue:
index(nowUser)
choice=input('请选择操作:')
ifchoice=='1':#选择修改密码
oldPW=input('请输入原始密码:')
flag=checkUser(nowUser,oldPW)
ifflag=="errorPW":
#print('密码错误!请重新输入,或输入\'back\'返回上一级')
print('密码错误!返回主界面')
elifflag=='login':
changePW(nowUser,input('请输入新密码:'))
print('修改密码成功!')
continue
elifchoice=='2':#选择查询余额
showMoney(nowUser)
continue
elifchoice=='3':#选择存钱
saveMoney(nowUser,input('请输入存入金额:'))
continue
elifchoice=='4':#选择取钱
drawMoney(nowUser,input('请输入取出金额:'))
continue
elifchoice=='exit':
main()#返回主界面
elifchoicenotinchoices:
print('错误操作,请重新输入选项!')
continue

8.定义main主函数

#主界面
defmain():
#定义错误次数
errorTime=0
iferrorTime>=3:#错误次数达三次退出系统后清零
errorTime=0
whileTrue:
#crs登陆主界面
print('='*10,'自动存取款机','='*10)
nowUser=''
#用户输入卡号和密码
cardid=input('请输入卡号:')
password=input('请输入密码:')

#判断卡号密码是否存在正确
#卡号不存在
flag=checkUser(cardid,password)

ifflag=='noCardId':
print('卡号不存在!请重新输入')
continue

#密码错误
elifflag=='errorPW':
errorTime+=1
print('密码错误!错误次数达三次将自动退出本系统!')
print("错误次数:",errorTime)
iferrorTime>=3:#错误次数达三次自动退出
print('密码输错三次,自动退出系统!')
exit(0)
continue

#卡号密码正确进入系统
else:
nowUser=cardid
userChoice(nowUser)

9.最后定义函数主入口,进行ATM系统的测试

if__name__=='__main__':

main()

收获:

通过ATM案例 ,将之前学习的Python基础重新进行了一次巩固,梳理和融会贯通,个人感觉 Python的函数和返回值是个特别神奇的东西,当然这个案例还有很大的改进空间,大家有什么好的建议也可以给我留言,我之后会慢慢进行改良哒!

以上是“如何使用Python实现ATM系统”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注恰卡编程网行业资讯频道!

发布于 2021-03-24 01:21:08
分享
海报
182
上一篇:Python中怎么实现名片管理系统 下一篇:如何解决docker与vmware的冲突问题
目录

    推荐阅读

    忘记密码?

    图形验证码