首先,银行管理系统通过账户来实现用户在银行中的一系列操作,而账户则分为用户个人信息User类和银行卡信息Card类

class Card:def __init__(self,cardId,passwd,balance):self.cardId = cardIdself.passwd = passwdself.balance = balanceself.card_lock = False
class User:def __init__(self,name,phone,Id,card):self.name = nameself.phone = phoneself.Id = Idself.card = card

主函数类,银行管理系统执行函数,进行银行管理一系列相关操作

BMS_Main,主函数类

from adminview import AdminView
from ATM import ATMclass BMS_Main:def __init__(self):self.allUser = {}self.atm = ATM(self.allUser)self.admin = AdminView()def Save_Data(self):self.allUser.update(self.atm.alluser)  # 将用户信息存储def operate(self):self.admin.Login_Interface()  # 进入管理员登录界面ver = self.admin.Validata_Logon()  # 验证管理员if not ver:  # 判断是否为管理员,是则进入操作页面while True:self.admin.Interface_View()option = (input('请输入操作码:'))if option == '1':self.atm.Open_An_Account()  # 调用 ATM类的开户操作if option == '2':self.atm.Query_Account()  # 调用 ATM类的查询操作if option == '3':self.atm.Draw_Money()  # 调用 ATM类的取款操作if option == '4':self.atm.Deposit_Money()  # 调用 ATM类的存款操作if option == '5':self.atm.Transfer_Money()  # 调用 ATM类的转账操作if option == '6':self.atm.Locking()  # 调用 ATM类的锁定操作if option == '7':self.atm.Unlock()  # 调用 ATM类的解锁操作if option == '8':self.Save_Data()  # 退出管理系统print('已退出')return -1if option not in ('1', '2', '3', '4', '5', '6', '7', '8'):  # 防止误输入操作print("操作有误,请重新输入")if __name__ == '__main__':system_page = BMS_Main()system_page.operate()

定义构造函数:

class BMS_Main:def __init__(self):self.allUser = {}self.atm = ATM(self.allUser)self.admin = AdminView()

Self.alluser 用来存储账户信息

Self.atm 调用ATM类的账户信息赋给atm

Self.admin 调用adminview类的界面信息赋给admin

管理员界面和操作页面类:AdminView

class AdminView:Admin_Acc = '123'Admin_Pwd = '321'# 欢迎界面@staticmethoddef Login_Interface():print('*******欢迎进入管理员系统*******')# 管理员登录验证def Validata_Logon(self):Admin_Acc_Input = input('请输入管理员账户:')if self.Admin_Acc != Admin_Acc_Input:print("管理员账户输入错误!!")return -1Admin_Pwd_Input = input('请输入管理员密码:')if self.Admin_Pwd != Admin_Pwd_Input:print("管理员密码输入错误!!!")return -1print('登陆成功')return 0# 管理员登录后,进入银行账户操作系统@staticmethoddef Interface_View():print('开户【1】\t查询【2】\n取款【3】\t存款【4】\n转账【5】\t锁定【6】\n解锁【7】\t退出【8】')

进入主函数类的操作函数 operate(),首先调用adminview()中的login_Interface(0

进入管理员登录界面,然后,验证管理员,调用adminview()中的Validata_Logon()

验证成功,进入循环操作,用户输入操作码,执行相应操作

点击超链接即可跳转对应操作

Option = 1  开户操作      Option = 2   查询操作

Option = 3  取款操作      Option = 4  存款操作

Option= 5  转账操作       Option= 6  锁定操作

Option= 7   解锁操作

Option= 8,退出系统,调用函数Save_Data()保存,退出系统。

如果输入其他字符则提示 操作有误,请重新输入

ATM类

from Card import Card
from BankUser import User
import randomclass ATM:def __init__(self, alluser):self.alluser = alluser# 生成6位银行卡号def Generate_Card_Id(self):while True:Str_Data = ""for i in range(6):ch = chr(random.randrange(ord('0'), ord('9')) + 1)Str_Data += ch# 判断是否重复卡号if not self.alluser.get(str):return Str_Data# 开户操作【1】def Open_An_Account(self):name = input('姓名:')  # 账户基本信息录入Id = input('证件号码:')phone = input('电话号码:')Advance_Deposit = int(input('预存款:'))# 预存款不能<=0元if Advance_Deposit <= 0:print("预存款必须大于0元")return -1First_Pwd = input('设置密码:')  # 设置账户密码Second_pwd = input('确认密码:')if First_Pwd != Second_pwd:print("两次输入密码不一致")return -1print('创建密码成功')Card_Id = self.Generate_Card_Id()  # 调用生成的卡号card = Card(Card_Id, First_Pwd, Advance_Deposit)  # 银行卡信息user = User(name, phone, Id, card)  # 用户个人信息self.alluser[Card_Id] = user  # 存储账户信息print('开户成功,您的卡号为{},密码为{},请牢记'.format(Card_Id, First_Pwd))# 验证密码,如果输入三次都错误,自动退出登录def Ve_Pwd(self, vfpwd):for i in range(3):intpwd = input('请输入您的账户密码:')if vfpwd == intpwd:return Trueprint("您已经三次输入错误,已退出!")return False# 查询操作【2】def Query_Account(self, base=1):if base == 1:inputcardId = input('请输入您要查询的账户:')if base == 2:inputcardId = input('请输入您要转出的账户:')if base == 3:inputcardId = input('请输入您要转入的账户:')user = self.alluser.get(inputcardId)if not self.alluser.get(inputcardId):  # 判断卡号是否匹配print('卡号不存在!')return -1if user.card.card_lock:  # 判断卡是否冻结print('此账户已锁定,请解锁后继续使用!!')return -1if not self.Ve_Pwd(user.card.passwd):  # 密码验证print('您的账户已被锁定')return -1print('账户:{},余额:{}'.format(user.card.cardId, user.card.balance))return user#  取款操作【3】def Draw_Money(self):user = self.Query_Account()if user != -1:DrawMoney = float(input('请输入取款金额:'))if DrawMoney >= user.card.balance:print('余额不足!')return -1user.card.balance -= DrawMoneyprint('取款成功!\n账户:{} ,余额:{}'.format(user.card.cardId, user.card.balance))# 存款操作【4】def Deposit_Money(self):user = self.Query_Account()if user == -1:return -1DepositMoney = float(input('请输入存款金额:'))user.card.balance += DepositMoneyprint('存款成功!\n账户:{} ,余额:{}'.format(user.card.cardId, user.card.balance))# 转账操作【5】def Transfer_Money(self):TransferOut = self.Query_Account(base=2)  # 转出账户if TransferOut == -1:return -1TransferInto = self.Query_Account(base=3)  # 转入账户if TransferInto == -1:return -1TransferAmount = float(input('请输入转账金额:'))if TransferOut.card.balance >= TransferAmount:Tips = input('确认向{}转账吗?y/n'.format(TransferInto.card.cardId))if Tips == 'y' or 'Y':TransferOut.card.balance -= TransferAmount  # 转出账户:转钱TransferInto.card.balance += TransferAmount  # 转入账户:收钱print('转账成功!\n账户:{},余额:{}'.format(TransferOut.card.cardId, TransferOut.card.balance))else:print('操作已停止')else:print('余额不足,转账失败')# 锁定操作【6】def Locking(self):Card_Into = input('请输入卡号:')if not self.alluser.get(Card_Into):print('卡号不存在!')return -1user = self.alluser.get(Card_Into)if user.card.card_lock:print('此卡已经被锁定!')return -1if not self.Ve_Pwd(user.card.passwd):print('密码输入错误')return -1user.card.card_lock = Trueprint('锁定成功')# 解锁操作【7】def Unlock(self):Card_Into = input('请输入卡号:')user = self.alluser.get(Card_Into)while 1:if not self.alluser.get(Card_Into):print('卡号不存在')return -1if not self.Ve_Pwd(user.card.passwd):print("密码输入有误")return -1if not user.card.card_lock:print('此卡未被锁定!')breakuser.card.card_lock = Falseprint('此卡解锁成功')break

开户操作:

用户输入1时,执行开户操作,需要用户输入自己的个人信息,

并填入预存款(>0),设置账户密码之后,调用Generate_Card_Id()函数,

随机生成六位不重复卡号给用户,并且将账户信息存入all user{Card_Id:user }

查询操作:

用户输入2时,执行查询,查询操作在存取款、转账时都会用到,所

以,在定义查询函数时,设置一个默认值参数:base,当base=1时,输入查询

账户,从已经存储好的账户信息中找到对应的银行卡号,在查询过程中,需要

对银行卡号进行验证,如果卡号不存在或者卡号被冻结都会给函数返回值-1,

如果银行卡没有问题,则输入密码验证账户,这里通过密码验证函数Ve_Pwd()

进行密码验证,三次输入错误会被锁定账户,如果都没有问题,则输出账户和余

额,并返回user的值,以便后续存取款以及转账操作的使用。

取款操作:

用户输入3时,执行Draw_Money(),当用户取款时,首先应该输入取款账

户,这里则调用查询函数Query_Account(),如果user接收到是User信息

时,就会进行取款,当账户余额不足时输出余额不足,函数返回值-1,否则

提示取款成功。

存款操作:

当用户输入4时,执行函数Deposit_Money(),调用查询函数

Query_Account(),如果user接受值为-1时,则账户有问题,函数返回值-1

否则提示用户输入存款金额,存款成功。

转账操作:

用户输入5时,执行函数Transfer_Money(),此时,调用查询函数,

通过改变默认参数base的值,来实现转出和转入账户的输入,当接受到的

返回值为user时,输入转账金额,当转出用户余额足够时,询问用户是否确认,

输入Y:进行转账,输入n:停止操作

锁定操作:

用户输入6时,执行函数Locking()进行锁定操作,输入卡号,调用

账户信息如果此卡的cardlock = True 的话,则会提示此卡已被锁定,函数返

回值-1,如果没有则调用密码验证函数Ve_Pwd(),密码验证成功,则提示 锁定

成功 。

解锁操作:

用户输入7,调用解锁函数Unlock(),输入卡号,调用账户信息,

如果卡号没找到,则提示卡号不存在,否则输入账号密码,调用密码验证函

数Ve_Pwd(),当输入密码正确时,执行解锁操作,如果card_lock = False,

提示,此卡未被锁定,否则将card_lock = True改为 card_lock = false ,提示

解锁成功。

python实现简单银行管理系统相关推荐

  1. Python版简易银行管理系统源代码,银行管理系统python代码、银行自助提款系统

    Python版简易银行管理系统源代码,银行管理系统python代码,实现开户.账户查询.存取款.转账.改密.锁定.解锁.补卡.销户等银行管理操作.账户信息存在allusers.txt中,通过该文件的读 ...

  2. python实现简单图书管理系统

    用python实现一个简单的图书管理系统 1.工具:PyCharm3.6 社区版 我创建了一个工程叫fairy,把解释器换成Pytnon3.6 创建一个pytnon file:图书管理系统.py 2. ...

  3. python管理系统web版_基于Python实现简单学生管理系统

    学生信息管理系统负责编辑学生信息,供大家参考,具体内容如下 第一次发帖,下面通过python实现一个简单的学生信息管理系统 要求如下: 1.添加学生的信息 2.删除学生的信息 3.修改的信息 4.查询 ...

  4. python银行管理系统

    题目 python  阶段案例-银行管理系统 P118 分析部分 代码部分 import randomclass bankUser:# 卡号,用户姓名,身份证号,手机,预存,密码Count_id = ...

  5. python实例-银行管理系统(特简单的那种)

    python实例学习--银行管理系统 任务分析 管理员类 ATM类 主函数 注意 任务分析 这个实例要求实现一个银行管理系统,系统开始运行时,进入欢迎界面,工作人员输入管理员账户和密码,输入失败直接退 ...

  6. Python基础项目实践之:面向对象方法实现模拟银行管理系统

    Python课堂基础实践系列: Python基础项目实践之:学生信息管理系统 python基础项目实践之: 学生通讯录管理系统 Python基础项目实践之:面向对象方法模拟简单计算器 Python基础 ...

  7. python工资管理系统课程设计_Python3实现的简单工资管理系统示例

    本文实例讲述了Python3实现的简单工资管理系统.分享给大家供大家参考,具体如下: 工资管理系统要求: 1. 查询员工工资 2. 修改员工工资 3. 增加新员工记录 4. 退出 执行代码: #!/u ...

  8. 简单的银行管理系统(接口)

    简单的银行管理系统(接口) 本例要求实现银行卡系统的银联接口,详细要求如下: 银联接口,用于描述银联统一制定的规则,该接口提供检测密码方法.取钱方法以及查询余额方法. 工商银行接口,用于描述工商银行发 ...

  9. 简单的银行管理系统(功能齐备)

    简单的银行管理系统(功能齐备) 我们直接上功能代码.(一个系统中最难的莫过于实现其特有功能) 1--------用户注册或者管理员注册 private static void UserZhuce(Ar ...

  10. 用java实现简单的银行管理系统

    用java实现简单的银行管理系统 页面代码之一: mvc设计模式,分包 分包图片 简单效果演示: 登陆主页面 注册页面 登录: 功能页面! 存款 转账 查看近期流水账单! 页面代码之一: packag ...

最新文章

  1. java编程数据溢出问题_Java数据溢出代码详解
  2. 清华大学计算机系主任应明生,清华大学计算机科学与技术系导师简介:应明生...
  3. 蔡高厅老师 - 高等数学阅读笔记 - 04 - 函数的连续性(18、19、20、21)
  4. 被字句15个_成人高考要点解读、包含18个实用技巧
  5. Jquery重新学习之五[操作JSON数据]
  6. Web Server监视器 v0.75 - Free tool
  7. android随机抽奖代码_用Excel实现不放回随机抽样
  8. java三星题之_JAVA三星题之playing a TicTacToe game
  9. lax文件的编码问题
  10. PyTorch手写字体识别
  11. tbschedule
  12. dismiss和ignore区别_词汇辨析:dismiss, discharg, expell, resign的区别
  13. JAVA将aaa=aaa1ccc=ccc3的格式请求参数转Map
  14. 计算机游戏化教学案例,[幼儿园课程游戏化教学实践]幼儿园课程游戏化案例
  15. 思科模拟器 --- 扩展IP访问控制列表配置
  16. 这几天来的第一篇日志
  17. 手欠,给DELL R720加硬盘
  18. 解决浏览器 Microsoft Edge主页被hao123恶意篡改
  19. cad2020卸载工具_2020年您应该拥有的12个自由职业者设计工具
  20. ping: www.baidu.com: Temporary failure in name resolution

热门文章

  1. 中国行政区划shp地图数据-2022最新数据预览图
  2. java OA开源办公系统源码下载
  3. HCIE-Cloud题库
  4. RapidMiner Studio for Mac(可视化综合数据平台)
  5. 计算机里只剩c盘了,家里电脑上突然只剩下C盘,怎么处理
  6. IT服务管理流程控制的绩效指标 KPI
  7. java求航班飞行时间代码,基于JAVA的航班动态接口调用代码实例
  8. Scrapy框架的基本组成及功能使用
  9. HTTP、HTTP2.0、SPDY、HTTPS 你应该知道的一些事
  10. 基于Arduino的智能环境监测与反馈系统