《运动控制技术》-实训四 面向对象实训(银行管理系统)_第1页
《运动控制技术》-实训四 面向对象实训(银行管理系统)_第2页
《运动控制技术》-实训四 面向对象实训(银行管理系统)_第3页
《运动控制技术》-实训四 面向对象实训(银行管理系统)_第4页
《运动控制技术》-实训四 面向对象实训(银行管理系统)_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

广东碧桂园职业学院教案项目(章节)名称实训四面向对象实训(银行管理系统)周次13授课顺序13本次学时2累计学时26教学目标知识目标:巩固理解面向对象的三大特性:封装、继承、多态,并能将其熟练地运用到程序开发中熟悉运算符的重载目标:能够熟知面向对象的三大特性:封装、继承、多态能够熟练进行封装、继承、多态的编程目标:1.形成对面向对象编程的初步认识2.形成探索计算机知识的主动学习意识教学重点完成银行管理系统的编程教学难点将封装、继承、多态熟练地运用到程序开发中教学方式项目教学R案例教学□情境教学□模块教学□其他□教学方法启发式☑探究式☑讨论式☑参与式☑讲授☑教学资源视频☑教具☑网络资源☑多媒体☑其他□信息技术运用职教云课堂、短视频教学过程设计教学环节主要教学内容及师生活动设计时间分配复习及新课导入告知学生本节课项目的整体教学设计5分钟新课教学(1)教师根据课件的需求,引出银行管理系统。银行管理系统是一个集开户、查询、取款、存款、转账、锁定、解锁、退出等一系列业务的管理系统,随着计算机技术在金融行业的广泛应用,银行企业采用管理系统替代了传统手工记账的方式,这极大地缩短了用户办理基础储蓄业务的时间,提升了银行企业的形象。(2)教师根据课件的需求,介绍阶段案例的目标。本实训要求编写程序,实现一个基于面向思想的、具有开户、查询、取款、存款、转账、锁定、解锁、退出功能的银行管理系统。(3)教师根据课件,分析实训案例的实现思路。(4)教师根据课件,介绍实训案例的实现过程,并使用代码进行演示。(5)教师根据课件,介绍实训案例的测试,并使用代码进行演示。代码:classAdmin:adminU='1'#管理员的账号adpwd='1'#管理员的密码defprintAdminView(self):print("******************************************")print("******")print("******")print("***欢迎登录银行系统***")print("******")print("******")print("******************************************")defprintsysFunctionView(self):print("***********************************************")print("******")print("***1.开户(1)2.查询(2)***")print("***3.取款(3)4.存款(4)***")print("***5.转账(5)6.锁定(6)***")print("***7.解锁(7)***")print("******")print("***退出(Q)***")print("******")print("***********************************************")defadminOption(self):adminInput=input("请输入管理员账户:")ifself.adminU!=adminInput:print("管理员账户输入错误")return-1passwordInput=input("请输入密码:")ifself.adpwd!=passwordInput:print("输入密码有误")return-1else:print("操作成功,请稍后")return0fromuserimportUserfromcardimportCardimportrandomclassATM:def__init__(self,alluser):self.alluser=alluserdefrandomiCardId(self):#随机生成开户卡号whileTrue:str_data=''#存储卡号foriinrange(6):#随机生成6位卡号ch=chr(random.randrange(ord('0'),ord('9')+1))str_data+=chifnotself.alluser.get(str):#判断卡号是否重复returnstr_datadefcreatUser(self):#目标向用户字典中添加一个键值对(卡号、用户对象)name=input("请输入姓名:")Uid=input("请输入身份证号:")phone=input("请输入手机号:")prestMoney=float(input("请输入预存金额:"))ifprestMoney<=0:print("预存款输入有误,开户失败")return-1oncePwd=input("请输入密码:")passWord=input("请再次输入密码:")ifpassWord!=oncePwd:print("两次密码输入不同")return-1print("密码设置成功,请牢记密码:%s"%passWord)cardId=self.randomiCardId()card=Card(cardId,oncePwd,prestMoney)#创建卡user=User(name,Uid,phone,card)#创建用户self.alluser[cardId]=user#存入用户字典print("您的开户已完成,请牢记开户账号:%s"%cardId)defcheckpwg(self,realPwd):foriinrange(3):psd2=input("请输入密码:")ifrealPwd==psd2:returnTrueprint("密码输错三次,系统自动退出")returnFalsedeflockCard(self):inptcardId=input("请输入您的卡号:")user=self.alluser.get(inptcardId)ifnotself.alluser.get(inptcardId):print("此卡号不存在...锁定失败!")return-1ifuser.card.cardLock:print("该卡已经被锁定,无需再次锁定!")return-1ifnotself.checkpwg(user.card.cardPwd):#验证密码print("密码错误...锁定失败!!")return-1user.card.cardLock=Trueprint("该卡被锁定成功!")defsearchUser(self,base=1):ifbase==2:inptcardId=input("请输入转出主卡号:")elifbase==3:inptcardId=input("请输入转入卡号:")elifbase==1:inptcardId=input("请输入您的卡号:")user=self.alluser.get(inptcardId)#如果卡号不存在,下面代码就会执行ifnotself.alluser.get(inptcardId):print("此卡号不存在...查询失败!")return-1ifuser.card.cardLock:print("该用户已经被锁定...请解卡后使用!")return-1ifnotself.checkpwg(user.card.cardPwd):#验证密码print("密码错误过多...卡已经被锁定,请解卡后使用!")user.card.cardLock=Truereturn-1ifnotbase==3:#查询转入账户不打印余额print("账户:%s余额:%.2f"%(user.card.cardId,user.card.money))returnuserdefgetMoney(self):userTF=self.searchUser()ifuserTF!=-1:ifuserTF.card.cardId!='':inptMoney=float(input("请输入取款金额:"))ifinptMoney>int(userTF.card.money):print("输入的金额大于余额,请先查询余额!")return-1userTF.card.money=\float(userTF.card.money)-inptMoneyprint("取款成功!账户:%s余额:%.2f"%(userTF.card.cardId,userTF.card.money))else:return-1defsaveMoney(self):userTF=self.searchUser()ifuserTF!=-1:ifnotuserTF.card.cardLock==True:ifuserTF.card.cardId!='':inptMoney=float(input("请输入要存入得金额:"))ifinptMoney<0:print("请输入正确金额")else:userTF.card.money+=inptMoneyprint("存款成功!账户:%s余额:%.2f"%(userTF.card.cardId,userTF.card.money))else:return-1deftransferMoney(self):MasterTF=self.searchUser(base=2)if(MasterTF==-1):return-1userTF=self.searchUser(base=3)if(userTF==-1):return-1in_tr_Money=float(input("请输入转账金额:"))ifMasterTF.card.money>=in_tr_Money:str=input("您确认要继续转账操作吗(y/n)?:")ifstr.upper()=="Y":MasterTF.card.money-=in_tr_MoneyuserTF.card.money+=in_tr_Moneyprint("转账成功!账户:%s余额:%.2f"%(MasterTF.card.cardId,MasterTF.card.money))else:print("转账失败,中止了操作")else:print("转账失败,余额不足!账户:%s余额:%.2f"%(MasterTF.card.cardId,MasterTF.card.money))defunlockCard(self):inptcardId=input("请输入您的卡号:")user=self.alluser.get(inptcardId)while1:ifnotself.alluser.get(inptcardId):print("此卡号不存在...解锁失败!")return-1elifnotuser.card.cardLock:print("该卡未被锁定,无需解锁!")breakelifnotself.checkpwg(user.card.cardPwd):print("密码错误...解锁失败!!")return-1user.card.cardLock=False#解锁print("该卡解锁成功!")breakclassCard:def__init__(self,cardId,cardPwd,money):self.cardId=cardIdself.cardPwd=cardPwdself.money=moneyself.cardLock=FalseclassUser:def__init__(self,name,id,phone,card):=nameself.id=idself.phone=phoneself.card=cardfromadminimportAdminfromatmimportATMimporttimeclassHomePage:def__init__(self):self.allUserD={}#使用字典存储数据self.atm=ATM(self.allUserD)self.admin=Admin()#管理员开机界面defsaveUser(self):self.allUserD.update(self.atm.alluser)print("数据存盘成功")defmain(self):self.admin.printAdminView()resL=self.admin.adminOption()ifnotresL:whileTrue:self.admin.printsysFunctionView()option=input("请输入您的操作:")ifoptionnotin("1","2","3","4","5","6","7","S","Q","q"):print("输入操作项有误,请仔细确认!")time.sleep(1)ifoption=="1":#开户self.atm.creatUser()elifoption=="2":#查询self.atm.searchUser()elifoption=="3":

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论