C++学习记录
给定一个点和一个圆,总体有三个位置关系:
1.点在圆内;
2.点在圆外;
3.点在圆上
设计一个C++程序,输入一个圆的坐标和半径,以及一个点的位置坐标,实现相对位置的判断。如下图所示:
using namespace std;
#include<iostream>
#include<cmath>
class dot
{
private:
int x, y;
public:
void setx(int a)
{
x = a;
}
void sety(int a)
{
y = a;
}
int getx()
{
return x;
}
int gety()
{
return y;
}
};
class circle
{
private:
int x, y, r;
public:
void setx(int a)
{
x = a;
}
void sety(int a)
{
y = a;
}
void setr(int a)
{
r = a;
}
int getx()
{
return x;
}
int gety()
{
return y;
}
int getr()
{
return r;
}
void culculateS(dot &d)
{
int s;
s = (d.getx() - x) * (d.getx() - x) + (d.gety() - y) * (d.gety() - y) - r * r;
if (s < 0)
{
cout << "该点在圆内" << endl;
}
else if (s == 0)
{
cout << "该点在圆上" << endl;
}
else
cout << "该点在圆外" << endl;
}
};
int main()
{
int cx, cy, r, dx, dy;
circle c1;
cout << "请输入圆心横坐标:" << endl;
cin >> cx;
c1.setx(cx);
cout << "请输入圆心纵坐标:" << endl;
cin >> cy;
c1.sety(cy);
cout << "请输入半径:" << endl;
cin >> r;
c1.setr(r);
dot d1;
cout << "请输入点的横坐标:" << endl;
cin >> dx;
d1.setx(dx);
cout << "请输入点的纵坐标:" << endl;
cin >>dy;
d1.sety(dy);
c1.culculateS(d1);
return 0;
}