📄 form1.frm
字号:
Dim g As Integer
Dim i As Integer
Dim j As Integer
Dim k As Integer
Dim h As Integer
Dim t(7) As String, sj As String, msg As String
Dim ch1 As Integer, ch2 As Integer
Dim ch3 As Integer, ch4 As Integer
Private Sub Form_Load()
Timer1.Enabled = False
Timer1.Interval = 10
Text1(1).Text = "特"
Text1(2).Text = "等"
Text1(3).Text = "奖"
Text1(4).Text = "就"
Text1(5).Text = "在"
Text1(6).Text = "今"
Text1(7).Text = "天"
Textnum(0).Text = ""
Textnum(0).SelLength = Len(Textnum(0).Text)
Text2.Text = ""
Ck1.Value = 1
Ck4.Value = 1
PBar1.Min = 0
PBar1.Value = 0
Randomize
End Sub
Sub Ck1_Click()
If Ck1.Value = 1 Then
Ck2.Value = 0
kind = 36
Else
Ck2.Value = 1
kind = 32
End If
End Sub
Sub Ck2_Click()
If Ck2.Value = 1 Then
Ck1.Value = 0
kind = 32
Else
Ck1.Value = 1
kind = 36
End If
End Sub
Private Sub Lab1_Click()
If Ck1.Value = 0 Then
Ck1.Value = 1
kind = 36
Ck2.Value = 0
End If
End Sub
Private Sub Lab2_Click()
If Ck2.Value = 0 Then
Ck2.Value = 1
kind = 32
Ck1.Value = 0
End If
End Sub
Private Sub Ck3_Click()
If Ck3.Value = 1 Then
Ck4.Value = 0
num = 1
Else
Ck4.Value = 1
num = 5
End If
Text2.BackColor = &H8000000F
Text2.Text = ""
End Sub
Private Sub Ck4_Click()
If Ck4.Value = 1 Then
Ck3.Value = 0
num = 5
Else
Ck3.Value = 1
num = 1
End If
Text2.BackColor = &H8000000F
Text2.Text = ""
End Sub
Private Sub Lab4_Click()
If Ck3.Value = 0 Then
Ck3.Value = 1
num = 1
Ck4.Value = 0
End If
Text2.BackColor = &H8000000F
Text2.Text = ""
End Sub
Private Sub Lab5_Click()
If Ck4.Value = 0 Then
Ck4.Value = 1
num = 5
Ck3.Value = 0
End If
Text2.BackColor = &H8000000F
Text2.Text = ""
End Sub
Private Sub CmdCls_Click()
If Timer1.Enabled = False Then
Textnum(0).Text = ""
m = 0
End If
End Sub
Private Sub CmdExit_Click()
Unload Me
Unload Form3
End Sub
Private Sub CmdFS_Click()
X = Shell("C:\WINDOWS\NOTEPAD.EXE", 1)
SendKeys "~~"
If m <> 0 Then num = m / 2 'm不为零时,为随机产生的号码注数
For i = 1 To num
SendKeys " " + CP_num(i) + "~"
Next i
End Sub
Private Sub Lab3_Click()
Text2.BackColor = &H80000005
End Sub
Private Sub Text2_Click()
Text2.BackColor = &H80000005
End Sub
Private Sub Cmdstart_Click()
If Text2.BackColor = &H80000005 Then
If Val(Text2.Text) <= 0 And (Text2.Text) <> "" Then
MsgBox " 请输入正确的号码注数(0~999之间)! ", 64, "提示信息": Exit Sub
End If
End If
If Text2.BackColor = &H80000005 Then '首先确定彩票的注数
num = Fix(Val(Text2.Text))
ElseIf Ck3.Value = 1 Then
num = 1
Else
num = 5
End If
PBar1.Max = num '确定进度条的最大值
PBar1.Value = 0
If Ck1.Value = 1 Then '确定彩票的种类
kind = 36
Else
kind = 32
End If
Textnum(0).Text = "" '清空窗口
Timer1.Enabled = False
Randomize
For i = 1 To 7 '清空大号码显示
Text1(i).Text = ""
Next i
m = 0
For p = 1 To 36 '概率统计sp()数组归零
sp(p) = 0
Next p
'-------------------------------------------------------------------
For h = 1 To num
CP_num(h) = "" '首先清空第h组号码
For g = 1 To 7 '清空号码组
n(g) = ""
Next g
For i = 1 To 7
ss: X = kind * Rnd
If (X - Fix(X)) * 10 >= 5 Then
X = Fix(X) + 1
Else
X = Fix(X)
End If
If X = 0 Then X = kind 'x 小于0.5即取最大值
If X < 10 Then 'x<10时,前面补0
n(i) = "0" + Trim(Str(X))
Else
n(i) = Trim(Str(X))
End If
If i > 1 Then '检查重号。如有重号,则重新产生号码
For j = (i - 1) To 1 Step -1
If n(i) = n(j) Then GoTo ss
Next j
End If
For k = 1 To 36 '统计数字出现次数
If Val(n(i)) = k Then sp(k) = sp(k) + 1
Next k
Next i
For i = 1 To 7 '排序
For j = i + 1 To 7
If n(i) > n(j) Then
Y = n(i)
n(i) = n(j)
n(j) = Y
End If
Next j
Next i
Text1(1).Text = n(1) '显示结果
Text1(2).Text = n(2)
Text1(3).Text = n(3)
Text1(4).Text = n(4)
Text1(5).Text = n(5)
Text1(6).Text = n(6)
Text1(7).Text = n(7)
DoEvents
If h < 10 Then '序号数字对齐
s = " " + Trim(Str(h)) + " "
ElseIf h < 100 Then
s = " " + Trim(Str(h))
Else
s = Trim(Str(h))
End If
'===============================================================
Textnum(0).Text = Textnum(0).Text + "第" + s + "注" + " " '将号码放入文本窗口
For i = 1 To 6
Textnum(0).Text = Textnum(0).Text + n(i) + " " + "+" + " "
Next i
Textnum(0).Text = Textnum(0).Text + n(7) + " "
'=============================================================
CP_num(h) = "第" + s + "注" + " " ''将第 h 注号码存入码组数组CP_num(h) +
For i = 1 To 6
CP_num(h) = CP_num(h) + n(i) + " " + "+" + " "
Next i
CP_num(h) = CP_num(h) + n(7) + " "
'============================================================
PBar1.Value = PBar1.Value + 1
Next h
PBar1.Value = 0
If Form3.Visible = True Then
CmdCK_Click
Form1.SetFocus
End If
End Sub
'============================================================================
Private Sub CmdCK_Click() '查看数字概率
Form3.Show
Form3.Cls
Form3!Lb1(41).Caption = ""
spx = 0
For q = 1 To 36 '确定图表中出现最大次数
If spx < sp(q) Then spx = sp(q)
If spx = 0 Then
Form3!Shape(q).Height = 50
Form3!Shape(q).Top = 3600 + 660 - 50
Form3!Lb1(41).Caption = ""
End If
Form3!Lb1(q).Caption = LTrim(Str$(q)) '显示号码序数
Form3!Lb1(q).ForeColor = RGB(0, 0, 120) '显示号码颜色
If (q Mod 2) = 1 Then '确定号码背景色
Form3!Lb1(q).BackColor = RGB(240, 240, 240)
Else
Form3!Lb1(q).BackColor = RGB(256, 200, 180)
End If
Next q
Form3!Lb1(37).Caption = LTrim(Str$(spx)) '显示图表中纵坐标最大次数
For p = 1 To 36 '确定图形高度
If spx = 0 Then
MsgBox "没有号码!", 64, "出错信息"
Exit Sub
End If
Form3!Shape(p).Height = (3600 / spx) * sp(p)
Form3!Shape(p).Top = 3600 - (3600 / spx) * sp(p) + 660
'Form3!Shape(p).FillColor = RGB(256 * Rnd, 256 * Rnd, 256 * Rnd) '确定图形颜色
Next p
'开始画坐标线
'------------
Dim X As Integer, Y As Integer, z As Integer
If spx <= 1 Then Form3!Lb1(41).Caption = "" '确定纵坐标中点位置及数值
Form3!Lb1(41).Caption = "" '清空数值
If (spx Mod 2) = 0 Then
Form3!Lb1(41).Caption = LTrim(Str$(Fix(spx / 2)))
Form3!Lb1(41).Top = 4260 - Fix((Fix(spx / 2)) * (3600 / spx)) - 100
Else
Form3!Lb1(41).Caption = LTrim(Str$(Fix(spx / 2) + 1))
Form3!Lb1(41).Top = 4260 - Fix((Fix(spx / 2) + 1) * (3600 / spx)) - 100
End If
'------------
For p = 1 To (spx - 1)
Form3.ForeColor = RGB(0, 0, 0) ' 前景色为黑色
Form3.Line (456, (4250 - Round((3600 / spx) * p)))-(7816, (4250 - Round((3600 / spx) * p)))
Form3.ForeColor = RGB(255, 255, 255) '前景色为白色。
Form3.Line (456, (4270 - Round((3600 / spx) * p)))-(7816, (4270 - Round((3600 / spx) * p)))
Next p
'-------------------------------------------
End Sub
Private Sub CmdRnd_Click() '随机产生号码
m = m + 1
If (m Mod 2) = 1 Then
CmdRnd.Caption = "选定号码"
Timer1.Enabled = True
Else
If m = 2 Then Textnum(0).Text = ""
CmdRnd.Caption = "随机摇号开始"
Timer1.Enabled = False
If (m / 2) < 10 Then
sj = Str$(m / 2)
Else
sj = LTrim(Str$(m / 2))
End If
Textnum(0).Text = Textnum(0).Text + "随机第" + sj + "注" + " "
For i = 1 To 6
Textnum(0).Text = Textnum(0).Text + n(i) + " " + "+" + " "
Next i
Textnum(0).Text = Textnum(0).Text + n(7) + " "
CP_num(m / 2) = "随机第" + sj + "注" + " " '将第 m/2 注号码存入码组数组
For i = 1 To 6
CP_num(m / 2) = CP_num(m / 2) + n(i) + " " + "+" + " "
Next i
CP_num(m / 2) = CP_num(m / 2) + n(7) + " "
End If
End Sub
Private Sub Timer1_Timer()
If m = 1 Then Textnum(0).Text = ""
For p = 1 To 36 'sp()数组归零
sp(p) = 0
Next p
For i = 1 To 7 '清空一注内的各号码
n(i) = ""
Next i
'-------------------------------------------------------------------
For i = 1 To 7
ss: X = kind * Rnd
If ((X - Fix(X)) * 10) >= 5 Then
X = Fix(X) + 1
Else
X = Fix(X)
End If
If X = 0 Then X = kind 'GoTo ss,如果小于0.5则取最大值
If X < 10 Then
n(i) = "0" + LTrim(Str$(X))
Else
n(i) = LTrim(Str$(X))
End If
If i > 1 Then
For j = (i - 1) To 1 Step -1
If n(i) = n(j) Then GoTo ss
Next j
End If
For k = 1 To 36 '统计数字出现次数
If Val(n(i)) = k Then sp(k) = sp(k) + 1
Next k
Next i
For i = 1 To 7
For j = i + 1 To 7
If n(i) > n(j) Then
Y = n(i)
n(i) = n(j)
n(j) = Y
End If
Next j
Next i
DoEvents
Text1(1).Text = n(1)
Text1(2).Text = n(2)
Text1(3).Text = n(3)
Text1(4).Text = n(4)
Text1(5).Text = n(5)
Text1(6).Text = n(6)
Text1(7).Text = n(7)
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -