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

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

#!/usr/bin/env python

# coding:UTF-8

"""

@version: python3.x

@author:曹新健

@contact: 617349013@qq

@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

@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

@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

@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

@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银行系统实现源码