| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 578 人关注过本帖
标题:随机生成的技术中为什么这二段代码相同?既然已查出了查询判断题库中判断题 ...
只看楼主 加入收藏
sylknb
Rank: 4
等 级:贵宾
威 望:14
帖 子:1547
专家分:184
注 册:2006-6-3
结帖率:79.38%
收藏
 问题点数:0 回复次数:4 
随机生成的技术中为什么这二段代码相同?既然已查出了查询判断题库中判断题编号等于随机数的判断题记录了为什么还要再来一个循环?

随机生成的技术




Dim MyValue, Response
Randomize                                '初始化随机数生成器
Do Until Response = vbNo                     '循环执行,直到单击No按钮
   MyValue = Int((6 * Rnd) + 1)                 '产生1~6之间的随机数
   MsgBox MyValue
   Response = MsgBox ("Roll again? ", vbYesNo)
Loop
在线考试系统中使用randomize语句,循环随机产生判断题、选择题、填空题。现以判断题为例,循环产生1到试卷判断题题库最大数中的随机数,查询随机数对应试题编号,输出试题。代码如下:
randomize  '初始化随机数生成器
sid=int(maxtype1*rnd+1)  '产生1到判断题最大数之间的随机数
set rst=conn.execute("select * from rightorwrong where rightorwrongid="&sid)
'查询判断题库中判断题编号等于随机数的判断题记录
while rst.eof  '循环查询随机判断题,直到记录不为空
randomize  
sid=int(maxtype1*rnd+1)  
set rst=conn.execute("select * from rightorwrong where rightorwrongid="&sid)

wend  
%>  
<%'以下输出题目顺序号、题目内容、备选答案内容及隐藏正确答案等内容%>
搜索更多相关主题的帖子: 随机数 技术 判断 代码 题库 
2010-04-06 09:22
cnfarer
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:179
帖 子:3330
专家分:21157
注 册:2010-1-19
收藏
得分:0 
防止生成的随机题号在试题表中不存在。一般情况下,这个循环不需要执行!

★★★★★为人民服务★★★★★
2010-04-06 14:19
sylknb
Rank: 4
等 级:贵宾
威 望:14
帖 子:1547
专家分:184
注 册:2006-6-3
收藏
得分:0 
我把下面几行代码删除,程 序出现问题

while rst.eof  '循环查询随机判断题,直到记录不为空
randomize  
sid=int(maxtype1*rnd+1)  
set rst=conn.execute("select * from rightorwrong where rightorwrongid="&sid)
wend  

ADODB.Field (0x80020009)
BOF 或 EOF 中有一个是“真”,或者当前的记录已被删除,所需的操作要求一个当前的记录。
2010-04-06 15:17
cnfarer
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:179
帖 子:3330
专家分:21157
注 册:2010-1-19
收藏
得分:0 
回复 3楼 sylknb
这就是第一次生成的题号在库中找不到对应的试题的缘故(说明在随机数范围内,库中的试题编号不完整)。我说的不需要执行是指第一次生成的题号就存在试题,这个循环的循环体内容不会被执行。而不是删除它,它是提高程序健壮性的一种手段。

[ 本帖最后由 cnfarer 于 2010-4-6 17:23 编辑 ]

★★★★★为人民服务★★★★★
2010-04-06 17:20
sylknb
Rank: 4
等 级:贵宾
威 望:14
帖 子:1547
专家分:184
注 册:2006-6-3
收藏
得分:0 
真是似懂非懂。
2010-04-06 17:40
快速回复:随机生成的技术中为什么这二段代码相同?既然已查出了查询判断题库中判 ...
数据加载中...
 
   



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

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