day02--C++设计一个圆形类(AdvCircle),和一个点类(Point),计算点在圆内部还是圆外,用面向对象的方法实现

例子二:设计一个圆形类(AdvCircle),和一个点类(Point),计算点在圆内部还是圆外 即:求点和圆的关系(圆内和圆外)

上一篇文章中最后一个例子,是用面向对象的方法求解,长方体的体积和判断两个正方体是否相等。
判断两个正方体是否相等用了三种方法求解,最后一种方法是用的,纯面向对象的思想。
为了再次熟悉加深对面向对象方法的理解,这次实现这个例子。
补一下初中的数学:这个问题的求解转换为,判断这个点是否在圆内,是判断这个点和圆心的相对位置,如果大于半径就说明这个点在圆的外面,否则就在圆的内部(小于等于的情况).
用两个类实现了这个方法,
class MyPoint
{
public:
void setPoint(int x, int y)
{
x1 = x;
y1 = y;
}
public:
int getX1()
{
return x1;
}
int getY1()
{
return y1;
}
private:
int x1;
int y1;
};

class Advcircle
{
public:
void setCircle(int r,int x,int y)
{
r = r;
x0 = x;
y0 = y;
}
public:
int judge(MyPoint &myp)
{
int dd = (myp.getX1() - x0)(myp.getX1() - x0) + (myp.getY1() - y0)(myp.getY1() - y0);
if (dd <= r*r)
{
return 1;
}
else
{
return 0;
}
}

private:
int r;
int x0;
int y0;
};

int main()
{
Advcircle c1;
MyPoint p1;
c1.setCircle(2, 3, 3);
p1.setPoint(-2, 0);

int tag = c1.judge(p1);
if (tag == 1)
{
	cout << "在圆内" << endl;
}
else
{
	cout << "咋圆外" << endl;
}	
system("pause");
return 1;

}

你可能感兴趣的:(C++)