Haskell语言辅导|Haskell算法辅导编程
- 首页 >> OS编程如下要求建立程序,并演示程序运行结果:
1、用名称、人口、海拔高度、天气、年份等数据成员建立一个名为City的类。建立一个产生City对象的类。将产生的City对象(数量大于200个)填充至一个容器,容器的类型自选。对于City对象的具体属性值通过创建发生器来生成。生成规则如下:年份为2006年;名称由4-8个英文小写字符随机构成;人口在范围[100000,10000000)内随机选取;海拔高度在范围[0,4000)米内随机选取;上述三值均不可重复;天气在枚举常量表中{Rainy,Snowy,Cloudy,Sunny}随机选取(1年天气取12个值,即每月一个值)。容器填充完毕后,将其内容写入一个名为City.txt的文件
2、从2006年至2015年间,各城市人口按照n%的速度进行变化。以题目1中生成数据作为2006年数据计算各城市从2006年到2015年各年的人口数,其中n的值在-10到+10间随机选取。计算完毕后将数据重新写回文件City.txt。(提示:用transform算法完成)注意:可按照年份存储10个文件,依次存储10年的数据(文件名依次为City2006,City2007…)。也可将所有数据存储在一个文件中;每年的天气数据按照题目1的规则同样生成。
3、设计算法,对2006年至2015年间的各城市按照其人口数进行查找,找出这10年里人口最多、最少和人口处于中位数的各个城市。(采用operator<进行排序)。结果写入文件Population.txt ,格式为“年份,最多人口城市名称,最少人口城市名称,中位数人口城市名称” 。
4、设计算法,查找2006年到2015年的10年间,每年拥有最好天气数量的城市(即Sunny最多),结果写入文件Weather.txt,格式为“年份,城市名称,Sunny数量”。
5、找出所有海拔在1000-2000米的城市,结果写入文件altitude.txt。
6、使用<functional>中的函数对象,至少使用两种不同的方式按照海拔对城市进行排序(升序和降序各一次)。
7、现在需要在某些城市建立机场。选取城市的规则为:1、好天气(Sunny数量)排前50(2006-2015年间好天气的平均值);2、海拔高度在0-3000米;3、选中城市中不能有两个城市的海拔高度相差100米,有则选取海拔较低的城市。4、人口数量排前50 (2006-2015年间人口数的平均值)。选择结果写入文件Airport.txt。