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)以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。