编译器:C++ (g++)
创建一个表示点的类Point,运用组合的方式创建圆形类。
圆形有个成员函数isPointIn用于判断一个点是否在该圆形的内部。
完成对应类代码,使得主函数可以正确运行。
注意类的数值型数据成员类型为浮点型。
裁判测试程序样例:
/* 请在这里填写答案 */
int main(int argc, char const *argv[])
{
double x,y;
double r;
cin>>x>>y>>r;
Point p(x,y);
Circle c(p,r);
cin>>x>>y;
Point p1(x,y);
bool b = c.isPointIn(p1);
cout<<b<<endl;
}
输入样例:
在这里给出一组输入。例如:
1 1 1.5 2 2
输出样例:
在这里给出相应的输出。例如:
1
#include<iostream>
#include<cmath>
using namespace std;
class Point
{
public:
int X;
int Y;
public:
Point(int xx=0,int yy=0):X(xx),Y(yy){}
int setx()
{
return X;
}
int sety()
{
return Y;
}
};
class Circle
{
private:
Point P;
double R;
public:
Circle(Point pp,double rr):P(pp),R(rr){}
bool isincircle(Point &p);
bool isPointIn(Point &p);
};
double getlenth(Point &p1,Point &p2)
{
return sqrt(pow((p1.X-p2.X),2)+pow((p1.Y-p2.Y),2));
}
bool Circle::isincircle(Point &p)
{
double length=sqrt(pow((p.X-P.X),2)+pow((p.sety()-P.sety()),2));
if(length<R) return 1;
return 0;
}
bool Circle::isPointIn(Point &p)
{
if(getlenth(p,P)<R) return 1;
return 0;
}
int main(int argc, char const *argv[])
{
double x,y;
double r;
cin>>x>>y>>r;
Point p(x,y);
Circle c(p,r);
cin>>x>>y;
Point p1(x,y);
bool b = c.isPointIn(p1);
cout<<b<<endl;
}