要求:
(1)已知Figure类为抽象类,包含两个protected的double类型变量 x与y;
(2)Square类与Circle类均从Figure类公有派生;
(3)计算中要用到π,取值3.14。
请根据运行结果与main函数将程序补充完整。
例1(只有第1行为输入):
2.2 3.3
weight:2.2,height:3.3
area=7.26
radius:2.2
area=15.1976
请注意,main()函数(或函数调用)必须按如下所示编写:
int main()
{
Figure *p;
double a,b;
cin>>a>>b;
Square s(a,b);
Circle c(a);
p=&s;
p->area(); //输出矩形的长、宽,计算面积并输出
p=&c;
p->area(); //输出圆的半径,计算面积并输出
return 0;
}
#include<iostream>
using namespace std;
#define PI 3.14
class Figure
{
public:
virtual void area()
{
}
protected:
double x;
double y;
} ;
class Square:public Figure
{
public:
Square(double _x,double _y)
{
x=_x;
y=_y;
}
void area()
{
cout<<"weight:"<<x<<",height:"<<y<<endl;
cout<<"area="<<x*y<<endl;
}
};
class Circle:public Figure
{
public:
Circle(double _x)
{
x=_x;
}
void area()
{
cout<<"weight:"<<x<<endl;
cout<<"area="<<x*x*PI<<endl;
}
};
int main()
{
Figure *p;
double a,b;
cin>>a>>b;
Square s(a,b);
Circle c(a);
p=&s;
p->area(); //输出矩形的长、宽,计算面积并输出
p=&c;
p->area(); //输出圆的半径,计算面积并输出
return 0;
}
代码很简单,就是定义基类。然后在子类中输出各种不同的面积
#include"stdio.h"
#include"string.h"
#include <iostream>
using namespace std;
#define PI 3.14
class Figure
{
public:
Figure() {};
int m_x, m_y;
virtual void area() = 0;
};
class Square :public Figure
{
public:
Square(int x, int y)
{
m_x = x;
m_y = y;
}
void area()
{
cout << "area = " << m_x * m_y << endl;
}
};
class Circle :public Figure
{
public:
Circle(int radius)
{
m_x = radius;
}
void area()
{
cout << "area = " << PI*(m_x*m_x)<< endl;
}
};
int main()
{
Figure *p;
double a, b;
cin >> a >> b;
Square s(a, b);
Circle c(a);
p = &s;
p->area(); //输出矩形的长、宽,计算面积并输出
p = &c;
p->area(); //输出圆的半径,计算面积并输出
return 0;
}