点和圆的关系判断 C++代码实现(面向对象)
#include<iostream>
using namespace std;
class Point {
public:
void setx(int x) {
p_x = x;
}
void sety(int y) {
p_y = y;
}
int getx() {
return p_x;
}
int gety() {
return p_y;
}
private:
int p_x;
int p_y;
};
class Yuan {
public:
void setyuan(int x) {
yuan_R = x;
}
int getyuan() {
return yuan_R;
}
void setP(Point p) {
yuan_P = p;
}
Point getP() {
return yuan_P;
}
private:
int yuan_R;
Point yuan_P;
};
void ceshi(Point x, Yuan c) {
int a = (x.getx() - c.getP().getx()) * (x.getx() - c.getP().getx()) + (x.gety() - c.getP().gety()) * (x.gety() - c.getP().gety());
int b = c.getyuan() * c.getyuan();
if (a == b) {
cout << "点在圆上" << endl;
}
if (a < b) {
cout << "点在圆内" << endl;
}
if (a > b) {
cout << "点在圆外" << endl;
}
}
int main() {
Yuan c;
c.setyuan(10);
Point p;
p.setx(0);
p.sety(0);
c.setP(p);
Point x;
x.setx(0);
x.sety(10);
ceshi(x, c);
}