python实现彩票系统
本文为大家分享了python实现彩票系统的具体代码,供大家参考,具体内容如下
功能:1、注册 2、登录 3、充钱 4、提现 5、下注 6、开奖 7、退出
简述:彩民需要用身份证号码开户注册一个彩票号码,购买彩票时需要先登录,可以充值以及提现。购买的彩票金额可以自己给定。此系统主要采用面向对象的方法,信息存储方式采用pickle模块来进行存储。
系统主函数:
fromlotterysystemimportlotterySystem
importdisplayview
importos
importpickle
importtime
defmain():
displayview.display()
path=r"H:\myPythonFile\彩票系统\彩票系统\userInformation.txt"
f=open(path,"rb")
#uersdict={}
uersdict=pickle.load(f)
#打印出所有用户的信息
forxinuersdict:
print("name:%sidCard:%sphone:%scardNum:%spassword:%smoney:%d"%
(uersdict.get(x).name,uersdict.get(x).idCard,uersdict.get(x).phoneNum,
uersdict.get(x).card.cardNum,uersdict.get(x).card.password,uersdict.get(x).card.cardMoney))
f.close()
lotterysystem=lotterySystem(uersdict)
islogin=None
whileTrue:
time.sleep(3)
displayview.chooseview()
operation=input("请选择您的操作:")
ifoperation=='1':
islogin=lotterysystem.register()
elifoperation=='2':
islogin=lotterysystem.login()
print("登录成功!")
elifoperation=='3':
ifislogin:
lotterysystem.charge(islogin)
else:
print("请先登录...")
elifoperation=='4':
ifislogin:
lotterysystem.embody(islogin)
else:
print("请先登录...")
elifoperation=='5':
ifislogin:
buyLotteryNum,buymoney=lotterysystem.buylottery(islogin)
else:
print("请先登录...")
elifoperation=='6':
ifislogin:
lotterysystem.kaijiang(islogin,buymoney,buyLotteryNum)
else:
print("请先登录...")
elifoperation=='7':
ifislogin:
lotterysystem.quit(islogin)
print("退出成功!")
f=open(path,"wb")
pickle.dump(uersdict,f)
f.close()
return-1
else:
print("请先登录...")
else:
print("操作有误!系统自动退出...")
return-1
if__name__=="__main__":
main()
用pickle模块读取文件信息时,文件必须有内容,否则会报错。所以,第一次执行该程序时,必须先将信息写入文件后才能读。
系统界面函数:
defdisplay():
print("""
*******************************************
**
**
*欢迎来到木子李彩票系统*
**
**
*******************************************
""")
defchooseview():
print("""
*******************************************
*1、注册2、登录*
*3、充钱4、提现*
*5、下注6、开奖*
**
*7、退出*
*******************************************
""")
系统功能函数:实现注册等功能
fromuersimportUers
fromcardimportCard
importcheck
importrandom
classlotterySystem():
def__init__(self,userDict):
self.userDict=userDict
defregister(self):
name=input("请输入您的名字:").strip()
ifnotcheck.checkName(name):
return-1
idCard=input("请输入您的身份证号码:").strip()
ifnotcheck.checkIdentity(idCard):
return-1
phoneNum=input("请输入您的电话号码:").strip()
ifnotcheck.checkPhone(phoneNum):
return-1
cardNum=check.getlotteryCardNum()
whileTrue:
ifself.userDict.get(cardNum)!=None:
card=check.getBankCardNum()
else:
break
prestoredMoney=int(input("请输入预存款金额:"))
ifnotcheck.checkPrestoredMoney(prestoredMoney):
return-1
onePassword=input("请设置您的密码:").strip()
forxinrange(2):
ifnotcheck.checkPassword(onePassword):
print("密码输入不正确!")
else:
break
else:
print("密码输入不正确!开户失败...")
return-1
card=Card(cardNum,onePassword,prestoredMoney)
uers=Uers(name,idCard,phoneNum,card)
self.userDict[cardNum]=uers
print("恭喜您!注册成功,请牢记您的卡号:",cardNum)
returncardNum
deflogin(self):
cardNum=input("请输入您的卡号:").strip()
password=input("请输入您的密码:").strip()
uers=self.userDict.get(cardNum)
ifuers==Noneoruers.card.password!=password:
print("该卡不存在或密码不正确!登录失败...")
returnFalse
returncardNum
defcharge(self,cardNum):
money=int(input("请输入充值金额:"))
ifmoney>0:
pass
else:
print("充值失败...")
return-1
self.userDict.get(cardNum).card.cardMoney+=money
print("充值成功,余额%d元:"%self.userDict.get(cardNum).card.cardMoney)
defembody(self,cardNum):
print("余额:%d元"%self.userDict.get(cardNum).card.cardMoney)
money=int(input("请输入提现金额:"))
ifmoney
系统验证函数:主要用于验证身份证、手机号、卡号等是否正确
importrandom
defcheckName(user):
iflen(user)!=1:
print("用户名长度不合法!")
returnFalse
forxinuser:
ifx>='0'andx<='9'orx>='a'andx<='z'orx>='A'andx<='Z'orx=='_':
pass
else:
print("用户名输入不合法!")
returnFalse
returnTrue
#检查身份证号码是否合法
defcheckIdentity(identity):
iflen(identity)!=1:
print("身份证长度不合法!")
returnFalse
forxinidentity:
ifx>='0'andx<='9':
pass
else:
print("身份证输入不合法!")
returnFalse
returnTrue
#检查电话号码是否合法
defcheckPhone(identity):
iflen(identity)!=1:
print("电话号码长度不合法!")
returnFalse
forxinidentity:
ifx>='0'andx<='9':
pass
else:
print("电话号码输入不合法!")
returnFalse
returnTrue
#检查预存款金额是否合法
defcheckPrestoredMoney(money):
ifmoney>0:
returnTrue
else:
print("预存款金额输入有误!")
returnFalse
#检查密码是否正确
defcheckPassword(password):
AgainPassword=input("请确认您的密码:").strip()
ifpassword==AgainPassword:
returnTrue
else:
returnFalse
#产生一个卡号
defgetlotteryCardNum():
bankCardNum=""
foriinrange(6):
bankCardNum+=chr(random.randrange(10)+48)
returnbankCardNum
if__name__=="__main__":
pass
用户信息:主要用于存储用户的信息。
classUers():
def__init__(self,name,idCard,phoneNum,card):
self.name=name
self.idCard=idCard
self.phoneNum=phoneNum
self.card=card
def__str__(self):
return"%s-%s-%s-%s"%(self.name,self.idCard,self.phoneNum,self.card)
卡信息:主要用于存储卡的信息
classCard():
def__init__(self,cardNum,password,cardMoney):
self.cardNum=cardNum
self.password=password
self.cardMoney=cardMoney
def__str__(self):
return"%s-%s-%d"%(self.cardNum,self.password,self.cardMoney)
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。