C++实验题---填空(求几何图型面积)

C++实验题---填空(求几何图型面积)

时间限制(普通/Java):1000MS/3000MS          运行内存限制:65536KByte
总提交: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

样例输出

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;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值