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

1、admin.py 定义管理员信息和主界面显示

#!/usr/bin/env python

# coding:UTF-8

"""

@version: python3.x

@author:曹新健

@contact: 617349013@qq.com

@software: PyCharm

@file: admin.py

@time: 2018/9/11 10:14

"""

import time

class Admin():

def __init__(self,name,passwd):

self.name = name

self.__passwd = passwd

self.__status = False

def adminView(self):

for i in range(4):

print("".center(60,"*"))

s1 = "欢迎光临曹氏银行"

print(s1.center(60-len(s1),"*"))

for i in range(4):

print("".center(60,"*"))

if self.__status:

print("管理员被锁定,请联系大神曹新健")

return -1

name = input("请输入管理员用户名:")

if name != self.name:

print("用户名输入错误")

return -1

if self.checkAdminPasswd() != 0:

return -1

return 0

def adminAction(self):

print("""************************************************************

***************开户(1)****************销户(2)***************

***************查询(3)****************转账(4)***************

***************取款(5)****************存款(6)***************

***************锁定(7)****************解锁(8)***************

***************改密(9)****************补卡(0)***************

************************退出 系统(q)************************

************************************************************

""")

def checkAdminPasswd(self):

n = 0

while n <= 3:

if n == 3:

self.status = True

print("输入超过3次,管理员被锁定,请联系大神曹新健")

return -1

passwd = input("请输入密码:")

if passwd != self.__passwd:

print("密码输入错误,请重新输入")

n += 1

else:

print("密码验证成功,请稍后")

time.sleep(2)

return 0

@property

def passwd(self):

return self.__passwd

@passwd.setter

def passwd(self,password):

self.__passwd = password

@property

def status(self):

return self.__status

@status.setter

def status(self, st):

self.__status = st

if __name__ == "__main__":

admin = Admin("cxj","1")

while True:

admin.adminView()

2、card.py定义银行卡信息

#!/usr/bin/env python

# coding:UTF-8

"""

@version: python3.x

@author:曹新健

@contact: 617349013@qq.com

@software: PyCharm

@file: card.py

@time: 2018/9/11 15:02

"""

import random

class Card():

def __init__(self,id,balance):

self.__id = id

self.__balance = balance

self.status = False

@property

def id(self):

return self.__id

@id.setter

def id(self,id):

self.__id = id

@property

def balance(self):

return self.__balance

@balance.setter

def balance(self,balance):

self.__balance = balance

if __name__ == "__main__":

card = Card(1000)

print(card.id)

print(card.balance)

3、user.py定义银行账户信息

#!/usr/bin/env python

# coding:UTF-8

"""

@version: python3.x

@author:曹新健

@contact: 617349013@qq.com

@software: PyCharm

@file: user.py

@time: 2018/9/11 14:54

"""

class User():

def __init__(self,name,idCard,phone,passwd,card):

self.__name = name

self.__idCard = idCard

self.phone = phone

self.__passwd = passwd

self.card = card

@property

def name(self):

return self.__name

@name.setter

def name(self,name):

self.__name = name

@property

def idCard(self):

return self.__idCard

@idCard.setter

def idCard(self, idCard):

self.__idCard = idCard

@property

def passwd(self):

return self.__passwd

@passwd.setter

def passwd(self, passwd):

if self.__passwd == passwd:

raise UsersException("新密码跟旧密码一样")

else:

self.__passwd = passwd

class UsersException(Exception):

pass

4、functions.py银行功能逻辑实现

#!/usr/bin/env python

# coding:UTF-8

"""

@version: python3.x

@author:曹新健

@contact: 617349013@qq.com

@software: PyCharm

@file: functions.py

@time: 2018/9/11 11:01

"""

import pickle,os,random

from admin import Admin

from card import Card

from user import User,UsersException

pathAdmin = os.path.join(os.getcwd(), "admin.txt")

pathUser = os.path.join(os.getcwd(), "users.txt")

def rpickle(path):

if not os.path.exists(path):

with open(path,"w") as temp:

pass

with open(path,'rb') as f:

try:

info = pickle.load(f)

except EOFError as e:

info = ""

return info

def wpickle(objname,path):

if not os.path.exists(path):

with open(path,"w") as temp:

pass

with open(path,'wb') as f:

pickle.dump(objname,f)

def adminInit():

# print(pathAdmin)

adminInfo = rpickle(pathAdmin)

if adminInfo:

admin = adminInfo

# print(admin.status)

else:

admin = Admin("cxj", "1")

return admin

def adminClose(admin):

wpickle(admin, pathAdmin)

def randomId(users):

while True:

str1 = ""

for i in range(6):

ch = str((random.randrange(0, 10)))

str1 += ch

if not users.get(str1,""):

return str1

def openAccount(users):

name = input("请输入您的姓名:")

idCard = input("请输入您的身份证号:")

phone = input("请输入您的电话号码:")

passwd = input("请输入账号密码:")

balance = int(input("请输入您的金额:"))

id = randomId(users)

card = Card(id,balance)

user = User(name,idCard,phone,passwd,card)

users[id] = user

print("请牢记您的银行卡号%s" %(id))

def userInit():

userInfo = rpickle(pathUser)

if userInfo:

users = userInfo

else:

users = {}

return users

def userClose(users):

wpickle(users, pathUser)

def getUser(users):

id = input("请输入您的银行卡号:")

if not users.get(id, ""):

print("您输入的卡号不存在")

user = None

else:

user = users.get(id)

return user

def transferUser(users):

id = input("请输入转账(对方)的银行卡号:")

if not users.get(id, ""):

print("您输入的卡号不存在")

user = None

else:

user = users.get(id)

return user

def changeMoney(user,res):

money = int(input("请输入交易金额:"))

if money <= 0:

print("输入金额有误")

return 0

if res:

if money > user.card.balance:

print("余额不足")

return 0

return money

def serchAccount(users):

user = getUser(users)

if not user:

return -1

if user.card.status:

print("账户被锁定,请解锁后再使用其他功能")

return -1

res = checkUserPasswd(user)

if not res:

print("您的账户名称为%s,您的余额为%s" % (user.name, user.card.balance))

def transferAccount(users):

user = getUser(users)

if not user:

return -1

if user.card.status:

print("账户被锁定,请解锁后再使用其他功能")

return -1

res = checkUserPasswd(user)

if not res:

transUser = transferUser(users)

if not transUser:

return -1

money = changeMoney(user,1)

if not money:

return -1

user.card.balance -= money

transUser.card.balance += money

print("交易成功")

def withdrawal(users):

user = getUser(users)

if not user:

return -1

if user.card.status:

print("账户被锁定,请解锁后再使用其他功能")

return -1

res = checkUserPasswd(user)

if not res:

money = changeMoney(user,1)

if not money:

return -1

user.card.balance -= money

print("交易成功")

def deposit(users):

user = getUser(users)

if not user:

return -1

if user.card.status:

print("账户被锁定,请解锁后再使用其他功能")

return -1

res = checkUserPasswd(user)

if not res:

money = changeMoney(user,0)

if not money:

return -1

user.card.balance += money

print("交易成功")

def delAccount(users):

user = getUser(users)

if not user:

return -1

if user.card.status:

print("账户被锁定,请解锁后再使用其他功能")

return -1

res = checkUserPasswd(user)

if not res:

users.pop(user.card.id)

print("账户删除成功")

return 0

def lockAccount(users):

user = getUser(users)

if not user:

return -1

if user.card.status:

print("账户被锁定,请解锁后再使用其他功能")

return -1

checkUserPasswdLock(user)

def unlockAccount(users):

user = getUser(users)

if not user:

return -1

if not user.card.status:

print("账户不需要解锁")

return -1

res = checkUserPasswd(user)

if not res:

user.card.status = False

print("账户解锁成功!")

def changePasswd(users):

user = getUser(users)

if not user:

return -1

if user.card.status:

print("账户被锁定,请解锁后再使用其他功能")

return -1

res = checkUserPasswd(user)

if not res:

newPasswd = input("请输入新密码:")

try:

user.passwd = newPasswd

except UsersException as e:

print(e)

else:

print("密码修改成功!")

def makeNewCard(users):

user = getUser(users)

if not user:

return -1

if user.card.status:

print("账户被锁定,请解锁后再使用其他功能")

return -1

res = checkUserPasswd(user)

if not res:

id = randomId(users)

userinfo = users[user.card.id]

users.pop(user.card.id)

users[id] = userinfo

users[id].card.id = id

print("补卡成功,请牢记您的银行卡号%s" % (id))

def checkUserPasswd(user):

n = 0

while n <= 3:

if n == 3:

user.card.status = True

print("输入超过3次,账户被锁定,请解锁后再使用其他功能")

return -1

passwd = input("请输入您的账户密码:")

if passwd != user.passwd:

print("密码输入错误,请重新输入")

n += 1

else:

return 0

def checkUserPasswdLock(user):

n = 0

while n <= 3:

if n == 3:

print("输入超过3次,账户锁定失败!")

return -1

passwd = input("请输入您的账户密码:")

if passwd != user.passwd:

print("密码输入错误,请重新输入")

n += 1

else:

user.card.status = True

print("账户锁定成功!")

return 0

5、bankManage.py 主程序

#!/usr/bin/env python

# coding:UTF-8

"""

@version: python3.x

@author:曹新健

@contact: 617349013@qq.com

@software: PyCharm

@file: bankManage.py

@time: 2018/9/11 9:57

"""

'''

管理员类:

名称:Admin

属性:name、passwd

方法:显示管理员欢迎界面、显示功能界面

银行卡:

名称:Card

属性:id,balance

方法:生成卡号

取款机:

名称:ATM

属性:

方法:开户、查询、取款、转账、存款、改密、锁定、解锁、补卡、销户

用户:

名称:user

属性:姓名、身份号、电话号、银行卡

方法:

'''

import time,os

from admin import Admin

import functions

#users = {}

def run():

admin = functions.adminInit()

users = functions.userInit()

#print(users)

if admin.adminView():

functions.adminClose(admin)

functions.userClose(users)

return -1

while True:

admin.adminAction()

value = input("请选择你要办理的业务:")

if value == "1":

functions.openAccount(users)

functions.userClose(users)

elif value == "2":

functions.delAccount(users)

functions.userClose(users)

elif value == "3":

functions.serchAccount(users)

elif value == "4":

functions.transferAccount(users)

functions.userClose(users)

elif value == "5":

functions.withdrawal(users)

functions.userClose(users)

elif value == "6":

functions.deposit(users)

functions.userClose(users)

elif value == "7":

functions.lockAccount(users)

functions.userClose(users)

elif value == "8":

functions.unlockAccount(users)

functions.userClose(users)

elif value == "9":

functions.changePasswd(users)

functions.userClose(users)

elif value == "0":

functions.makeNewCard(users)

functions.userClose(users)

elif value == "q":

functions.adminClose(admin)

functions.userClose(users)

return -1

elif value == "m":

for user in users:

print(user)

else:

print("艾玛,您的输入小编实在不能理解,重新输入吧")

if __name__ == "__main__":

run()

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

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

python银行系统-python银行系统实现源码相关推荐

  1. python设计模式pdf_精通Python设计模式 高清晰PDF+源码

    精通Python设计模式讲述了16种基本设计模式,轻松解决软件设计常见问题:借力高效的Python语言,用现实例子展示各模式关键特性. 本书用实际生活中的例子带你了解常用的设计模式,介绍了诸多有关编写 ...

  2. cvtcolor python opencv_13行代码实现:Python实时视频采集(附源码)

    程序逻辑 Python实时视频采集程序主要流程共分为10个步骤,具体如下图所示: 流程描述: 库文件导入:导入程序依赖的python安装包: 摄像头管理对象创建和初始化:是对opencv VideoC ...

  3. 【Python 笔记】Linux 下源码编译安装 python

    本文记录在 Linux 上源码编译安装 python 的过程. 文章目录 1. 源码编译安装说明 2. 安装 python2.7 3. 安装 python3.6 1. 源码编译安装说明 安装过程比我想 ...

  4. 分享Python采集99个VB源码,总有一款适合您

    分享Python采集99个VB源码,总有一款适合您 Python采集的99个VB源码下载链接:https://pan.baidu.com/s/1Ljs41rWn_WxvGqFWCkmGsA?pwd=1 ...

  5. 【附源码】计算机毕业设计Python安卓“我爱厨房”APP5loq7(源码+程序+LW+调试部署)

    [附源码]计算机毕业设计Python安卓"我爱厨房"APP5loq7(源码+程序+LW+调试部署) 该项目含有源码.文档.程序.数据库.配套开发软件.软件安装教程 项目运行环境配置 ...

  6. 100个Python实战项目(附源码),练完即可就业,从入门到进阶

    前言: "读"代码是不能给你带来任何收益的,正如"读书"一样,如果在读的时候你不琢磨,保管你读完仨月准忘了一大半.真正需要的是去"试"代码, ...

  7. 分享Python采集77个VB源码,总有一款适合您

    分享Python采集77个VB源码,总有一款适合您 Python采集的77个VB源码下载链接:https://pan.baidu.com/s/15jH2rxm5RXt7g9uIUFxYhA?pwd=2 ...

  8. Python+Qt抽奖点名工具源码窗体程序

     程序示例精选 Python+Qt抽奖点名工具源码窗体程序 如需安装运行环境或远程调试,见文章底部微信名片,由专业技术人员远程协助! 前言 这篇博客针对<Python+Qt抽奖点名工具源码窗体程 ...

  9. python影视数据爬虫sqlite源码+论文(完整版和简洁版)

    python影视数据爬虫sqlite源码+论文(完整版和简洁版)-99源码网,程序代做,代写程序代码,代写编程,代写Java编程,代写php编程,计算机专业代做,计算机毕业设计,网站建设,网站开发,程 ...

  10. python超级画板白板程序源码

    wx供重浩:创享日记 对话框发送:python画板 免费获取完整源码源文件+说明文档+可执行文件等 在PyCharm中运行<超级画板>即可进入如图1所示的系统主界面.在该界面中,通过左侧的 ...

最新文章

  1. 自定义函数或者回调函数中调用对话框对象
  2. 计算机监控检修维护规程,DL/T 1009-2016 水电厂计算机监控系统运行及维护规程
  3. 如何解析json字符串及返回json数据到前端
  4. gedit用圖形界面修改背景顏色
  5. realloc函_realloc(重新分配内存空间的函数)
  6. 计算机应用技术自我分析,计算机应用*个人自我鉴定
  7. VIEW SERVER STATE permission was denied on object 'server', database 'master'
  8. Facebook 推出新聊天机器人,号称击败谷歌?
  9. windows环境下的YOLO3入门,及opencv344配置
  10. 计算机内存加速,电脑内存运行速度如何提升
  11. c语言 pause,C语言中的pause()函数和alarm()函数以及sleep()函数
  12. Yalmip:踩坑记录/窍门分享
  13. IGBT的驱动功率计算
  14. 戴戴戴师兄-数据分析课程笔记(第一讲)
  15. 在电脑上查看WIFI的密码
  16. Sqlmap 22.05.23.05
  17. 软考证书找工作有用吗?软考找工作用处大吗
  18. rd授权管理器不显示服务器,2008 r2 找不到RD授权管理器
  19. 手机上流行的各类谜语
  20. c语言 整数概念与扩展

热门文章

  1. 【转载】如何去除C#Strings中的空格?
  2. C++编程练习(5)----“实现简单的循环队列的顺序存储结构“
  3. 修改jar中的class文件
  4. STL源码剖析---红黑树原理详解
  5. PHP的函数-----生成随机数、日期时间函数
  6. python-for循环
  7. 互联网协议入门(二)【转】
  8. 内存管理(链表,指针操作,繁琐)
  9. asp.net考前复习——信息服务身份验证
  10. python在中小学教学中的应用-为什么越来越多人学习python?中小学都要开始了?...