3. 实验7——类的多态性与虚函数——计算图像面积

【问题描述】

设计一个矩形类、一个圆形类和一个图形基类,计算并输出相应图形面积。函数成员变量据情况自己拟定,其他要求如下:

 

图形类( shape 

纯虚函数:void PrintArea(),用于输出当前图形的面积。

 

矩形类( Rectangle 

继承 Shape 类,并且重写 PrintArea 函数,输出矩形的面积,输出格式为:矩形面积 = width*height

带参构造函数:Rectangle(float w,float h),这两个参数分别赋值给成员变量的宽、高。

 

圆形类( Circle 

继承 Shape 类,并且重写 PrintArea 函数,输出圆形的面积,输出格式为:圆形面积 = radio * radio * 3.14

带参构造函数:Circle(float r),参数 r 代表圆的半径。


【样例输入】

10 2.5

【样例输出】

矩形面积 = 20

圆形面积 = 314

【样例输入】

2 2.5

【样例输出】

矩形面积 = 4

圆形面积 = 12.56


窗体顶端

#include  <iostream>
using  namespace  std;

/*********  Begin  *********/
class  Shape
{
        //基类的声明

 public:
virtual void PrintArea()=0;
virtual ~Shape(){} 

};

class  Rectangle  :  public  Shape
{
        //矩形类的声明

float width;
float height;
public:
Rectangle(float w,float h);
void PrintArea();

};
//矩形类的定义

Rectangle::Rectangle(float w,float h){
width=w;
height=h;
}
void Rectangle::PrintArea(){
cout<<"矩形面积 = "<<width*height<<endl;
}

class  Circle  :  public  Shape
{
        //圆形类的声明

float radio;
public:
Circle(float r);
void PrintArea();  

};
//圆形类的定义

Circle::Circle(float r)
{radio=r;}
void Circle::PrintArea(){
cout<<"圆形面积 = "<<radio * radio * 3.14<<endl;
}

/*********  End  *********/
int  main()
{
        int  i,j;
        cin  >>  i  >>  j;
        Shape  *ptr  =  new  Rectangle(i,j);
        ptr->PrintArea();
        delete  ptr;
        ptr  =  new  Circle(i);
        ptr->PrintArea();
        delete  ptr;
}

【注】此分栏为西安理工大学C++练习题,所有答案仅供同学们参考。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值