- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
电脑派位录取程序的原理及其编写
鉴于当前部分民办学校拥有较优质资源和教学实绩,往往 出现报名人数多于录取人数的情况。 这时, 采用电脑软件进行随 机派位录取是学校和社会所能接受的解决问题的普遍方法。 鉴于 社会关注度高等因素,决定了本程序设计必须做到选择公平公 正、选择随机、 源代码可以当场展示讲解且程序代码百分之百正 确,因此,虽然程序原理及运行流程比较简单,许多学校也有具 备一定知识水平的人员, 却很少有敢于承担此项编程工作的。 为 此,本文就程序原理、 代码编写及其在某校实际运行过程中的操 作方法进行简要论述,并附全部源代码,以供参考。
一、编程语言的选择
由于关注度高, 因此程序和运行环节的公正性要求能接受社 会公开监督。 有些学校为了保证其公正性不受置疑, 除了请公证 处全程公证, 甚至采取电视直播的方法进行。 这就要求我们的程 序能以最简洁的代码来实现所需功能, 以便能在运行前当场展示 并讲解程序代码及原理。 基于此, 综合考虑当前流行的主要编程 语言,我们优先选择了 Visual Foxpro: 代码简洁、便于讲解、 源代码无需编译即可直接运行, 同时其DBF文件格式与学校一般
采用的 Excel 录入的报名学生名册文件可以自由转换。
二、程序原理
以在江苏省南通市有影响的某实验初中为例, 要求在报名的 1500多名学生中随机选择 516 人录取,分 6个批次进行,前 5 批次每次取 100人,最后取 16 人。程序运行时,先对原始数据 文件进行备份, 根据在屏幕上显示“第 x 批”按钮及当前待选库 人数、本批选择进度条等组成程序运行界面。 每按动“第 x 批” 按键一次, 电脑计算本批次应产生的选中人数 (如果总的待选择 数大于 100 则为 100,否则为剩余数),随机对当前待选择库进 行派位,直到选中本批次待选人数,显示选择结果,将选中名单 导出到“批次 .dbf ”和“批次 .xls ”文件, 并显示报告, 将已选 出名单从待选择库中删除, 打印本批名单交公证处及相关人员签 字,如果还有待选择名单,则屏幕界面上显示 “第 x+1 批”按 钮,以供下一批次的选择,否则选择按钮显示为“选择结束”。
三、数据准备及代码编写 数据准备:将学校提供的经公证处检查认可的报名 Excel 文 件保留其中的“姓名”、 “身份证号”或登记号 (需唯一 )并另存 生成bmk.DBF文件。打开该DBF文件,运行modi stru命令,添 加“原始记录号”、“选中”、“选中顺序”三个数值型字段, 运行命令 repl all 原始记录号 with recno() ,数据准备完毕。
在新窗体添加四个标签,分别为 Label1 、Label2 、Label3 、 Progress1 ,将 Label2 的 Caption 设置为“进度”且与 Progress1 水平对齐,将 Progress1 的 BackColor 设置为“ 0,0,255 ”,即 蓝色,添加两个命令按钮,名称分别为 Command、1 Command,2
将Comma nd的Caption设置为“第1批”,将 Comma nd的
1. 对窗体的 Init 即初始化部分添加代码 *行前带 * 号的为注解 set esca off set talk off this.visible=.t.
this.autocenter=.t. thismand1.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))
** 界面显示完成,等待进行选择
2.对Comma nd的Click即点击事件添加代码
ran d(-100)
if 需选人数 -已选出数 100 then 本批数=100
else
本批数=需选人数 -已选出数
endi
go bott
库中还有总人数 =recno() 本批已选 =0
** 当本批已选 =1,就去判断选择该行,
if 随机数 =1 then
go 随机数
**如果该行的选中标记不是 1,那么“本批已选”变量加 1, 该行的“选
原创力文档


文档评论(0)