#include
#include "circle.h"
#include "point.h"
using namespace std;
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 c1;
int r = 0;
cout << "输入圆的半径:" << endl;
cin >> r;
c1.setR(r);
point center;//圆心
int x1 = 0;
cout << "输入圆心横坐标:" << endl;
cin >> x1;
center.setX(x1);
int y1 = 0;
cout << "输入圆心纵坐标:" << endl;
cin >> y1;
center.setY(y1);
point p1;
int x2 = 0;
cout << "输入点的横坐标:" << endl;
cin >> x2;
p1.setX(x2);
int y2 = 0;
cout << "输入点的纵坐标:" << endl;
cin >> y2;
p1.setX(y2);
isincircle(c1, p1);
}
应该要在point point1上面,将center设置为c1的圆心。在你的这段程序中,没看到center与c1有什么关联,所以在isincircle的函数中,c.getCenter().getX()和c.getCenter().getY()取到的都不是输入的值,而是你在构造函数中的默认值。(望采纳)
point.h
#pragma once
#include <iostream>
using namespace std;
class point
{
private:
int X;
int Y;
public:
void setX(int x);
int getX();
void setY(int y);
int getY();
};