本文为大家分享了python实现彩票系统的具体代码,供大家参考,具体内容如下
功能:1、注册 2、登录 3、充钱 4、提现 5、下注 6、开奖 7、退出
简述:彩民需要用身份证号码开户注册一个彩票号码,购买彩票时需要先登录,可以充值以及提现。购买的彩票金额可以自己给定。此系统主要采用面向对象的方法,信息存储方式采用pickle模块来进行存储。
系统主函数:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
|
from lotterysystem import lotterySystem import displayview import os import pickle import time def main(): displayview.display() path = r "H:\myPythonFile\彩票系统\彩票系统\userInformation.txt" f = open (path, "rb" ) # uersdict = {} uersdict = pickle.load(f) # 打印出所有用户的信息 for x in uersdict: print ( "name:%s idCard:%s phone:%s cardNum:%s password:%s money:%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 while True : time.sleep( 3 ) displayview.chooseview() operation = input ( "请选择您的操作:" ) if operation = = '1' : islogin = lotterysystem.register() elif operation = = '2' : islogin = lotterysystem.login() print ( "登录成功!" ) elif operation = = '3' : if islogin: lotterysystem.charge(islogin) else : print ( "请先登录..." ) elif operation = = '4' : if islogin: lotterysystem.embody(islogin) else : print ( "请先登录..." ) elif operation = = '5' : if islogin: buyLotteryNum, buymoney = lotterysystem.buylottery(islogin) else : print ( "请先登录..." ) elif operation = = '6' : if islogin: lotterysystem.kaijiang(islogin, buymoney, buyLotteryNum) else : print ( "请先登录..." ) elif operation = = '7' : if islogin: 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模块读取文件信息时,文件必须有内容,否则会报错。所以,第一次执行该程序时,必须先将信息写入文件后才能读。
系统界面函数:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
def display(): print ( """ ******************************************* * * * * * 欢迎来到木子李彩票系统 * * * * * ******************************************* """ ) def chooseview(): print ( """ ******************************************* * 1、注册 2、登录 * * 3、充钱 4、提现 * * 5、下注 6、开奖 * * * * 7、退出 * ******************************************* """ ) |
系统功能函数:实现注册等功能
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
|
from uers import Uers from card import Card import check import random class lotterySystem(): def __init__( self , userDict): self .userDict = userDict def register( self ): name = input ( "请输入您的名字:" ).strip() if not check.checkName(name): return - 1 idCard = input ( "请输入您的身份证号码:" ).strip() if not check.checkIdentity(idCard): return - 1 phoneNum = input ( "请输入您的电话号码:" ).strip() if not check.checkPhone(phoneNum): return - 1 cardNum = check.getlotteryCardNum() while True : if self .userDict.get(cardNum) ! = None : card = check.getBankCardNum() else : break prestoredMoney = int ( input ( "请输入预存款金额:" )) if not check.checkPrestoredMoney(prestoredMoney): return - 1 onePassword = input ( "请设置您的密码:" ).strip() for x in range ( 2 ): if not check.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) return cardNum def login( self ): cardNum = input ( "请输入您的卡号:" ).strip() password = input ( "请输入您的密码:" ).strip() uers = self .userDict.get(cardNum) if uers = = None or uers.card.password ! = password: print ( "该卡不存在或密码不正确!登录失败..." ) return False return cardNum def charge( self , cardNum): money = int ( input ( "请输入充值金额:" )) if money > 0 : pass else : print ( "充值失败..." ) return - 1 self .userDict.get(cardNum).card.cardMoney + = money print ( "充值成功,余额 %d 元:" % self .userDict.get(cardNum).card.cardMoney) def embody( self , cardNum): print ( "余额: %d 元" % self .userDict.get(cardNum).card.cardMoney) money = int ( input ( "请输入提现金额:" )) if money < self .userDict.get(cardNum).card.cardMoney: pass else : print ( "余额不足!提现失败..." ) return - 1 self .userDict.get(cardNum).card.cardMoney - = money print ( "提现成功,余额: %d 元" % self .userDict.get(cardNum).card.cardMoney) def buylottery( self , cardNum): lotteryNum = input ( '请输入所购买的彩票的序列号(6位数字,只含0和1):' ) while True : for x in lotteryNum: if len (lotteryNum) = = 6 : pass else : lotteryNum = input ( '输入位数有误!请重新输入...:' ) if x = = '0' or x = = '1' : pass else : lotteryNum = input ( '输入数字有误!请重新输入...:' ) break buymoney = int ( input ( "请输入购买金额:" )) if buymoney < self .userDict.get(cardNum).card.cardMoney: pass else : print ( "余额不足!购买失败..." ) return - 1 self .userDict.get(cardNum).card.cardMoney - = buymoney print ( "购买成功!购买号码为:" ,lotteryNum) print ( '购买彩票需要 %d 元!您的余额还有 %d 元' % (buymoney, self .userDict.get(cardNum).card.cardMoney)) return lotteryNum, buymoney def kaijiang( self , cardNum, buymoney, lotteryNum): lotteryStr = '' for x in range ( 6 ): lotteryStr + = random.choice([ '0' , '1' ]) print ( '开奖号码为:' , lotteryStr) lotteryNum = input ( "werwe" ) if lotteryNum = = lotteryStr: self .userDict.get(cardNum).card.cardMoney + = buymoney * 200 print ( "恭喜您中了 %d 元大奖!!!您的彩票卡余额还有 %d 元" % (buymoney * 200 , self .userDict.get(cardNum).card.cardMoney)) else : print ( "很遗憾没中奖,继续努力!" ) def quit( self , cardNum): print ( '您的余额还有 %d 元' % self .userDict.get(cardNum).card.cardMoney) |
系统验证函数:主要用于验证身份证、手机号、卡号等是否正确
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
|
import random def checkName(user): if len (user) ! = 1 : print ( "用户名长度不合法!" ) return False for x in user: if x > = '0' and x < = '9' or x > = 'a' and x < = 'z' or x > = 'A' and x < = 'Z' or x = = '_' : pass else : print ( "用户名输入不合法!" ) return False return True # 检查身份证号码是否合法 def checkIdentity(identity): if len (identity) ! = 1 : print ( "身份证长度不合法!" ) return False for x in identity: if x > = '0' and x < = '9' : pass else : print ( "身份证输入不合法!" ) return False return True # 检查电话号码是否合法 def checkPhone(identity): if len (identity) ! = 1 : print ( "电话号码长度不合法!" ) return False for x in identity: if x > = '0' and x < = '9' : pass else : print ( "电话号码输入不合法!" ) return False return True # 检查预存款金额是否合法 def checkPrestoredMoney(money): if money > 0 : return True else : print ( "预存款金额输入有误!" ) return False # 检查密码是否正确 def checkPassword(password): AgainPassword = input ( "请确认您的密码:" ).strip() if password = = AgainPassword: return True else : return False # 产生一个卡号 def getlotteryCardNum(): bankCardNum = "" for i in range ( 6 ): bankCardNum + = chr (random.randrange( 10 ) + 48 ) return bankCardNum if __name__ = = "__main__" : pass |
用户信息:主要用于存储用户的信息。
1
2
3
4
5
6
7
8
9
|
class Uers(): 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) |
卡信息:主要用于存储卡的信息
1
2
3
4
5
6
7
8
|
class Card(): 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) |
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/YiHong_Li/article/details/81407158