- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
巧用rand()函数随机重组记录.pdf
第27卷 第2期 大庆师范学院学报 Vo1.27 No.2
2007年 4月 JOURNAL OF DA0ING NORMAL UNIVERSITY Aoril.2007
巧用rand()函数随机重组记录
李 德 荣
(大庆师范学院计算机系,黑龙江大庆163712)
摘 要:rand()函数是VFP中新增加的函数,但在使用方法上存在一定的缺陷,如果在程序中利用rand()函数产生
一 定范围内的随机数,就可以实现对表记录的随机选取和随机重组,那么题库设计中的关键问题也就迎刃而解。
关键词:数据库;函数;随机函数
作者简介:李德荣(1964一),女,黑龙江大庆人,大庆师范学院计算机系副教授,主要从事数据库研究。
中图分类号:TP3l1.13 文献标识码:A 文章编号:1006—2165(2007)02—0063—02 收稿日期:2006—12一l1
Visual FoxPro(简称 VFP)关系型数据库管理系统以其功能强大、操作简单、方便实用等特点一直受到
数据库使用者的欢迎,尤其记录的备注型字段和通用型字段可以存储大量文本信息和 OLE对象,使其在
题库设计应用中广泛应用。本人在题库设计与开发过程中遇到的问题是如何对题库中的试题进行随机排
列,也就是如何实现随机组卷,对 Rand()函数进行了深入的研究与测试,通过程序巧妙应用 Rand()函数
解决了这一问题,现把结果与大家共同分享,旨在抛砖引玉。
1随机函数说明
Rand()函数是VFP新增加的函数,其功能是产生一个0~1之间的随机数,这为我们处理一些随机问
题带来了极大方便。
格式 :Rand(X),其中参数 X为种子数值,它决定了函数返回的数值序列,可省略…。
使用 Rand()函数时,如果不指定一个 x种子数,则每次进入 VFP后产生的随机数列都是相同的。
如:0.85、0.55、0.91、0.83、0.24… … 。如果 x种子数为一正数,则每次调用该函数都会产生相同的数
值,因为各种编程语言返回的随机数(确切地说是伪随机数)实际上都是根据递推公式计算的一组数值,
当序列足够长,这组数值近似满足均匀分布。如果计算伪随机序列的初始数值(称为种子)相同,则计算
出来的伪随机序列就是完全相同的。如何产生真正的随机数呢?要解决这个问题,需要在每次使用随机
时,指定种子数为0或负数,若参数是0或负数,则将使用系统时钟的种子值,因为你每次调用的时间不
同,产生的随机数 自然不同,也可以先使用负数作为参数,然后再使用不带参数的 Rand(),这样计算出来
的随机序列就不会完全相同了。
2随机组卷程序实例
下面以一个简单的程序为例,说明 Rand()函数在题库设计中实现随机组卷的应用。
说明:stb.dbf中存放试题,结构包含字段如下:
题型(C型) 试题(M型) 分数(N型) 标准答案 1(C型) 标准答案2(C型)
单项选择 Memo l b
判断对错 Memo 2 对
填空 Memo 3 ROM 只读存储器
use stb打开 stb
copy stru to kb复制结构到空表 kb中
copy stru to stb2复制结构到 stb2中
do while.t.
63
sele l
use stb excl在一号工作区中打开 stb
count to jIs统计记录个数存到jls中
if jIs=0
exit如记录个数为零则退出组卷
endif
wait”现在正在组卷,请稍候… ...”window nowait
do case
case j
文档评论(0)