用VB編寫接近實際的抽獎程序
發表時間:2023-08-13 來源:明輝站整理相關軟件相關文章人氣:
[摘要]近來彩票風行全國,普通人將他作為改變生活的希望,國家將他作為創收的一個項目。筆者設計了一個頗有味道的彩票程序,希望能幫助您重獎,如果您中獎請通知我,呵呵。 '本程序以"江蘇風采...
近來彩票風行全國,普通人將他作為改變生活的希望,國家將他作為創收的一個項目。筆者設計了一個頗有味道的彩票程序,希望能幫助您重獎,如果您中獎請通知我,呵呵。
'本程序以"江蘇風采福利彩票"(36選7)為例
'由于福利彩票是從36個球中選出7個球,有一些資料上介紹是用隨機函數產生一個數,為了避產生重復的數故而進行比較,重復時舍棄重選。或者做7個變量使它們不同。
'本程序特點接近實際,ListBox作為數據容器,每產生一個數將其移去(RemoveItem方法)。產的數放在數組中,最后再排序。
'在窗體中放置兩個命令按鈕(CmdRnd,CmdExit);包含5個元素的控件數(text1(0)~text1(4));一個組合框控件List1,將其Visible屬性設置為False。
'注:可以用ComboBox控件代替ListBox控件,只要將程序中的ListBox控件(list1)改
為ComboBox控件(combo1)即可。
'聲明
Private Const AllData = 36 '總數為36
Private Const Choose = 7 '要選出的數為7個
Dim Num(Choose - 1) As Byte '數組用來存放選出的數
Private Sub CmdRnd_Click() '產生隨機數
Dim i, j, RndData
For j = 0 To 4 '產生5組數據
For i = 1 To AllData
List1.AddItem i
Next i
For i = 0 To Choose - 1
Randomize '初始化隨機數的種子數
RndData = Int(((AllData - i) * Rnd) + 1)
Num(i) = List1.List(RndData - 1)
List1.RemoveItem (RndData - 1)
Next i
PopSort '調用冒泡排序
Text1(j) = " "
For i = 0 To Choose - 1
If Num(i) < 10 Then
Text1(j) = Text1(j) & "0" & Num(i) & " " '小于10的數在前面補“0”
Else
Text1(j) = Text1(j) & Num(i) & " "
End If
Next i
List1.Clear '清除總數容器
Next j
End Sub
Sub PopSort() '冒泡排序
Dim i, j, Temp As Byte
For i = Choose - 1 To 1 Step -1
For j = Choose - 1 To 1 Step -1
If i >= Choose - 1 - j Then
If Num(j) < Num(j - 1) Then
Temp = Num(j - 1)
Num(j - 1) = Num(j)
Num(j) = Temp
End If
End If
Next j
Next i
End Sub
Private Sub CmdExit_Click() '退出程序
Unload Me
End
End Sub