求助,在做一个考试系统时,随机抽取时,出现一个问题。( 附运行结果)
在执行完后,ls显示的结果.rar
(101.34 KB)
***********定义三个数组,用于存放产生的随机数dimension suiji1(10),suiji2(10),suiji3(10)
suiji=int(rand(-100))
for i=1 to 10
suiji1(i)=int(1+50*rand())
suiji2(i)=int(1+32*rand())
suiji3(i)=int(1+30*rand())
endfor
************根据tnumber的数字来判断对那个表进行操作,并对每个表中所选择的记录存入一个表(ls)中,定义一变量tnumber
for i=1 to 10
if tnumber<=10
select 2 &&&&&&&&打开pd表
goto suiji1(i)
scatter memvar
select 1 &&&&&&&&&打开ls表
append blank
gather memvar
tnumber= tnumber+1
endif
endfor
sele 2
use &&&&&&&&关闭打开的表pd
***********以上用于判断从判断题中取10题
for i=1 to 10
tnumber= tnumber+1
if tnumber>=11.and. tnumber<=20
select 3 &&&&&&&&打开 dxxz表
goto suiji2(i)
scatter memvar
display
wait
sele 1&&&&&&&&&打开ls表
append blank
gather memvar
display
wait
endif
endfor
sele 3
use &&&&&&&&关闭打开的表
***********以上用于判断从单项题选择中取10题
for i=1 to 10
tnumber= tnumber+1
if tnumber>=21.and. tnumber<=30
select 4&&&&&&&&打开 dxxz表
goto suiji3(i)
scatter memvar
select 1&&&&&&&&&打开ls表
append blank
gather memvar
endif
endfor
select 4
use&&&&&&&&关闭打开的表&&&&&&&&关闭打开的表
***********以上用于判断从多项题选择中取10题
我的pd,dxxz,duoxxz,ls表,都有8个字段,分别是xh,tg,xx1,xx2,xx3,xx4,danan ,onedanan,字段设置全都一样。
想实现分别从pd,dxxz,duoxxz中取10题,到ls表中。
在判断题和多项题的选择中,数据正常。但在对单项题时,进行随机抽题时,xh,tg,xx1,xx2,xx3,xx4,和dxxz表中的记录一样,但字段ls.danan 就不dxxz.danan的数据一样了,ls表第11号记录(从单选)开始到20号记录的danan字段总是出现和第10记录相同的danan相同的数值。
在以上程序中,我加入了2个红色的display wait,在执行完scatter memvar时和dxxz.dbf中danan 相同,但执行完gather memvar 后,查看第2个红色的display wait,ls表中的danan就变的不一样了,不知什么原因。
问题复杂了点,但我的分也不多了,给10分,好不好
[ 本帖最后由 sdyswjlu 于 2010-9-14 22:15 编辑 ]