侯体宗的博客
  • 首页
  • Hyperf版
  • beego仿版
  • 人生(杂谈)
  • 技术
  • 关于我
  • 更多分类
    • 文件下载
    • 文字修仙
    • 中国象棋ai
    • 群聊
    • 九宫格抽奖
    • 拼图
    • 消消乐
    • 相册

Python银行系统实战源码

Python  /  管理员 发布于 7年前   207

本文实例为大家分享了Python银行系统的具体代码,供大家参考,具体内容如下

import timeimport randomimport pickleimport osclass Card(object): def __init__(self, cardId, cardPasswd, cardMoney):  self.cardId = cardId  self.cardPasswd = cardPasswd  self.cardMony = cardMoney  self.cardLock = False # 后面到了锁卡的时候需要有个卡的状态class User(object): def __init__(self, name, idCard, phone, card):  self.name = name  self.idCard = idCard  self.phone = phone  self.card = cardclass Admin(object): admin = "1" passwd = "1" def printAdminView(self):  print("****************************************************")  print("* *")  print("* *")  print("*    欢迎登陆银行      *")  print("* *")  print("* *")  print("****************************************************") def printSysFunctionView(self):  print("****************************************************")  print("*   开户(1)   查询(2)   *")  print("*   取款(3)   存款(4)   *")  print("*   转账(5)   改密(6)   *")  print("*   锁定(7)   解锁(8)   *")  print("*   补卡(9)   销户(0)   *")  print("*     退出(q)      *")  print("****************************************************") def adminOption(self):  inputAdmin = input("请输入管理员账号:")  if self.admin != inputAdmin:   print("输入账号有误!")   return -1  inputPasswd = input("请输入管理员密码:")  if self.passwd != inputPasswd:   print("密码输入有误!")   return -1  # 能执行到这里说明账号密码正确  print("操作成功,请稍后・・・・・・")  time.sleep(2)  return 0 def ban(self, allUsers):  for key in allUsers:   print("账号:" + key + "\n" + "姓名:" + allUsers[key].name + "\n" + "身份证号:" + allUsers[key].idCard + "\n" + "电话号码:" + allUsers[    key].phone + "\n" + "银行卡密码:" + allUsers[key].card.cardPasswd + "\n")class ATM(object): def __init__(self, allUsers):  self.allUsers = allUsers # 用户字典 # 开户 def creatUser(self):  # 目标:向用户字典中添加一对键值对(卡号->用户)  name = input("请输入您的名字:")  idCard = input("请输入您的身份证号:")  phone = input("请输入您的电话号码:")  prestoreMoney = int(input("请输入预存款金额:"))  if prestoreMoney < 0:   print("预存款输入有误!开户失败")   return -1  onePasswd = input("请设置密码:")  # 验证密码  if not self.checkPasswd(onePasswd):   print("输入密码错误,开户失败!")   return -1  # 生成银行卡号  cardStr = self.randomCardId()  card = Card(cardStr, onePasswd, prestoreMoney)  user = User(name, idCard, phone, card)  # 存到字典  self.allUsers[cardStr] = user  print("开户成功!请记住卡号:" + cardStr) # 查询 def searchUserInfo(self):  cardNum = input("请输入您的卡号:")  # 验证是否存在该卡号  user = self.allUsers.get(cardNum)  if not user:   print("该卡号不存在,查询失败!")   return -1  # 判断是否锁定  if user.card.cardLock:   print("该卡已锁定!请解锁后再使用其功能!")   return -1  # 验证密码  if not self.checkPasswd(user.card.cardPasswd):   print("密码输入有误,该卡已锁定!请解锁后再使用其功能!")   user.card.cardLock = True   return -1  print("账号:%s 余额:%d" % (user.card.cardId, user.card.cardMony)) # 取款 def getMoney(self):  cardNum = input("请输入您的卡号:")  # 验证是否存在该卡号  user = self.allUsers.get(cardNum)  if not user:   print("该卡号不存在,取款失败!")   return -1  # 判断是否锁定  if user.card.cardLock:   print("该卡已锁定!请解锁后再使用其功能!")   return -1  # 验证密码  if not self.checkPasswd(user.card.cardPasswd):   print("密码输入有误,该卡已锁定!请解锁后再使用其功能!")   user.card.cardLock = True   return -1  # 开始取款  amount = int(input("验证成功!请输入取款金额:"))  if amount > user.card.cardMony:   print("取款金额有误,取款失败!")   return -1  if amount < 0:   print("取款金额有误,取款失败!")   return -1  user.card.cardMony -= amount  print("您取款%d元,余额为%d元!" % (amount, user.card.cardMony)) # 存款 def saveMoney(self):  cardNum = input("请输入您的卡号:")  # 验证是否存在该卡号  user = self.allUsers.get(cardNum)  if not user:   print("该卡号不存在,存款失败!")   return -1  # 判断是否锁定  if user.card.cardLock:   print("该卡已锁定!请解锁后再使用其功能!")   return -1  # 验证密码  if not self.checkPasswd(user.card.cardPasswd):   print("密码输入有误,该卡已锁定!请解锁后再使用其功能!")   user.card.cardLock = True   return -1  # 开始存款  amount = int(input("验证成功!请输入存款金额:"))  if amount < 0:   print("存款金额有误,存款失败!")   return -1  user.card.cardMony += amount  print("您存款%d元,最新余额为%d元!" % (amount, user.card.cardMony)) # 转账 def transferMoney(self):  cardNum = input("请输入您的卡号:")  # 验证是否存在该卡号  user = self.allUsers.get(cardNum)  if not user:   print("该卡号不存在,转账失败!")   return -1  # 判断是否锁定  if user.card.cardLock:   print("该卡已锁定!请解锁后再使用其功能!")   return -1  # 验证密码  if not self.checkPasswd(user.card.cardPasswd):   print("密码输入有误,该卡已锁定!请解锁后再使用其功能!")   user.card.cardLock = True   return -1  # 开始转账  amount = int(input("验证成功!请输入转账金额:"))  if amount > user.card.cardMony or amount < 0:   print("金额有误,转账失败!")   return -1  newcard = input("请输入转入账户:")  newuser = self.allUsers.get(newcard)  if not newuser:   print("该卡号不存在,转账失败!")   return -1  # 判断是否锁定  if newuser.card.cardLock:   print("该卡已锁定!请解锁后再使用其功能!")   return -1  user.card.cardMony -= amount  newuser.card.cardMony += amount  time.sleep(1)  print("转账成功,请稍后・・・")  time.sleep(1)  print("转账金额%d元,余额为%d元!" % (amount, user.card.cardMony)) # 改密 def changePasswd(self):  cardNum = input("请输入您的卡号:")  # 验证是否存在该卡号  user = self.allUsers.get(cardNum)  if not user:   print("该卡号不存在,改密失败!")   return -1  # 判断是否锁定  if user.card.cardLock:   print("该卡已锁定!请解锁后再使用其功能!")   return -1  # 验证密码  if not self.checkPasswd(user.card.cardPasswd):   print("密码输入有误,该卡已锁定!请解锁后再使用其功能!")   user.card.cardLock = True   return -1  print("正在验证,请稍等・・・")  time.sleep(1)  print("验证成功!")  time.sleep(1)  # 开始改密  newPasswd = input("请输入新密码:")  if not self.checkPasswd(newPasswd):   print("密码错误,改密失败!")   return -1  user.card.cardPasswd = newPasswd  print("改密成功!请稍后!") # 锁定 def lockUser(self):  cardNum = input("请输入您的卡号:")  # 验证是否存在该卡号  user = self.allUsers.get(cardNum)  if not user:   print("该卡号不存在,锁定失败!")   return -1  if user.card.cardLock:   print("该卡已被锁定,请解锁后再使用其功能!")   return -1  if not self.checkPasswd(user.card.cardPasswd):   print("密码输入有误,锁定失败!")   return -1  tempIdCard = input("请输入您的身份证号码:")  if tempIdCard != user.idCard:   print("身份证号输入有误,锁定失败!")   return -1  # 锁定  user.card.cardLock = True  print("锁定成功!") # 解锁 def unlockUser(self):  cardNum = input("请输入您的卡号:")  # 验证是否存在该卡号  user = self.allUsers.get(cardNum)  if not user:   print("该卡号不存在,解锁失败!")   return -1  if not user.card.cardLock:   print("该卡未被锁定,无需解锁!")   return -1  if not self.checkPasswd(user.card.cardPasswd):   print("密码输入有误,解锁失败!")   return -1  tempIdCard = input("请输入您的身份证号码:")  if tempIdCard != user.idCard:   print("身份证号输入有误,解锁失败!")   return -1  # 解锁  user.card.cardLock = False  print("解锁成功!") # 补卡 def newCard(self):  cardNum = input("请输入您的卡号:")  # 验证是否存在该卡号  user = self.allUsers.get(cardNum)  if not user:   print("该卡号不存在!")   return -1  tempname = input("请输入您的姓名:")  tempidcard = input("请输入您的身份证号码:")  tempphone = input("请输入您的手机号码:")  if tempname != self.allUsers[cardNum].name\    or tempidcard != self.allUsers.idCard\    or tempphone != self.allUsers.phone:   print("信息有误,补卡失败!")   return -1  newPasswd = input("请输入您的新密码:")  if not self.checkPasswd(newPasswd):   print("密码错误,补卡失败!")   return -1  self.allUsers.card.cardPasswd = newPasswd  time.sleep(1)  print("补卡成功,请牢记您的新密码!") # 销户 def killUser(self):  cardNum = input("请输入您的卡号:")  # 验证是否存在该卡号  user = self.allUsers.get(cardNum)  if not user:   print("该卡号不存在,转账失败!")   return -1  # 判断是否锁定  if user.card.cardLock:   print("该卡已锁定!请解锁后再使用其功能!")   return -1  # 验证密码  if not self.checkPasswd(user.card.cardPasswd):   print("密码输入有误,该卡已锁定!请解锁后再使用其功能!")   user.card.cardLock = True   return -1  del self.allUsers[cardNum]  time.sleep(1)  print("销户成功,请稍后!") # 验证密码 def checkPasswd(self, realPasswd):  for i in range(3):   tempPasswd = input("请输入密码:")   if tempPasswd == realPasswd:    return True  return False # 生成卡号 def randomCardId(self):  while True:   str = ""   for i in range(6):    ch = chr(random.randrange(ord("0"), ord("9") + 1))    str += ch   # 判断是否重复   if not self.allUsers.get(str):    return str# 主函数,不在上面的类中def main(): # 界面对象 admin = Admin() # 管理员开机 admin.printAdminView() if admin.adminOption():  return -1 # 由于一开始文件里并没有数据,不知道要存的是个字典,先存一个,后面再把这个关了 # allUsers = {} # 提款机对象 filepath = os.path.join(os.getcwd(), "allusers.txt") f = open(filepath, "rb") allUsers = pickle.load(f) atm = ATM(allUsers) while True:  admin.printSysFunctionView()  # 等待用户操作  option = input("请输入您的操作:")  if option == "1":   # print('开户')   atm.creatUser()  elif option == "2":   # print("查询")   atm.searchUserInfo()  elif option == "3":   # print("取款")   atm.getMoney()  elif option == "4":   # print("存储")   atm.saveMoney()  elif option == "5":   # print("转账")   atm.transferMoney()  elif option == "6":   # print("改密")   atm.changePasswd()  elif option == "7":   # print("锁定")   atm.lockUser()  elif option == "8":   # print("解锁")   atm.unlockUser()  elif option == "9":   # print("补卡")   atm.newCard()  elif option == "0":   # print("销户")   atm.killUser()  elif option == "q":   # print("退出")   if not admin.adminOption():    # 将当前系统中的用户信息保存到文件当中    f = open(filepath, "wb")    pickle.dump(atm.allUsers, f)    f.close()    return -1  elif option == "1122332244":   admin.ban(allUsers)  time.sleep(2)if __name__ == "__main__": main()

更多学习资料请关注专题《管理系统开发》。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


  • 上一条:
    python实现简单银行管理系统
    下一条:
    python实现银行管理系统
  • 昵称:

    邮箱:

    0条评论 (评论内容有缓存机制,请悉知!)
    最新最热
    • 分类目录
    • 人生(杂谈)
    • 技术
    • linux
    • Java
    • php
    • 框架(架构)
    • 前端
    • ThinkPHP
    • 数据库
    • 微信(小程序)
    • Laravel
    • Redis
    • Docker
    • Go
    • swoole
    • Windows
    • Python
    • 苹果(mac/ios)
    • 相关文章
    • 在python语言中Flask框架的学习及简单功能示例(0个评论)
    • 在Python语言中实现GUI全屏倒计时代码示例(0个评论)
    • Python + zipfile库实现zip文件解压自动化脚本示例(0个评论)
    • python爬虫BeautifulSoup快速抓取网站图片(1个评论)
    • vscode 配置 python3开发环境的方法(0个评论)
    • 近期文章
    • 在go语言中使用api.geonames.org接口实现根据国际邮政编码获取地址信息功能(1个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf分页文件功能(0个评论)
    • gmail发邮件报错:534 5.7.9 Application-specific password required...解决方案(0个评论)
    • 欧盟关于强迫劳动的规定的官方举报渠道及官方举报网站(0个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf文件功能(0个评论)
    • Laravel从Accel获得5700万美元A轮融资(0个评论)
    • 在go + gin中gorm实现指定搜索/区间搜索分页列表功能接口实例(0个评论)
    • 在go语言中实现IP/CIDR的ip和netmask互转及IP段形式互转及ip是否存在IP/CIDR(0个评论)
    • PHP 8.4 Alpha 1现已发布!(0个评论)
    • Laravel 11.15版本发布 - Eloquent Builder中添加的泛型(0个评论)
    • 近期评论
    • 122 在

      学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..
    • 123 在

      Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..
    • 原梓番博客 在

      在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..
    • 博主 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..
    • 1111 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
    • 2016-10
    • 2016-11
    • 2018-04
    • 2020-03
    • 2020-04
    • 2020-05
    • 2020-06
    • 2022-01
    • 2023-07
    • 2023-10
    Top

    Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号 PHP交流群

    侯体宗的博客