| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1277 人关注过本帖
标题:求助,在做一个考试系统时,随机抽取时,出现一个问题。( 附运行结果)
取消只看楼主 加入收藏
sdyswjlu
Rank: 1
等 级:新手上路
帖 子:108
专家分:0
注 册:2010-9-10
结帖率:95%
收藏
已结贴  问题点数:10 回复次数:7 
求助,在做一个考试系统时,随机抽取时,出现一个问题。( 附运行结果)
在执行完后,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 编辑 ]
搜索更多相关主题的帖子: 考试 系统 抽取 结果 随机 
2010-09-14 22:05
sdyswjlu
Rank: 1
等 级:新手上路
帖 子:108
专家分:0
注 册:2010-9-10
收藏
得分:0 
以下是引用panpende在2010-9-15 07:59:13的发言:

建议 scatter memvar 用 COPY TO LSWJ NEXT 1 代替;

append blank   gather  memvar  用 APPEND FROM LSWJ  代替 。

一般我是这样处理类似过程,从未出错。
这个copy  lswj next  1我在vf 6.0帮助文件中没有发现这个命令,能不能具体告诉我一下,这个命令的用法,
2010-09-15 22:03
sdyswjlu
Rank: 1
等 级:新手上路
帖 子:108
专家分:0
注 册:2010-9-10
收藏
得分:0 
2楼的理解是正确的,谢谢您了,我试试看
2010-09-15 22:04
sdyswjlu
Rank: 1
等 级:新手上路
帖 子:108
专家分:0
注 册:2010-9-10
收藏
得分:0 
以下是引用panpende在2010-9-15 07:59:13的发言:

建议 scatter memvar 用 COPY TO LSWJ NEXT 1 代替;

append blank   gather  memvar  用 APPEND FROM LSWJ  代替 。

一般我是这样处理类似过程,从未出错。
按照3楼的做法,还是出现相似的问题,只是ls 表中的danan 字段为空了,没有数值了。其它字段的值和表dxxz字段值 一致,不知道啥原因
2010-09-15 22:16
sdyswjlu
Rank: 1
等 级:新手上路
帖 子:108
专家分:0
注 册:2010-9-10
收藏
得分:0 
copy to next 1和append from后的结果.rar (154.87 KB)



建议 scatter memvar 用 COPY TO LSWJ NEXT 1 代替;

append blank   gather  memvar  用 APPEND FROM LSWJ  代替 。

一般我是这样处理类似过程,从未出错。
按照3楼的做法,还是出现相似的问题,只是ls 表中的danan 字段为空了,没有数值了。其它字段的值和表dxxz字段值 一致,不知道啥原因

在附件中,第1幅图是在执行了 COPY TO LSWJ NEXT 1 后,我加了display  wait两个命令的结果
第2幅是执行了APPEND FROM LSWJ  我加了display  wait两个命令的结果
望专家给予解决为盼


[ 本帖最后由 sdyswjlu 于 2010-9-15 22:34 编辑 ]
2010-09-15 22:23
sdyswjlu
Rank: 1
等 级:新手上路
帖 子:108
专家分:0
注 册:2010-9-10
收藏
得分:0 
使用scatter memvar 和gather memvar的结果.rar (147.5 KB)


我加入了2个红色的display  wait,在执行完scatter memvar时和dxxz.dbf中danan 相同,但执行完gather  memvar 后,查看第2个红色的display  wait,ls表中的danan就变的不一样了,不知什么原因。
我把运行结果发了,希望专家给予解决为盼
第1幅是执行了,scatter  memvar   后我加了display  wait两个命令后的结果
第2幅是执行了,gather   memvar   后我加了display  wait两个命令后的结果
从结果来看,第1幅是danan 字段是“B”,第2幅的danan字段就变成了“错”

[ 本帖最后由 sdyswjlu 于 2010-9-15 22:39 编辑 ]
2010-09-15 22:27
sdyswjlu
Rank: 1
等 级:新手上路
帖 子:108
专家分:0
注 册:2010-9-10
收藏
得分:0 
我就是用use  命令打开的表,结果一样,是空的。我已经试过了,还是不行。
我的表是通过excel 导入的,是不是原因在这里,我重新导入了一次,生成了一样的表,运行以后,结果显示又和以前的不一样了,以前是1记录-10记录正确,11-20不正确,21-30正确。现在正好是反过来了,只有11-20正确。是不是因为excel在导入前,各个excel表不一样而引起的。我导入以后,对各个dbf表,重新modi  stru了,设置全一样。原因是不是在此

[ 本帖最后由 sdyswjlu 于 2010-9-16 11:50 编辑 ]
2010-09-16 11:43
sdyswjlu
Rank: 1
等 级:新手上路
帖 子:108
专家分:0
注 册:2010-9-10
收藏
得分:0 
我已找到原因:是excel导入的问题,我把pd,dxxz,duoxxz,ls四个表,用统一个格式导入的,现在成功了
2010-09-17 09:19
快速回复:求助,在做一个考试系统时,随机抽取时,出现一个问题。( 附运行结果) ...
数据加载中...
 
   



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

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