Vfp考场编排?

Vfp考场编排?,第1张

两个考点,一个考点又有汉授考生、有蒙授考生,蒙汉不在一个考场考试,但汉在前考场数,蒙在后考场数。每个考场30人,同悉并班考生无领近。第一步, 编写好睁物迹考试号[每个蚂旁学生的考试号不同]

汉学生编写在前面,蒙学生编写在后

第二步,按照人数分考场,三十人一个考场,把汉学生

编写在前面的考场,蒙学生编写在后面的考场

汉学生人数除于30得到汉学生考场个数,从而获得汉考场人数

蒙学生类似

第三步,每个考场里面编写座位考务管理的代码,其中计算机等级考试考务管理与你的类似。那是一个大系统中的一部分,给你没有用。相关其中部分改了下,看看能不能用。因为没有数据,没法调试。自已看看吧。

程序代码:

** 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 代替 ASCFOR  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

一、先编排考场

1.首先要做的就是先安排各个班级的每个学生所在的考场,尽量让同一考场不能有同班同学。或者是,同一考场出现部皮拍分或极少的同班同学。

2.比如,一个年级有20个班级,每个班级有50个学生,那么,学生总人数就是1000个人;如果一个考场安排30个学生,那么,每个考场就有30个座位,那么,总的考场数量是31个。

3.现在先安排考场。

4.如下图,增加一“考场”的列,然后,使用填充功能,从上往下填充1到31,1到31代表的就是考场号;

5.注意,从1填充到31,然后,接着又从1填充到31,直到把整个年级的学生都填充完为止。

6.通过填充,就得到如下图的数据了。

7.现在看下图,每个班级每个学生都安排好考城了,分别在不同的考场,即便是有同班的同学在同一考场,也是少数人,稍后通过下面的方法,就能解决相邻的问题。

二、同一考场的同班同学不能在相邻位置

1.通过如上的 *** 作,整个年级的每个学生都安排好了考场了,现在,要做的就是同一考场内的同一班级的学生不能在相邻的位置。

A、先通过排序的办法,对考场号进行排序

这样就能将同一考场的学生排序到一块。

B、同一考场安排座位

同一考场内,多数同学是不同银掘班级的,但是有一小部分同学是同班级的,因此,得保证同一班级的同学不能在相邻的位置。

2.针对同一考场的学生数据进行排序,其它考场不管燃搏羡。或者将每个考场的学生数据单独保存成为一个Excel文件。

排序的时候,按照学生姓名进行排序,这样基本就能解决相邻的问题了,排序好了以后,再通过填充的办法,给同一考场的学生填充上1到30的座位号。

如此,整个编排考场,同班不能相邻的问题就能圆满的解决了。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12497036.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存