全文预览

城区公路选址问题

上传者:似水流年 |  格式:doc  |  页数:20 |  大小:206KB

文档介绍
();Р?void set(double,double); //改变点的坐标Р?friend double cost(const Point&); //该点处的单位建设费用Р?friend double dist(const Point&,const Point&); //计算两点距离Р?friend double findy(double,const Point&,const Point&); //求交点纵坐标Р?friend double findx(double,const Point&,const Point&); //求交点横坐标Р};Рint main(){Р?Point A(0,9),B(9,0),P,Pmin;Р?int m,n;Р?double totalcost,min=1000; //为方便求出总费用最小值,将min初值设得足够大Р?Point p[20];Р?for(n=9;n>0;n--){ //用双重循环实现AB连线右上部分格点的遍历Р for(m=10-n;m<10;m++){Р P.set(m,n);totalcost=0;Point temp,mid;int i,j,k;Р for(i=0;i<10;i++){ //求出点P(m,n)分别与A、B的连线AP、PB与网格线的所有交点Р if(i<=m)p[i].set(i,findy(i,A,P));Р else p[i].set(i,findy(i,B,P)); //求出横坐标为整数的交点的纵坐标Р if(9-i>n)p[i+10].set(findx(9-i,A,P),9-i);Р else p[i+10].set(findx(9-i,B,P),9-i);//求出纵坐标为整数的交点的横坐标Р }Р for(i=0;i<19;i++){ //对所求出的交点排序Р temp=p[i];k=i;

收藏

分享

举报
下载此文档