收藏 分销(赏)

python模拟银行atm程序设计.pdf

上传人:曲**** 文档编号:226561 上传时间:2023-03-09 格式:PDF 页数:14 大小:578.69KB
下载 相关 举报
python模拟银行atm程序设计.pdf_第1页
第1页 / 共14页
python模拟银行atm程序设计.pdf_第2页
第2页 / 共14页
python模拟银行atm程序设计.pdf_第3页
第3页 / 共14页
python模拟银行atm程序设计.pdf_第4页
第4页 / 共14页
python模拟银行atm程序设计.pdf_第5页
第5页 / 共14页
点击查看更多>>
资源描述

1、事 辽宁工程我不大学0切 LIAONING TECHNICAL UNIVERSITY第2次综合训练报告题目:银行ATM模拟程序 目录1 摘要.12.设计思路.I3.源程序.64.代码分析.2参考资料.3银行ATM模拟程序1摘要自动柜员机,即ATM,是指银行在不同地点设置一种小型机器,利用一张信用卡大小的胶 卡上的磁带记录客户的基本户口资料(通常就是银行卡),让客户可以透过机器进行提款、存 款、转账等银行柜台服务,大多数客户都把这种自助机器称为自动提款机。本文正是通过设计一个ATM模拟模拟程序来实现ATM机系统的基本功能,充分运用自己所 学的Python知识进行设计编程。实现的主要功能有:账户信

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

3、共189行(含空行),因为时间比较 仓促,可能有些地方写的比较乱,有些地方命名也不规范。另外因为对文件的操作不熟练,在 网上也没找到太多相关的资料,请多包涵。1欢迎使用小白白ATM卡号 1001 1002 1003密码 123456 123456 123456银行卡信息 姓名张大白张二白张三白余额 1000 2000 3000清选择一张银行卡(P3):2你插入了银行卡1。02清输入密码:123456密码正确,进入系统演款款如卡 查存取修退 12 3 4 5清选择:|图12欢迎使用小白白ATM卡号 1001 1002 1003密码123456123456123456银行卡信息姓名张大白张二白张三

4、白余额100020003000请选择一张银行卡(T3):2你插入了银行卡1002 请输入密码:214565 密码错误次数1,请重新输入密码 清输入密码:789456 密码错误次数2,请重新输入密码 清输入密码:123654 密码错误次数3,请重新输入密码 密码错误次数过多,退出系统图23ar iro hu 5前寸+ni no iriaou 一向户码畔市1 ml:lleRV翡&*RI ooi卧 tra蠢卡 s 1234匕V-仙.A?non升格历TH b a1 tun.-uF t Ke aid z JUUUI更J3户信3星第 更6 rB10 i tno2 200国工1罂皆/翳富媪?吗倦旦总5不过匕

5、。元4*功Th,bal of ti card i iOOOI I,ill|愉依41i um lono图342设计思路程序设计灵感来自银行ATM机,在这里将ATM机的各种功能抽象与简化,设计了银行ATM 模拟程序。根据我们日常的生活经验,我们要使用ATM机就需要一张银行卡。运用面向对象的编程方 法,把ATM机和银行卡简化并抽象为两个类:1)银行卡类,主要用来存储账户信息,包括卡号、密码、用户名、余额四个属性,另外写 了一个构造方法。2)ATM机类,主要用来查询和修改银行卡的信息,写了五个方法,以银行卡类的对象作为 参数,实现银行卡查询(包括卡号、密码、用户名、余额)、存款(银行卡余额增加)、取款

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

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

8、d:7.cardID=08.cardPWD=123456,9.balance=010.userName-000011.def_init_(self,cardID,cardPWD,userName,balance):12.self.cardlD=cardID13.self.cardPWD=cardPWD14.self.userName-userName15.self.balance=balance16.17.class ATM:18.def deposite(self,card):#存款19.divide()20.info=存款n21.print(info.center(50)22.cash=i

9、nput(提示:存款金额为100的倍数,金额要求在10(M0000之间n)23.if int(cash)%100=0 and int(cash)0 and int(cash)=int(choice)*100:43.card.balance-=int(choice)*10044.info=取款成功n”45.print(info.center(50)46.47.elif int(choice)=3 and card.balance=500:c ardbalanc e-=5 0048.info=取款成功n”49.50.print(info.center(50)elif int(choice)=4:5

10、1.cash=input(n提示:取款金额为100的倍数,且总额不超过5000元n请53.if int(cash)=100 and int(cash)=int(cash):55.card.balance-=int(cash)56.info=取款成功n57.58.print(info.center(50)else:59.prints输入错误或卡内余额不足)60.else:61.print。输入错误或卡内余额不足)62.else:63.64.printC输入错误或卡内余额不足,)65.66.print(nnThe balance of the card:%d%card.balance)67.div

11、ide()768.69.def modify(self,card):#修改密码70.divide()71.info=修改密码n72.print(info.center(50)73.inStr=inputC请输入原密码:,)74.if inStr!气ard.cardPWD:75.info=密码错误n76.print(info.center(50)77.else:78.newPWDl=inputC 请输入新密码:,)79.newPWD2=input。请再次输入新密码:,)80.if newPWDl=newPWD2:81.card.cardPWD=newPWD 182.info=n密码修改成功,请牢

12、记你的新密码n83.print(infb.center(50)84.else:85.info=n 密码不一致n86.print(info.center(50)87.divide()88.89.def query(self,card):#查询90.divide()91.info=查询成功n”92.print(info.center(50)93.print,银行卡信息1center(50)94.print(%-10s%-10s%-10s%-10s%C 卡号?密码?姓名?余额?95.print(%-lls%-ll s%-ll s%-ll s%(str(c ar d.c ardl D),c ard.c

13、 ardP WD,c ard.us erNam96.e,str(card.balance)97.divide()98.def rcfundCard(sclf,card):#退卡99.divide()100.print。(假装把卡吐出来为101.printf谢谢使用,请收好您的卡片)8102.divide()103.def divide():104.print(n-n)105.def init():106.f=open(D:a.txf,w)107.info=108.1001 123456 张大白 1000109.1002 123456 张二白 2000110.1003 123456 张三白 30

14、00111.f.write(info)112.close()113.s=open(D:a.txt,r)114.print。银行卡信息center(50)115.print(%-l Os%-1 Os%-1 Os%-10s%(卡号?密码?姓名?余额)116.for line in s.readlines():117.for i in range(0,4):118.print(%-11 s%line.split()i,end=)119.if i=3:120.print()121.s.close122.divide()123.return124.def createCard():125.choice=

15、inputC请选择一张银行卡(13)126.if int(choice)1:127.newcard=DepositCard(1001,”23456?张大白;1000)128.login(newcard)129.elif int(choice)=2:130.newcard=DepositCard(1002;123456?张二白;2000)131.login(newcard)132.elif int(choice)=3:133.newcard=DepositCard(1003;123456?张三白;3000)134.login(newcard)135.else:9136.print。输入有误,退出

16、系统)137.exit()138.def login(card):139.divide()140.print(n 你插入了银行卡sn%card.cardID)141.sum=0142.pwd=143.while pwd!=card.cardPWD:144.pwd=input(n 请输入密码:,)145.sum+=l146.if pwd card.cardPWD:147.break148.else:149.printC密码错误次数4请重新输入密码,sum)150.if sum 2:151.print(n密码错误次数过多,退出系统)152.exit()153.printCn密码正确,进入系统,)1

17、54.divide()155.XiaoBaiATM=ATM()156.menu(XiaoBaiATM,card)157.def start():158.divide()159.print(tt欢迎使用小白白ATM)160.divide()161.init()162.createCard()163.def menu(XiaoBaiATM,card):164.options=H查询账户信息存款;3:取款修改密码5退卡?165.fora in options.items():166.print(aO,al)167.choice=input(n 请选择:)168.if int(choice)=1:16

18、9.Xiao Bai AT M.query(card)10170.menu(Xiao Ba i AT M,c ard)171.elif int(choice)=2:172.XiaoBaiATM.deposite(card)173.menu(Xiao Ba i AT M,c ard)174.elif int(choice)=3:175.XiaoBaiATM.withdraw(card)176.menu(Xiao Ba i AT M,c ard)177.elif int(choice)=4:178.Xiao Ba i AT M.modify(c ard)179.menu(Xiao Ba i AT

19、M,c ard)180.elif int(choice)=5:181.Xiao Bai AT M.refundCard(card)182.else:183.print,输入有误)184.menu(XiaoBaiATM,card)185.print()186.def main():187.start()188.if _name_=_main_189.main()4代码分析首先执行第X行,进行输入。然后在执行X行时跳转到第X行,运行第一个函数 然后运行第X行,到第X行时跳转到第X行执行第二个函数接下来执行第X行参考资料1 xxxx(参考资料格式:文章题目+点号+空格+网址+英文冒号+空格+网址)2

20、 xxxx11辽宁工程技术大学安全科学与工程学院 2015/2016学年第二学期综合训练报告评分表综合训练题目:所在班级:项目内容满分实评匕匕 hj t PI能熟练应用所学知识,有一定查阅文献及运用文献资料能力10理论依据充分,数据准确,公式推导正确10能应用计算机软件进行编程、资料搜集、排版、制图等10能体现创造性思维,或有独特见解10成 果 质 量模型正确、合理,各项技术指标符合要求。15摘要叙述简练完整,假设合理、问题分析正确、用语准确、结论严谨合理;问题处理科学、条理分明、语言流畅、结构 严谨、版面清晰25报告主要部分齐全、合理,符号统一、编号齐全。格式、绘 图、表格、插图等规范准确,符合报告要求15正文字数不少于2000字,不超过15000字5总分100小组成员:指导教师评语:指导教师签名:年 月 日(注:1.此页附在综合训练报告之后;2.综合成绩按百分比计算)12

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 通信科技 > 开发语言

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服