python银行系统实现源码
本文实例为大家分享了python实现银行系统的具体代码,供大家参考,具体内容如下
1、admin.py定义管理员信息和主界面显示
#!/usr/bin/envpython
#coding:UTF-8
"""
@version:python3.x
@author:曹新健
@contact:617349013@qq.com
@software:PyCharm
@file:admin.py
@time:2018/9/1110:14
"""
importtime
classAdmin():
def__init__(self,name,passwd):
self.name=name
self.__passwd=passwd
self.__status=False
defadminView(self):
foriinrange(4):
print("".center(60,"*"))
s1="欢迎光临曹氏银行"
print(s1.center(60-len(s1),"*"))
foriinrange(4):
print("".center(60,"*"))
ifself.__status:
print("管理员被锁定,请联系大神曹新健")
return-1
name=input("请输入管理员用户名:")
ifname!=self.name:
print("用户名输入错误")
return-1
ifself.checkAdminPasswd()!=0:
return-1
return0
defadminAction(self):
print("""************************************************************
***************开户(1)****************销户(2)***************
***************查询(3)****************转账(4)***************
***************取款(5)****************存款(6)***************
***************锁定(7)****************解锁(8)***************
***************改密(9)****************补卡(0)***************
************************退出系统(q)************************
************************************************************
""")
defcheckAdminPasswd(self):
n=0
whilen<=3:
ifn==3:
self.status=True
print("输入超过3次,管理员被锁定,请联系大神曹新健")
return-1
passwd=input("请输入密码:")
ifpasswd!=self.__passwd:
print("密码输入错误,请重新输入")
n+=1
else:
print("密码验证成功,请稍后")
time.sleep(2)
return0
@property
defpasswd(self):
returnself.__passwd
@passwd.setter
defpasswd(self,password):
self.__passwd=password
@property
defstatus(self):
returnself.__status
@status.setter
defstatus(self,st):
self.__status=st
if__name__=="__main__":
admin=Admin("cxj","1")
whileTrue:
admin.adminView()
2、card.py定义银行卡信息
#!/usr/bin/envpython #coding:UTF-8 """ @version:python3.x @author:曹新健 @contact:617349013@qq.com @software:PyCharm @file:card.py @time:2018/9/1115:02 """ importrandom classCard(): def__init__(self,id,balance): self.__id=id self.__balance=balance self.status=False @property defid(self): returnself.__id @id.setter defid(self,id): self.__id=id @property defbalance(self): returnself.__balance @balance.setter defbalance(self,balance): self.__balance=balance if__name__=="__main__": card=Card(1000) print(card.id) print(card.balance)
3、user.py定义银行账户信息
#!/usr/bin/envpython
#coding:UTF-8
"""
@version:python3.x
@author:曹新健
@contact:617349013@qq.com
@software:PyCharm
@file:user.py
@time:2018/9/1114:54
"""
classUser():
def__init__(self,name,idCard,phone,passwd,card):
self.__name=name
self.__idCard=idCard
self.phone=phone
self.__passwd=passwd
self.card=card
@property
defname(self):
returnself.__name
@name.setter
defname(self,name):
self.__name=name
@property
defidCard(self):
returnself.__idCard
@idCard.setter
defidCard(self,idCard):
self.__idCard=idCard
@property
defpasswd(self):
returnself.__passwd
@passwd.setter
defpasswd(self,passwd):
ifself.__passwd==passwd:
raiseUsersException("新密码跟旧密码一样")
else:
self.__passwd=passwd
classUsersException(Exception):
pass
4、functions.py银行功能逻辑实现
#!/usr/bin/envpython
#coding:UTF-8
"""
@version:python3.x
@author:曹新健
@contact:617349013@qq.com
@software:PyCharm
@file:functions.py
@time:2018/9/1111:01
"""
importpickle,os,random
fromadminimportAdmin
fromcardimportCard
fromuserimportUser,UsersException
pathAdmin=os.path.join(os.getcwd(),"admin.txt")
pathUser=os.path.join(os.getcwd(),"users.txt")
defrpickle(path):
ifnotos.path.exists(path):
withopen(path,"w")astemp:
pass
withopen(path,'rb')asf:
try:
info=pickle.load(f)
exceptEOFErrorase:
info=""
returninfo
defwpickle(objname,path):
ifnotos.path.exists(path):
withopen(path,"w")astemp:
pass
withopen(path,'wb')asf:
pickle.dump(objname,f)
defadminInit():
#print(pathAdmin)
adminInfo=rpickle(pathAdmin)
ifadminInfo:
admin=adminInfo
#print(admin.status)
else:
admin=Admin("cxj","1")
returnadmin
defadminClose(admin):
wpickle(admin,pathAdmin)
defrandomId(users):
whileTrue:
str1=""
foriinrange(6):
ch=str((random.randrange(0,10)))
str1+=ch
ifnotusers.get(str1,""):
returnstr1
defopenAccount(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))
defuserInit():
userInfo=rpickle(pathUser)
ifuserInfo:
users=userInfo
else:
users={}
returnusers
defuserClose(users):
wpickle(users,pathUser)
defgetUser(users):
id=input("请输入您的银行卡号:")
ifnotusers.get(id,""):
print("您输入的卡号不存在")
user=None
else:
user=users.get(id)
returnuser
deftransferUser(users):
id=input("请输入转账(对方)的银行卡号:")
ifnotusers.get(id,""):
print("您输入的卡号不存在")
user=None
else:
user=users.get(id)
returnuser
defchangeMoney(user,res):
money=int(input("请输入交易金额:"))
ifmoney<=0:
print("输入金额有误")
return0
ifres:
ifmoney>user.card.balance:
print("余额不足")
return0
returnmoney
defserchAccount(users):
user=getUser(users)
ifnotuser:
return-1
ifuser.card.status:
print("账户被锁定,请解锁后再使用其他功能")
return-1
res=checkUserPasswd(user)
ifnotres:
print("您的账户名称为%s,您的余额为%s"%(user.name,user.card.balance))
deftransferAccount(users):
user=getUser(users)
ifnotuser:
return-1
ifuser.card.status:
print("账户被锁定,请解锁后再使用其他功能")
return-1
res=checkUserPasswd(user)
ifnotres:
transUser=transferUser(users)
ifnottransUser:
return-1
money=changeMoney(user,1)
ifnotmoney:
return-1
user.card.balance-=money
transUser.card.balance+=money
print("交易成功")
defwithdrawal(users):
user=getUser(users)
ifnotuser:
return-1
ifuser.card.status:
print("账户被锁定,请解锁后再使用其他功能")
return-1
res=checkUserPasswd(user)
ifnotres:
money=changeMoney(user,1)
ifnotmoney:
return-1
user.card.balance-=money
print("交易成功")
defdeposit(users):
user=getUser(users)
ifnotuser:
return-1
ifuser.card.status:
print("账户被锁定,请解锁后再使用其他功能")
return-1
res=checkUserPasswd(user)
ifnotres:
money=changeMoney(user,0)
ifnotmoney:
return-1
user.card.balance+=money
print("交易成功")
defdelAccount(users):
user=getUser(users)
ifnotuser:
return-1
ifuser.card.status:
print("账户被锁定,请解锁后再使用其他功能")
return-1
res=checkUserPasswd(user)
ifnotres:
users.pop(user.card.id)
print("账户删除成功")
return0
deflockAccount(users):
user=getUser(users)
ifnotuser:
return-1
ifuser.card.status:
print("账户被锁定,请解锁后再使用其他功能")
return-1
checkUserPasswdLock(user)
defunlockAccount(users):
user=getUser(users)
ifnotuser:
return-1
ifnotuser.card.status:
print("账户不需要解锁")
return-1
res=checkUserPasswd(user)
ifnotres:
user.card.status=False
print("账户解锁成功!")
defchangePasswd(users):
user=getUser(users)
ifnotuser:
return-1
ifuser.card.status:
print("账户被锁定,请解锁后再使用其他功能")
return-1
res=checkUserPasswd(user)
ifnotres:
newPasswd=input("请输入新密码:")
try:
user.passwd=newPasswd
exceptUsersExceptionase:
print(e)
else:
print("密码修改成功!")
defmakeNewCard(users):
user=getUser(users)
ifnotuser:
return-1
ifuser.card.status:
print("账户被锁定,请解锁后再使用其他功能")
return-1
res=checkUserPasswd(user)
ifnotres:
id=randomId(users)
userinfo=users[user.card.id]
users.pop(user.card.id)
users[id]=userinfo
users[id].card.id=id
print("补卡成功,请牢记您的银行卡号%s"%(id))
defcheckUserPasswd(user):
n=0
whilen<=3:
ifn==3:
user.card.status=True
print("输入超过3次,账户被锁定,请解锁后再使用其他功能")
return-1
passwd=input("请输入您的账户密码:")
ifpasswd!=user.passwd:
print("密码输入错误,请重新输入")
n+=1
else:
return0
defcheckUserPasswdLock(user):
n=0
whilen<=3:
ifn==3:
print("输入超过3次,账户锁定失败!")
return-1
passwd=input("请输入您的账户密码:")
ifpasswd!=user.passwd:
print("密码输入错误,请重新输入")
n+=1
else:
user.card.status=True
print("账户锁定成功!")
return0
5、bankManage.py 主程序
#!/usr/bin/envpython
#coding:UTF-8
"""
@version:python3.x
@author:曹新健
@contact:617349013@qq.com
@software:PyCharm
@file:bankManage.py
@time:2018/9/119:57
"""
'''
管理员类:
名称:Admin
属性:name、passwd
方法:显示管理员欢迎界面、显示功能界面
银行卡:
名称:Card
属性:id,balance
方法:生成卡号
取款机:
名称:ATM
属性:
方法:开户、查询、取款、转账、存款、改密、锁定、解锁、补卡、销户
用户:
名称:user
属性:姓名、身份号、电话号、银行卡
方法:
'''
importtime,os
fromadminimportAdmin
importfunctions
#users={}
defrun():
admin=functions.adminInit()
users=functions.userInit()
#print(users)
ifadmin.adminView():
functions.adminClose(admin)
functions.userClose(users)
return-1
whileTrue:
admin.adminAction()
value=input("请选择你要办理的业务:")
ifvalue=="1":
functions.openAccount(users)
functions.userClose(users)
elifvalue=="2":
functions.delAccount(users)
functions.userClose(users)
elifvalue=="3":
functions.serchAccount(users)
elifvalue=="4":
functions.transferAccount(users)
functions.userClose(users)
elifvalue=="5":
functions.withdrawal(users)
functions.userClose(users)
elifvalue=="6":
functions.deposit(users)
functions.userClose(users)
elifvalue=="7":
functions.lockAccount(users)
functions.userClose(users)
elifvalue=="8":
functions.unlockAccount(users)
functions.userClose(users)
elifvalue=="9":
functions.changePasswd(users)
functions.userClose(users)
elifvalue=="0":
functions.makeNewCard(users)
functions.userClose(users)
elifvalue=="q":
functions.adminClose(admin)
functions.userClose(users)
return-1
elifvalue=="m":
foruserinusers:
print(user)
else:
print("艾玛,您的输入小编实在不能理解,重新输入吧")
if__name__=="__main__":
run()
更多学习资料请关注专题《管理系统开发》。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。