EXCEL VBA在考场编排中设计与实现.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
EXCEL VBA在考场编排中设计与实现

EXCEL VBA在考场编排中设计与实现   摘 要:为保证考试的公平、公正及其严肃性,科学的考场座位编排是一个重要手段。文章介绍的是利用EXCEL VBA编写考场编排软件的设计和实现,利用此软件,可轻松实现学校考试中繁琐的考场编排、座位表、桌贴、班级考生分布等的一次性生成及打印。经实际应用,操作简单,方便实用。   关键词:随机;试场编排;座位表;桌贴   中图分类号:TP393 文献标志码:B 文章编号:1673-8454(2014)14-0065-05   现今中学阶段的学校教务工作中,考务工作占了很大的比重,而考场座位编排是考务信息化管理中一项十分重要的工作。考务工作主要分为考前的考场编排和考后的成绩统计与分析,这里专门就考前的考场编排展开分析和讨论。随着学校办学规模逐渐扩大和学生人数的增加,考场安排的工作量不断加大。因此,笔者决定编写基于 Excel VBA的考场编排系统,希望通过本系统能实现对考场教室进行合理有效的管理。   我们采用Excel作为系统编写工具。Excel不仅具有强大的制表功能,同时还内置了系统开发工具VBA。VBA是指Visual Basic for Application,它是在Office中广泛应用的宏语言,可以直接对Excel对象进行编程,从而提高Excel的利用效率。使用它可以增强Excel的自动化能力,使用户更高效地完成特定任务。   软件分为试场编排、座位表生成、桌贴的制作三大模块。设计完成后,工作人员将基本数据,如考生名册(含班级)、考场基本信息(考场名称、每考场人数等)录入到软件中,软件自动对考生进行考场随机编排,编排完成后,要使学生能基本均匀地分布在各考场,同时,实现同考场中前后座位不同班,各考场人数可以不同,每列人数可以不同。另外,根据实际生成座位表、各班考生座位分布表、考生桌贴等。   一、考场编排   在中考或高考中,考场人数一般是30人,但基于学校实际在实际操作中很难做到,一般会出现各考场人数各异。有鉴于此,考场编排系统需具备很大的灵活性,因此软件必须取得以下信息:学生名册,考场名称,各考场人数,各考场每列人数。   在编排试场时,要尽量保证学生座位的随机性。对此每个学校都有自己的做法,有的按前一次考试成绩进行排座位,有的按姓氏笔画排座位,有的采用Excel随机函数来排座位。对于这些排座位的方式,虽在一定程度上实现了随机性,但都存在前后同班情况的出现。网上也有采用VBA编写的考场编排软件,但班级分布上还是存在多种问题,如5班考生大量出现在某个考场,但隔壁考场却没有一个5班考生,另外也出现了类似班级分布是固定的,如座位上考生班级按1班、2班、3班……顺序排列,表面上实现了前后无同班,但容易被阅卷老师发现规律而引起其他的不公。在这种情况下,如果采用简单的方式编排座位,势必造成大量的前述问题。   为保证考生既要随机分布,又要均匀分布,因此,在设计上,要多次用到随机编排。首先是班级内部考生的随机编排,由于得到的原始数据并非按班排列,所以软件首先对全年级数据进行一次按班排序,然后在第五列对学生生成一次随机数,再以班为单位将这些随机数进行排序,这样进行了考生第一次随机,实现班级内学生顺序的随机性。(注:在最终座位表排定前,考号列(D列)、考场列(E列)均作为辅助列,考场号首先都是用数字编号标示。)   ……   banji = Cells(30, 22) //班级数   Cells(i + 1, 5) = Rnd   For i = 1 To banji   Range(A renshu1 :e renshu2).Sort Key1:=Range(e renshu1), Order1:=xlAscending   Next   ……   注:由于Value属性是Cells集合的默认属性,所以省略不写,下同。   系统自动获取班级数及考场数后,计算各班在各考场可以设置的最多人数,如14个班,某考场人数是34人,则每班提供给该考场的人数应该是int(34/14),但这样会出现有的班人数还不足以按要求分布到各考场,为解决这个问题,程序会对各考场对要求每班提供的人数进行累加,并与班级人数进行比对,当班级人数不足以满足要求时,则顺减1人,直至满足提供给各试场人数之和小于等于实际人数为止,比如某班人数27,按前面试场要求,应分配给各试场2人,总计28人,但该班不足以提供这么多考生,则分配到各试场的人数都减1人,余下考生作二次分配。   ……   For j = 1 To Cells(30, 7) //试场数   For i = 1 To Cells(30, 22) //班级数   fenpei = Int(Cells(j + 1, 8) / Cells(30, 22))   If f

文档评论(0)

fangsheke66 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档