【C++】6-18 判断点圆关系分数 15

6-18 判断点圆关系

分数 15

全屏浏览

切换布局

作者 徐婉珍

单位 广东东软学院

输入平面上的一个点的坐标,以及一个圆的圆心坐标和半径,输出该点到原点的距离,并判断该点在圆内,圆外还是在圆周上。
在圆外时,将输出“outside",在圆内时,输出"inside",在圆周上时,输出“on"。
下面已经给出了点类Point的部分定义,请将其函数定义补充完整,并添加对圆类Circle的完整定义。

裁判测试程序如下:

#include <iostream>
#include <cmath>
#include <iomanip>
using namespace std;
class Point{
    private:
        double x,y;
    public:
        Point();
        Point(double x_,double y_);
        double distance();
        double distance(const Point &p);
        double getX(){return x;}
        double getY(){return y;}
        void setX(double x_);
        void setY(double y_);
};
/* 你的代码将被嵌入这里 */
int main(){
   double x1,y1,x2,y2,r; 
   cin>>x1>>y1>>x2>>y2>>r;
   Point p(x1,y1);
   Point ctr(x2,y2);
   Circle c(ctr,r);
   cout<<setprecision(3)<<p.distance()<<" "<<c.judge(p)<<endl;
} 

输入格式说明:

格式如下:


点的x坐标 点的y坐标 圆心的x坐标 圆心的y坐标 圆的半径

输入样例:

在一行中给出点坐标和圆心坐标及半径:

2 3 1 1 3

输出样例:

在这里给出相应的输出。例如:

3.61 inside

代码长度限制

16 KB

时间限制

400 ms

内存限制

64 MB

Point::Point()
{
    x = 0;
    y = 0;
}
Point::Point(double x_, double y_)
{
    x = x_;
    y = y_;
}
double Point::distance() 
{
    return sqrt(x * x + y * y);
}
double Point::distance(const Point& p)
{
    return sqrt((x - p.x) * (x - p.x) + (y - p.y) * (y - p.y));
}
void Point::setX(double x_)
{
    x = x_;
}
void Point::setY(double y_)
{
    y = y_;
}
class Circle {
private:
    Point center;
    double radius;

public:
    Circle( Point &center_, double radius_) : center(center_), radius(radius_) {}

    // 判断点是否在圆内、圆外还是圆上
    string judge( Point &p) {
        double dist = p.distance(center);
        if (dist < radius) return "inside";
        else if (dist > radius) return "outside";
        else return "on";
    }
};

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值