注册 登录
编程论坛 VB6论坛

求VB程序()

godkong 发布于 2023-03-23 10:43, 1227 次点击
求VB程序,实现以下功能:
1、输入一组姓名
2、点一个按钮,对这些姓名随机排序(或者给每个姓名加个序号),屏幕显示出来
7 回复
#2
wds12023-03-23 11:37
这段代码假设输入5个姓名,你可以根据实际情况修改数组大小。在点击按钮时,会对这些姓名进行随机排序,并在屏幕上显示出来。如果你想给每个姓名加个序号,可以在显示结果时加上序号即可。

Private Sub Command1_Click()
   Dim names(1 To 5) As String ' 假设输入5个姓名
    names(1) = "张三"
    names(2) = "李四"
    names(3) = "王五"
    names(4) = "赵六"
    names(5) = "钱七"
   
    ' 随机排序
    Dim i As Integer, j As Integer
    Dim temp As String
    For i = 1 To 5
        j = Int(Rnd() * 5) + 1
        temp = names(i)
        names(i) = names(j)
        names(j) = temp
    Next i
   
    ' 显示结果
    Dim result As String
    For i = 1 To 5
        result = result & i & ":" & names(i) & vbCrLf
    Next i
    MsgBox result
End Sub
#3
apull2023-03-23 15:40
程序代码:

Private Sub Command1_Click()
    s = Split(Trim(Text1.Text), vbCrLf)
    sSize = UBound(s)
   
    For i = 0 To sSize
        s(i) = i + 1 & " " & s(i)
    Next i
   
    For i = 0 To sSize
        k = Int(Rnd() * sSize) + 1
        t = s(i)
        s(i) = s(k)
        s(k) = t        
    Next i
   
    sr = ""
    For i = 0 To sSize
        sr = sr & s(i) & vbCrLf
    Next i
    Text2.Text = sr   
   
End Sub



只有本站会员才能查看附件,请 登录
#4
godkong2023-03-29 09:59
谢谢谢两位大神!
#5
godkong2023-03-29 11:23
回复 3楼 apull
谢谢大神!
如果把程序改为:
1、把一组要摇号的姓名放在一个1.TXT文档中,
2、读取1.TXT文件的姓名,点击按钮,随机排序,并加序号,显示在屏幕的TEXT上。
请问大神,这样的话程序怎么写?
#6
godkong2023-03-29 11:25
回复 2楼 wds1
谢谢你的解答。
版主的程序更全面一点。
#7
yuma2023-03-29 17:40
以下是一个简单的VB程序,实现了您所需的功能:
Private Sub btnSort_Click()
    Dim names() As String
    Dim i As Integer, j As Integer
    Dim temp As String
   
    '将输入的姓名按逗号分隔成数组
    names = Split(txtNames.Text, ",")
   
    '使用冒泡排序算法对姓名进行随机排序
    For i = LBound(names) To UBound(names) - 1
        For j = i + 1 To UBound(names)
            If Rnd() < 0.5 Then
                temp = names(i)
                names(i) = names(j)
                names(j) = temp
            End If
        Next j
    Next i
   
    '将排序后的姓名显示在屏幕上
    For i = LBound(names) To UBound(names)
        lstNames.AddItem names(i)
    Next i
End Sub

在这个程序中,我们首先将输入的姓名按逗号分隔成一个字符串数组。然后使用冒泡排序算法对姓名进行随机排序,最后将排序后的姓名显示在屏幕上。
您可以将上述代码复制到VB的代码编辑器中,并在窗体上添加一个文本框(用于输入姓名)、一个按钮(用于触发排序操作)和一个列表框(用于显示排序后的姓名)。然后运行程序,输入一组姓名,点击按钮即可看到随机排序后的结果。
#8
William19492023-04-05 10:24
程序代码:
Private Sub Command1_Click()
    Dim Count   As Long, P As Long
    Dim Names() As Variant
    Dim Index() As Long

    Names() = Array("A", "B", "C", "D", "E")
    Count = UBound(Names)
    Call GetRandoms(Count, Index())
    For P = 0 To Count
        Debug.Print Names(Index(P)), Index(P)
    Next
    Erase Names(), Index()
End Sub

Private Sub GetRandoms(ByVal Count As Long, Randoms() As Long)
    Dim iRnd        As Long, P As Long
    Dim Exists()    As Byte

    ReDim Exists(Count) As Byte, Randoms(Count) As Long
    VBA.Randomize
    Do
        iRnd = Int((Count + 1) * VBA.Rnd())
        If Exists(iRnd) = 0 Then
            Exists(iRnd) = 1
            Randoms(P) = iRnd
            P = P + 1
        End If
    Loop Until P > Count
    Erase Exists()
End Sub
1