python模拟银行ATM程序设计.doc

上传人:小** 文档编号:93523981 上传时间:2019-07-23 格式:DOC 页数:14 大小:199.01KB
返回 下载 相关 举报
python模拟银行ATM程序设计.doc_第1页
第1页 / 共14页
python模拟银行ATM程序设计.doc_第2页
第2页 / 共14页
python模拟银行ATM程序设计.doc_第3页
第3页 / 共14页
python模拟银行ATM程序设计.doc_第4页
第4页 / 共14页
python模拟银行ATM程序设计.doc_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《python模拟银行ATM程序设计.doc》由会员分享,可在线阅读,更多相关《python模拟银行ATM程序设计.doc(14页珍藏版)》请在金锄头文库上搜索。

1、第2次综合训练报告题目:银行ATM模拟程序 姓 名:张也白专 业:安全工程班 级:通风15-1班指导教师:邓立军2016 年 5 月 9 日目 录1 摘要12.设计思路13.源程序24.代码分析2参考资料3银行ATM模拟程序1 摘要自动柜员机,即ATM,是指银行在不同地点设置一种小型机器,利用一张信用卡大小的胶卡上的磁带记录客户的基本户口资料(通常就是银行卡),让客户可以透过机器进行提款、存款、转账等银行柜台服务,大多数客户都把这种自助机器称为自动提款机。本文正是通过设计一个ATM模拟模拟程序来实现ATM机系统的基本功能,充分运用自己所学的Python知识进行设计编程。实现的主要功能有:账户信

2、息查询、存款操作、取款操作、修改密码功能、退出系统功能。用户任意选择1张银行卡(输入1位13的数字),输入初始密码123456即可进入ATM操作系统菜单(如图1所示),若输入密码连续错误三次则锁卡自动退出系统(如图2所示),系统菜单各功能(如图3所示)。编写程序时的环境是Python3.4,所以代码中print及input函数可能与python2.X版本有一些差别。参考了教材中第八章面向对象程序设计,编写了两个类包括ATM机类和银行卡Card类,编写了若干个函数以实现整个程序模拟ATM机的各种功能。变量和函数的命名主要使用了Camel命名法,类的命名主要使用了Pascal命名法,程序共189行

3、(含空行),因为时间比较仓促,可能有些地方写的比较乱,有些地方命名也不规范。另外因为对文件的操作不熟练,在网上也没找到太多相关的资料,请多包涵。图1图2图32设计思路程序设计灵感来自银行ATM机,在这里将ATM机的各种功能抽象与简化,设计了银行ATM模拟程序。根据我们日常的生活经验,我们要使用ATM机就需要一张银行卡。运用面向对象的编程方法,把ATM机和银行卡简化并抽象为两个类:1)银行卡类,主要用来存储账户信息,包括卡号、密码、用户名、余额四个属性,另外写了一个构造方法。2)ATM机类,主要用来查询和修改银行卡的信息,写了五个方法,以银行卡类的对象作为参数,实现银行卡查询(包括卡号、密码、用

4、户名、余额)、存款(银行卡余额增加)、取款(银行卡余额减少)、修改银行卡密码、退卡(退出程序)等功能。写好了类后,我们开始模拟ATM机的操作过程。首先,使用ATM机我们需要插卡,从文件中读取银行卡信息(想法并没有能很好的实现),我们预设三张银行卡,用户选择(13号银行卡),根据银行卡信息创建一个对应的银行卡对象,以及ATM机对象。插卡后,我们需要用户输入密码。如果输入密码与银行卡密码匹配就进入ATM系统,如果输入密码错误打到三次就锁卡退出。进入ATM系统,用户可以选择ATM的五个功能:1)银行卡查询,实现的方法就是使用print函数输出银行卡的卡号、密码、用户名、余额。2)存款,实现的方法就是

5、把银行卡的余额+X100,(X为正整数),约束条件为存款金额大于100小于10000。3)取款,实现的方法就是把银行卡的余额-X100,(X为正整数),约束条件为取款金额不大于存款金额且不大于5000。4)密码修改,实现的方法就是把银行卡的密码修改。首先要输入原密码,如果原密码输入错误,则修改密码失败,成功后需要用户输入新密码两次,如果两次密码一致则修改成功,否则密码修改失败。5)退卡,使用exit()函数退出程序3 源程序1. #!/usr/bin/python2. # -*- coding: utf-8 -*-3. #author:张也白 PythonVersion:3.44. impor

6、t os5. 6. class DepositCard:7. cardID = 08. cardPWD = 1234569. balance = 010. userName = 000011. def _init_(self,cardID,cardPWD,userName,balance):12. self.cardID = cardID13. self.cardPWD = cardPWD14. self.userName = userName15. self.balance = balance16. 17. class ATM:18. def deposite(self,card):#存款1

7、9. divide()20. info = 存款n21. print(info.center(50)22. cash=input(提示:存款金额为100的倍数,金额要求在100-10000之间n)23. if int(cash)%100=0 and int(cash)0 and int(cash)=int(choice)*100:42. 43. card.balance-=int(choice)*10044. info = 取款成功n45. print(info.center(50)46. elif int(choice)=3 and card.balance=500:47. card.bal

8、ance-=50048. info = 取款成功n49. print(info.center(50)50. elif int(choice)=4:51. cash=input(n提示:取款金额为100的倍数,且总额不超过5000元n请52.输入你要取的金额:)53. if int(cash)=100 and int(cash)=int(cash):55. card.balance-=int(cash)56. info = 取款成功n57. print(info.center(50)58. else:59. print(输入错误或卡内余额不足)60. else:61. print(输入错误或卡内

9、余额不足)62. else:63. print(输入错误或卡内余额不足)64. 65. 66. print(nnThe balance of the card :%d%card.balance)67. divide()68. 69. def modify(self,card):#修改密码70. divide()71. info = 修改密码n72. print(info.center(50)73. inStr=input(请输入原密码:)74. if inStr!=card.cardPWD:75. info = 密码错误n76. print(info.center(50)77. else:78

10、. newPWD1=input(请输入新密码:)79. newPWD2=input(请再次输入新密码:)80. if newPWD1 = newPWD2:81. card.cardPWD=newPWD182. info = n密码修改成功,请牢记你的新密码n83. print(info.center(50)84. else:85. info = n密码不一致n86. print(info.center(50) 87. divide()88. 89. def query(self,card):#查询90. divide()91. info = 查询成功n92. print(info.center(50)93. print(银行卡信息.center(50)94. print(%-10s%-10s%-10s%-10s%(卡号,密码,姓名,余额)95. print(%-11s%-11s%-11s%-11s%(str(card.cardID),card.cardPWD,card.userNam96. e,str(card.balan

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 管理学资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号