
【问题描述】定义一个圆形类,属性有半径和相应的成员函数。然后定义一个正方形类,属性有边长和相应的成员函数。再编写一个如下图所示的组合类,由一个正方型和一个圆形组成,要求该组合类能求出阴影部分面积和周长。
【输入形式】无
【输出形式】
自定义图形的面积49.2656
自定义图形的周长29.1328
自定义图形的面积109.098
自定义图形的周长45.6992
二、代码实现
#include
using namespace std;
const double PI=3.1416;
class Box//正方形类
{
private:
int x;
public:
Box(){}
Box(int x)
{
this->x=x;
}
void set(int n)
{
x=n;
}
double S()
{
return x*x;
}
double L()
{
return 4*x;
}
};
class circle
{
private:
int r;
public:
circle(){}
circle(int r)
{
this->r=r;
}
void set(int n)
{
r=n;
}
double S()
{
return PI*r*r;
}
double L()
{
return 2*PI*r;
}
};
class NewStyle
{
private:
Box b;//会用到默认无参构造函数
circle c;
public:
NewStyle(circle C,Box B)
{
b=B,c=C;
}
void set(circle C,Box B)
{
c=C,b=B;
}
double S()
{
return c.S()-b.S();
}
double L()
{
return c.L()+b.L();
}
};
int main()
{
circle A(4); //圆的半径为4
Box B(1); //正方形的边长为1
NewStyle C(A,B);
cout<<"自定义图形的面积"<<C.S()<<endl;
cout<<"自定义图形的周长"<<C.L()<<endl;
A.set(6); //圆的半径变为6
B.set(2); //正方形的边长变为2
C.set(A,B);
cout<<"自定义图形的面积"<<C.S()<<endl;
cout<<"自定义图形的周长"<<C.L()<<endl;
return 0;
}
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)