C++实验题---填空(求几何图型面积)
时间限制(普通/Java):1000MS/3000MS 运行内存限制:65536KByte
总提交:150 测试通过:118
总提交:150 测试通过:118
描述
仔细阅读以下程序,理解程序的主要功能,正确补充空白处的语句,空白处可能是一条语句或多条语句,也可能是一个表达式,严禁改动给出程序代码的段落、修改、移动、注释掉给出的程序代码,若有改动、修改或注释掉给出程序的任何一处该题记0分。并编译运行测试通过后进行提交,否则提交错一次扣1分,扣完为止。
#include <iostream>
using namespace std;
class Shape
{
public:
__________________________________________________
};
class Circle:public Shape
{
public:
Circle(double r):radius(r){}
virtual double area() const {return 3.14159*radius*radius;};
protected:
double radius;
};
class Square:public Shape
{
public:
Square(double s):side(s){}
virtual double area() const {return side*side;}
protected:
double side;
};
class Rectangle:public Shape
{
public:
__________________________________________________
virtual double area() const {return width*height;}
protected:
double width,height;
};
________________________________________
{
public:
________________________________________
virtual double area() const {return 0.5*width*height;}
protected:
double width,height;
};
int main()
{
double len_r=2.0,width=3.0;
while(cin>>len_r>>width)
{
Circle circle(len_r);
Square square(len_r);
Rectangle rectangle(len_r,width);
Triangle triangle(len_r,width);
Shape *pt[4]={&circle,&square,&rectangle,&triangle};
double areas=0.0;
for(int i=0;i<4;i++) {areas=areas+pt[i]->area();}
cout<<"Totol of All Areas="<<areas<<endl;
}
return 0;
}
输入
输入有多组测试数据,每行为一组测试数据,用空格隔开的两个正实数。
输出
根据程序代码输出相应的信息。
样例输入
2.00 3.00
1 2
1 2
样例输出
Totol of All Areas=25.5664
Totol of All Areas=7.14159
代码如下:
#include <iostream>
using namespace std;
class Shape
{
public:
virtual double area() = 0;
};
class Circle:public Shape
{
public:
Circle(double r):radius(r) {}
double area()
{
return 3.14159*radius*radius;
};
protected:
double radius;
};
class Square:public Shape
{
public:
Square(double s):side(s) {}
double area()
{
return side*side;
}
protected:
double side;
};
class Rectangle:public Shape
{
public:
Rectangle(double w,double h):width(w),height(h) {}
double area()
{
return width*height;
} protected:
double width,height;
};
class Triangle:public Shape
{
public:
Triangle(double w,double h):width(w),height(h) {}
virtual double area()
{
return 0.5*width*height;
}
protected:
double width,height;
};
int main()
{
double len_r=2.0,width=3.0;
while(cin>>len_r>>width)
{
Circle circle1(len_r);
Square square1(len_r);
Rectangle rectangle1(len_r,width);
Triangle triangle1(len_r,width);
Shape *pt[4]= {&circle1,&square1,&rectangle1,&triangle1};
double areas=0.0;
for(int i=0; i<4; i++)
{
areas=areas+pt[i]->area();
}
cout<<"Totol of All Areas="<<areas<<endl;
}
return 0;
}