Python两种银行系统对比

  • 简介
    • 静态银行系统(一)
      • 设置访问页面和菜单页面
      • 管理员登录验证
      • 开户功能
      • 查询功能
      • 取款功能
      • 存款功能
      • 转账功能
      • 改密功能
      • 冻结功能
      • 解冻功能
      • 补卡功能
      • 销户功能
      • 开户功能卡号生成方式
      • 主程序
      • 启动
    • 静态银行系统(二)
      • 管理员登录页面
      • 开户功能
      • 查询功能
      • 存款功能
      • 转账功能
      • 退出功能
      • 主程序
  • 后记

简介

两种都是静态银行系统,采用的知识都差不多,接下来大家来看看那种写的好。

静态银行系统(一)

此银行系统有11种功能,分别是开户、查询、取款、存款、转账、改密、冻结、解冻、补卡、销户以及退出,功能挺齐全的。

设置访问页面和菜单页面

import time
import time
import os
import pickleclass Admin(object):admin = 'admin'passwd = 'passwd'def AdminView(self):print("**********************************************")print("*               欢迎登录银行系统               *")print("**********************************************")#菜单界面def FunctionView(self):print("**********************************************")print("*           (1)开户     (2)查询              *")print("*           (3)取款     (4)存款               *")print("*           (5)转账     (6)改密               *")print("*           (7)锁定     (8)解锁               *")print("*           (9)补卡    (0)销户              *")print("*                  退出(q)                   *")print("**********************************************")

管理员登录验证

    def Check(self):inputAdmin = input("请输入管理员账户: ")if self.admin != inputAdmin:print("管理员账号输入错误!")return -1inputPasswd = input("请输入管理员密码: ")if self.passwd != inputPasswd:print("管理员密码输入错误!")return -1print("操作成功,请稍后...")time.sleep(2)return 0

开户功能

import random
class ATM(object):def __init__(self, allusers):#储存信息self.allUsers = allusers
#用户建立def CreatUser(self):name = input("请输入您的姓名:")idCard = input("请输入您的身份证号:")phone = input("请输入您的电话号码:")preMoney = int(input("请输入您的预存款金额:"))if preMoney < 0:print("预存款输入有误,开户失败......")return -1onePasswd = input("请输入密码:")if not self.checkPasswd(onePasswd):print("密码输入有误,开户失败......")return -1# 生成卡号cardStr = self.creatcardStr()card = Card(cardStr, onePasswd, preMoney)user = Person(name, idCard, phone, card)self.allUsers[cardStr] = userprint("开户成功,请牢记卡号(%s)......" % cardStr)

查询功能

        # 查询余额def searchUserInfo(self):cardnum = input("请输入您的卡号:")# 验证是否存在该卡号user = self.allUsers.get(cardnum)if not user:print("该卡号不存在,查询失败......")return -1# 判断是否锁定if user.card.cardlock == True:print("该卡已经被锁定,请解锁后再使用其他操作......")return -1# 验证密码if not self.checkPasswd(user.card.cardpasswd):print("密码错误,该卡已经被锁定......")user.card.cardlock = Truereturn -1# 查询成功,输出结果print("账户:%s     余额:%d" % (user.card.cardStr, int(user.card.cardmoney)))

取款功能

        # 取款def getMoney(self):cardnum = input("请输入您的卡号:")# 验证是否存在该卡号user = self.allUsers.get(cardnum)if not user:print("该卡号不存在,查询失败......")return -1# 判断是否锁定if user.card.cardlock == True:print("该卡已经被锁定,请解锁后再使用其他操作......")return -1# 验证密码if not self.checkPasswd(user.card.cardpasswd):print("密码错误,该卡已经被锁定......")user.card.cardlock = Truereturn -1print('您目前余额为%d'% user.card.cardmoney)getmoney = int(input("请输入您取款金额:"))nowmoney = int(user.card.cardmoney)if getmoney > nowmoney:print("余额不足,取款失败......")return -1nowmoney -= getmoneyuser.card.cardmoney = nowmoneyprint("取款成功,您目前余额为:%d" % user.card.cardmoney)

存款功能

        # 存款def saveMoney(self):cardnum = input("请输入您的卡号:")# 验证是否存在该卡号user = self.allUsers.get(cardnum)if not user:print("该卡号不存在,查询失败......")return -1# 判断是否锁定if user.card.cardlock == True:print("该卡已经被锁定,请解锁后再使用其他操作......")return -1# 验证密码if not self.checkPasswd(user.card.cardpasswd):print("密码错误,该卡已经被锁定......")user.card.cardlock = Truereturn -1savemoney = int(input("请输入您存款金额:"))nowmoney = int(user.card.cardmoney)nowmoney += savemoneyuser.card.cardmoney = nowmoneyprint("取款成功,您目前余额为:%d" % user.card.cardmoney)

转账功能

        # 转账def transferMoney(self):cardnum = input("请输入您的卡号:")user = self.allUsers.get(cardnum)if not user:print("该卡号不存在,查询失败......")return -1if user.card.cardlock == True:print("该卡已经被锁定,请解锁后再使用其他操作......")return -1if not self.checkPasswd(user.card.cardpasswd):print("密码错误,该卡已经被锁定......")user.card.cardlock = Truereturn -1print("账户:%s     余额:%d" % (user.card.cardStr, int(user.card.cardmoney)))tocardStr = input("请输入您希望转账的账户:")usertoid = self.allUsers.get(tocardStr)if not usertoid:print("该卡号不存在,查询失败......")return -1tomoney = int(input("请输入您希望转账的金额:"))nowmoney = int(user.card.cardmoney)tonowmoney = int(usertoid.card.cardmoney)if tomoney > nowmoney:print("余额不足,转账失败......")return -1nowmoney -= tomoneytonowmoney += tomoneyuser.card.cardmoney = nowmoneyusertoid.card.cardmoney = tonowmoneyprint("转账成功,您目前余额为:%d" % user.card.cardmoney)

改密功能

        # 改密码def changePasswd(self):cardnum = input("请输入您的卡号:")user = self.allUsers.get(cardnum)if not user:print("该卡号不存在,查询失败......")return -1if user.card.cardlock == True:print("该卡已经被锁定,请解锁后再使用其他操作......")return -1if not self.checkPasswd(user.card.cardpasswd):print("密码错误,该卡已经被锁定......")user.card.cardlock = Truereturn -1newpasswd = input("请输入新密码:")newpasswd2 = input("请确认新密码:")if newpasswd != newpasswd2:print("两次密码输入不一致,密码修改失败")return -1user.card.cardpasswd = newpasswdprint("密码修改成功......")

冻结功能

        # 锁定def lockUser(self):cardnum = input("请输入您的卡号:")user = self.allUsers.get(cardnum)if not user:print("该卡号不存在,查询失败......")return -1if user.card.cardlock:print("该卡已经被锁定,请结束后再使用其他功能")return -1if not self.checkPasswd(user.card.cardpasswd):print("密码错误......")return -1# 锁定user.card.cardlock = Trueprint("锁定成功......")

解冻功能

        # 解锁def unlockUser(self):cardnum = input("请输入您的卡号:")user = self.allUsers.get(cardnum)if not user:print("该卡号不存在,解锁失败......")return -1if not user.card.cardlock:print("该卡没有锁定,无需解锁......")return -1if not self.checkPasswd(user.card.cardpasswd):print("密码错误,解锁失败......")return -1temid = input("请输入您的身份证号:")if temid != user.idCard:print("身份证号输入错误,解锁失败......")return -1# 解锁user.card.cardlock = Falseprint("解锁成功......")

补卡功能

        # 补卡def newCard(self):cardnum = input("请输入您的卡号:")user = self.allUsers.get(cardnum)if not user:print("该卡号不存在,查询失败......")return -1if not self.checkPasswd(user.card.cardpasswd):print("密码错误......")return -1# 重新生成卡号newcard = self.creatcardStr()user.card.cardStr = newcardprint("补卡办理成功,这是您的新卡号:%s" % user.card.cardStr)

销户功能

        # 销户def killUser(self):cardnum = input("请输入您的卡号:")user = self.allUsers.get(cardnum)if not user:print("该卡号不存在,查询失败......")return -1if not self.checkPasswd(user.card.cardpasswd):print("密码错误,销户失败......")return -1self.allUsers.pop(cardnum)print("该账户已经被销户......")# 验证密码,循环三次没有正确就输出错误def checkPasswd(self, realPasswd):for i in range(3):temPasswd = input("请确认密码:")if temPasswd == realPasswd:return Truereturn False

开户功能卡号生成方式

        # 随机生成卡号def creatcardStr(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
class Person(object):def __init__(self,name,idCard,phone,card):self.name = nameself.idCard = idCardself.phone = phoneself.card = card
class Card(object):def __init__(self,cardStr,cardpasswd,cardmoney):self.cardStr = cardStrself.cardpasswd = cardpasswdself.cardmoney = cardmoneyself.cardlock = False

主程序

def main():# 界面对象admin = Admin()# 管理员开机admin.AdminView()if admin.Check():return -1# 存储信息的文件是否存在if os.path.exists("userinfo.txt"):filepath = "userinfo.txt"else:open("userinfo.txt", "wb")filepath = "userinfo.txt"if os.path.getsize(filepath):f = open(filepath, "rb")allusers = pickle.load(f)else:allusers = "正在打开功能菜单"allusers = {}print((allusers))atm = ATM(allusers)while True:admin.FunctionView()option = input("请输入您的操作:")if option == '1':# 开户atm.CreatUser()elif option == '2':# 查询atm.searchUserInfo()elif option == '3':# 取款atm.getMoney()elif option == '4':# 存款atm.saveMoney()elif option == '5':# 转账atm.transferMoney()elif option == '6':# 改密码atm.changePasswd()elif option == '7':# 锁定atm.lockUser()elif option == '8':# 解锁atm.unlockUser()elif option == '9':# 补卡atm.newCard()elif option == '0':# 销户atm.killUser()elif option == 'q':# 退出if not admin.Check():# 将当前系统中的用户信息保存到文件中f = open(filepath, "wb")pickle.dump(atm.allUsers, f)f.close()return -1time.sleep(2)

启动

if __name__ == "__main__":main()

静态银行系统(二)

此银行系统有6种功能,分别是开户、查询、取款、存款、转账以及退出,每选择一个功能都要确保用户信息是否正确。

管理员登录页面

class Preson(object):def __init__(self):self.name = ''self.Passwd = ''self.cardCode = 0self.money = 0
class Bank(object):dict1 = {}list1 = []

开户功能

    def open(self):        #开户per1 = Preson()per1.name = input("请输入用户名:")per1.Passwd = input("请输入登录密码:")c = per1.nameBank.dict1[c] = per1print("注册成功")

查询功能

    def see(self):           #查询方法a = input("请输入您的用户名")if a not in Bank.dict1.keys():       #判断是否存在用户名print("用户名不存在,返回上一级")return -1if Bank.dict1[a].cardCode >= 3:      #判断错误次数是否已有三次print("已错误3次")print("*****返回上一级*****")return -1else:while Bank.dict1[a].cardCode < 3:b = input("请输入密码")if b == Bank.dict1[a].Passwd:          #判断密码是否正确Bank.dict1[a].cardCode = 0print("密码正确,您当前余额为:",Bank.dict1[a].money)print("*****返回上一级*****")return -1else:print("密码错误,请重新输入")Bank.dict1[a].cardCode += 1print("已输入错误3次")print("*****返回上一级*****")

存款功能

    def saves(self):         #存款方法a = input("请输入用户名")if a not in Bank.dict1.keys():print("用户名不存在,返回上一级")return -1if Bank.dict1[a].cardCode >= 3:print("已错误3次")print("*****返回上一级*****")return -1else:while Bank.dict1[a].cardCode < 3:b = input("请输入密码")if b == Bank.dict1[a].Passwd:Bank.dict1[a].cardCode = 0while True:c= int(input("密码正确,请输入您的存款金额:"))if c <= 0:print("存款金额必须大于0")else:breakBank.dict1[a].money += cprint("存款成功您当前余额为:", Bank.dict1[a].money)print("*****正在返回上一级*****")return -1else:print("密码错误,请重新输入")Bank.dict1[a].cardCode += 1print("已输入错误3次")print("*****返回上一级*****")def draw(self):     #取款a = input("请输入您的用户名")if a not in Bank.dict1.keys():print("用户名不存在,返回上一级")return -1if Bank.dict1[a].cardCode >= 3:print("已错误3次")print("*****返回上一级*****")return -1else:while Bank.dict1[a].cardCode < 3:b = input("请输入密码")if b == Bank.dict1[a].Passwd:Bank.dict1[a].cardCode = 0while True:c = int(input("密码正确,请输入您的取款金额:"))if c >  Bank.dict1[a].money:print("余额不足,请重新输入取款金额")elif c <= 0:print("取款金额必须大于0")else:breakBank.dict1[a].money -= cprint("取款成功您当前余额为:", Bank.dict1[a].money)print("*****正在返回上一级*****")return -1else:print("密码错误,请重新输入")Bank.dict1[a].cardCode += 1print("已输入错误3次")print("*****返回上一级*****")

转账功能

    def transfer(self):#转账a = input("请输入您的用户名")if a not in Bank.dict1.keys():print("用户名不存在,返回上一级")return -1if Bank.dict1[a].cardCode >= 3:print("已错误3次")print("*****返回上一级*****")return -1else:while Bank.dict1[a].cardCode < 3:b = input("请输入密码")if b == Bank.dict1[a].Passwd:Bank.dict1[a].cardCode = 0c = input("密码正确,请输入你想转账的卡号:")if c not in Bank.dict1.keys():print("用户名不存在,返回上一级")return -1if Bank.dict1[c].cardCode >= 3:print("密码错误次数过多")print(".*****返回上一级*****")return -1if a == c:print("不能给自己转账,返回上一级")return -1else:while True:d = int(input("请输入您想转账的金额:"))if d > Bank.dict1[a].money:print("余额不足,请重新输入转账金额")elif d <= 0:print("转账金额必须大于0")else:breakBank.dict1[a].money -= dBank.dict1[c].money += dprint("转账成功,您当前余额为:", Bank.dict1[a].money )print("*****正在返回上一级*****")return -1else:print("密码错误,请重新输入")Bank.dict1[a].cardCode += 1print("已输入错误3次")print("*****返回上一级*****")def changepw(self):a = input("请输入您的用户名")if a not in Bank.dict1.keys():print("用户名不存在,返回上一级")return -1if Bank.dict1[a].cardCode >= 3:print("已错误3次")print("*****返回上一级*****")return -1else:while Bank.dict1[a].cardCode < 3:b = input("请输入密码")if b == Bank.dict1[a].Passwd:c = input("请输入新的密码....")while c != input("请确认您的新密码"):c = input("请输入新的密码....")Bank.dict1[a].Passwd = cprint("密码重置成功")print("*****返回上一级*****")return -1else:print("密码错误,请重新输入")Bank.dict1[a].cardCode += 1print("已输入错误3次")print("*****返回上一级*****")

退出功能

    def exit1(self):exit()

主程序

    def admin_register(self):print("欢迎使用本系统")while 1:admin = input("请输入管理员账号:")password = input("请输入管理员密码:")if admin == "admin" and password == "12345":print("登录成功,正在跳转......")breakelse:print("账号或密码错误,请重新输入")while 1:print("*********************************")print("*\t1、开户\t\t\t2、查询\t\t*\n*\t3、存款\t\t\t4、取款\t\t*""\n*\t5、转账\t\t\t6、修改密码\t*\n*\t\t\t7、退出\t\t\t\t*")print("*********************************")a = input("请输入操作:")if a == "1":self.open()elif a == "2":self.see()elif a == "3":self.saves()elif a == "4":self.draw()elif a == "5":self.transfer()elif a == "6":self.changepw()elif a == "7":self.exit1()else:print("输入错误,请重新输入......")
a = Bank()
a.admin_register()

后记

这次的小项目学会了吗,多支持一下哦!

这两种Python写的银行系统喜欢那种呢?

如果你觉得文章写的还不错,欢迎你帮助宣传扩散一下,这将是我继续更新的动力,切忌不要白嫖,会让自己变得廉价,好的文章值得分享。

害怕找不到的话请记得点赞评论关注哦!

Python写银行系统相关推荐

  1. 用python写计算机专业_自学open cv,用Python写的,本人是一名学生党,因为我本专业不是搞计算机的_cc霜_学生党_教育_教育其他...

    自学open cv,用Python写的,本人是一名学生党,因为我本专业不是搞计算机的,所以一切从0开始,自己学习的时候就整理一些笔记,以防忘记了.

  2. Python写的代码打包成.exe可执行文件

    Python写的代码打包成.exe可执行文件 1. 安装pyinstaller 2. [在线生成icon](http://www.ico51.cn/) 3. 打包命令 pyinstaller -i x ...

  3. 用python做算法_自己用python写的螺旋矩阵生成算法

    自己用python写的螺旋矩阵生成算法 如果输入6,可以生成如下矩阵: 1 20 19 18 17 16 2 21 32 31 30 15 3 22 33 36 29 14 4 23 34 35 28 ...

  4. python写一个通讯录step by step V3.0

    python写一个通讯录step by step V3.0 更新功能: 数据库进行数据存入和读取操作 字典配合函数调用实现switch功能 其他:函数.字典.模块调用 注意问题: 1.更优美的格式化输 ...

  5. python俄罗斯方块算法详解_用 Python 写一个俄罗斯方块游戏 (

    @@ -2,34 +2,34 @@ > * 原文作者:[Dr Pommes](https://medium.com/@pommes) > * 译文出自:[掘金翻译计划](https://g ...

  6. Python到底是什么样的语言? Python和Java比谁更快? TensorFlow的主体是用Python写的吗?

    Python到底是什么样的语言? Python和Java比谁更快? TensorFlow的主体是用Python写的吗? Python到底是什么样的语言? 解析: 这里是一些关键点:Python是解释型 ...

  7. python编写测试工具-python 写一个性能测试工具(一)

    国庆重新学习了一下go的gin高性能测试框架. 用JMeter来测试gin与flask接口的性能,差别很大. 为什么我自己不尝试写一个性能工具,性能工具的核心就是 并发 和 请求. 请求可以选择Pyt ...

  8. 用Python写一份独特的元宵节祝福

    今天是正月十五,首先 祝大家元宵节快乐! 以前加过我个人微信号的朋友,可以在朋友圈看到我今天发的元宵节祝福图片: 这个祝福文字乍一看其貌不扬,不过点开大图有惊喜:是拿自己 微信好友的头像拼成的 ! 这 ...

  9. Python之美[从菜鸟到高手]--一步一步动手给Python写扩展(异常处理和引用计数)

    我们将继续一步一步动手给Python写扩展,通过上一篇我们学习了如何写扩展,本篇将介绍一些高级话题,如异常,引用计数问题等.强烈建议先看上一篇,Python之美[从菜鸟到高手]--一步一步动手给Pyt ...

最新文章

  1. org.gradle.api.internal.tasks.DefaultTaskInputs$TaskInput........
  2. 单调谐回路谐振放大器等效电路分析_谐振回路的工作原理
  3. Spring Boot解决无法访问图片的问题
  4. debain apt oracle jdk,debian安装oracle jdk
  5. pytest_01-环境准备与入门
  6. 从Google Maglev说起,如何造一个牛逼的负载均衡?
  7. ganglia-Monitor
  8. 基于微服务的软件架构模式
  9. iPhone SE 3共有三款:或将提供全面屏版本
  10. c mysql dll_PHP5.3以上版本没有libmysql.dll,以及由此带来的困扰
  11. Vite 配置项目别名-最新版
  12. 「leetcode」700. 二叉搜索树中的搜索:【递归法】【迭代法】详解
  13. WIN11安装JDK8
  14. 最新手机号段归属地数据库 高性能dat解析
  15. 企业中ip地址的规划
  16. IDEA格式化js代码
  17. IDEA添加快捷输入
  18. 用聚宽量化炒股-5获取数据函数-8)获取概念成分股代码函数get_concept_stocks、查询股票所属概念板块函数get_concept()
  19. 谷歌pagerank算法(谷歌搜索引擎的pagerank算法的原理)
  20. 微信小程序-页面导航

热门文章

  1. (三)5.自动控制原理 Time domain analysis and correct 稳态误差
  2. Git无法clone问题
  3. vue3.0移动端 ui_vue.js的移动UI元素
  4. el-table 表格内容多一根线的解决办法
  5. 台式计算机没有声音图标,电脑没有声音怎么回事 电脑没有声音怎么恢复 电脑声音图标不见了...
  6. easyexcel插件
  7. 徐志果:创业就是遇见更好的自己(我的成长之路)
  8. 增强现实(AR)的前世今生...
  9. 新的掌舵手已就位,汽车之家这艘船将驶向何方?
  10. 人在职场:可以让你少奋斗10年的工作经验