| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3434 人关注过本帖
标题:如何做考场编排
只看楼主 加入收藏
baoshan00
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2018-9-3
结帖率:0
收藏
已结贴  问题点数:10 回复次数:9 
如何做考场编排
如何做考场编排,两个考点,一个考点又有汉授考生、有蒙授考生,蒙汉不在一个考场考试,但汉在前考场数,蒙在后考场数。每个考场30人,同班考生无领近。
搜索更多相关主题的帖子: 考试 
2019-04-17 17:31
baoshan00
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2018-9-3
收藏
得分:0 
补充,,字段:考生号ksh,姓名xm,性别xbdm,学籍号xjh,报名点代码bmddm,毕业中学代码byxxdm,身份证号sfzh,盟市ms,旗县qx,座位号zwh,班号bh,考场号kch,等
2019-04-17 17:44
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9799
专家分:26886
注 册:2012-2-5
收藏
得分:3 
论坛有类似问题的解决方案

坚守VFP最后的阵地
2019-04-17 18:05
gs2536785678
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:45
帖 子:601
专家分:1770
注 册:2017-7-16
收藏
得分:3 
第一步, 编写好考试号[每个学生的考试号不同]
把汉学生编写在前面,蒙学生编写在后
第二步,按照人数分考场,三十人一个考场,把汉学生
编写在前面的考场,蒙学生编写在后面的考场
汉学生人数除于30得到汉学生考场个数,从而获得汉考场人数
蒙学生类似
第三步,每个考场里面编写座位

上面的思想转化成程序就OK
2019-04-18 08:47
baoshan00
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2018-9-3
收藏
得分:0 
谢谢,先表示感谢,目前刚弄这个软件,所以不懂的东西挺多的,有些代码不会写。
2019-04-18 18:36
xuminxz
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:41
帖 子:763
专家分:2503
注 册:2011-5-8
收藏
得分:3 
2010年前写过一些考务管理的代码,其中计算机等级考试考务管理与你的类似。那是一个大系统中的一部分,给你没有用。相关其中部分改了下,看看能不能用。因为没有数据,没法调试。自已看看吧。
程序代码:
** ksxxb 考生信息表
** kmdm 科目代码
** xh 学号
*!*    zkzh 准考证号  
*!*    bj 班级(可以用班号代替)
*!*    kch 考场号 整数
*!*    zwh 座位号 整数(1-30**
SELECT distinct kmdm,COUNT(*) as kmrs FROM ksxxb INTO CURSOR kmtj  ORDER BY kmdm asc   && 如果BM大的在前用 desc 代替 ASC

FOR  i=1 TO RECCOUNT('kmtj')
    SELECT kmtj
    GO i
    ckmdm=ALLTRIM(kmdm)
    nkcs= INT(kmrs,30)
    nfb=MOD(kmrs,30) &&非标考场人数


    SELECT bj,COUNT(*) as bjrs FROM ksxxb GROUP by bj ORDER BY bjrs DESC INTO CURSOR bjtmp
    FOR ibjs=1 TO RECCOUNT('bjtmp')
        SELECT bjtmp
        GO ibjs
        cbj=ALLTRIM(bj)
        cbjrs=PADL(ALLTRIM(STR(bjrs)),3,'0')
        SELECT ksxxb 
        REPLACE zkzh WITH  cbjrs FOR ALLTRIM(bj)==cbj AND kmdm=ckmdm
    ENDFOR


    SELECT zkzh,xh,kch,zwh FROM ksxxb INTO CURSOR zkztmp WHERE kmdm=ckmdm ORDER BY zkzh desc,bj READWRITE

    SELECT zkztmp
    GO 1
    FOR j=1 TO nfb
        FOR k=1 TO nkcs+1
            REPLACE kch WITH  k,zwh WITH j
            skip
        ENDFOR
    ENDFOR
    FOR j=nfb+1 TO 30
        FOR k=1 TO nkcs
        REPLACE kch WITH  k,zwh WITH j
        skip
        ENDFOR
    ENDFOR
    SELECT zkztmp
    REPLACE zkzh WITH ckmdm +PADL(ALLTRIM(STR(kch)),3,'0')+PADL(ALLTRIM(STR(zwh)),2,'0') all
    irecc=RECCOUNT()
    FOR j=1 TO irecc
        SELECT zkztmp
        GO j
        cxh=ALLTRIM(xh)
        czkzh=zkzh
        ikch=kch
        izwh=zwh
        SELECT ksxxb
        LOCATE FOR ALLTRIM(xh)==cxh
        IF FOUND()
            REPLACE zkzh WITH czkzh,kch WITH ikch,zwh WITH izwh
        ELSE
            =MESSAGEBOX('程序出错!')
        ENDIF
    ENDFOR
ENDFOR

dBase有人接盘了。
2019-04-18 21:54
gs2536785678
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:45
帖 子:601
专家分:1770
注 册:2017-7-16
收藏
得分:0 
他这个东东不好弄的,因为要同班级学生无相邻
所以另外要进行判别,判别同班级学生有没有相邻的
比较麻烦的。
2019-04-19 07:29
wengjl
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:109
帖 子:2197
专家分:3838
注 册:2007-4-27
收藏
得分:3 
以下是引用baoshan00在2019-4-17 17:31:09的发言:

如何做考场编排,两个考点,一个考点又有汉授考生、有蒙授考生,蒙汉不在一个考场考试,但汉在前考场数,蒙在后考场数。每个考场30人,同班考生无领近。


加二列,一列叫分类,汉的写上1,少数民族的写2,另一列叫随机,写随机数,为打乱学生次序,索引排序时先按分类,再按随机,就满足了[蒙汉不在一个考场考试]的要求了。


后一个要求,同班考生无临近,且是有点难哎!是前后无临近还是要前后左右也无临近呢!这个好难哦

只求每天有一丁点儿的进步就可以了
2019-04-19 09:45
xuminxz
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:41
帖 子:763
专家分:2503
注 册:2011-5-8
收藏
得分:0 
回复 7楼 gs2536785678
不难呀,先把学生按班级人数多少由多到少排序;然后,从第1个学生开始,安排考号;先从第一考场到最后一个考场安排1号座位,再安排所有的2号座位……。这比随机保险。
我上面就是这样做的。
当然,如果你的考场数比最大班级人数少会有相邻的。可以加一重循环,先排单号座位。
如果把同班学生想分的更开,可以按上面的方法先构造好学生顺序表;再构造一个考场及座位表,有三个字段,考场号、座位号、余数,先按座位号、考场号排序。再把座位号除以3的余数+1放到余数字段中。再按余数、座位号、考场号排序。
两张表记录号相同的对应。除非最大的班级,人数是考场数的3倍以上;否则,邻座不会是同班的学生。(3可以改为5、6,如果还不行,说明你的考生总数和考场总数都不大,手工排算了。

[此贴子已经被作者于2019-4-20 10:43编辑过]


dBase有人接盘了。
2019-04-20 10:19
baoshan00
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2018-9-3
收藏
得分:0 
多给宝贵的意见及,代码
2019-04-24 09:33
快速回复:如何做考场编排
数据加载中...
 
   



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

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