| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3408 人关注过本帖
标题:考场座位校验,请高手帮助指导!
取消只看楼主 加入收藏
bcly0808
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2013-3-22
结帖率:50%
收藏
已结贴  问题点数:15 回复次数:0 
考场座位校验,请高手帮助指导!
考场座位校验,考场内学生来自不同的学校,按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编辑过]

搜索更多相关主题的帖子: 校验 dbf 打开 FROM goto 
2018-06-07 08:49
快速回复:考场座位校验,请高手帮助指导!
数据加载中...
 
   



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

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