1、说明
利用C++中,类、对象进行封装一个工程,一个点和圆的关系,分别在圆内、圆上和圆外。本代码在学习中进行录,当做笔记使用,代码非原创。
2、代码
```cpp
#include<iostream>
#include<time.h>
#include<string.h>
#include<ctime>
using namespace std;
//点类
class point
{
public:
//设置x
void setx(int x)
{
m_x = x;
}
//获取x
int getx()
{
return m_x;
}
//设置y
void sety(int y)
{
m_y = y;
}
//获取y
int gety()
{
return m_y;
}
private:
int m_x;//x坐标
int m_y;//y坐标
};
//点和圆的关系
//圆类
class circle
{
public:
//设置半径
void setr(int r)
{
m_r = r;
}
//获取半径
int getr()
{
return m_r;
}
//设置圆心
void setcenter(point center)
{
m_center = center;
}
//获取圆心
point getcenter()
{
return m_center;
}
private:
int m_r;//半径
point m_center;//圆心
};
//判断点和圆的关系
void isincircle(circle& c, point& p)
{
//计算两点之间的距离平方
int distance=
(c.getcenter().getx() - p.getx())* (c.getcenter().getx() - p.getx()) +
(c.getcenter().gety() - p.gety())* (c.getcenter().gety() - p.gety());
//计算半径的平方
int rdistance = c.getr()* c.getr();
//判断关系
if (distance == rdistance)
{
cout << "在圆上" << endl;
}
else if (distance> rdistance)
{
cout << "在圆外" << endl;
}
else
{
cout << "在圆内" << endl;
}
}
int main()
{
//创建一个圆
circle c;
c.setr(10);
point center;
center.setx(10);
center.sety(0);
c.setcenter(center);
//创建一个点
point p;
p.setx(10);
p.sety(9);
//判断关系
isincircle(c,p);
system("pause");
return 0;
}
# 3、总结
好记性不如一个烂笔头。