- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
8.11 阶段案例——银行管理系统
从早期的钱庄到现如今的银行,金融行业在不断地变革;随着科技的发展、计算机的普及,计算机技术在金融行业得到了广泛的应用。银行管理系统是一个集开户、查询、取款、存款、转账、锁定、解锁、退出等一系列的功能的管理系统,该系统中各功能的介绍如下。
开户功能:用户在ATM机上根据提示“请输入姓名:”、“请输入身份证号:”、“请输入手机号:”依次输入姓名、身份证号、手机号、预存金额、密码等信息,如果开户成功,系统随机生成一个不重复的6位数字卡号。
查询功能:根据用户输入的卡号、密码查询卡中余额,如果连续3次输入错误密码,该卡号会被锁定。
取款功能:首先根据用户输入的卡号、密码显示卡中余额,如果连续3次输入错误密码,该卡号会被锁定;然后接收用户输入的取款金额,如果取款金额大于卡中余额或取款金额小于0,系统进行提示并返回功能页面。
存款功能:首先根据用户输入的卡号、密码显示卡中余额,如果连续3次输入错误密码,该卡号会被锁定,然后接收用户输入的取款金额,如果存款金额小于0,系统进行提示并返回功能页面。
转账功能:用户需要分别输入转出卡号与转入卡号,如果连续3次输入错误密码,卡号会被锁定。当输入转账金额后,需要用户再次确认是否执行转账功能;如果确定执行转账功能,转出卡与转入卡做相应金额计算;如果取消转账功能,则回退之前操作。
锁定功能:根据输入的卡号密码执行锁定功能,锁定之后该卡不能执行查询、取款、存款、转账等操作。
解锁功能:根据输入的卡号密码执行解锁功能,解锁后能对该卡执行查询、取款、存款、转账等操作。
存盘功能:执行存盘功能后,程序执行的数据会写入本地文件中。
退出功能:执行退出功能时,需要输入管理员的账户密码,如果输入的账号密码错误,则返回功能页面,如果输入的账号密码正确,则执行存盘并退出系统。
本实例要求编写程序,实现一个具有上述功能的银行管理系统。
实例目标
理解面向对象的思想
熟练地定义类
熟练地创建对象、访问类的成员
熟练使用构造方法
实例分析
实际生活中,银行管理系统在由银行工作人员打开时先显示欢迎界面,之后工作人员输入管理员账号与密码,银行管理系统被启动,启动后进入系统功能页面,可观察到该页面中展示了使用ATM机可办理的所有业务,包括开户(1)、查询(2)、取款(3)、存款(4)、转账(5)、锁定(6)、解锁(7)、退出(Q)等。用户可根据自己需求选择相应业务的编号,并按照提示完成相应的操作。
从以上模拟的过程中可知,要实现银行管理系统需要用到5种对象,分别是管理员、ATM机、银行卡、用户、银行管理系统。因此,我们需要设计5个类承担不同的职责,关于这些类的说明如下:
(1)银行管理系统类(HomePage):负责提供整个系统流程的相关操作,包括打印欢迎登录界面和功能界面、接收用户输入、保存用户数据等。
(2)ATM机类(ATM):负责处理系统中各个功能的相关操作,包括开户、查询、取款、存款、转账、锁定、解锁、退出功能。
(3)管理员类(Admin):负责提供检测管理员账号与密码、显示欢迎登录界面和功能界面的相关操作。
(4)用户类(User):负责提供用户对象的相关操作。
(5)银行卡(Card):负责提供银行卡对象的相关操作。
设计后的类结构如图1所示。
图1 类设计图
本实例中涉及到多个类,为保证程序具有清晰的结构,可以将每个类的相关代码分别放置到与其同名的.py文件中。
代码实现
本实例的具体实现过程如下所示。
(1)打开PyCharm工具,创建一个名为“银行管理系统”的文件夹。在该文件夹下创建5个.py文件,分别为admin.py、atm.py、card.py、user.py与“银行系统.py”,此时程序的目录结构如图2所示。
图2 目录结构
(2)按照图1的类设计图,在card.py文件中编写Car类的代码,具体如下所示。
class Card:
def __init__(self,cardId,cardPwd,money):
self.cardId = cardId
self.cardPwd = cardPwd
self.money = money
self.cardLock = False
(3)按照图1的类设计图,在user.py文件中编写User类的代码,具体如下所示。
class User:
def __init__(self, name, id, phone, card):
self.name = name
self.id = id
self.phone = phone
self.card = card
(4)按照图1的类设计图
您可能关注的文档
- 大学生就业指导 1-1 就业指导概述 (42).pptx
- 大学生就业指导 1-2 熟悉就业制度与政策(54).pptx
- 大学生就业指导 2-1 建立生涯意识(45).pptx
- 大学生就业指导 2-2 全面探索自我--2 兴趣(50).pptx
- 《汽车保险与理赔》第3版课件5-2 车损险理赔实例.pptx
- 《汽车保险与理赔》第3版课件5-3 汽车三责险理赔实例 .pptx
- 《汽车保险与理赔》第3版课件5-4 我国汽车其他保险理赔实例.pptx
- 《汽车保险与理赔》第3版课件5-5 汽车保险欺诈实例.pptx
- 《汽车保险与理赔》课程PPT---4.1 汽车保险事故索赔新 - 副本.pptx
- 《汽车保险与理赔》课程PPT---4.2 汽车保险事故定损与核损新.pptx
- 2025年秋【新人教版】二年级数学上册第四单元身体上的尺子《身体上的长度》课件(新教材).pptx
- 2025年秋(新人教版)二年级数学上册第六单元《6.2 位置与测量》课件教学ppt(新教材).pptx
- 2025年秋(新人教版)二年级数学上册第五单元《5.1.5 练一练(9的乘法口诀)》课件教学ppt(新教材).pptx
- 2025年秋(新人教版)二年级数学上册第五单元《5.4 练一练》课件教学ppt(新教材).pptx
- 2025年冰山一角:理解科技巨头对美国创新和竞争力的全面贡献报告(英文版)-ITIF.pdf
- 2025年秋(新人教版)二年级数学上册第四单元厘米和米《4.6 选用合适的长度单位》课件教学ppt(新教材).pptx
- 2025年秋【新人教版】二年级数学上册第四单元身体上的尺子《小讲堂》课件(新教材).pptx
- 【新人教版】三年级数学上册第二三四单元课件《2~4单元》教学PPT(2025年秋-新教材).pptx
- 2025年秋(新人教版)二年级数学上册第四单元厘米和米《4.2 认识厘米》课件教学ppt(新教材).pptx
- 2025年秋(新人教版)二年级数学上册第四单元厘米和米《4.9 练一练》课件教学ppt(新教材).pptx
最近下载
- 水利三类人员考核题库16.pdf VIP
- 2025年南京林业大学学生手册题库 .pdf VIP
- 消防中队作风纪律整顿剖析材料与消防中队半年政治工作总结(范文)合集.doc VIP
- 《健康体检重要异常结果管理专家共识(试行版)》(2021)要点.doc VIP
- (已校全本)最佳男性描写辞典.docx VIP
- 测绘技术总结编写规定(CHT 1001-2005)(代替CHT 1001-1991).pdf VIP
- 子宫肌瘤课件.pptx VIP
- 2025-2026学年重庆外国语学校高二上学期9月月考英语试卷含详解.docx VIP
- NYT2998-2016 草地资源调查技术规程.pdf VIP
- 2025年秋招:建设银行试题及答案(可下载).doc VIP
文档评论(0)