去年给女儿高考填志愿时就想写个浙江高考平行志愿的录取过程,但一填完又没兴致了,但今年在帮别人填志愿时又来兴致了,乘着兴致未减,花点时间写了个模拟过程,只是按自己的理解写的,也不知对错,录取过程中[分数优先]被体现的淋漓尽致,排队进场要看位次(就是你只有等前面一个考生完成录取过程了才能轮到你),根据过程推演,理论上考分位次前80名的童鞋,只要所填的志愿数大于或等于自己的位次号,绝不可能滑档,还有理论上如果你所填报的所有志愿的计划招生数之和大于或等于你的位次号,也绝不可能滑档,所以好好学习,天天向上的没错的,不得不说想出平行录取法子的人也是鬼才啊!

//==============================================================================
//浙江普通高考一段平行志愿录取流程模拟
//分数优先,遵循志愿,一次投档
//Program by DGS 2022.7.1
//==============================================================================unit ZJCEEPA;interfaceusesSystem.Generics.Collections;type//志愿篮,每个志愿为 院校+专业TApplicationBasket = recordAppNo: string; //志愿编号,院校代码+专业代码PlannedNumber: Integer; //计划数AdmissionedNumber: Integer; //录取数,初始为 0Examinees: TArray<string>; //录取的考生合集,按分数位次排序;TArray<考生编号>,数组宽度最大为计划数end;//考生信息TExaminee = recordIdNumber: string; //考生编号Order: Integer; //分数位次AppNoAdmissioned: string; //录取志愿编号,初始为空Applications: TArray<string>; //申报志愿合集,按志愿申报顺序排序;TArray<志愿编号>,数组最大宽度为80end;procedure ZJGAZY;implementationprocedure ZJGAZY;
var//志愿篮清单,不作排序,全部学校的招生志愿,一学校一专业为一志愿,TDictionary<志愿编号, 志愿篮>;lApplicationBaskets: TDictionary<string, TApplicationBasket>;//考生清单,以考分位次进行排序lExaminees: TList<TExaminee>;lAppBasket: TApplicationBasket;lExaminee: TExaminee;sAppNO: string;i, j, k: Integer;
beginlApplicationBaskets := TDictionary<string, TApplicationBasket>.Create;lExaminees := TList<TExaminee>.Create;try//===========================================================================//志愿填报过程,根据考生的志愿填报情况产生两个列表//一个是包含所有院校所有专业的志愿篮列表//另一个是包含所有考生的考生信息,每个考生信息中包含了该考生申报的志愿//===========================================================================////fillApplicationBaskets();//fillExaminees();////===========================================================================//按考生分数位次依次录取,体现【分数优先】//类似买房摇号,按摇号顺序进场选房,有所不同的是80套意向房子预先已选好,进场只需再确认1套房即可//而后面的人只有等你选好房才有资格入场选房,//所以你无需担心你后面的人会抢了你的饭碗,你需要的是用心去提防前面的人,//只要你前面的人没有抢完你填的志愿,那么这个志愿不论放在哪个位置都是你的,for i := 0 to lExaminees.Count - 1 dobeginlExaminee := lExaminees[i]; //取当前考生信息//按考生自己填报的志愿顺序依次执行,体现【遵循志愿】for j := Low(lExaminee.Applications) to High(lExaminee.Applications) dobeginsAppNO := lExaminee.Applications[j]; //志愿编号//根据志愿编号提取相应的志愿篮if lApplicationBaskets.TryGetValue(sAppNO, lAppBasket) thenbegin//如果已招满直接略过进入下一个志愿篮if lAppBasket.AdmissionedNumber >= lAppBasket.PlannedNumber thenContinue;//扩展当前志愿篮录取考生数组,并恭喜你被录取了SetLength(lAppBasket.Examinees, Length(lAppBasket.Examinees) + 1);//赋值新录取考生为当前考生lAppBasket.Examinees[High(lAppBasket.Examinees)] := lExaminee.IdNumber;//赋值当前考生录取志愿为当前志愿lExaminee.AppNoAdmissioned := sAppNO; //递增当前志愿篮录取数lAppBasket.AdmissionedNumber := lAppBasket.AdmissionedNumber + 1;//向志愿篮列表回写信息lApplicationBaskets.AddOrSetValue(sAppNO, lAppBasket);//提前结束当前志愿篮筛选循环,为后面的人让路,//后面志愿里再好的大学也跟你无关了,这体现了【一次投档】//所以理论上考分位次前80名的童鞋,只要所填的志愿数大于或等于自己的位次号,绝不可能滑档//或是你所填报的所有志愿的计划招生数之和大于或等于你的位次号,也绝不可能滑档,//因为你前面的人每个人最多只能中一个志愿、投一次档//还是那名话,你无需担心你后面的人会抢了你的饭碗,你需要的是用心去提防前面的人,//只要你前面的人没有抢完你填的志愿,那么这个志愿不论放在哪个位置都是你的//所以你用于保底实在没办法才读的或是有机会中但不是第一选择的志愿千万别靠前,Break; //结束当前志愿篮筛选循环end;end;//经过最大80次的循环,如果志愿编号不为空说明成功录取,否则就说明你不幸滑档了if lExaminee.AppNoAdmissioned <> '' thenbeginlExaminees[i] := lExaminee; //向考生信息列表回写信息end;end;//===========================================================================//输出志愿录取结果//经过上面循环,lApplicationBaskets 清单中每个志愿篮里的 Examinees 值都是成功录取的考生//lExaminees 清单里每个考生的 AppNoAdmissioned 值代表录取的志愿//===========================================================================////outApplicationBaskets();//outExaminees();////===========================================================================finallylApplicationBaskets.Free;lExaminees.Free;end;
end;end.

浙江高考平行志愿录取过程模拟(Delphi实现)相关推荐

  1. 浙江高考平行志愿计算机怎么录取,浙江高考平行志愿设置及录取规则范文.doc...

    浙江高考平行志愿设置及录取规则范文 浙江省的高考平行志愿是怎么样的?想要了解浙江省的高考平行志愿的同学就认真看看吧,平行志愿指的是某个省在某个批次制定的志愿填报模式以及相对应的录取规则,下面是阳光网分 ...

  2. 高考平行报志愿计算机录取规则,高考平行志愿录取规则是什么

    平行志愿投档录取是高考志愿填报和录取的一种方式,平行志愿填报使得什么成绩对应什么层次的学校,更为明显.以下是百分网小编为你整理的2018年高考平行志愿录取规则,希望能帮到你. 平行志愿投档的规则 平行 ...

  3. 高考平行报志愿计算机录取规则,2020年高考平行志愿录取规则大全

    考生的分数,分高自然就会优先,在某一个专业众多考生中,肯定是要择优录取的,优先考虑分数高的学生.以下是小编整理了关于2020年高考平行志愿录取规则大全,希望你喜欢. 2020年高考平行志愿录取规则大全 ...

  4. 高考平行报志愿计算机录取规则,2017高考平行志愿录取规则详解

    2017高考平行志愿录取规则详解 2017年高考成绩已经公布,接下来就到了志愿填报的时间了,以下是百分网小编搜索整理的关于2017高考平行志愿录取规则详解,供参考阅读,希望对大家有所帮助!想了解更多相 ...

  5. 高考平行报志愿计算机录取规则,2019年高考志愿填报指南:高考平行志愿录取规则及填报技巧解读...

    2019年高考平行志愿录取规则及填报技巧 2019年高考即将开启,接下来就是填志愿的事了. 高考平行志愿录取规则是"分数优先,遵循志愿",到2018年,全国绝大部分省市已经实行平行 ...

  6. 高考平行报志愿计算机录取规则,2020安徽高考平行志愿录取规则

    想报读安徽的大学吗?知道安徽高考平行志愿录取规则如何吗?下面YJBYS小编为大家整理了2017安徽高考平行志愿录取规则,欢迎阅读参考! 2017安徽高考平行志愿录取规则 由于安徽高考招生政策还没有公布 ...

  7. 高考平行报志愿计算机录取规则,高考平行志愿录取规则

    高考平行志愿录取规则 平行志愿录取规则 平行志愿就是在同一个志愿顺序上设置了两个以上(含)的并列院校志愿. 平行志愿的主要特点: 一是强化了分数的作用,大大减少了高分低就.高分落榜现象;与此同时,低分 ...

  8. 高考平行报志愿计算机录取规则,2018天津高考平行志愿录取规则

    2018天津高考平行志愿录取规则 天津市高考填报志愿指南系列(六)平行志愿的那些事儿 2018年我市高考已经顺利结束,莘莘学子又要面临一项新的课题--填报志愿.这对于家长们和考生们都是一件很重要的事情 ...

  9. 高考平行报志愿计算机录取规则,2021年山东高考平行志愿录取规则及填报技巧(教程)...

    1什么是平行志愿? 所谓"平行志愿",是指在某个录取批次设置的高校志愿均为并列的志愿.平行志愿与传统志愿的主要区别在于投档方式上的区别.平行志愿是首先将所有考生分文.理科按照投档分 ...

最新文章

  1. 忙~~~~~~~~~~~~~~~~~
  2. python列表删除重复项_五分钟学会三种Excel重复项删除方法,工作效率大杀器!...
  3. 修正 010 Editor 模板文件 MachO.bt 的错误
  4. python读取文件最后一行
  5. 99%的面试官都会问到的Java面试题
  6. galago 介绍_赢得预装Linux的System76 Galago Pro笔记本电脑
  7. 【Xamarin开发 Android 系列 2】VS2015跨平台开发的几种方式
  8. 一名7年总监的6点离职忠告
  9. python K折交叉验证
  10. Mac之系统中各个文件夹详细介绍
  11. CSS定位中绝对定位和固定定位(重点)
  12. 计算机无法自动搜索更新驱动程序,Win10怎么设置自动搜索更新驱动软件
  13. python字典第一个元素_如何获取python字典中的第一个值
  14. WPF中应用toolkit Chart控件安装
  15. 权宜之计是什么意思_四代火影死后,为什么没有五代火影上任?网友:纲手还在赌钱呢...
  16. foxmail皮肤_确实很棒!Foxmail 7.1邮箱客户端体验
  17. ios仿微博个人首页
  18. 《JavaWeb视频教程》(p34)
  19. 为什么初等矩阵左乘相当于行变换,右乘相当于列变换
  20. 贝壳房产问答匹配比赛-划水之旅

热门文章

  1. 【Codecs系列】之视频编码中的块效应、振铃效应和呼吸效应分析
  2. IT学习,大学不迷茫
  3. 收购无他相机后,天鸽互动已呈现更大的投资价值
  4. 对于电影我不是药神我有话要说
  5. 从网站漏洞被薅羊毛事件谈谈软件测试
  6. 6-3 汽车收费 (10 分)
  7. 怀旧服美服哪个服务器人最多,魔兽世界怀旧服你排队多久 美服平均4小时是什么水平...
  8. linux中文件设置为不可复制和剪切,并不可拷贝到U盘中
  9. 贝佐斯聘请SpaceX公司前高管 负责亚马逊卫星互联网项目
  10. java 项目英语面试问题_Java 英文面试题