| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
共有 1058 人关注过本帖
标题:关于监考轮换的求助
只看楼主 加入收藏
bcly0808
Rank: 1
等 级:新手上路
帖 子:43
专家分:0
注 册:2013-3-22
收藏
得分:0 
回复 8楼 wengjl
有思路了,在对接好里的表中删除甲、乙都是男的,剩上的随机筛选出7场
4 天前 07:18
bcly0808
Rank: 1
等 级:新手上路
帖 子:43
专家分:0
注 册:2013-3-22
收藏
得分:0 
回复 11楼 bcly0808
思想是有了,测试没通过
4 天前 08:48
wengjl
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:109
帖 子:2280
专家分:4100
注 册:2007-4-27
收藏
得分:0 
甲组中有10位男的,乙组中有14位男的,所以男男组合 有 140 所以最后得的组合 是949
监考教师甲乙搭配.rar (4.04 KB)


      ********************
      * 名称:甲乙监考教师搭配处理
      * 时间:2025-4-18
      * 来源:https://bbs.bc-cn.net/thread-514275-1-1.html
      ********************
      CLEAR
      CLEAR ALL
      SET SAFETY off
      SET engi 70      
      CLOSE DATABASES
      SELECT * from jkjmd wher 1=3 into cursor lstem readw
      SELECT lstem
      FOR i=1 to 33
        APPEND FROM jkjmd
      ENDFOR
      SELECT * from lstem orde by jxm into array ls
      SELECT 0
      USE ppjg alia bmk
      ZAP
      APPEND FROM array ls
      CLOSE DATABASES  
      SELECT 0
      USE ppjg alia bmk
      SELECT 0
      USE jkymd alia kg
      SELECT bmk
      DO while not EOF()
          xmj=bmk.jxm
          xbj=bmk.jxb
          nRen=RECNO()
          SELECT * ,0.0000000 as nn from kg into cursor tmp readw
          SELECT tmp
          REPLACE nn with RAND() all
          SELECT * from tmp orde by nn into cursor ls
          SELECT bmk
          GO top
          jls=1
          SCAN for bmk.jxm=xmj
            SELECT ls
            GO jls
            REPLACE bmk.yxm with ls.yxm,bmk.yxb with ls.yxb
            SELECT bmk
            jls=jls+1
          ENDSCAN
          SELECT bmk
          GO nRen+32
          SKIP 1
      ENDDO
      SELECT bmk
      DELETE FOR jxb=[男] and yxb=[男]
      PACK
      CLOSE DATABASES
      QUIT

只做了搭配部分。
监考落到试场中的部分,尚未完全理解...

只求每天有一丁点儿的进步就可以了
4 天前 09:13
wengjl
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:109
帖 子:2280
专家分:4100
注 册:2007-4-27
收藏
得分:0 
以下是引用bcly0808在2025-4-18 08:48:15的发言:

思想是有了,测试没通过


继续努力,加油...等你好消息!

只求每天有一丁点儿的进步就可以了
4 天前 09:15
xuminxz
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:41
帖 子:773
专家分:2552
注 册:2011-5-8
收藏
得分:0 
回复 楼主 bcly0808
结果字段命名为什么是JXM2,YXM1(甲姓名2,乙姓名1?),有什么特殊含义吗?这样写代码很容易乱啊,可以成xm1,xm2,或 xmJ,xmY吗?要不是我理解错了,XM是考试项目?最后结果是Ksapb吧,可以用其它结构吗?



[此贴子已经被作者于2025-4-18 12:19编辑过]


dBase有人接盘了。
4 天前 12:12
wengjl
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:109
帖 子:2280
专家分:4100
注 册:2007-4-27
收藏
得分:5 
以下是引用bcly0808在2025-4-18 08:48:15的发言:

思想是有了,测试没通过


部分内容有实现......抛砖引玉

抽七组监考教师处理.rar (3.96 KB)

只求每天有一丁点儿的进步就可以了
4 天前 16:29
xuminxz
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:41
帖 子:773
专家分:2552
注 册:2011-5-8
收藏
得分:15 
回复 楼主 bcly0808
一个程序,3个表。监考教师表,考试课程表,监考安排表。考试课程门次不限,每门考场数可不限。
监考轮换.rar (3.59 KB)
,如有需要可以加一个判断男女人数的语句,男少禁止男男,女少禁止女女。
程序代码:
*!*    表及字段说明

*!*    jsmd-监考教师名单,XM-姓名,XB-性别,FZ-分组,1代表甲组-监考1,2代表乙-监考2 ; 如果不想让1组始终是主监考,可以在排好后,同组对调一下。
*!*    jkap-安排表,课程名称(也可以考试场次),姓名、性别
*!*    kskc-考试课程,kcmc 课程名称,kcs 考场数,wp1,wp2 未安排场次
Close Tables All
Use jsmd
Use jkap In 0
Zap In jkap
Use kskc In 0
Replace  wp1 With 0,wp2 With 0 All In kskc
ikskc=Reccount('kskc')
Count For fz='1' To rs1
Count For fz='2' To rs2
If rs1<>rs2 Then
    yorn=Messagebox('两组监考人数不相等,1组'+Alltrim(Str(rs1))+'人,2组'+Alltrim(Str(rs2))+'人。'+Chr(13)+'是否继续?',4+32+256,"提示")
    If yorn<>6 Then
        Return
    Else
        irs=rs1  && ?max(rs1,rs2) ?min(rs1,rs2)均可
    Endif
Endi
Select jkap
For i=1 To ikskc
    Go i In kskc
    _kcmc=Alltrim(kskc.kcmc)
    _kcs=kskc.kcs
    For j=1 To _kcs
        Insert Into jkap  (kcmc ) Values (_kcmc)
        Replace xlh With Rand() In jsmd All
        Select Top 1 xm,xb From jsmd Order By xlh Desc Where fz='1' And Not( xm In (Select xm1 From jkap Where Alltrim(kcmc)==_kcmc) )Into Curs tmp
        If Reccount('tmp')=0
            Replace xm1 With "NO" In jkap
            Replace wp1 With wp1+1 In kskc
**            loop
        Else
            _js1=Alltrim(tmp.xm)
            _xbn=(Alltrim(tmp.xb)='')
            Replace xb1 With tmp.xb,xm1 With _js1 In jkap
        Endif
**下面第二个老师
        Select Top 1 xm,xb From jsmd Order By xb,xlh  Where  fz='2' And !(xm In (Select xm2 From jkap Where Alltrim(kcmc)==_kcmc))  And !(xm In (Select xm2 From jkap  Where Alltrim(xm1)==_js1))  AND !(xb='' AND _xbn) Into Curs tmp
        
*  _xbn[color=#808080]=(ALLTRIM(tmp.xb)=''),(xb='')=_xbn 性别不能相同[/color]
*_xbn=(ALLTRIM(tmp.xb)=''),!((xb='')and_xbn) 性别不能同为男
        If Reccount('tmp')=0
            Replace xm2 With "NO" In jkap
            Replace wp2 With wp2+1 In kskc

**            loop
        Else
            Replace xm2 With tmp.xm,xb2 With tmp.xb In jkap
        Endif

    Endfor

Endfor





dBase有人接盘了。
4 天前 19:30
schtg
Rank: 12Rank: 12Rank: 12
来 自:Usa
等 级:贵宾
威 望:67
帖 子:1970
专家分:3869
注 册:2012-2-29
收藏
得分:0 
回复 17楼 xuminxz
很好,学习啦!
3 天前 06:38
xuminxz
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:41
帖 子:773
专家分:2552
注 册:2011-5-8
收藏
得分:0 
回复 18楼 schtg
如果你把表单发上来,用事件代码处理就方便多了。比如,预先指定部分监考、同科不监考、同科不同场、某人不监考某场……。不发表单上来很难处理。

dBase有人接盘了。
3 天前 09:43
快速回复:关于监考轮换的求助
数据加载中...
 
   



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

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017477 second(s), 9 queries.
Copyright©2004-2025, BC-CN.NET, All Rights Reserved