| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1383 人关注过本帖
标题:关于随机摇号功能
只看楼主 加入收藏
godkong
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2023-3-23
结帖率:33.33%
收藏
已结贴  问题点数:20 回复次数:9 
关于随机摇号功能
求VB程序,实现以下功能:
1、把一组要摇号的姓名放在一个1.TXT文档中,
2、读取1.TXT文件的姓名,点击按钮,随机排序,并加序号,显示在TEXT上。
请问大神,这样的话程序怎么写?
搜索更多相关主题的帖子: 随机 TXT 姓名 排序 TEXT 
2023-03-29 16:05
阳光上的桥
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:38
帖 子:129
专家分:772
注 册:2023-1-12
收藏
得分:5 
这个程序可以分成三部分:

第一部分代码,打开1.txt文件,把所有行读入数组中。使用VB的动态数组功能,每读入一行后ReDim Preserve扩展数组,添加行到数组末尾。简单的办法也可以直接定义个较大的数组。

第二部分,对数组进行随机乱排。简单的算法用For循环对数组的每一项(i),循环中产生一个随机数(j),如果i<>j就交换数组的两项。

第三部分,把数组的内容显示出来。可以使用Join数组为字符串,赋值给控件。

建议你试着自己写这程序,遇到具体的问题再详细讨论,百度能搜到完整代码,但是建议最好不用那样做,对提高编程能力的好处不大。
2023-03-29 16:30
wds1
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:49
帖 子:393
专家分:2025
注 册:2016-3-10
收藏
得分:5 
如果只是为了实现功能,那就ChatGPT吧,下列示例ChatGPT给出的代码:
Private Sub Command1_Click()
    Dim arrNames() As String
    Dim i As Integer
    Dim strName As String
    Dim intIndex As Integer
    Dim strOutput As String
   
    'Read names from file
    Open "1.TXT" For Input As #1
    Do Until EOF(1)
        Line Input #1, strName
        If strName <> "" Then
            ReDim Preserve arrNames(i)
            arrNames(i) = strName
            i = i + 1
        End If
    Loop
    Close #1
   
    'Randomly sort names
    Randomize
    For i = LBound(arrNames) To UBound(arrNames)
        intIndex = Int((UBound(arrNames) - i + 1) * Rnd + i)
        strName = arrNames(i)
        arrNames(i) = arrNames(intIndex)
        arrNames(intIndex) = strName
    Next i
   
    'Display names with index
    For i = LBound(arrNames) To UBound(arrNames)
        strOutput = strOutput & i + 1 & ". " & arrNames(i) & vbCrLf
    Next i
    Text1.Text = strOutput
End Sub
2023-03-30 08:07
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4938
专家分:30047
注 册:2008-10-15
收藏
得分:5 
建议这节增加一行命令
    'Read names from file
    Open "1.TXT" For Input As #1
    Do Until EOF(1)
        Line Input #1, strName
        strName = trim(strName)      '清前后空格,防出错
        If strName <> "" Then
            ReDim Preserve arrNames(i)
            arrNames(i) = strName
            i = i + 1
        End If
    Loop
    Close #1

授人于鱼,不如授人于渔
早已停用QQ了
2023-03-30 14:47
yuma
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:银河系
等 级:贵宾
威 望:37
帖 子:1925
专家分:2992
注 册:2009-12-22
收藏
得分:5 
以下是一个简单的VB程序,实现了随机摇号的功能:

在窗体上添加一个CommandButton和一个TextBox控件。

在CommandButton的Click事件中添加以下代码:


Private Sub Command1_Click()
    '读取1.TXT文件中的姓名
    Dim names() As String
    Dim i As Integer
    Open "1.TXT" For Input As #1
    Do Until EOF(1)
        ReDim Preserve names(i)
        Line Input #1, names(i)
        i = i + 1
    Loop
    Close #1
   
    '随机排序
    Randomize
    Dim j As Integer
    Dim temp As String
    For i = 0 To UBound(names)
        j = Int(Rnd() * (UBound(names) - i + 1)) + i
        temp = names(i)
        names(i) = names(j)
        names(j) = temp
    Next i
   
    '显示结果
    Text1.Text = ""
    For i = 0 To UBound(names)
        Text1.Text = Text1.Text & i + 1 & ". " & names(i) & vbCrLf
    Next i
End Sub

这个程序首先读取1.TXT文件中的姓名,然后使用随机排序算法将姓名随机排序,最后将排序后的结果显示在TextBox控件上。需要注意的是,这个程序假设1.TXT文件中每行只有一个姓名,如果每行有多个姓名,需要稍作修改。

心生万象,万象皆程序!
本人计算机知识网:http://bbs.为防伸手党,本站已停止会员注册。
2023-04-03 19:12
csnpx
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2005-12-27
收藏
得分:0 
2023-04-09 14:44
godkong
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2023-3-23
收藏
得分:0 
谢谢各位大神,我试了下各位的程序,发现还有个问题,不知道怎么解决,我放另外一个贴上。
2023-04-10 10:48
godkong
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2023-3-23
收藏
得分:0 
图片附件: 游客没有浏览图片的权限,请 登录注册

就是每个名字一行,不会按照TEXT组件的宽度,算出大概一行放多少个名字,然后每行就设定放这么多个名字。而是每行一个名字,我摇号名字多的时候,就需要TEXT很高的高度
2023-04-10 11:03
zwstwqq
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2021-11-13
收藏
得分:0 
2023-06-25 21:23
cwa9958
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:76
帖 子:272
专家分:1337
注 册:2006-6-25
收藏
得分:0 
你算他一组名字10个字符,包括序号,按照文本框宽度,固定排列即可。
2023-06-26 08:19
快速回复:关于随机摇号功能
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016721 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved