




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、关于校内考试的考场座位编排算法的研究摘要:文章针对校内考试的考场座位编排的复杂情况进行深入浅出的分析,提出切实可行、科学高效的座位编排算法,并编写程序加以实现。关键词:座位编排;算法作者单位:陆川县马坡镇第二初级中学姓名:覃坤通讯地址:陆川县马坡镇第二初级中学邮编:537712电话E-mail:一引言为了更好地论叙问题,本文引入了两个概念,解释如下:校际考试多个学校共同参与的考试,如中考、高考。校内考试单个学校组织的考试,如段考、期考。考场座位的科学编排是保障考试的公平与质量的重要手段。因此,校际考试,如中考、高考、研考等重大考试,对考场座位均有严格要求,相关算法与软件相当成熟且日益完善。但关
2、于校内考试的相应研究却鲜有耳闻,相关软件也是寥寥无几且功能简陋。 我是一名一线教师,深切感受到校内考试中考座编排工作的意义非常与困难重重,试图尽绵薄之力深入探讨这其中的科学规律,为广大中小学提供有限的经验。(本算法对应的程序发布于本人主页:,程序在多间学校至今运行良好。)二对考场座位编排的分析1对校际考试的考场座位编排的分析相对于校内考试,校际考试的座位编排的复杂度较小,实现的算法也较简单。我把该种算法称为“蛇形分布”算法。举例说明:某年中考,56号考点的考生来自甲中学与乙中学,根据“蛇形分布”算法,考场内的30个座号,从小到大,按甲乙、甲乙的顺序进行分配,得到的考场座位的编排情况将如图1所示
3、。图1(注:白色方框代表甲中学学生,灰色方框代表乙中学学生)仔细观察,可以发现甲、乙中学的学生得到了妥善安排:每位考生的前后左右均无同校的同学,这在某些方面大大增加了作弊的困难。而且该算法的通用性极强,假如参考学校有2个以上,依然能出色地完成编排,参考学校越多,防止作弊的功能越强。2对校内考试的考场座位编排的分析“蛇形分布”算法虽然巧妙,却不适用于校内考试。主要原因有二:第一,校际考试将学生按学校间隔分布,而在校内考试却只可能按班或按年级间隔分布,若按年级间隔分布,同列中有多个年级的考生存在,这将给收发试卷带来很大的麻烦;第二,“蛇形分布”算法的实现基于单人单桌,需要在考试前对考室进行布置。而
4、在日常考试中,教室内的桌椅并不搬动,通常是双人双桌,该算法反而为舞弊创造了条件。举例:图2是双人双桌的考场,11号与1、3号是同类别学生,相对于图1距离过近更容易串通作弊,假设11号考生位于2号的位置,作弊反而不易。671819305817202949162128310152227211142326112132425图2由此,我们必须意识到,校内考试是日常考试,绝对不能生搬硬套校际考试的算法,校内考试的考务工作应当更加简洁,更节约时间、人力和物力,才能为学校所承受。那么,对于校内考试,怎样编排座位才算科学合理呢?我想,类似于图3所示的考场座位才是比较理想的。图3(注:041046是初二班级,0
5、51057是初一班级)观察图3,你会以现这样的考场座位具有以下优点:座号的编排顺序符合师生的日常称呼习惯,有利于考生快速就座;相同年级同列,有利于快速收发试卷;同班学生距离最大化(如座号1、13、25的考生同是041班),有利于防止舞弊。教室内的桌椅不必搬动,有利于教室在考试与教学环境间的快速转换。能实现这个考室示意图的算法,还应当有利于生成类似图4的考生通知单(注意观察图4与图3的对应关系)。该单张贴于考生所在班级,使得考务工作得以摒弃准考证号等概念,并能够准确快捷地告知考生考座信息。图4其次,算法还应当有利于生成类似图5的考场情况统计表,方便教务处核定试卷数目,为各个考室分发试卷。最后,算
6、法还应当能适应各班桌椅数目不一的情况,充分使用教室的所有桌椅。因为,在中考、高考中,考生不过是学生中的一部分,所以教室相对充足,每个考室的人数可以做到异常的统一,而在段考、期考中,考生是全校学生,每个教室的每个座位都非常珍贵,决不允许算法进行浪费。但要实现这样的算法,却是困难重重。该算法虽然适应了师生对座号顺序的日常称呼习惯,却因此在分配座号时面对以下情况,问题的复杂度大大增加:参考年级的个数发生变化。举例:如图3所示的考场,只有2个年级参考,但如果年级个数增至3个,考场就应如图5所示,那么座号的分配原则究竟怎样设定,才能无论年级个数的多少,都可遵循相同年级同列的要求,生成类似图5的考室示意图
7、?图5(注:05X是初一班级,04X是初二班级,03X是初三班级)教室内的桌椅的列数发生变化。举例说明:如图5所示,教室是8列双座,一旦变为9列双座,考场就应如图6所示,那座号的分配原则又应当是什么,方能使得不管教室座位的列数怎样变化,都可保证“相同年级同列”,生成类似图6的考室示意图?图6(注:05X是初一班级,04X是初二班级,03X是初三班级)和的变化情况在日常考试中是很常见的,在某个考室中,可能是2个年级8列双座,在另一个考室中,却可能是3个年级10列双座。显然,“蛇形分布”算法不可能解答这两个问题,适应这样复杂多变的考座编排要求。尽管校内考试的考座编排是考务工作中的必须环节,但却没有
8、一个成熟的软件来解脱教师繁杂的工作。记得刚毕业那年,教务主任就给我分配了考座编排的任务。我使用了EXCEL来编排,结果奋战了一个通宵,才实现了教务主任关于编排的设想。这种编排手段应属于“手工阶段”。后来,我仔细思考了编排中的重复步骤,将它们编成了宏,编排的时间也迅速缩短到了5个小时。一年后,我又将其中的一些耗时较多的步骤编写为VBA,时间又缩短为3个小时。这期间的水平处于“半自动阶段”。几个月后,我总结出了编排算法,并使用Delphi7将其实现,把编排的时间缩短到了30分钟以内(含学生名册导入、考场设置、打印机的工作时间)。至此,考座编排的手段才算是完全的“自动化”。现将该算法描述于下。三、算
9、法的具体描述为了方便理解算法,首先对算法涉及的数据表(存储结构)进行说明。字段名称数据类型说明ID自动编号主键年级文本班别文本姓名文本成绩数字必要时根据成绩高低编排考座序数字辅助字段考室文本座号数字随机数数字提供编排的顺序依据,保证每次编排每个考生的座号不重复伪代码如下:var kcmc:string; /考试名称,如“XX年XX中学春期期考” dqlj:string;/程序的当前路径 /考室示意图所需的数组与考室备注名称 a,b,c:array1.100 of string; ksmc,bz:string;为了使考室示意图模板能在脱离编绎环境后为用户所修改,数据不自动向报表传递,而改为由程序
10、控制procedure TfrmMain.Button9Click(Sender: TObject);var i,j,k,L,kcdy,ksrs,temp:integer;/考场定员与考生人数 s:string; dy,m,n,x,amod:integer;/定员,类型的列数,年级的个数 reportClear:boolean; /是否清除报表 cxb,hz,ym,yy:integer;/次下标,行左,右边空座数目,右移个数begin/考场的总定员是否足够if kcdy<ksrs thenbegin Application.MessageBox('考场的座位不足,请重新设置考室表
11、或考生表。', '信息', MB_OK + MB_DEFBUTTON1 + MB_ICONINFORMATION + MB_APPLMODAL); abort;end;/一、对考室表的设置进行检查 */二、对考生表进行排序/如果不是选择按成绩排序,则进行填充随机数列/根据考生座位编排顺序选择,开始对考生表进行排序/三、开始编考场座号/遍历考室表with QrKsb2 dobegin /Sort:='使用次序' /排序 j:=RecordCount; First; for i:=1 to j do begin x:=1; /必须有一个参考年级 if len
12、gth(FieldByName('参考年级2').AsString)>0 then inc(x); if length(FieldByName('参考年级3').AsString)>0 then inc(x); dy:=FieldByName('定员').AsInteger; L:=0;/是第一个参考年级 s:=FieldByName('类型').AsString; n:=0; for m:=1 to 2 do if (midstr(s,m,1)>='0') and (midstr(s,m,1)&
13、lt;='9') then inc(n); n:=strtoint(copy(s,1,n); /类型对应的列数 for k:=1 to 3 do begin s:='参考年级'+inttostr(k); if length(FieldByName(s).AsString)>0 then /该参考年级k不为空 begin考室:%s 参考年级:%s-',FieldByName('名称').AsString,s); QrTemp.Close; if CheckBox1.Checked then ,FieldByName(s).AsStri
14、ng) else ,FieldByName(s).AsString); QrTemp.open; temp:=QrTemp.RecordCount; inc(L); /存在的参考年级的序号(1开始) for m:=1 to dy do begin /m合适吗? amod:=(m mod n); if amod=0 then amod:=n; amod:=(amod mod x); if amod=0 then amod:=x; if amod=L then /m可用 begin if not QrTemp.Eof then /有考生可供写考座 begin QrTemp.Edit; QrTemp
15、.FieldByName('考室').AsString:=FieldByName('名称').AsString; QrTemp.FieldByName('座号').AsString:=inttostr(m); QrTemp.Post;考室:%s %s %s %s', FieldByName('名称').AsString,s,QrTemp.FieldByName('姓名').AsString,inttostr(m); QrTemp.Next; /送出考座后,再下一记录 end else begin /否则,插
16、入空置的考座 QrTemp2.close; 'values(:p1,:p2,:p3)'); QrTemp2.ExecSQL; end; /if temp<=m end;/if amod end;/ for m end;/if length end;/for k next; end; / for i first;end; /with QrKsb2/四、根据使用次序,生成考室示意图reportClear:=true;/编历考室表with QrKsb2 dobegin j:=RecordCount; First; for i:=1 to j do begin bz:='
17、' ksmc:=FieldByName('名称').AsString; dy:=FieldByName('定员').AsInteger; s:=FieldByName('类型').AsString; n:=0; for m:=1 to 2 do if (midstr(s,m,1)>='0') and (midstr(s,m,1)<='9') then inc(n); n:=strtoint(copy(s,1,n); /类型对应的列数 /筛选出考生表的内容 QrTemp.Close; QrTemp
18、.open; temp:=QrTemp.RecordCount; for m:=1 to 100 do begin if m<=temp then begin am:=inttostr(m); bm:=QrTemp.FieldByName('班别').AsString; cm:=QrTemp.FieldByName('姓名').AsString; QrTemp.Next;进入报表',m,bm,cm); end else begin am:='' bm:='' cm:='' end;/ if m<
19、=temp end;/for m QrTemp.close;if FieldByName('末行居右').AsBoolean thenbegin x:=1; /必须有一个参考年级 if length(FieldByName('参考年级2').AsString)>0 then inc(x); if length(FieldByName('参考年级3').AsString)>0 then inc(x); /寻找次下标 for cxb:=100 downto 1 do if length(ccxb)>0 then Break; hz:
20、=(cxb div n)*n+1; ym:=n-(cxb-hz+1); yy:=(ym div x)*x; if yy>0 then for k:=cxb downto hz do begin ak+yy:=ak; bk+yy:=bk; ck+yy:=ck; ak:='' bk:='' ck:='' end;/for k:=cxbend;/ if FieldByName('末行居右').AsBoolean for k:=1 to 3 do begin s:='参考年级'+inttostr(k); if len
21、gth(FieldByName(s).AsString)>0 then /该参考年级k不为空 begin QrTemp.open; temp:=QrTemp.FieldByName('人数').AsInteger; bz:=bz+FieldByName(s).AsString+':'+QrTemp.FieldByName('人数').AsString+#13#10; if temp=0 then jy1:=jy1+'考室:'+ksmc+' 参考年级:'+FieldByName(s).AsString+''+#13#10 else if tem
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 学校游泳池管理制度
- 学校自备水管理制度
- 学校饮水点管理制度
- 学生租赁车管理制度
- 宅急送服务管理制度
- 安全生产规管理制度
- 安监+风险管理制度
- 宋代酒专卖管理制度
- 定制化仓储管理制度
- 审核与评审管理制度
- 美容院入股协议书
- 浅谈歌曲《小路》的情感表达
- 环境心理学永川观音山公园调研报告
- 报价单模板完整版
- 2023年山东军转真题
- 国开电大专科《管理英语1》机考总题库
- 2023年杭州育才中学小升初语文考试真题卷含标准答案
- 《水产动物营养与饲料》期末考试复习题及参考答案
- SB/T 11067-2013金属材料仓储技术与管理规范
- 工业品营销-七重攻略
- 2023年安徽六安市裕安区城乡建设投资集团有限公司招聘笔试题库及答案解析
评论
0/150
提交评论