| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1018 人关注过本帖
标题:求助关于考场编排的程序!
只看楼主 加入收藏
glheghhu
Rank: 1
等 级:新手上路
帖 子:24
专家分:3
注 册:2015-1-6
结帖率:66.67%
收藏
已结贴  问题点数:20 回复次数:13 
求助关于考场编排的程序!
考场编排库(kcbp.dbf),有字段:报名号(bmh),姓名(xm),考点代码(kddm,考点有不同的考场起止号:如考点1(1--30),考点2(31--60)...),科类(kl),考场号(kch),座位号(zwh),考场号和座位号均为空。考场编排库已按随机字段排序。
每个考场30人,尾考场不论。两种编排方式,一是按字段科类编排考场,二是不按科类编排考场。
求大神指点,谢谢!
搜索更多相关主题的帖子: 座位号 报名 姓名 
2015-07-31 11:11
欧阳mh
Rank: 2
等 级:论坛游民
威 望:3
帖 子:21
专家分:57
注 册:2015-6-10
收藏
得分:5 
既然已按随机字段排序
那考点和座位按数据指针次序排下去不就完了
(要按科类排,先执行INDEX ON kl+随机字段 TAG aaa)

考场数    kcgs=INT(RECCOUNT("kcbp"))+1
          FOR i=1 TO kcgs
            FOR j=1 TO 30
                IF !EOF("kcbp")
                REPLACE kch WITH i,zwh WITH 30*(i-1)+j
                SKIP
                ENDIF
            ENDFOR
          ENDFOR


2015-07-31 17:01
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9803
专家分:26906
注 册:2012-2-5
收藏
得分:0 
回复 2楼 欧阳mh
kcgs=INT(RECCOUNT("kcbp"))+1

如果记录数正好是30的倍数,这样计算考场数不是多了一个吗,应该用CEILING()函数

坚守VFP最后的阵地
2015-07-31 18:03
glheghhu
Rank: 1
等 级:新手上路
帖 子:24
专家分:3
注 册:2015-1-6
收藏
得分:0 
回复 2楼 欧阳mh
并不是每个考点尾考场都刚好有30个学生啊....
2015-08-03 10:23
沙枣
Rank: 4
来 自:宁夏银川
等 级:业余侠客
威 望:5
帖 子:103
专家分:221
注 册:2015-5-31
收藏
得分:0 
回复 楼主 glheghhu
发个样本库看看,不然就象隔山买牛,写的代码不见得适用。
2015-08-03 14:11
glheghhu
Rank: 1
等 级:新手上路
帖 子:24
专家分:3
注 册:2015-1-6
收藏
得分:0 
回复 5楼 沙枣
kcbp.rar (3.12 KB)
2015-08-03 15:04
taifu945
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:80
帖 子:1545
专家分:3298
注 册:2012-7-6
收藏
得分:0 
楼主的文件里没有包含科类字段。另外还有两个问题:1、当时各考生分考点的依据是什么?2、每个考点的考场数是否均为30,就像你列出的那样,1-30、31-60?
2015-08-03 22:32
glheghhu
Rank: 1
等 级:新手上路
帖 子:24
专家分:3
注 册:2015-1-6
收藏
得分:0 
回复 7楼 taifu945
科类字段我去掉了,每个考生所在考点按就近原则提前编好,各考点考场不一致,有多有少,也并非30的倍数。
2015-08-04 09:06
taifu945
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:80
帖 子:1545
专家分:3298
注 册:2012-7-6
收藏
得分:0 
以下是引用glheghhu在2015-8-4 09:06:43的发言:

科类字段我去掉了,每个考生所在考点按就近原则提前编好,各考点考场不一致,有多有少,也并非30的倍数。

    那也就是说,各考点都有不同的科类开考。这样的话,事情会变得比较复杂:1、一个科类需要安排在同一个或一片相邻的考场,便于监考和巡考、主考的管理;2、每个科类的最后一个考场若是坐不满,就只能放弃未坐满的座位,造成比较大的浪费;3、鉴于以上两点,程序代码不能完全随机,需要人工控制一下某些细节,比如:某个科类在哪一个或哪一片考场里。
    这样就需要事先算出每个考点的每个科类有多少人,才能排考。当然,这个计算可以用SELECT-SQL进行统计,不需要人工去算。也就是说,其实,考场的安排由于分了科类,变得固定了。你要求的随机安排,实际上也就只是随机安排个座位号。比如:考点1的科类1有50个人考试,你要分成两个考场。假设你把科类1这两个考场分配给考场1、考场2,那么,可以对这50名考生进行随机排序,前30名进入考场1的1-30号座位,而后20名进入考场2的1-20号座位。同时,考场2的21-30号座位是作废的。
    根据这种思路,你可以去想想代码应该如何编写。或许,你有更好的算法,但如果要使考务工作条理清晰,管理明确,任何算法都差不多要回到我上述的3点当中去。
2015-08-04 12:15
glheghhu
Rank: 1
等 级:新手上路
帖 子:24
专家分:3
注 册:2015-1-6
收藏
得分:0 
回复 9楼 taifu945
是的,只有一个科类的考点排起来简单些,有两个科类的考点就得先计算每个科类所需考场,然后再编排。
2015-08-04 15:56
快速回复:求助关于考场编排的程序!
数据加载中...
 
   



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

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