vb6做一个抽题软件,怎样每点一次抽题按钮就随机不重复抽出一道题

vb6做一个抽题软件,怎样每点一次抽题按钮就随机不重复抽出一道题直到抽完题库里的题,主要是怎样生成一个随机不重复的数,另外,要是加个初始化的按钮要怎么弄,求代码!

使用List(问题和答案分别储存):

'新建两个列表框:List1、List2
Dim Numb As Integer                 '题目号

Private Sub Command1_Click()        '初始化按钮(这部分代码可以放到Form_Load中)
List1.Clear: List2.Clear            '清空列表
'把题目输入到列表框
Open "D:\题目.txt" For Input As #1
Do Until EOF(1)
    Input #1, timu
    List1.AddItem timu
Loop
'把答案输入到列表框
Open "D:\答案.txt" For Input As #2
Do Until EOF(2)
    Input #2, daan
    List2.AddItem daan
Loop

Close
End Sub

Private Sub Command2_Click()
Randomize                           '初始化随机数种子。重点:如不初始化,随机函数每次都会出来相同数字
Numb = Int(Rnd * List1.ListCount)   '抽取题号
Label1 = List1.List(Numb)           'Label1显示题目
Label2 = List2.List(Numb)           'label2预读答案
Label2.Visible = False              '隐藏答案
List1.RemoveItem (Numb)             '移除已抽过的题目
End Sub

Private Sub Command3_Click()
Label2.Visible = True               '显示答案
End Sub

如果问题和答案共同储存(题目在前,答案在后),则Command1_Click替换成:

Private Sub Command1_Click()        '初始化按钮(这部分代码可以放到Form_Load中)
List1.Clear: List2.Clear            '清空列表
'把题目和答案输入到列表框
Open "D:\题目和答案.txt" For Input As #1
Do Until EOF(1)
    Input #1, timu
    Input #1, daan
    List1.AddItem timu
    List2.AddItem daan
Loop

Close
End Sub

追问

我的题库是一个excel表格,可以查到一共有多少行,也就是多少道题目,这样返回一个总题数,比如说100,然后我想抽取1-100内随机的一个不重复的数字,这样通过这个数字就可以读取题库里相应行数的题目和答案,在抽到第100题以后,再抽的时候有个提示,题库已经没有题之类的。我现在的问题就是 1-n 内随机不重复抽取数字,并且在抽完n次之后有个提示,这部分不会弄,麻烦你再给看看,谢谢了!

你的方法是要把题库的内容存到list 里是吗?如果题库很大的话,会不会对速度有影响?

追答

可以不用Excel,直接把表格中的内容复制到txt中,这样比较简便。用Excel或数据库速度也不会很快。

在Command2_Click前面加上【If List1.ListCount = 0 Then MsgBox "您已抽完题目。": End
】,便可以在抽完后给出提示。另外,上次发的代码漏了【List2.RemoveItem (Numb)】这一句,下面已经补上。

Private Sub Command2_Click()
If List1.ListCount = 0 Then MsgBox "您已抽完题目。": End
Randomize                           '初始化随机数种子。重点:如不初始化,随机函数每次都会出来相同数字
Numb = Int(Rnd * List1.ListCount)   '抽取题号
Label1 = List1.List(Numb)           'Label1显示题目
Label2 = List2.List(Numb)           'label2预读答案
Label2.Visible = False              '隐藏答案
List1.RemoveItem (Numb)             '移除已抽过的题目
List2.RemoveItem (Numb)             '移除已显示过的答案
End Sub

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-08-23
为每个题目编一个号,建一个数组用来保存抽取过的题目的号,然后每抽取一个号就与这个数组对比一下是否有重复的。
有重复就就再抽取一次。直到没有重复为止追问

能否发代码详解,刚接触,不是很懂

vb6做一个抽题软件,怎样每点一次抽题按钮就随机不重复抽出一道题
'新建两个列表框:List1、List2Dim Numb As Integer '题目号Private Sub Command1_Click() '初始化按钮(这部分代码可以放到Form_Load中)List1.Clear: List2.Clear '清空列表'把题目输入到列表框Open "D:\\题目.txt" For Input As #1Do Until EOF(1) Input #1, timu List1....

请教一个VB6.0的编程问题:当命令按钮按下时,如何使文本框中出现随机数...
你可以在按钮的单击事件中用随机函数 在调用 Rnd 之前,先使用无参数的 Randomize,要不然它并不是真正的随机 eg:求1~20间的随机数 Randomize text1.text=Int(Rnd() * 19) + 1

想用vb6.0做一个程序,实现每点击一次按钮,窗口底色就变化一次
Public FORMCOLOR As LongPrivate Sub Form_Load() Form1.BackColor = 0 Timer1.Enabled = False Timer1.Interval = 100End SubPrivate Sub Command1_Click() FORMCOLOR = Form1.BackColor Timer1.Enabled = TrueEnd SubPrivate Sub Timer1_Timer() If Form1.BackColor < ...

我有一个考试用的随机抽题软件,想找大神给我做一个一模一样的
你可以用考试云,下方照片是抽题侧模简单示意图。

ppt题库随机抽题不重复怎么做ppt题库随机抽题不重复怎么做出来
你可以使用以下方法进行PPT题库的随机抽题不重复:1. 首先,将所有的题目都录入电子表格中,每个题目占一行。2. 在另一个单元格中用 "=RAND()"函数生成随机数,并将其复制到每一行中。3. 对表格按照随机数列进行排序,这样每个题目就会被赋予一个随机的编号。4. 为每个PPT页面设置一个随机数生成...

有没有自己录入题库抽题做的手机软件
试题通可以的,随机练习和模拟考试,能导入自己的试题

本人想利用excel做一个自动出题系统,第一个工作簿是随机生成的试卷,后 ...
一、用Excel2010实现随机抽题 在Excel中实现随机抽题的原理其实很简单。我们先对所属单元在考试范围内的题目都用RAND产生一个随机数,再按随机数对题目排名次。这样前N名的题目自然是随机的。然后再用VLOOKUP按名次值把前1-N名的题目顺次提取出来,不就等于是随机抽取N题了吗?而我们每刷新一次随机数...

随机抽题ppt怎么做随机抽题ppt怎么做图片
3.制作PPT幻灯片:使用PPT软件进行制作,每一页PPT上都加入抽题按钮和随机函数公式,点击抽题按钮时,随机数函数就会产生一个随机数,这个随机数与总题数进行计算,得出本次应该抽取的编号,最后用编号去匹配真实的题目,将其打印在幻灯片上。4.调整排版:最后需要根据实际情况,对所有题目进行整理和排版...

PPT随机抽题
最简单的不重复随机数算法是这样的。假如要取0-9个随机数 那么先定义一个10个元素数组,存放0-9的值。再定义一个数字,存放数组有效元素的起始下标。然后取随机数,范围为0-当前数组有效元素个数。 第一次为0-10(即取包含0,不包含10的随机数)。假设第一次取到是5。那么将数组中第5个元素...

小学教师资格证文言文试讲
第一步:抽题。按考点安排,登陆面试测评软件系统,计算机从题库中随机抽取试题(幼儿园类别考生从抽取的2道试题中任选1道,其中类别只抽取1道试题),经考生确认后,计算机打印试题清单。 第二步:备课。考生持试题清单、备课纸,进入备课室,撰写教案(或活动演示方案)。准备时间20分钟。 第三步:回答规定问题。考生由工作...

相似回答