用VisualBasic設計抽獎程序
抽獎活動在生活中屢見不鮮,給我們日常生活也增添了不少樂趣。這里向大家介紹一種都很熟悉的電腦模擬抽獎游戲,就像各類晚會上經常使用的抽獎模式。抽獎程序操作要求方便直觀,全體人員都可以清楚地觀看抽獎全過程。
一、設計界面
先打開VB,在Form1中定義六個命令按鈕,分別用來顯示中獎號碼的各位數字。默認情況下,參加的人數應少于10萬人(當然,可以通過增加或減少按鈕的個數,擴大或縮小參加抽獎人數的范圍)。再增加兩個命令按鈕,一個設置為“確定”鍵,當按下時,顯示中獎號碼。另一個設置為“繼續”鍵,讓計數器在選出中獎號碼后接著繼續滾動,直至再次按下“確定”鍵(界面如圖)。

再新建一個窗體Form2,加入一個文本輸入框,一個命令按鈕,一個標簽。其中文本框用于輸入參加本次活動的人數;命令按鈕用于確定和檢驗輸入的字符串是否合法;標簽用于顯示本次活動參加的人數。
這個程序調用系統隨機函數rnd來實現號碼的隨機產生,定義函數quwei()來顯示號碼的各位數字,通過Form2中的文本輸入,來限制滾動時出現的最大號碼。
具體代碼實現如下:
二、實現抽獎過程的代碼
好了,至此我們已經完成了一個簡單的電腦模擬抽獎程序的編寫,希望你能設計出更好的模擬程序來。
以上程序在Windows2000,中文VB6.0企業版中順利通過。
一、設計界面
先打開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企業版中順利通過。