抽獎活動在生活中屢見不鮮,給我們日常生活也增添了不少樂趣。這裡向大家介紹一種都很熟悉的電腦模擬抽獎游戲,就像各類晚會上經常使用的抽獎模式。抽獎程序操作要求方便直觀,全體人員都可以清楚地觀看抽獎全過程。
一、設計界面
先打開VB,在Form1中定義六個命令按鈕,分別用來顯示中獎號碼的各位數字。默認情況下,參加的人數應少於10萬人(當然,可以通過增加或減少按鈕的個數,擴大或縮小參加抽獎人數的范圍)。再增加兩個命令按鈕,一個設置為“確定”鍵,當按下時,顯示中獎號碼。另一個設置為“繼續”鍵,讓計數器在選出中獎號碼後接著繼續滾動,直至再次按下“確定”鍵(界面如圖)。
再新建一個窗體Form2,加入一個文本輸入框,一個命令按鈕,一個標簽。其中文本框用於輸入參加本次活動的人數;命令按鈕用於確定和檢驗輸入的字符串是否合法;標簽用於顯示本次活動參加的人數。
這個程序調用系統隨機函數rnd來實現號碼的隨機產生,定義函數quwei()來顯示號碼的各位數字,通過Form2中的文本輸入,來限制滾動時出現的最大號碼。
具體代碼實現如下:
Private Sub Command1_Click()
If Text1.Text = "" Then
Exit Sub
Text1.SetFocus
End If ‘如果為空,要求重新輸入。
If Len(Text1.Text) > 5 Then
MsgBox "提示", vbOKOnly, "你輸入的值太大"
Text1.Text = "": Text1.SetFocus
Exit Sub
End If ‘如果太大,清空後再重新輸入
If Int(Text1.Text) < 6 Then
MsgBox "提示", vbOKOnly, "你輸入的值太小"
Text1.Text = "":Text1.SetFocus
Exit Sub
End If ‘如果太小,清空後再重新輸入
Form2.Hide ‘關閉Form2
Form1.Show ‘打開Form1
Load Me
End Sub
Private Sub Text1_KeyPress(KeyAscii As Integer)
If Not (48 <= KeyAscii And KeyAscii <= 57 ) Then
If KeyAscii <> 8 Then
KeyAscii = 0 ‘容錯,使輸入的整數值有效
End If
End If
End Sub
二、實現抽獎過程的代碼
Const max = 100000 ‘范圍設置
Dim d(0 To 5) As Integer ‘存儲號碼各位數字
Dim number(0 To 5) As Long ‘存儲中獎號碼
Dim ss, zhongjiang As Long
Dim stop_1 As Boolean ‘是否選定
Dim cishu As Integer ‘中獎次數
Public Function panduan(ByVal sa As Long)
panduan = False
Dim i
For i = 0 To 5
If sa = number(i) Then
panduan = True
GoTo dd
End If
Next
dd:
End Function ‘判斷是否出現過此號碼
Public Sub quwei(ByVal sa As Long)
Dim i As Integer
For i = 0 To 5
d(i) = sa Mod 10
sa = sa \ 10
Next
For i = 0 To 5
Me.Command1(i).Caption = d(5 - i) ‘顯示各位數字
Next
End Sub
Private Sub Command2_Click(Index As Integer)
If Index = 0 Then
If cishu > 5 Then
MsgBox "提示", vbOKOnly, "中獎的次數已經超過六次了!"
Timer1.Enabled = False
Dim i
For i = 0 To 5
If i < 2 Then
Command1(i).Visible = False
Command2(i).Visible = False
End If
Command1(i).Visible = False
Next
Dim string1
string1 = "本輪中獎的號碼為:" + CStr(number(0)) + " " + CStr(number(1)) + " " + CStr(number(2))
string1 = string1 + CStr(number(3)) + " " + CStr(number(4)) + " " + CStr(number(5))
Label1(0).Caption = string1 ‘顯示中獎號碼
Label1(0).Visible = True ‘提示性標簽顯示
Exit Sub
End If
number(cishu) = ss
cishu = cishu + 1
stop_1 = True
Else
stop_1 = False
End If
End Sub
Private Sub Form_Load()
Randomize Timer ‘調用系統函數,保證產生的數是隨機的
Label1(0).Visible = False
stop_1 = False
Dim i
cishu = 0
For i = 0 To 5
number(i) = 0
ss = (Int(Int(Form2.Text1.Text) * Rnd) + 1) Mod Int(Form2.Text1.Text) + 1
Next
End Sub ‘初始化變量
Private Sub Timer1_Timer()
If Not stop_1 Then
ss = (Int(Int(Form2.Text1.Text) * Rnd) + 1) Mod Int(Form2.Text1.Text) + 1
While (panduan(ss))
ss = (Int(Int(Form2.Text1.Text) * Rnd) + 1) Mod Int(Form2.Text1.Text) + 1
Wend
quwei ss
Else
Exit Sub
End If
End Sub
好了,至此我們已經完成了一個簡單的電腦模擬抽獎程序的編寫,希望你能設計出更好的模擬程序來。
以上程序在Windows2000,中文VB6.0企業版中順利通過。