- 註冊時間
- 2007-9-13
- 最後登錄
- 2019-6-9
- 主題
- 查看
- 積分
- 3272
- 閱讀權限
- 140
- 文章
- 4469
- 相冊
- 12
- 日誌
- 3
狀態︰
離線
|
本帖最後由 又靜 於 2012-8-18 03:42 編輯
您好
針對您的需求我利用四個按鈕、二個文字方塊,重新編寫一個比較簡單昜懂的程式給您參考
按鈕一- Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
- Dim a As Integer
- Randomize() '為 Rnd 函式的亂數產生器指定新的種子值以進行初始化。
- TextBox1.Text = "" '清除 TextBox1 文字方塊
- For i = 1 To 6 '設定六次迴圈取得六位數
- a = Rnd() * 9 + 48 '產生亂數 0~9 (0~9 的 ASCII 碼是從 48~57 所以要再加48 )
- TextBox1.Text = TextBox1.Text & Chr(a) '把產生的亂數轉換成字元,再跟文字方數組合成字串
- Next
- End Sub
複製代碼 Randomize() 主要是為 Rnd 函式的亂數產生器進行初始化。如果省略了 Number,則會使用系統計時器的值做為新的種子值。
沒有使用 Randomize(),會造成Rnd 函式第一次所產生的值都相同。
因為我們要用文字方塊對獎,所以把產生0~9的亂數再加48,成為0~9的ASCII 碼,Chr(a)就是把ASCII 轉換成文字碼
利用 & 把六個字元組合成一組六位數的字串,再放到文字方塊1。
按鈕二 (程式碼跟按鈕一類似,所以不加註解了)- Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
- Dim b As Integer
- Randomize()
- TextBox2.Text = ""
- For i = 1 To 6
- b = Rnd() * 9 + 48
- TextBox2.Text = TextBox2.Text & Chr(b)
- Next
- End Sub
複製代碼 按鈕三- Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
- Dim prize
- prize = 0 '清除相同號碼次數值
- For i = 1 To 6 '設定六次迴圈,做六個數字的比較
- If Mid(TextBox1.Text, i, 1) = Mid(TextBox2.Text, i, 1) Then '利用迴圈 i 的值來指定兩個字串的第幾位數要做比較
- prize = prize + 1 '比較相同則對中號碼的次數加一
- End If
- Next
- MsgBox(Val(prize)) '將中幾個號碼顯示
- End Sub
複製代碼 Mid主是要從字串中取得一組指定的字串,它的用法Mid(字串,從第幾位開始,取幾個字)
所以我們利用For迴圈從文字方塊中,從第一位數逐一取到第六位,每次取一個字出來比較
如果有相同,prize就加一,最後再把 prize 的值顯示出來
按鈕四- Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
- Dim a As Integer
- TextBox1.Text = ""
- TextBox2.Text = ""
- Randomize()
- For i = 1 To 6
- a = Rnd() * 9 + 48
- TextBox1.Text = TextBox1.Text & Chr(a)
- a = Rnd() * 9 + 48
- TextBox2.Text = TextBox2.Text & Chr(a)
- Next
- End Sub
- End Class
複製代碼 因為不知道您要重新產生號碼跟對獎號碼??? 或是重新產生按鈕1的號碼,然後再對一次獎???
|
|