注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

告别迷茫

梦想与现实的差距,就是我们生活的意义。因为我们有差距,我们才会一直积累,在努力。

 
 
 

日志

 
 

利用虚函数求面积 14  

2014-05-21 11:52:57|  分类: C++作业  李 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

#include<iostream>
#include<vector>
#include<math.h>
#include<string>
#include<iomanip>
#include<algorithm>
using namespace std;
class shape
{
public:
 virtual double area()=0;
};

class Re:virtual public shape
{
private:
 double a;double b;
public:
 Re(double A,double B)
 {
  a=A;
  b=B;
 }
 Re()
 {
  a=0;
  b=0;
 }
 double area()
 {
  return a*b;
 }
};
class tri:virtual public shape
{
private:
  double a,b,c;
public:
 tri(double j,double k,double l)
 {
  a=j;b=k;c=l;
 }
 tri()
 {
  a=b=c=0;
 }
 double area()
 {
    double  p=(a+b+c)/2.0;
    return sqrt(p*(p-a)*(p-b)*(p-c));
 }
};
class yuan:virtual public shape
{
private:
 double r;
public:
 yuan()
 {
  r=0;
 }
 yuan(double R)
 {
   r=R;
 }
 double area()
 {
  return 3.1416*r*r;
 }
};
double  toatal(vector<shape*> M)
{
    double sum=0;
 for(int i=0;i<M.size();i++)
 {
  sum+=M[i]->area();
  
 }
 return sum;
}

int main()
{
 string m;
 vector<shape*> V;
 double a;
 double b;
 double c;
 while(cin>>m)
 {
  if(m=="circle")
  {
           cin>>a;
   V.push_back(new yuan(a));
  }
  if(m=="rectangle")
  {
   cin>>a>>b;
   V.push_back(new Re(a,b));
  }
  if(m=="triangle")
  {
   cin>>a>>b>>c;
   V.push_back(new tri(a,b,c));
  }
 }
 cout<<fixed<<setprecision(4)<<toatal(V)<<endl;

    return 0;
}


  评论这张
 
阅读(18)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017