c++ 黑马程序员核心编程
点和圆的关系代码
#include <iostream> //注意没有分号,包含命名,意思是把文件iostream中的内容包含在程序中
using namespace std; //意思是使用命名空间std,C++库中的类和函数是在std中声明的
#define PI 3.14
// 圆和点的关系
//点类
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:
//x
int m_x;
//y
int m_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 isincenter(circle& c, point& p)
{
int d = (c.getcenter().getx() - p.getx()) * (c.getcenter().getx() - p.getx()) + (c.getcenter().gety() - p.gety()) * (c.getcenter().gety() - p.gety());
if (d == c.getr() * c.getr())
{
cout << "点在圆上" << endl;
}
else if (d < c.getr() * c.getr())
{
cout << "点在圆内" << endl;
}
else
{
cout << "点在圆外" << endl;
}
}
int main() //主函数首部
{
circle c1;
point p,center;
//设置圆
c1.setr(10);//设置半径
//设置圆心
center.setx(0);
center.sety(0);
c1.setcenter(center);
//设置点
p.setx(1);
p.sety(10);
//判断关系
isincenter(c1, p);
system("pause");
return 0; //如果程序正常结束,向操作系统返回一个零值
} //主函数结尾