请大神帮我解决一个c++编程问题。

我想编写一个程序,用类point定义不同对象实现传递点的X,Y值。求出点之间的距离,作为圆的半径,求出其面积。但无法实现目标,想请高人帮我看看代码问题所在。#includ... 我想编写一个程序,用类point定义不同对象实现传递点的X,Y值。求出点之间的距离,作为圆的半径,求出其面积。但无法实现目标,想请高人帮我看看代码问题所在。

#include<iostream.h>
#include<math.h>
class point
{
private:
int X,Y;
public:
point(int a,int b);
double GetX();
double GetX()const;
double GetY();
double GetY()const;
double Change(int c,int d);
};
point::point(int a=0,int b=0)
{
X=a;
Y=b;
}
double point::GetX()
{
return X;
}
double point::GetX()const
{
return X;
}
double point::GetY()
{
return Y;
}
double point::GetY()const
{
return Y;
}
double point::Change(int c,int d)
{
X=c;
Y=d;
}
double Area(const point &t1,point &t2)
{
float L1,L2,r,area;
int PI=3.1415;
L1=t1.GetX()-t2.GetY();
L2=t1.GetY()-t2.GetY();
float fabs(float L1);
float fabs(float L2);
r=L1*L1+L2*L2;
r=sqrt(r);
area=PI*r/4;
cout<<area<<endl;
}
int main()
{
const point p1;
point p2(-5,3);
cout<<"s1="<<Area(p1,p2)<<endl;
p2.Change(56,34);
cout<<"s2="<<Area(p1,p2)<<endl;
return 0;
}
展开
 我来答
porker2008
2014-07-11 · TA获得超过1.4万个赞
知道大有可为答主
回答量:7066
采纳率:62%
帮助的人:1.1亿
展开全部
#include<iostream>
#include<cmath>
using namespace std;

class point
{
private:
int X, Y;
public:
point(int a, int b);
double GetX();
double GetX()const;
double GetY();
double GetY()const;
void Change(int c, int d);
};
point::point(int a = 0, int b = 0)
{
X = a;
Y = b;
}
double point::GetX()
{
return X;
}
double point::GetX()const
{
return X;
}
double point::GetY()
{
return Y;
}
double point::GetY()const
{
return Y;
}

void point::Change(int c, int d)
{
X = c;
Y = d;
}

double Area(const point &t1, const point &t2)
{
float L1, L2, r, area;
int PI = 3.1415;
L1 = t1.GetX() - t2.GetY();
L2 = t1.GetY() - t2.GetY();
r = L1*L1 + L2*L2;
r = sqrt(r);
area = PI*r / 4;
// cout << area << endl;
return area;
}

int main()
{
const point p1;
point p2(-5, 3);
cout << "s1=" << Area(p1, p2) << endl;
p2.Change(56, 34);
cout << "s2=" << Area(p1, p2) << endl;
// system("pause");
return 0;
}
追问
你这个对象别名t2不是定义的常对象的么?怎么可以被change修改啊?
笃侠6A
2014-07-11 · TA获得超过3734个赞
知道大有可为答主
回答量:3205
采纳率:75%
帮助的人:3268万
展开全部
有些地方设计的不合理,给你改了下:
#include<iostream.h>
#include<math.h>
class point
{
private:
int X,Y;
public:
point(int a=0,int b=0);
// double GetX();
double GetX()const;
// double GetY();
double GetY()const;
void Change(int c,int d);
double GetDistance(const point &p);
};
point::point(int a,int b)
{
X=a;
Y=b;
}
double point::GetX()const
{
return X;
}

double point::GetY()const
{
return Y;
}
void point::Change(int c,int d)
{
X=c;
Y=d;
}
double point::GetDistance(const point &p){
double d1,d2;
d1=X-p.X;
d2=Y-p.Y;
return sqrt(d1*d1+d2+d2);
}

int main()
{
const point p1;
point p2(-5,3);
double r;
r=p2.GetDistance(p1); //获取p1,p2两点间距离
cout<<"s1="<<3.14159*r*r <<endl;
p2.Change(56,34);
r=p2.GetDistance(p1); //获取p1,p2两点间距离
cout<<"s1="<<3.14159*r*r <<endl;
return 0;
}
追问
你这程序执行完,第一个s1=97+.应该只等于26点67的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式