【问题描述】
设计一个矩形类、一个圆形类和一个图形基类,计算并输出相应图形面积。函数成员变量据情况自己拟定,其他要求如下:
图形类( 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++练习题,所有答案仅供同学们参考。