考场座位校验,请高手帮助指导!
考场座位校验,考场内学生来自不同的学校,按5*6蛇形就座,前后左右不能是来自同一所学校的学生
测试数据表.rar
(48.43 KB)
以下是自己写的代码,太笨拙,想不出好的方法,而且测试考场(尾考场)不足30人的会报错,请高手帮助
程序代码:
khsj=GETFILE("dbf") &&指定数据表 *USE &khsj &&打开数据表 SELECT * FROM &khsj Order by kh ASC INTO TABLE zkkh\khzwxy.dbf CLOSE TABLES &&关闭打开的数据表 USE zkkh\khzwxy.dbf CALCULATE min(EVALUATE(kch)) TO xkc &&&取最小考场号 CALCULATE max(EVALUATE(kch)) TO dkc &&&取最大考场号 copy stru to zkkh\zwxy.dbf &&生成座位校验表结构 copy stru to zkkh\zwxyjg.dbf &&生成座位校验结果表结构,将存在问题的考场数据添加到此表中 use zkkh\zwxy.dbf &&打开座位校验表 i=xkc-1 do while i<=dkc &&指定考场号范围 i=i+1 appe from zkkh\khzwxy.dbf for VAL(kch)=0+i &&&按考场号添加数据 kc=kch goto 1 zw1=xxdm goto 2 zw2=xxdm goto 3 zw3=xxdm goto 4 zw4=xxdm goto 5 zw5=xxdm goto 6 zw6=xxdm goto 7 zw7=xxdm goto 8 zw8=xxdm goto 9 zw9=xxdm goto 10 zw10=xxdm goto 11 zw11=xxdm goto 12 zw12=xxdm goto 13 zw13=xxdm goto 14 zw14=xxdm goto 15 zw15=xxdm goto 16 zw16=xxdm goto 17 zw17=xxdm goto 18 zw18=xxdm goto 19 zw19=xxdm goto 20 zw20=xxdm goto 21 zw21=xxdm goto 22 zw22=xxdm goto 23 zw23=xxdm goto 24 zw24=xxdm goto 25 zw25=xxdm goto 26 zw26=xxdm goto 27 zw27=xxdm goto 28 zw28=xxdm goto 29 zw29=xxdm goto 30 zw30=xxdm if (zw1=zw2 or zw1=zw12) or (zw2=zw3 OR zw2=zw11) OR (zw3=zw4 OR zw3=zw10) OR (zw4=zw5 or zw4=zw9) OR (zw5=zw6 OR zw5=zw8) OR (zw6=zw7); OR (zw7=zw8 OR zw7=zw18) OR (zw8=zw9 OR zw8=zw17) OR (zw9=zw10 OR zw9=zw16) OR (zw10=zw11 OR zw10=zw15) OR (zw11=zw12 OR zw11=zw14) OR (zw12=zw13); OR (zw13=zw14 OR zw13=zw24) OR (zw14=zw15 OR zw14=zw23) OR (zw15=zw16 OR zw15=zw22) OR (zw16=zw17 OR zw16=zw21) OR (zw17=zw18 or zw17=zw20) OR (zw18=zw19); OR (zw19=zw20 OR zw19=zw30) OR (zw20=zw21 or zw20=zw29) OR (zw21=zw22 OR zw21=zw28) OR (zw22=zw23 OR zw22=zw27) OR (zw23=zw24 OR zw23=zw26) OR (zw24=zw25); OR (zw25=zw26) OR (zw26=zw27) OR (zw27=zw28) OR (zw28=zw29) OR (zw29=zw30) then USE zkkh\zwxyjg.dbf APPEND FROM zkkh\zwxy.dbf USE zkkh\zwxy.dbf messagebox(STR(&kc)+"考场存在前后左右相邻现象",0+32,"提示") else messagebox(STR(&kc)+"考场不存在前后左右相邻现象",0+64,"提示") endif dele all pack enddo
[此贴子已经被作者于2018-6-7 08:51编辑过]