加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

考生号考场号座位号的编排方法

(2013-08-14 09:47:16)
标签:

教育

分类: 考生号考场号座位号

考生号考场号座位号的编排方法

河南省滑县招生办公室  侯进录

 

    经常组织考试的同志都需要进行考生号、考场号和座位号的编排,其方法各有不同,我通过多年的经验和学习总结出一种这三个号的编排方法。因为大多情况是报名后有现成的报名数据表,所以这里主要使用SQL查询语言及函数,分步骤在原报名表的基础上进行考生号、考场号和座位号的生成,程序运行环境主要在VFP环境当中

首先,我们把考生报名表命名为:bmb,在此表基础上,经过编程方式给它进行随机混合后,增加上考生号(ksh,考场号(kch)和座位号(zwh)三列,最后生成考场表为:kcb。具体方法和思路如下:

1随机排序

我们利用随机函数Recn()给报名表bmk增加一列随机数并命名为随机号Sjh,然后再利用取舍函数Round()将其取6位小数(小数位数越多越好)。为不干涉原表数据我们利用“*”保留原表所有列,最后生成临时表B1。在临时表B1的基础上按随机号列sjh进行从小到大排序,从而打乱原来报名表排序,产生出按随机号Sjh排序的临时表B2,这给以后添加考场号、座位号和考生号奠定基础。

程序代码书写如下:

 

&& 增加随机编号列(Sjh)生成临时表B1

Select Round(Rand(),6) As Sjh,* From Bmb  Into Cursor B1

 

&& 按随机编号列(Sjh)进行从小到大排序生成临时表B2

Select * From B1  Order By Sjh Into Cursor B2

 

2、考场号的产生

每考场安排30人,这样考生人数除以30并向上取整(数学上叫过剩近似值)就是考场总数了。所以,同样的方法,我们把每一个考生所在的记录号Recn()(即位置顺序序号)除以30并向上取整,就得到每一个考生所在的考场了。这样就产生了一列考场号(Kch)。所以我们在表B2的基础上,利用函数Recn()除以30,然后再利用函数Ceiling()向上取整数(过剩近似值),即Ceiling(Recn()/30)就是每一个考生的考场号了,我们把这一列命名为考场号(Kch)从而产生临时表B3

一般情况下,为了使考场号位数相同,考场号位数不足的在前边添加‘0’补齐。所以 ,这样以来就得把考场号转换成字符型字段才行。假设考场号为3位数,那么我们采取复合函数Right(Alltrim(Str(1000+Kch)),3)实现了考场号整齐的要求,这一列为字符型考场号,命名为Kch2。从而产生临时表B4

 

程序代码书写如下:

 

&&编排数值考场号(Kch)

Select Ceiling(Recn()/30) As Kch,* From B2 Into Cursor B3

 

&&把数值考场号(Kch)转化为字符型并添加一列字符型考场号(Kch2

Select Right(Alltrim(Str(1000+Kch)),3)As Kch2,* From B3 Into Cursor B4

 

3、座位号的产生

由于每场安排30人,这时在座号列中是以30为周期的一组数并且和考生所在的记录号、考场号有一定关系,根据这个规律,我们发现使用函数和公式Recn()-(Kch-1)*30 就能完成座位号的编排,所以在表B4的基础上使用这个公式增加一列座位号并命名为Zwh。从而产生临时表B5

一般情况下,为了使座位号号位数相同,座位号位数不足的在前边添加‘0’补齐。所以 ,这样以来就得把座位号转换成字符型字段才行,因此我们在表B5的基础上采取复合函数Right(Alltrim(Str(100+Zwh)),2)实现了座位号整齐的要求,这一列为字符型座位号,命名为(Zwh2)。从而产生临时表B6

 

程序代码书写如下:

 

&&编排数值座位号

Select Recn()-(Kch-1)*30 Zwh,* From B4 Into Cursor B5

 

&&把数值型座位号(Zwh)转化为字符型并添加一列字符型考场号(Zwh 2

Select Right(Alltrim(Str(100+Zwh)),2)  As  Zwh,* From B5 Into Cursor B6

 

4、考生号的产生

考生号是为考试和分数管理提供的唯一性号码,有了考生号在以后考试和分数管理中,不但能起到唯一性还可以根据考生号辨别这个考生,考试的年份、所在的单位或地区、考生类别以及序号等。所以我们在临时表B6的基础上添加一列考生号,并命名为Ksh。从而产生正式结果考场表Kcb

 

程序代码书写如下:

 

&&编排考生号(年份99+地区0714+类别66+顺序号Recn())

Select  990714660000+Recn() As Ksh ,* From B16  Into Table Kcb

 

考生号要是‘0’开头的,同样需要转为字符型字段。

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有