C++实验题---填空(多态性)
时间限制(普通/Java):1000MS/3000MS 运行内存限制:65536KByte
总提交:358 测试通过:110
总提交:358 测试通过:110
描述
仔细阅读以下程序,理解程序的主要功能,正确补充空白处的语句,空白处可能是一条语句或多条语句,也可能是一个表达式,严禁改动给出程序代码的段落、修改、移动、注释掉给出的程序代码,若有改动、修改或注释掉给出程序的任何一处该题记0分。并编译运行测试通过后进行提交,否则提交错一次扣1分,扣完为止。
#include <iostream.h>
class Shape
{
public:
_______________;
};
class Rectangle:public Shape
{
public:
Rectangle(double ll,double ww) {L=ll;W=ww;}
void show_area()
{_______________________};
private:
float L,W;
};
class Circle:public Shape
{
public:
Circle(double rr)
{___________________________}
void show_area()
{cout<<"半径:"<<R<<" 圆面积:"<<3.14*R*R<<endl;}
private:
_______________;
};
int main()
{
Shape *p;int l,w,r2;
while(cin>>l>>w>>r2)
{
Rectangle _______________;
Circle c(r2);
p=&r;
p->show_area();
_______________;
p->show_area();
}
return 0;
}
输入
输入有多组测试数据,每行为一组测试数据,且只有一个正整数。
输出
根据程序代码输出相应的信息。
样例输入
1 2 3
4 5 6
4 5 6
样例输出
长:1 宽:2 矩形面积:2
半径:3 圆面积:28.26
长:4 宽:5 矩形面积:20
半径:6 圆面积:113.04
半径:3 圆面积:28.26
长:4 宽:5 矩形面积:20
半径:6 圆面积:113.04
代码如下:
#include <iostream>
using namespace std;
class Shape
{
public:
virtual void show_area()
{
}
};
class Rectangle:public Shape
{
public:
Rectangle(double ll,double ww)
{
L=ll;
W=ww;
}
void show_area()
{
cout<<"长:"<<L<<" 宽:"<<W<<" 矩形面积:"<<L*W<<endl;
}
private:
double L,W;
};
class Circle:public Shape
{
public:
Circle(double rr)
{
R=rr;
}
void show_area()
{
cout<<"半径:"<<R<<" 圆面积:"<<3.14*R*R<<endl;
}
private:
double R;
};
int main()
{
Shape *p;
int l,w,r2;
while(cin>>l>>w>>r2)
{
Rectangle r(l,w);
Circle c(r2);
p=&r;
p->show_area();
p=&c;
p->show_area();
}
return 0;
}