程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> Visual Basic語言 >> VB6 >> 用Visual Basic設計抽獎程序

用Visual Basic設計抽獎程序

編輯:VB6

抽獎活動在生活中屢見不鮮,給我們日常生活也增添了不少樂趣。這裡向大家介紹一種都很熟悉的電腦模擬抽獎游戲,就像各類晚會上經常使用的抽獎模式。抽獎程序操作要求方便直觀,全體人員都可以清楚地觀看抽獎全過程。

一、設計界面

先打開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企業版中順利通過。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved