在二维平面上画圆需要给定圆的圆心坐标和半径。
现在定义一个圆Circle类,它包含一个圆心O和半径radius,其中的圆心O是个点Point对象。
Point对象包含x和y坐标,Point对象的初始化由其构造函数来实现。
圆可以在平面上沿X轴方向或Y轴方向移动一定的距离到达新的位置,移动由函数moveX()和moveY()完成。
现在请你根据下面的类图和给出的main函数代码编写这两个类Circle和Point。需要使用友元。
main函数:
void main()
{
char ch;
int n;
int x,y;
double r;
int d;
Circle *pc;
while(cin>>n)
{
if(n == 0)
{
pc = new Circle;
}
else if(n == 1)
{
cin>>r;
pc = new Circle(r);
}
else if(n == 3)
{
cin>>x>>y>>r;
pc = new Circle(x,y,r);
}
cout<<"平移前:";
pc->showMessage();
cin>>ch>>d;
if(ch == 'X')
{
pc->moveX(d);
}
else if(ch == 'Y')
{
pc->moveY(d);
}
cout<<"平移后:";
pc->showMessage();
}
}
输入有多组,每组一行。每行数据的第1个值是个整数n表示后面有n个数据作为圆的参数。当n=0时表示不给圆任何参数;当n=1时在n后有1个值表示圆的半径r;当n=3时在n后有3个数值,前2个表示圆心的x,y坐标值,第3个表示圆的半径r。后面的X或Y及数字d表示圆沿着X轴或Y轴平移d个单位。