以下是引用wengjl在2019-7-22 09:31:50的发言:
附件是按照5楼的思路来写的。
也可以建立一个模型来解决:你的教师分组看作一个有32颗齿的齿轮(J齿轮),语文、数学、综合、英语考试分别看作有32颗齿的4个齿轮(分别为A、B、C、D齿轮),
语文考试时,齿序J1、J2、J3、…与A1、A2、A3、…一一对应,以后每场考试时,j齿轮转过2个齿,则
J1、J2、J3、…与B3、B4、B5、…一一对应,
J1、J2、J3、…与C5、C6、C7、…一一对应,
J1、J2、J3、…与D7、D8、D9、…一一对应,
这样也是可以实现你的目的,代码中就不需要用VFP的伪随机数了。
CLOSE DATABASES
SELECT 0
USE cqjg alia ap
&&打开表cqjg,指定别名为ap(安排)
SELECT 0
USE fz alia md &&打开表fz,指定别名为md(名单)
nrecc=RECCOUNT() &&指定nrecc的值为表fz的总记录数,作用可能是判断一下表中有多少组监考人员。
FOR i=1 to 4
FOR j=1 to nrecc
GO j
REPLACE ('md.jkkm'+STR(i,1)) with allt(str(val(subs(time(),7))*rand()*39572468)) &&这一句的命令的意思是什么,麻烦老师讲解一下,我好写一些备注,防止过些日子忘记了。
ENDFOR
另外这样安排的监考结果,会不会出现某些组老师,监考以前监过的考场。
比如,张三语文科目时监考的是第10场,到了英语科目时又监考第10场,
您设计的这个程序中有避免这个问题的命令代码吗?
[此贴子已经被作者于2019-7-25 10:23编辑过]