C++类的简单练习:点与圆的关系

一、要求

二、问题分析

1圆形类 Circle(圆心和半径) 设置和获取
2 点类Point   设置和获取
3计算点与圆心的距离  d>r 圆外 d=r圆上  d<r圆内
      (x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)  r*r

三、发现问题

1、定义对象后使用成员函数记得加()       例如c.set()

2、写的时候要注意写全了尤其是各种标识符。

3.if语句的嵌套:在if语句里可以嵌套多个if,每个遵循的匹配规则是:else 总是与它前面最近、尚未匹配的 if 配对。

if (){}

else if(){}

else {}

4、在一个类中还可以定义另一个类的对象

四、代码

#include <iostream>
using namespace std;

class Point
{
private:
    double x;
    double y;
public:
    void setx(double a)
    {
        x = a;
    }
    double getx()
    {
        return x;
    }
    void sety(double a)
    {
        y = a;
    }
    double gety()
    {
        return y;
    }

};
class Circle
{
private:
    Point mid;
    double r;
public:
    void setmid(Point c)
    {
        mid = c;
    }
    double getmidx()
    {
        return mid.getx();
    }
    double getmidy()
    {
        return mid.gety();
    }
    void setr(double d)
    {
        r = d;
    }
    double getr()
    {
        return r;
    }
};
int main()
{//建立点
    Point p;
    p.setx(20);
    p.sety(0);
    cout << "点的横坐标是:" << p.getx() << endl;//定义对象后使用成员函数时记得加括号
    cout << "点的纵坐标是:" << p.gety() << endl;

    //建立圆
    Circle c;
    Point cp;
    cp.setx(20);
    cp.sety(10);
    c.setmid(cp);
    c.setr(10);
    cout << "圆的圆心是:(" << c.getmidx() << "," << c.getmidy() <<")" <<endl;
    cout << "圆的半径是:" << c.getr() << endl;

    //判断点和圆的关系
    if ((p.getx() - c.getmidx()) * (p.getx() - c.getmidx()) + (p.gety() - c.getmidy()) * (p.gety() - c.getmidy()) > c.getr()* c.getr())
    {
        cout << "点在圆外" << endl;
    }
    else if ((p.getx() - c.getmidx()) * (p.getx() - c.getmidx()) + (p.gety() - c.getmidy()) * (p.gety() - c.getmidy()) < c.getr()*c.getr())
    {
        cout << "点在圆内" << endl;
    }
    else
    {
        cout << "点在圆上" << endl;
    }
}

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值