Python银行系统实战源码
本文实例为大家分享了Python银行系统的具体代码,供大家参考,具体内容如下
importtime
importrandom
importpickle
importos
classCard(object):
def__init__(self,cardId,cardPasswd,cardMoney):
self.cardId=cardId
self.cardPasswd=cardPasswd
self.cardMony=cardMoney
self.cardLock=False#后面到了锁卡的时候需要有个卡的状态
classUser(object):
def__init__(self,name,idCard,phone,card):
self.name=name
self.idCard=idCard
self.phone=phone
self.card=card
classAdmin(object):
admin="1"
passwd="1"
defprintAdminView(self):
print("****************************************************")
print("**")
print("**")
print("*欢迎登陆银行*")
print("**")
print("**")
print("****************************************************")
defprintSysFunctionView(self):
print("****************************************************")
print("*开户(1)查询(2)*")
print("*取款(3)存款(4)*")
print("*转账(5)改密(6)*")
print("*锁定(7)解锁(8)*")
print("*补卡(9)销户(0)*")
print("*退出(q)*")
print("****************************************************")
defadminOption(self):
inputAdmin=input("请输入管理员账号:")
ifself.admin!=inputAdmin:
print("输入账号有误!")
return-1
inputPasswd=input("请输入管理员密码:")
ifself.passwd!=inputPasswd:
print("密码输入有误!")
return-1
#能执行到这里说明账号密码正确
print("操作成功,请稍后······")
time.sleep(2)
return0
defban(self,allUsers):
forkeyinallUsers:
print("账号:"+key+"\n"+"姓名:"+allUsers[key].name+"\n"+"身份证号:"+allUsers[key].idCard+"\n"+"电话号码:"+allUsers[
key].phone+"\n"+"银行卡密码:"+allUsers[key].card.cardPasswd+"\n")
classATM(object):
def__init__(self,allUsers):
self.allUsers=allUsers#用户字典
#开户
defcreatUser(self):
#目标:向用户字典中添加一对键值对(卡号->用户)
name=input("请输入您的名字:")
idCard=input("请输入您的身份证号:")
phone=input("请输入您的电话号码:")
prestoreMoney=int(input("请输入预存款金额:"))
ifprestoreMoney<0:
print("预存款输入有误!开户失败")
return-1
onePasswd=input("请设置密码:")
#验证密码
ifnotself.checkPasswd(onePasswd):
print("输入密码错误,开户失败!")
return-1
#生成银行卡号
cardStr=self.randomCardId()
card=Card(cardStr,onePasswd,prestoreMoney)
user=User(name,idCard,phone,card)
#存到字典
self.allUsers[cardStr]=user
print("开户成功!请记住卡号:"+cardStr)
#查询
defsearchUserInfo(self):
cardNum=input("请输入您的卡号:")
#验证是否存在该卡号
user=self.allUsers.get(cardNum)
ifnotuser:
print("该卡号不存在,查询失败!")
return-1
#判断是否锁定
ifuser.card.cardLock:
print("该卡已锁定!请解锁后再使用其功能!")
return-1
#验证密码
ifnotself.checkPasswd(user.card.cardPasswd):
print("密码输入有误,该卡已锁定!请解锁后再使用其功能!")
user.card.cardLock=True
return-1
print("账号:%s余额:%d"%(user.card.cardId,user.card.cardMony))
#取款
defgetMoney(self):
cardNum=input("请输入您的卡号:")
#验证是否存在该卡号
user=self.allUsers.get(cardNum)
ifnotuser:
print("该卡号不存在,取款失败!")
return-1
#判断是否锁定
ifuser.card.cardLock:
print("该卡已锁定!请解锁后再使用其功能!")
return-1
#验证密码
ifnotself.checkPasswd(user.card.cardPasswd):
print("密码输入有误,该卡已锁定!请解锁后再使用其功能!")
user.card.cardLock=True
return-1
#开始取款
amount=int(input("验证成功!请输入取款金额:"))
ifamount>user.card.cardMony:
print("取款金额有误,取款失败!")
return-1
ifamount<0:
print("取款金额有误,取款失败!")
return-1
user.card.cardMony-=amount
print("您取款%d元,余额为%d元!"%(amount,user.card.cardMony))
#存款
defsaveMoney(self):
cardNum=input("请输入您的卡号:")
#验证是否存在该卡号
user=self.allUsers.get(cardNum)
ifnotuser:
print("该卡号不存在,存款失败!")
return-1
#判断是否锁定
ifuser.card.cardLock:
print("该卡已锁定!请解锁后再使用其功能!")
return-1
#验证密码
ifnotself.checkPasswd(user.card.cardPasswd):
print("密码输入有误,该卡已锁定!请解锁后再使用其功能!")
user.card.cardLock=True
return-1
#开始存款
amount=int(input("验证成功!请输入存款金额:"))
ifamount<0:
print("存款金额有误,存款失败!")
return-1
user.card.cardMony+=amount
print("您存款%d元,最新余额为%d元!"%(amount,user.card.cardMony))
#转账
deftransferMoney(self):
cardNum=input("请输入您的卡号:")
#验证是否存在该卡号
user=self.allUsers.get(cardNum)
ifnotuser:
print("该卡号不存在,转账失败!")
return-1
#判断是否锁定
ifuser.card.cardLock:
print("该卡已锁定!请解锁后再使用其功能!")
return-1
#验证密码
ifnotself.checkPasswd(user.card.cardPasswd):
print("密码输入有误,该卡已锁定!请解锁后再使用其功能!")
user.card.cardLock=True
return-1
#开始转账
amount=int(input("验证成功!请输入转账金额:"))
ifamount>user.card.cardMonyoramount<0:
print("金额有误,转账失败!")
return-1
newcard=input("请输入转入账户:")
newuser=self.allUsers.get(newcard)
ifnotnewuser:
print("该卡号不存在,转账失败!")
return-1
#判断是否锁定
ifnewuser.card.cardLock:
print("该卡已锁定!请解锁后再使用其功能!")
return-1
user.card.cardMony-=amount
newuser.card.cardMony+=amount
time.sleep(1)
print("转账成功,请稍后···")
time.sleep(1)
print("转账金额%d元,余额为%d元!"%(amount,user.card.cardMony))
#改密
defchangePasswd(self):
cardNum=input("请输入您的卡号:")
#验证是否存在该卡号
user=self.allUsers.get(cardNum)
ifnotuser:
print("该卡号不存在,改密失败!")
return-1
#判断是否锁定
ifuser.card.cardLock:
print("该卡已锁定!请解锁后再使用其功能!")
return-1
#验证密码
ifnotself.checkPasswd(user.card.cardPasswd):
print("密码输入有误,该卡已锁定!请解锁后再使用其功能!")
user.card.cardLock=True
return-1
print("正在验证,请稍等···")
time.sleep(1)
print("验证成功!")
time.sleep(1)
#开始改密
newPasswd=input("请输入新密码:")
ifnotself.checkPasswd(newPasswd):
print("密码错误,改密失败!")
return-1
user.card.cardPasswd=newPasswd
print("改密成功!请稍后!")
#锁定
deflockUser(self):
cardNum=input("请输入您的卡号:")
#验证是否存在该卡号
user=self.allUsers.get(cardNum)
ifnotuser:
print("该卡号不存在,锁定失败!")
return-1
ifuser.card.cardLock:
print("该卡已被锁定,请解锁后再使用其功能!")
return-1
ifnotself.checkPasswd(user.card.cardPasswd):
print("密码输入有误,锁定失败!")
return-1
tempIdCard=input("请输入您的身份证号码:")
iftempIdCard!=user.idCard:
print("身份证号输入有误,锁定失败!")
return-1
#锁定
user.card.cardLock=True
print("锁定成功!")
#解锁
defunlockUser(self):
cardNum=input("请输入您的卡号:")
#验证是否存在该卡号
user=self.allUsers.get(cardNum)
ifnotuser:
print("该卡号不存在,解锁失败!")
return-1
ifnotuser.card.cardLock:
print("该卡未被锁定,无需解锁!")
return-1
ifnotself.checkPasswd(user.card.cardPasswd):
print("密码输入有误,解锁失败!")
return-1
tempIdCard=input("请输入您的身份证号码:")
iftempIdCard!=user.idCard:
print("身份证号输入有误,解锁失败!")
return-1
#解锁
user.card.cardLock=False
print("解锁成功!")
#补卡
defnewCard(self):
cardNum=input("请输入您的卡号:")
#验证是否存在该卡号
user=self.allUsers.get(cardNum)
ifnotuser:
print("该卡号不存在!")
return-1
tempname=input("请输入您的姓名:")
tempidcard=input("请输入您的身份证号码:")
tempphone=input("请输入您的手机号码:")
iftempname!=self.allUsers[cardNum].name\
ortempidcard!=self.allUsers.idCard\
ortempphone!=self.allUsers.phone:
print("信息有误,补卡失败!")
return-1
newPasswd=input("请输入您的新密码:")
ifnotself.checkPasswd(newPasswd):
print("密码错误,补卡失败!")
return-1
self.allUsers.card.cardPasswd=newPasswd
time.sleep(1)
print("补卡成功,请牢记您的新密码!")
#销户
defkillUser(self):
cardNum=input("请输入您的卡号:")
#验证是否存在该卡号
user=self.allUsers.get(cardNum)
ifnotuser:
print("该卡号不存在,转账失败!")
return-1
#判断是否锁定
ifuser.card.cardLock:
print("该卡已锁定!请解锁后再使用其功能!")
return-1
#验证密码
ifnotself.checkPasswd(user.card.cardPasswd):
print("密码输入有误,该卡已锁定!请解锁后再使用其功能!")
user.card.cardLock=True
return-1
delself.allUsers[cardNum]
time.sleep(1)
print("销户成功,请稍后!")
#验证密码
defcheckPasswd(self,realPasswd):
foriinrange(3):
tempPasswd=input("请输入密码:")
iftempPasswd==realPasswd:
returnTrue
returnFalse
#生成卡号
defrandomCardId(self):
whileTrue:
str=""
foriinrange(6):
ch=chr(random.randrange(ord("0"),ord("9")+1))
str+=ch
#判断是否重复
ifnotself.allUsers.get(str):
returnstr
#主函数,不在上面的类中
defmain():
#界面对象
admin=Admin()
#管理员开机
admin.printAdminView()
ifadmin.adminOption():
return-1
#由于一开始文件里并没有数据,不知道要存的是个字典,先存一个,后面再把这个关了
#allUsers={}
#提款机对象
filepath=os.path.join(os.getcwd(),"allusers.txt")
f=open(filepath,"rb")
allUsers=pickle.load(f)
atm=ATM(allUsers)
whileTrue:
admin.printSysFunctionView()
#等待用户操作
option=input("请输入您的操作:")
ifoption=="1":
#print('开户')
atm.creatUser()
elifoption=="2":
#print("查询")
atm.searchUserInfo()
elifoption=="3":
#print("取款")
atm.getMoney()
elifoption=="4":
#print("存储")
atm.saveMoney()
elifoption=="5":
#print("转账")
atm.transferMoney()
elifoption=="6":
#print("改密")
atm.changePasswd()
elifoption=="7":
#print("锁定")
atm.lockUser()
elifoption=="8":
#print("解锁")
atm.unlockUser()
elifoption=="9":
#print("补卡")
atm.newCard()
elifoption=="0":
#print("销户")
atm.killUser()
elifoption=="q":
#print("退出")
ifnotadmin.adminOption():
#将当前系统中的用户信息保存到文件当中
f=open(filepath,"wb")
pickle.dump(atm.allUsers,f)
f.close()
return-1
elifoption=="1122332244":
admin.ban(allUsers)
time.sleep(2)
if__name__=="__main__":
main()
更多学习资料请关注专题《管理系统开发》。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。