标题:考场座位校验,请高手帮助指导!
只看楼主
sostemp
Rank: 4
等 级:业余侠客
威 望:8
帖 子:162
专家分:221
注 册:2009-6-2
得分:2 
象中考高考式的编排吧
2018-06-09 12:55
gs2536785678
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:45
帖 子:565
专家分:1668
注 册:2017-7-16
得分:0 
否好弄的,我知道的。只能是花功夫用眼睛细看了。
2018-06-11 08:23
wengjl
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:108
帖 子:2175
专家分:3785
注 册:2007-4-27
得分:0 
以下是引用gs2536785678在2018-6-11 08:23:35的发言:

否好弄的,我知道的。只能是花功夫用眼睛细看了。


这样要累死的,眼也会瞎的,    肯定有代码可代劳的

只求每天有一丁点儿的进步就可以了
2018-06-11 09:37
wengjl
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:108
帖 子:2175
专家分:3785
注 册:2007-4-27
得分:0 
以下是引用bcly0808在2018-6-7 08:49:35的发言:

考场座位校验,考场内学生来自不同的学校,按5*6蛇形就座,前后左右不能是来自同一所学校的学生


以下是自己写的代码,太笨拙,想不出好的方法,而且测试考场(尾考场)不足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-06-14 08:03
星光悠蓝
Rank: 9Rank: 9Rank: 9
来 自:山水甲天下
等 级:贵宾
威 望:48
帖 子:459
专家分:1116
注 册:2010-1-11
得分:2 
用数组简单排列是否可以
2018-06-14 08:30
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:396
帖 子:11713
专家分:43267
注 册:2006-5-13
得分:2 
我觉得这项工作在编排座位时就应该考虑,而不是编排好了再来检验。安排座位时随机取得一个考生编号就检查是否符合座位原则,不符合的就舍弃。

活到老,学到老! http://www. E-mail:hu-jj@
2018-06-14 09:16
wengjl
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:108
帖 子:2175
专家分:3785
注 册:2007-4-27
得分:0 
以下是引用hu9jj在2018-6-14 09:16:30的发言:

我觉得这项工作在编排座位时就应该考虑,而不是编排好了再来检验。安排座位时随机取得一个考生编号就检查是否符合座位原则,不符合的就舍弃。



这个循环中的“通项公式”好像很难弄的样子

只求每天有一丁点儿的进步就可以了
2018-06-14 13:44
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:396
帖 子:11713
专家分:43267
注 册:2006-5-13
得分:0 
难易都是相对的,再说在编排时就检验和事后再检验难易程度不会有变化的,这不是问题的关键。

活到老,学到老! http://www. E-mail:hu-jj@
2018-06-17 07:55



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-487689-1-1.html




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

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