最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

武大遥感院2011上机题答案

来源:动视网 责编:小OO 时间:2025-09-30 08:36:00
文档

武大遥感院2011上机题答案

#include#include#include#includeusingnamespacestd;#defineMAX20//多边形中最多点的个数structPOINT{intx;inty;POINT(){x=0;y=0;}};intmain(){ifstreaminfile("Input.txt");if(!infile){coutnum;vector*pvector;pvector=newvector[num];inti,j,m=0;//计数器//读取数据charch=',';//读取一
推荐度:
导读#include#include#include#includeusingnamespacestd;#defineMAX20//多边形中最多点的个数structPOINT{intx;inty;POINT(){x=0;y=0;}};intmain(){ifstreaminfile("Input.txt");if(!infile){coutnum;vector*pvector;pvector=newvector[num];inti,j,m=0;//计数器//读取数据charch=',';//读取一
#include

#include

#include

#include

using namespace std;

#define MAX 20 //多边形中最多点的个数

struct POINT

{

int x;

int y;

POINT()

{

x = 0;

y = 0;

}

};

int main()

{

ifstream infile("Input.txt");

if(!infile)

{

cout<<"can not open the file";

exit(1);

}

int num;

infile>>num;

vector *pvector;

pvector = new vector[num];

int i,j,m=0; //计数器

// 读取数据

char ch = ','; //读取一个char变量,任意一个即可

char ch1 = ';'; //读取一个char变量,任意一个即可

for(i=0;i{

struct POINT *P = new struct POINT[MAX];

for(j=0;j{

infile>>P[j].x>>ch>>P[j].y;

pvector[i].push_back(P[j]);

if((P[j].x==P[m].x)&&(P[j].y==P[m].y)&&(j!=m))

{

i++;

break;

}

infile>>ch1;

}

}

infile.close();

// 将点的坐标输出到屏幕上

for(i=0;i{

for(j=0;j{

cout<}

cout<}

// 求多边形的周长和面积

float *perimeter = new float[num]; //多边形周长

float *area = new float[num]; //多边形面积

for(i=0;i{

area[i] = 0.0;

perimeter[i] = 0.0;

int size = pvector[i].size();

for(j=0;j{

perimeter[i] += sqrt(pow((pvector[i][j+1].y-pvector[i][j].y),2)+pow((pvector[i][j+1].x-pvector[i][j].x),2)); //周长

area[i] += (pvector[i][j+1].y-pvector[i][j].y)*(pvector[i][j+1].x+pvector[i][j].x);

}

perimeter[i] = perimeter[i];

area[i] = 0.5*abs(area[i]);

}

float areaMax,areaMin,periMax,periMin;

areaMax = areaMin = area[0];

periMax = periMin = perimeter[0];

int num1,num2,num3,num4; //记录面积、周长最大最小的多边形的ID号

// 求最大最小面积、周长及相应多边形的ID号

for(i=0;i{

if(area[i]>areaMax)

{

areaMax = area[i];

num1 = i;

}

if(area[i]{

areaMin = area[i];

num2 = i;

}

if(perimeter[i]>periMax)

{

periMax = perimeter[i];

num3 = i;

}

if(perimeter[i]{

periMin = perimeter[i];

num4 = i;

}

}

// 求面积的均值

float averArea = 0.0;

for(i=0;iaverArea += area[i];

averArea = averArea/num;

// 求面积的标准差

float stdev = 0.0;

for(i=0;istdev += pow(area[i]-averArea,2);

stdev = sqrt(stdev/num);

// 多边形分类并统计

int numA = 0;

int numB = 0;

int numC = 0;

int numD = 0;

for(i=0;i{

if(area[i]>averArea+stdev)

{

numA++;

}

else if(area[i]>averArea&&area[i]{

numB++;

}

else if(area[i]>averArea-stdev&&area[i]{

numC++;

}

else

{

numD++;

}

}

ofstrea

m outfile("result.txt");

if(!outfile)

{

cerr<<"can not write the file";

exit(1);

}

outfile<<"所有多边形的面积:";

for(i=0;i{

outfile<}

outfile<outfile<<"第"<outfile<<"第"<outfile<<"第"<outfile<<"第"<outfile<<"A类:"<outfile<<"B类:"<outfile<<"C类:"<outfile<<"D类:"<outfile.close();

delete []area;

delete []perimeter;

delete []pvector;

return 0;

}

文档

武大遥感院2011上机题答案

#include#include#include#includeusingnamespacestd;#defineMAX20//多边形中最多点的个数structPOINT{intx;inty;POINT(){x=0;y=0;}};intmain(){ifstreaminfile("Input.txt");if(!infile){coutnum;vector*pvector;pvector=newvector[num];inti,j,m=0;//计数器//读取数据charch=',';//读取一
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top