main.py

'''
人
类名:Person
属性:姓名 身份证号 电话 卡
行为:卡
类名:Card
属性:卡号 密码 余额
行为:银行
类名:Bank
属性:用户列表  提款机提款机
类名:ATM
属性:用户字典
行为:开户 查询 取款 存储 转账 改密 锁定 解锁 补卡 销户界面
类名:View
属性:
行为: 管理员界面 系统功能界面  管理员登陆'''
import time
import pickle
import os
from view import  View
from atm import ATMdef main():# 用户管理员开机功能view = View()# 管理员开机view.printAdminView()if view.adminOption():return -1#存储用户所有的信息# allUser = {}#提款机对象filepath = os.path.join(os.getcwd(), "allUsers.txt")f = open(filepath,"rb")allUsers = pickle.load(f)# allUsers = {}atm = ATM(allUsers)print(allUsers)while 1:view.sysFunctionView()#等待用户的操作option = input("请输入您的操作:")if option =="1":atm.creatUser()# print("开户")elif option == "2":atm.serchUserInfo()elif option == "3":atm.getMoney()print("取款")elif option == "4":print("存款")elif option =="5":print("转账")elif option == "6":print("改密")elif option == "7":atm.lockUser()elif option == "8":atm.unlockUser()elif option == "9":print("补卡")elif option == "0":print("销户")elif option == "T":print("退出")if not view.adminOption():#将信息保留到文件中# filepath = os.path.join(os.getcwd(),"allUsers.txt")f= open(filepath,"wb")pickle.dump(atm.allUsers,f)f.close()return -1time.sleep(2)if __name__ =="__main__":main()

atm.py

from card import Card
from user import User
import randomclass ATM (object):def __init__(self,allUsers):self.allUsers = allUsersdef creatUser(self):#目标:想用户字典中添加一对键值对(卡号-用户)name = input("请输入您的姓名:")idCard = input("请输入您的身份证号码:")phone = input("请输入您的电话号码:")prestoreMoney = int(input("请输入预存款金额:"))if prestoreMoney<0:print("输入金额有误!!开户失败")return -1onePasswd = int(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] = userprint("开户成功!!请牢记卡号%s!!"%cardStr)#验证密码def checkPasswd(self,realPasswd):for i in range(3):tempPasswd = int(input("请输入密码:"))if tempPasswd == realPasswd:return Truereturn 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 strdef serchUserInfo(self):cardNum = input("请输入您要查询的卡号:")user= self.allUsers.get(cardNum)if not user:print("该卡号不存在,查询失败。")return -1#验证密码if not self.checkPasswd(user.card.cardPasswd):print("密码输入错误!!查询失败")return -1print("账号:%s,余额:%d"%(user.card.cardId,user.card.cardMoney))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 = Truereturn -1#取款money =int(input("请输入取款金额"))if money> user.card.cardMoney:print("余额不足")return  -1if money<0:print("输入错误")return  -1user.card.cardMoney-=moneyprint("取款成功余额为:%d"%user.card.cardMoney)def saveMoney(self):passdef transforMoney(self):passdef changePasswd(self):passdef lockUser(self):cardNum = input("请输入您要查询的卡号:")user = self.allUsers.get(cardNum)if not user:print("该卡号不存在,锁定失败。")return -1# if user.card.cardLock:#     print("该卡号已被锁定!请解锁后再使用其他功能")#     return -1#判断是否锁定if user.card.cardLock:print("该卡已被锁定,请解锁后进行其他操作")return -1# 验证密码if not self.checkPasswd(user.card.cardPasswd):print("密码输入错误!!锁定失败")user.card.cardLock = Truereturn -1print("账号:%s,余额:%d" % (user.card.cardId, user.card.cardMoney))tempIdCard = input("请输入您的身份证号:")if tempIdCard!=user.idCard: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 -1# 验证密码if not self.checkPasswd(user.card.cardPasswd):print("密码输入错误!!锁定失败")return -1#解锁、user.card.cardLock = Falseprint("解锁成功!")def newCard(self):passdef killUser(self):pass

card.py

class Card(object):def __init__(self,cardId,cardPasswd,cardMoney):self.cardId = cardIdself.cardPasswd = cardPasswdself.cardMoney= cardMoneyself.cardLock = False

user.py

class User(object):def __init__(self,name,idCard,phone,card):self.name = nameself.idCard = idCardself.phone = phoneself.card = card

view.py

import time
class View(object):admin= "1"passwd = "1"# def __init__(self,admin):#     self.__admin = admindef printAdminView(self):print("************************************************")print("*                                              *")print("*                                              *")print("*               欢迎登陆旺哥银行               *")print("*                                              *")print("*                                              *")print("************************************************")# inputAdmin = input("请输入管理员账号:")# if self.admin !=inputAdmin:#     print("输入有误")#     return  -1# inputPasswd = input("请输入管理员密码:")# if self.passwd !=inputPasswd:#     print("输入有误")#     return  -1def adminOption(self):inputAdmin = input("请输入管理员账号:")if self.admin != inputAdmin:print("输入有误")return -1inputPasswd = input("请输入管理员密码:")if self.passwd != inputPasswd:print("输入有误")return -1#能执行到这里说明账号密码正确print("操作成功!请稍后。。。")time.sleep(2)return 0def sysFunctionView(self):print("************************************************")print("*          开户(1)               查询(2)       *")print("*          取款(3)               存款(4)       *")print("*          转账(5)               改密(6)       *")print("*          锁定(7)               解锁(8)       *")print("*          补卡(9)               销户(0)       *")print("*                   退出T                      *")print("************************************************")

python面向对象实现简易银行管理员页面系统【导入自定义模块】相关推荐

  1. python面向对象实现简易银行管理员页面系统

    '''银行管理员页面系统设计:card 类: cardId password moneyuser 类: username phone id cards[]银行的工作人员: 账号 密码 登录 展现管理系 ...

  2. python导入自定义模块和路径问题

    文章目录 part one: 文件在同一个文件夹 1.函数调用 2.类调用 part two:文件在不同文件夹 1.在同一个目录 2.在任意目录:绝对路径 1.借助sys 2.借助path part ...

  3. python导入自定义模块_ubuntu下Python导入自定义模块的方法

    ubuntu下Python导入自定义模块的方法 当在python程序中导入自定义模块时,若出现"Import Error:no module named xxx"表明系统在pyth ...

  4. python 导入自定义模块

    python 导入自定义模块 文章目录 python 导入自定义模块 相同文件夹下 文件目录 `module1.py` 自定义模块 `demo.py` 引用文件 不同文件夹下 文件目录 `__init ...

  5. python导入模块教程_Python教程——导入自定义模块

    #Python 教程 -- 导入自定义模块 导入自定义模块之前我们先创建一个自己的模 块,功能可以随便写,比如下面所示定义了两个功能模块,一个是输出调用的名字, 一个是计算九九乘法表 在项目下创建一个 ...

  6. python导入自定义文件_python引入导入自定义模块和外部文件的实例

    项目中想使用以前的代码,或者什么样的需求致使你需要导入外部的包 如果是web 下,比如说django ,那么你新建一个app,把你需要导入的说用东东,都写到这个app中,然后在setting中的app ...

  7. python如何导入自定义模块_【python】导入自定义模块

    一.直接import 1.当执行文件与要导入的py文件在同一目录下时 假设要在wangyi.py中导入weibo.py文件 import weibo 2.当执行文件与要导入的py文件所在文件夹在同一目 ...

  8. python中外部模块不用导入可以直接使用吗_python引入导入自定义模块和外部文件...

    python引入导入自定义模块和外部文件:项目中想使用以前的代码,或者什么样的需求致使你需要导入外部的包. 如果是web 下,比如说django ,那么你新建一个app,把你需要导入的说用东东,都写到 ...

  9. python导入自己的模块_python导入自定义模块

    上网查了下资料和自己实验了下,有几个方法: 1.如果导入的模块和主程序在同个目录下,直接import就行了 2.如果导入的模块是在主程序所在目录的子目录下,可以在子目录中增加一个空白的__init__ ...

最新文章

  1. spring boot学习资料以及DEMO项目
  2. php controller 间调用,php – 在CodeIgniter中的另一个Controller中调用Controller函数
  3. stm32 IAP在线升级的个人经验以及实现方法
  4. linux 文件重命名_如何在 Linux 上重命名一组文件 | Linux 中国
  5. java文件读入原理_描述一下JVM加载class文件的原理机制
  6. 【机器学习】机器学习中的缺失值及其填充处理
  7. Series.str.split([pat, n, expand])
  8. AndroidStudio安卓原生开发_Android扫描附近指定的蓝牙设备_通过设备名称过滤_计算距离_离扫描设备近的显示的时候放在前面---Android原生开发工作笔记128
  9. mysql保存表出错1075_navicat出现错误1075怎么办
  10. WC2013 糖果公园
  11. 大数据分析中的四大数据类型
  12. libcrypto yum 安装_CentOS升级OpenSSL至OpenSSL 1.1.0f版本其中有遇到libcrypto.so的问题...
  13. 人体时钟屏保-widows电脑屏幕保护
  14. Ubuntu下使用Exchange邮件服务
  15. 百度收录提交工具-免费主动提交百度快速收录软件
  16. android打开app白色页面,完美解决Android App启动页有白屏闪过的问题
  17. Ubuntu16.04安装Caffe史上最详细教程(CPU),亲测三次!!!
  18. vue实现盒子的拖拽移动
  19. Mencoder转换视频格式(1)
  20. matlab频谱分析详解

热门文章

  1. OpenGL开发库的详细介绍
  2. H.264/AVC技术进展及其务实发展策略思考
  3. Json与List的相互转换
  4. PLSQL 安装+配置( Oracle数据库连接工具 )
  5. R 读取excel的方法
  6. Python与MySQL连接
  7. Vue Google浏览器插件 Vue Devtools无法使用的解决办法
  8. 内核中的内存申请:kmalloc、vmalloc、kzalloc、get_free_pages 之间的区别
  9. cassandra 环境搭建
  10. Distinct源码分析