模拟银行业务

        print("*********************************************")print("*         1.开户       2.查询               *")print("*         3.存款       4.取款               *")print("*         5.转账       6.改密               *")print("*         7.锁卡       8.解卡               *")print("*         9.补卡       0.退出               *")print("*********************************************")

导包

import time
import os
import pickle
import random

定义类

'''
类:
card #卡
person #用户
view  #界面
ATM #ATM机功能-
class Card:def __init__(self,cardid,password,money):self.cardid = cardidself.password = passwordself.money = moneyself.isclock = False     #是否上锁class Person:def __init__(self,name,userid,phone,card):self.name = nameself.userid = useridself.phone = phoneself.card = cardclass View:def login(self):name = input("请输入管理员账号:")password = input("请输入管理员密码:")if name =="admin" and password == "hong":       #初始化了账号和密码self.show()time.sleep(2)return Trueelse:print("管理员账号或密码不正确")return Falsedef show(self):print("*********************************************")print("*                                           *")print("*                                           *")print("*             欢迎进入银行系统              *")print("*                                           *")print("*                                           *")print("*********************************************")def operation_show(self):print("*********************************************")print("*         1.开户       2.查询               *")print("*         3.存款       4.取款               *")print("*         5.转账       6.改密               *")print("*         7.锁卡       8.解卡               *")print("*         9.补卡       0.退出               *")print("*********************************************")
'''

功能类:

class Operation:def __init__(self):self.load_user()print(self.user_dict)

以下所有函数都包含在Operation类中:

0.首先使用文本用来存储信息以及访问信息

 def load_user(self):#加载文件之前判断文件是否存在if os.path.exists("user.txt"):with open("user.txt","rb") as f:self.user_dict = pickle.load(f)else:self.user_dict = {}def save(self):'''保存用户'''with open("user.txt","wb") as f:pickle.dump(self.user_dict,f)

1.开卡

    def create(self):'''开户'''name = input("请输入持卡人姓名:")user_id = input("请输入身份证号码:")phone = input("请设置预留手机号:")password = self.get_password()cardid = self.get_cardid()#有信息之后就可以生成一张卡card = Card(cardid,password,0)#通过卡找到用户user = Person(name,user_id,phone,card)self.user_dict[cardid] = userprint("开卡成功!您的卡号为:%s,卡内余额为:%d元" % (cardid,card.money))self.save()time.sleep(2)def get_password(self):'''设置密码'''while True:pwd1 = input("请设置银行卡密码:")pwd2 = input("请重新输入密码:")if pwd1 == pwd2:return pwd1else:print("密码输入不一致!")time.sleep(2)def get_cardid(self):'''生成卡号'''while True:cardid = random.randint(100000,999999)if cardid not in self.user_dict:return cardid


2.查询

    def select(self):''' 查询功能'''id = int(input("请输入卡号:"))if id not in self.user_dict:print("卡号不存在!")time.sleep(1)else:if self.user_dict[id].card.isclock:print("卡被锁定,无法使用!")time.sleep(1)else:password = input("请输入该银行卡密码:")if password == self.user_dict[id].card.password:print("卡号:%s    持卡人:%s  卡内余额:%d" % (id, self.user_dict[id].name, self.user_dict[id].card.money))time.sleep(3)else:print("密码错误!")time.sleep(1)


3.存款

    def in_money(self):'''存钱'''id = int(input("请输入卡号:"))if id not in self.user_dict:print("卡号不存在!")time.sleep(1)else:if self.user_dict[id].card.isclock:print("卡被锁定,无法使用!")time.sleep(1)else:password = input("请输入该银行卡密码:")if password == self.user_dict[id].card.password:money = int(input("请选择存储款数:"))self.user_dict[id].card.money += moneyprint("存款成功!卡号:%s   持卡人:%s    卡内余额:%d元" % (id,self.user_dict[id].name,self.user_dict[id].card.money))time.sleep(3)self.save()else:print("密码错误!")time.sleep(1)


4.取款

    def out_money(self):'''取款'''id = int(input("请输入卡号:"))if id not in self.user_dict:print("卡号不存在!")time.sleep(1)else:if self.user_dict[id].card.isclock:print("卡被锁定,无法使用!")time.sleep(1)else:password = input("请输入该银行卡密码:")if password == self.user_dict[id].card.password:money = int(input("请选择取款数:"))if money>self.user_dict[id].card.money:print("银行卡余额不足,无法取款!")else:self.user_dict[id].card.money -= moneyprint("取款成功!卡号:%s   持卡人:%s    卡内余额:%d元" % (id,self.user_dict[id].name,self.user_dict[id].card.money))time.sleep(3)self.save()else:print("密码错误!")time.sleep(1)


5.转账

    def changge(self):'''转账'''id = int(input("请输入卡号:"))if id not in self.user_dict:print("卡号不存在!")time.sleep(1)else:if self.user_dict[id].card.isclock:print("卡被锁定,无法使用!")time.sleep(1)else:id2 = int(input("请输入转账接收者的卡号"))if id2 not in self.user_dict:print("卡号不存在!")time.sleep(1)else:if self.user_dict[id2].card.isclock:print("卡被锁定,无法使用!")time.sleep(1)else:password = input("请输入您的银行卡密码:")if password == self.user_dict[id].card.password:money = int(input("请选转账数:"))if money>self.user_dict[id].card.money:print("银行卡余额不足,无法转账!")else:self.user_dict[id].card.money -= moneyprint("转账成功!卡号:%s   持卡人:%s    卡内余额:%d元" % (id,self.user_dict[id].name,self.user_dict[id].card.money))self.user_dict[id2].card.money += moneytime.sleep(3)self.save()else:print("密码错误!")time.sleep(1)


6.改密

    def chang_password(self):'''修改密码'''id = int(input("请输入卡号:"))if id not in self.user_dict:print("卡号不存在!")time.sleep(1)else:if self.user_dict[id].card.isclock:print("卡被锁定,无法使用!")time.sleep(1)else:password = input("请输入该原银行卡密码:")if password == self.user_dict[id].card.password:self.user_dict[id].card.password = self.get_password()print("密码修改成功!")time.sleep(3)self.save()else:print("密码错误!")time.sleep(1)


7.锁卡

    def lock(self):'''冻结卡'''id = int(input("请输入要锁定(冻结)的卡号:"))if self.user_dict[id].card.isclock:print("该卡号已被锁定,无需重复锁定!")time.sleep(1)else:if id not in self.user_dict:print("卡号不存在!")time.sleep(1)else:phone = input("请输入预留手机号:")        #此处也可以要获取验证码if phone == self.user_dict[id].phone:self.user_dict[id].card.isclock = Trueprint("卡号锁定(冻结)完成!")self.save()time.sleep(1)else:print("预留手机号码错误!")time.sleep(1)



8.解卡

    def unlock(self):'''解冻卡'''id = int(input("请输入要解锁的卡号:"))if id not in self.user_dict:print("卡号不存在!")time.sleep(1)else:if self.user_dict[id].card.isclock:phone = input("请输入预留手机号:")         #此处也可以要获取验证码if phone == self.user_dict[id].phone:self.user_dict[id].card.isclock = Falseprint("卡号解锁完成!")self.save()time.sleep(1)else:print("预留手机号码错误!")time.sleep(1)else:print("该卡号未被锁定,无需解锁!")time.sleep(1)



9.补卡
注:补卡后原来的卡将会删除,并且原来卡里的钱需转移到新卡

    def add_card(self):'''补卡'''id = int(input("请输入丢失的卡的卡号:"))if id not in self.user_dict:print("卡号不存在!")time.sleep(1)else:name = input("请输入持卡人姓名:")user_id = input("请输入身份证号码:")phone = input("请设置预留手机号:")password = self.get_password()cardid = self.get_cardid()# 有信息之后就可以生成一张卡card = Card(cardid, password, self.user_dict[id].card.money)#删除原来的卡del self.user_dict[id]# 通过卡找到用户user = Person(name, user_id, phone, card)self.user_dict[cardid] = userprint("补卡卡成功!您的卡号为:%s,卡内余额为:%d元" % (cardid, card.money))self.save()time.sleep(2)


10.主框架

def main():v = View()if v.login() == True:while True:o = Operation()v.operation_show()choice = input("请输入业务序号:")if choice == "1":       #开户o.create()elif choice == "2":     #查询o.select()elif choice == "3":     #存款o.in_money()elif choice == "4":     #取款o.out_money()elif choice == "5":     #转账o.changge()elif choice == "6":     #改密o.chang_password()elif choice == "7":     #锁卡o.lock()elif choice == "8":     #解卡o.unlock()elif choice == "9":     #补卡o.add_card()elif choice == "0":     #退出o.save()breakif __name__ == '__main__':main()

python银行小项目相关推荐

  1. Python Turtle 小项目 8 各种音符的绘制

    本次,我们将继续使用Turtle模块进行绘制,下面将教学如何绘制各种音符 一.一个四分音符 效果: 代码讲解: 1.导入模块 from turtle import * 2.设置属性 pensize(4 ...

  2. Python Tkinter 小项目 RGB数值转换为16进制码

    欢迎来到<Python 小项目>专栏,这个专栏会不定时更新Python的小项目,大家可以订阅关注哦! 这次,我们用Tkinter写一个RGB转16进制的一个小工具,先看看效果: 代码教学: ...

  3. python秒表小项目_适合新手练习的几个python小项目

    关于python练习的小项目,其实就是一些常用的模块的针对练习 一.找出电脑中遗忘的大文件 # !/usr/bin/env python # _*_ coding:utf-8 -*- import o ...

  4. python爬虫小项目挣钱兼职,python程序员兼职平台

    python爬虫去哪接单 python爬虫接单的方式有两种一.接定制需求的单子爬虫定制的需求其实很多,比如 "爬取某某电商网站的评论",这类需求一般是按照爬取数据量的大小来收费,价 ...

  5. Python入门小项目-摇骰子小游戏

    大家平时微信上没少玩骰子吧,骰子比大小是我们经常玩的一个小游戏也十分的简单,就是不同玩家骰子点数比较大小.我们大学宿舍的时候,就经常比大小决定谁下去拿外卖,那时候费非常想让自己是最大的数,现在看来,以 ...

  6. python入门小项目-新手学Python必看的几个练手小项目,轻松不枯燥哦!

    Python是一种面向对象的解释型编程语言,源代码与解释器CPython遵守GPL协议,Python语法简洁清晰. 语法简洁清晰,那么我们用少量的Python代码能做哪些有趣的东西?温馨提示:文末必看 ...

  7. python有趣小项目源码分析_推荐 10 个有趣的 Python 项目

    想成为一个优秀的开发者,没有捷径可走,势必要花费大量时间在键盘后. 而不断地进行各种小项目开发,可以为之后的大开发项目积攒经验,做好准备. 但不少人都在为开发什么项目而苦恼,因此,我为大家准备了10个 ...

  8. python爬虫小项目挣钱兼职高雅推荐日结_我用Python爬虫挣钱的那些事

    在下写了10年Python,期间写了各种奇葩爬虫,挣各种奇葩的钱,写这篇文章总结下几种爬虫挣钱的方式. 1.最典型的就是找爬虫外包活儿. 这个真是体力活,最早是在国外各个freelancer网站上找适 ...

  9. Python实战小项目

    不是很稀饭<复联>嘛,看了<复联4>,就用50行Python代码做了这些: 视频展示:50行代码玩转<复仇者联盟> 教程地址:图片转字符画 相关教程地址:视频转字符 ...

最新文章

  1. 闲鱼单体应用Serverless化拆分实践
  2. stm32 基本定时器TIM6、TIM7的使用
  3. 蓄水池问题c语言编程,蓄水池大作战
  4. SAP的这三款CRM解决方案,您能区分清楚么
  5. 如何用AD20打开ddb文件
  6. WinDbg 查看静态变量
  7. 【C++ Primer | 0 】字符串函数实现
  8. LeetCode 题 - 88. 合并两个有序数组
  9. Vlan9.com论坛 2007-10-30精华技术文档
  10. 跨平台开发与原生开发优劣比较
  11. 阶段3 1.Mybatis_05.使用Mybatis完成CRUD_3 Mybatis的CRUD-修改和删除操作
  12. flink 自定义 窗口_Flink源码分析: 窗口机制的执行流程
  13. PyCharm常用配置和常用插件
  14. 1.1 爬虫入门介绍
  15. 茴字有四种写法,HTAP呢?
  16. DDS产生波形及AM 调制解调原理
  17. 计算机死机后 通过任务管理器关闭程序,电脑死机后,按哪个键结束程序
  18. 北航计算机控制系统实验报告,北航计算机控制系统实验报告..doc
  19. java scanner输入数组_Java Scanner输入两个数组的方法
  20. 《计算机操作系统(计算机)》

热门文章

  1. 如何用视频剪辑软件Vegas剪视频
  2. Cytoscape 安装教程 | Network Data Integration, Analysis, and Visualization in a Box
  3. 如何使用amplifycolor调色插件
  4. 无人机学习之路——电机
  5. 唯样商城:ROHM——反向恢复时间trr的影响逆变器电路的优化
  6. vue实现附件图片png,jpg,jpeg,pdf,doc,docx预览
  7. 基于Yolov5的二维码QR码识别
  8. 【网页设计】期末大作业html+css(体育网站)-围棋 4页
  9. docker制作支持中文的Centos7镜像
  10. 新一代大学英语(提高篇)