C++建模实战1-高考录取系统
扫描二维码
随时随地手机看文章
我一直以为,开发者的能力基本上就可以认为是一次把事情做成的能力。而一次把事情做成至少需要看准需求,选好道路,稳妥实现三个步骤。大致可以认为,看准需求是要求的是对事物系统的把握能力,选道路系统分解的能力,而稳妥实现要求的变成语言,工具,技巧的熟练掌握。
相信许多开发者对自己实现功能的能力比较有信心,对系统的把握,分解能力的信心就差一些了。如何针对这方面进行有针对性的练习并提高呢?我的答案就是做一些小的建模练习。
高考录取系统就是我们的第一个练习,本文先定义需求。
平行志愿录取规则
简单来说,平行志愿有三个“一”,一个是同一批次,一个是一个投档时间段内,再一个是可以填几个并列的院校志愿。平行志愿的投档原则是志愿并列、位次优先、遵循志愿、一轮投档。
为了帮助大家理解,先解释一下传统的梯度志愿在一个投档时间段内,只能填一个志愿,而平行志愿在一个投档时间段内可以填几个志愿。这几个志愿没有主次之 分,都是一志愿,所以叫平行志愿。第二个特点就是位次优先,在过去的梯度志愿模式下,强调的是分数优先,在平行志愿模式下则是位次优先,也就是对全部参考 的考生分科类进行一个排序,每一名考生要排出一个位次,一个位次对应一名考生。在投档检索时,先投位次在前的考生,然后再投位次在后的考生。第三个特点就 是遵循志愿,目前实行平行志愿的省(区、市)一般可填报三到五个院校志愿,分别以英文字母ABCDE排列出一个自然的顺序。投档的时候按照这个考生的自然 顺序逐一检索,也就是说首先检索A志愿,其次再检索后续志愿。当符合A志愿学校的条件时,考生的档案就被投入A志愿院校中,其他后续志愿就不再检索;如果 考生不符合A志愿的投档条件,那么就要看他的B志愿,如果B志愿仍然不符合要求,再看他C志愿,依次检索下来,直至检索完毕。也就是说,梯度志愿中的一个 考生,只有一次检索一次投档机会,那么现在就多次了,可以有效地保证这几所院校都有可能被检索、被录取。第四个特点就叫一轮投档,也就是考生的档案只要被 投入任一一所志愿院校中去,就停止对其的检索,如果考生的档案被高校退回来,即使分数达到后续志愿也不检索了。
今天就到这里,接下来就把时间交给大家,根据以上信息设计高考录取系统。