电脑派位录取程序的原理及其编写.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文档。上传文档
查看更多
电脑派位录取程序的原理及其编写

电脑派位录取程序的原理及其编写 江苏省如皋市教育局   张小刚 关键字:电脑派位 随机 程序 源代码 鉴于当前部分民办学校拥有较优质资源和教学实绩,往往出现报名人数多于录取人数的情况。这时,采用微机软件进行随机派位录取是普遍为学校和社会接受的解决问题的方法。鉴于社会关注度高等因素,决定了本程序设计必须做到选择公平公正、选择随机、源代码可以当场展示讲解且程序代码百分之百正确,因此,虽然程序原理及运行流程比较简单,导致许多学校虽然有具备一定知识水平的人员,却很少有敢于承担此项编程工作的。为此,本文就程序原理、代码编写及其在某校实际运行过程中的操作方法进行简要论述,并附全部源代码,以供参考。 1、编程语言的选择 由于关注度高,因此程序和运行环节的公正性要求能接受社会公开监督。有些学校为了保证其公正性不受置疑,除了请公证处全程公证,甚至采取电视直播的方法进行。这就要求我们的程序能以最简洁的代码来实现所需功能,以便能在运行前当场展示并讲解程序代码及原理。基于此,综合考虑当前流行的主要编程语言,我们优先选择了Visual Foxpro:代码简洁、便于讲解、源代码无需编译即可直接运行,同时其DBF文件格式与学校一般采用的Excel录入的报名学生名册文件可以自由转换。 2、程序原理 以在江苏省南通市有影响的某实验初中为例,要求在报名的1500多生中随机选择516人录取,分6个批次进行,前5批次每次取100人,最后取16人。程序运行时,先对原始数据文件进行备份,根据在屏幕上显示“第x批”按钮及当前待选库人数、本批选择进度条等组成程序运行界面。每按动“第x批”按键一次,电脑计算本批次应产生的选中人数(如果总的待选择数大于100则为100,否则为剩余数),随机对当前待选择库进行派位,直到选中本批次待选人数,显示选择结果,将选中名单导出到 批次.dbf和 批次.xls 文件,并显示报告,将已选出名单从待选择库中删除,打印本批名单交公证处及相关人员签字,如果还有待选择名单,则屏幕界面上显示 “第x+1批”按钮,以供下一批次的选择,否则选择按钮显示为“选择结束”。 3、数据准备及代码编写 数据准备:将学校提供的经公证处检查认可的报名Excel文件保留其中的“姓名”、“身份证号”或登记号(需唯一)并另存生成bmk.DBF文件。打开该DBF文件,运行modi stru命令,添加“原始记录号”、“选中”、“选中顺序”三个数值型字段,运行命令repl all原始记录号 with recno(),数据准备完毕。 在新窗体添加四个标签,分别为Label1、Label2、Label3、Progress1,将Label2的Caption设置为“进度”且与Progress1水平对齐,将Progress1的BackColor设置为“0,0,255” 即蓝色,添加两个命令按钮,名称分别为Command1、Command2,将Command1的Caption设置为“第1批”,将Command2的Caption设置为“退出”。 对窗体的Init即初始化部分添加代码: *行前带*号的为注解 set esca off set talk off this.visible=.t. this.autocenter=.t. this.Command1.Caption=第1批 public 批次,需选人数,已选出数,oldwidth clos all sele 1 use bmk *将标志清0,防止被事先设置 repl all 选中 with 0,选中顺序 with 0 copy to bmk原始备份 批次=1 需选人数=516 this.label1.Caption=待选出总人数+ltrim(str(需选人数))+,已选出0 已选出数=0 **随机数初始化 rand(-100) oldwidth=thisform.Progress1.width coun to totalnow this.label3.Caption=待选库现有总人数+ltrim(str(totalnow)) **界面显示完成,等待进行选择 对Command1的Click即点击事件添加代码: rand(-100) if 需选人数-已选出数100 then 本批数=100 else 本批数=需选人数-已选出数 endi go bott 库中还有总人数=recno() 本批已选=0 **当本批已选本批数时 循环选择,考虑了防止被事先设置选中标记的情况 do whil 本批已选本批数 **产生随机的选中行号 随机数精度为小数后5位(0-1) 随机数=round(库中还有总人数*round(rand(),5),0) **如果 随机数 变量=1,就去判断选择该行, if 随机数=1 then go 随机数 **如果该行的选中标记不

文档评论(0)

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

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档