设计一个圆形类(Circle),和一个点类(Point),计算点和圆的关系。
源码#includeusing namespace std; //一个用来求解距离的平方的全局函数 int distance(int a, int b, int c, int d) { return (abs(a - c) * abs(a - c) + abs(b - d) * abs(b - d)); } class point { public: void setX(int x) { p_x = x; }//写入点的X坐标 void setY(int y) { p_y = y; }//写入点的Y坐标 int getX() { return p_x; }//因为我们已经规定了p.p_x从外部是不能访问的,所以必须要定义一个这样的函数来访问p的x坐标 int getY() { return p_y; } private: int p_x; int p_y; }p; class circle { public: void setR(int r) { c_r = r;//写入圆的半径 } void setCenter(point center) { c_center = center;//设置圆的圆心 } int getR() { return c_r; } void judgePos(point&p) { int a = distance(p.getX(), p.getY(), c_center.getX(), c_center.getY()); if (a > c.getR() * c.getR()) { cout<<"点在圆外"; } else if (a== c.getR() * c.getR()) cout<<"点在圆上"; else cout<<"点在圆内"; }//判断点和圆的位置关系的成员函数 //记得加引用记号 private: int c_r;//半径 point c_center;//圆心 }c; int main() { //先输入点的x,y坐标,再输入圆心的x,y坐标 //最后输入圆的半径 int x1, y1, x2, y2, r; cin >> x1 >> y1 >> x2 >> y2 >> r; p.setX(x1); p.setY(y1); point Center; Center.setX(x2); Center.setY(y2); c.setCenter(Center); c.setR(r); c.judgePos(p); return 0; }



