创建一个表示点的类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
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
#include <iostream>
#include <cmath>
using namespace std;
class Point
{
double m_x,m_y;
public:
Point(double x,double y):m_x(x),m_y(y)
{
}
double getX() const
{
return m_x;
}
double getY() const
{
return m_y;
}
};
class Circle
{
Point m_center; //圆心
double m_r;
public:
Circle(Point p,double r):m_center(p),m_r(r) //构造函数
{
}
bool isPointIn(const Point& point) //并不需要修改点的坐标,所以加了const
{
if(pow(point.getX()-m_center.getX(),2)+pow(point.getY()-m_center.getY(),2)>pow(m_r,2))
{
return false; //不在圆内
}
else{
return true;
}
}
};
注意:构造函数参数列表的顺序要与成员变量的顺序一致。getX() const,要注意const不要漏掉。