vb點名程序 隨機點名不重複

算法:

1.將姓名都裝入一個數組
2.記錄下課隨機的數量a,默認爲數組長度
3.隨機產生0~a的一個整數i
4.將數組arr(i)寫入文件,同時將arr(i)和arr(a)交換,並且a--
5.重複執行3

 代碼實現:

Option Explicit
Dim arr
Dim a As Integer
'初始化
Private Sub Form_Load()
    arr = Split("A001,A002,A003,A004,A005,A006", ",")
    a = UBound(arr)
End Sub
'點一次,隨機一個出來
Private Sub Command1_Click()
    Dim i As Integer, intRnd As Integer, strTmp As String
    
    If a = -1 Then
        MsgBox "所有成員都隨機過一次了!", vbExclamation
        Exit Sub
    End If
    
    Randomize
    intRnd = Int(Rnd * a)
    
    Me.Print "索引:" & intRnd, arr(intRnd), "提取前:" & Join(arr, ",") & " 參與隨機" & a + 1 & "個", '輸出並寫入文件
    Open "結果.txt" For Append As #1
    Print #1, arr(intRnd)
    Close #1
    
    strTmp = arr(intRnd)
    arr(intRnd) = arr(a)
    arr(a) = strTmp
    a = a - 1
    Me.Print "提取後:" & Join(arr, ",") & " 剩餘" & a + 1 & "個"
End Sub

運行結果:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章