用VB编写36选7彩票模拟投注程序
软件世界
买彩票时我总是习惯随机选取,看看运气,但是到现在连末等奖也没中过,看看选取的号码总是没有几个满意的,于是自己动手作个模拟选号程序,选到满意的记下来就可以“掌握一下命运了”。
原理:随机数rnd大于0小于等于1,所以“(35*rnd)\1+1”一定为1~36的整数。注意:不可用“(36*rnd)\1”替换,因为当rnd< 1/36时,上式值为“0”,彩票的号码可没有0啊。
说做就做:
1.创建一个窗体form1
2.加两个按钮command1(caption属性设为投注)、command2(caption属性设为结束),自己安排位置
3.添加一个数组控件Option1[4]从0到4的caption属性依次设为1注2注 ──5注,自己安排位置
4.添加一个数组控件text1[35]将text1(0)──text1(34)按顺序排成5排,每排7个控件,自己要动动脑怎样布局效果会好一些。这里可以参考form图片(图1)

准备工作结束,下面是源代码及注解:
Private Sub Form_Load()
'for循环控制text1(0~34)的背景颜色且使每个文本框内显示‘¥’因为中奖也是得人民币嘛。
For i = 0 To 34
Text1(i).BackColor = &H808080
text1(i).text="¥"
Next i
End Sub
@双击command1加入如下代码:
Private Sub Command1_Click()
Dim num As Integer
Dim i As Integer
Dim temp As Integer
@for循环控制循环5次给5组号码赋值,且控制i的值
For k = 0 To 28 Step 7
i = k
@while 利用随机数给text1[35]赋值
While (i < k + 7)
num = (35 * Rnd) \ 1 +1
Text1(i).Text = num
i = i + 1
j = k
@ while 控制每排的7个数不重复
While (j < i - 1)
If num = Val(Text1(j).Text) Then
i = i - 1
Text1(i).Text = "¥"
End If
j = j + 1
Wend
Wend
@ 两个for循环对每排的7个数排序
For i = k To 5 + k
For j = i + 1 To 6 + k
If Val(Text1(i).Text) > Val(Text1(j).Text) Then
temp = Val(Text1(i).Text)
Text1(i).Text = Text1(j).Text
Text1(j).Text = temp
End If
Next j
Next i
Next k
End Sub
@根据 Index 的值控制显示几组选号
Private Sub Option1_Click(Index As Integer)
For i = (Index + 1) * 7 To 34
Text1(i).Visible = 0
Text1(i).Text = "¥"
Next i
For j = 0 To (Index + 1) * 7 - 1
Text1(j).Visible = 1
Text1(j).Text = "¥"
Next j
End Sub
@退出程序命令
Private Sub Command2_Click()
End
End Sub
细心的读者可能会看出来,号码 01、02、03 会显示为1、2、3,没关系可以在Private Sub Command1_Click() 函数最后加入下代码:
for i=0 to 34
if val(text1(i).text)<10 then
text1(i).text="0" & text1(i).text
end if
next i
注:该程序在 Winme、VB6.0 环境下调试通过。