定写一个程序义抽象基类shape,由它派生出3个派生类:circle(圆)square(正方形)、rectangle(矩形)

 我来答
百度网友24e26f9
2012-12-28 · 超过21用户采纳过TA的回答
知道答主
回答量:73
采纳率:0%
帮助的人:45.8万
展开全部
#include<iostream.h>
#include<math.h>
const double PI=3.1415926;
class Shape //几何图形
{
public:
virtual double Circumference()=0; //周长
virtual double Area()=0; //面积
virtual void Show(){};
};
class Circle:public Shape //圆
{
double radius;
public:
Circle(double v){radius=v;}
double Circumference(){return 2.0*PI*radius;}
double Area(){return PI*radius*radius;}
void Show(){cout<<"radius="<<radius<<endl;}
};
class Rectangle:public Shape //矩形
{
double width,length;
public:
Rectangle(){width=0;length=0;}
Rectangle(double wid,double len){width=wid;length=len;}
double Circumference(){return 2.0*(width+length);}
double Area(){return width*length;}
void Show(){cout<<"width="<<width<<"length="<<length<<endl;}
};
class square:public Shape //正方形
{
double a,b,c;
public:
square(double v1 ){a=v1;}
double Circumference(){return 4*a;}
double Area()
{
return a*a;
}
void Show(){cout<<"a="<<a<<endl;}
};

void main()
{
Shape* s1; Shape* s2; Shape* s3;
double r,a1,a2,b1;
cout<<"请输入圆的半径,矩形的长和宽,正方形的边长:"<<endl;
cin>>r; cin>>a1;cin>>a2; cin>>b1;
Circle rr1(r);
Rectangle rr2(a1,a2);
square rr3(b1);
s1=&rr1;
s1->Show();
cout<<"圆的周长="<<s1->Circumference()<<endl;
cout<<"圆的面积="<<s1->Area()<<endl;
s2=&rr2;
s2->Show();
cout<<"矩形的周长="<<s2->Circumference()<<endl;
cout<<"矩形的面积="<<s2->Area()<<endl;
s3=&rr3;
s3->Show();
cout<<"正方形的周长="<<s3->Circumference()<<endl;
cout<<"正方形的面积="<<s3->Area()<<endl;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
程序猿3号
2012-12-27 · TA获得超过1812个赞
知道小有建树答主
回答量:1029
采纳率:33%
帮助的人:833万
展开全部
要求太少了,这样没法知道你要完成什么啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式