设计一个类,用于计算圆的面积、周长以及判定某一个点与这个圆的位置关系。要求程序可执行。

设计一个类,用于计算圆的面积、周长以及判定某一个点与这个圆的位置关系。要求程序可执行。... 设计一个类,用于计算圆的面积、周长以及判定某一个点与这个圆的位置关系。要求程序可执行。 展开
 我来答
伤倏臀w
推荐于2018-04-12 · TA获得超过1115个赞
知道大有可为答主
回答量:864
采纳率:60%
帮助的人:598万
展开全部
#include <iostream>
#include <cmath>
using namespace std;
#define PI 3.1415926
class Circle
{
public:Circle(void): x(0),y(0),r(0){};
Circle(double x,double y): x(x),y(y),r(0){};
Circle(double r): x(0),y(0),r(r){};
Circle(double x,double y,double r): x(x),y(y),r(r){};
~Circle() {};
void setP(double x,double y);
void setX(double x);
void setY(double y);
void setR(double r);
void set(double x,double y,double r);
double getX(void);
double getY(void);
double getR(void);
double getArea(void);
double getCirLen(void);
bool contain(double x,double y);
void show(void);
protected:double x;
double y;
double r;
};
void Circle::setP(double x,double y)
{
this->x = x;
this->y = y;
}
void Circle::setX(double x)
{
this->x = x;
}
void Circle::setY(double y)
{
this->y = y;
}
void Circle::setR(double r)
{
this->r = r;
}
void Circle::set(double x,double y,double r)
{
this->setP(x,y);
this->setR(r);
}
double Circle::getX(void)
{
return x;
}
double Circle::getY(void)
{
return y;
}
double Circle::getR(void)
{
return r;
}
double Circle::getArea(void)
{
return r*r*PI;
}
double Circle::getCirLen(void)
{
return r*PI*2;
}
bool Circle::contain(double x,double y)
{
double len = sqrt( (this->x -x) * (this->x -x) + (this->y -y) * (this->y -y) );
if (len <= this->r) return 1;
else return 0;
}
void Circle::show(void)
{
cout << "圆心:(" <<this->getX() << "," << this->getY() << ")" << endl;
cout << "半径:" << this->getR() << endl;
cout << "面积:" << this->getArea() << endl;
cout << "周长:" << this->getCirLen() << endl;
}
int main()
{
Circle c(1,1,1);
c.show();
c.setX(2);
c.show();
c.setY(3);
c.show();
c.setR(4);
c.show();
c.setP(1,1);
c.show();
c.set(5,5,5);
c.show();
cout << "该圆" << ( c.contain(3,3)?"":"不" )<< "包含点(3,3)。" << endl;
return 0;
}
测试可行。
promise_遗忘_
2010-05-15 · TA获得超过223个赞
知道小有建树答主
回答量:100
采纳率:0%
帮助的人:108万
展开全部
#include<iostream>
#include<cmath>
#define pi 3.14
using namespace std;
class point{
public:
point(double X=0,double Y=0){x=X;y=Y;}
double x,y;
};
class circle:public point{
public:
circle(double Radius=0,double X,double Y){radius=Radius;x=X;y=Y;area=pi*pi*radius;length=2*pi*radius;}
circle(const circle& Circle){area=Circle.area;radius=Circle.radius;length=Circle.length;}
void GetRadius()const{cout<<"半径:"<<radius<<endl;}
void GetArea()const{cout<<"面积:"<<area<<endl;}
void GetLength()const{cout<<"周长:"<<length<<endl;}
void Determine(point& Point){
cout<<"点与圆的关系:";
if(pow(x-Point.x,2)+pow(y-Point.y,2)>radius*radius){
cout<<"在圆外."<<endl;
}
else if(pow(x-Point.x,2)+pow(y-Point.y,2)==radius*radius){
cout<<"在圆上."<<endl;
}
else cout<<"在园内."<<endl;
}
private:
double area,radius,length;
};
int main(){
point Point(5,9);
circle Circle(4.0,2,3);
Circle.GetRadius();
Circle.GetArea();
Circle.GetLength();
Circle.Determine(Point);
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式