007.类的使用
设计一个Point类,有两个私有的数据成员x和y,存储横坐标和纵坐标,并为该类定义各种构造函数。
再设计一个Circle类,该类有私有成员Point center; 代表圆心,以及私有数据成员double radius; 代表半径。
为该类设计求面积和半径的成员函数。圆周率数据使用3.14159265。
再为该类设计一个判断某点是否在圆内部的成员函数(如果点在圆周上则不算在圆内部)。
请根据下面的main函数完成类的设计:
int main(){
double x,y,radius;
cin>>x>>y;
cin>>radius;
Circle c(x,y,radius);
cin>>x>>y;
Point p(x,y);
cout<<c.getArea()<<endl;
cout<<c.getPerimeter()<<endl;
if(c.isInTheCircle§)
cout<<“该点在圆内部!”<<endl;
else
cout<<“该点不在圆内部!”<<endl;
return 0;
}
输入描述
第一行输入圆心坐标
第二行输入圆的半径
第三行输入某个点的坐标
输出描述
第一行输出圆的面积
第二行输出圆的周长
第三行输出某个点是否在圆内部
提示
你需要提交main函数之外的其他代码部分
样例输入
0 0
3
2.5 2.5
样例输出
28.2743
18.8496
该点不在圆内部!
允许最长运行时间
1000ms
允许使用最大内存
128KB
#include<iostream>
using namespace std;
class Point{
public:
Point(){
}
Point(double x,double y){
this->x=x;
this->y=y;
}
double GetX(){
return x;
}
double GetY(){
return y;
}
private:
double x,y;
};
class Circle{
public:
Circle(double x,double y,double radius):center(x,y),radius(radius){
}
double getArea(){
double pi=3.14159265;
double s=pi*radius*radius;
return s;
}
double getPerimeter(){
double pi=3.14159265;
double Perimeter=2*pi*radius;
return Perimeter;
}
double isInTheCircle(Point p){
double squareDistance=(center.GetX()-p.GetX())*(center.GetX()-p.GetX())+(center.GetY()-p.GetY())*(center.GetY()-p.GetY());
if(squareDistance<radius*radius)
return 1;
else
return 0;
}
private:
Point center;
double radius;
};
int main(){
double x,y,radius;
cin>>x>>y;
cin>>radius;
Circle c(x,y,radius);
cin>>x>>y;
Point p(x,y);
cout<<c.getArea()<<endl;
cout<<c.getPerimeter()<<endl;
if(c.isInTheCircle(p))
cout<<"该点在圆内部!"<<endl;
else
cout<<"该点不在圆内部!"<<endl;
return 0;
}
运行结果: