这两天干上高考出成绩,有不少亲戚家的孩子今年高考,和我询问关于报志愿的问题。老家河北今年是采用所谓的平行志愿。我看了很多的资料才明白什么叫所谓的“平行志愿”。
整个流程好像很是复杂。我突发奇想,心想何不自己编写一个程序来模拟一下这个所谓的录取过程呢。
考生成绩和志愿是机密类的数据,向我们这样的平头百姓向那倒是不太可能的事情,那么就只能自己写个程序生成一份模拟的成绩和志愿数据。
成绩比较好办,因为有个参考,那就是省教育考试院放出的“一分一段成绩统计表”。这个东西提供了我们模拟成绩数据的很多信息:一是考生的人数,每个分数下的人数都写得很清楚;二是成绩的分布情况,即在不同成绩段的考生人数都十分详细的列出。
但有一个缺陷是这个表格只列出了总成绩的分布,而没有单科成绩的分布,所以单科成绩分布只能自己想办法。不过还好高考是按总分录取的,所以不影响我们的仿真。
好了,废话少绪,直接上代码:
其中的样本数据直接复制于河北省的一分一段统计表。
程序用到的数据文件中的数据如下:
只需复制上面的数据保存为rate_stylebook.txt放在编译后的可执行程序相同目录下即可执行。
结果数据写入了score_record.txt文件中,总共有30多万条成绩数据。
处理的比较粗的是成绩低于199分时全部是按199分处理的,但这应该不会影响录取模拟,因为低于199基本也没有可能被录取。