Bootstrap

【C++ | PTA】判断一个点是否在一个圆的内部

文章目录

题目要求

创建一个表示点的类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:
    Point(double x1 = 0.0, double y1 = 0.0) {
        x = x1;
        y = y1;
    }
    double getX() const { return x; }
    double getY() const { return y; }
    void setX(double x1) { x = x1; }
    void setY(double y1) { y = y1; }
private:
    double x, y;
};

class Circle {
public:
    Circle(Point p1, double r1) {
        center = p1;
        radius = r1;
    }
    double getRadius() const { return radius; }
    void setRadius(double r1) { radius = r1; }
    Point getCenter() const { return center; }
    void setCenter(Point p1) { center = p1; }
    bool isPointIn(Point p) {
        double dx = p.getX() - center.getX();
        double dy = p.getY() - center.getY();
        double dist = sqrt(dx * dx + dy * dy);
        if (dist <= radius)
            return true;
        else
            return false;
    }
private:
    Point center;
    double radius;
};
;