定义一个抽象类shape,包括名字,编号,性别,派生三个类,圆,矩形,三角形

#include<iostream>
#include<math.h>
using namespace std;
 class shape {
 public:
      virtual double  Area()=0;
      virtual double  Setshaape()=0;
};

class Tri:public shape{
private:
    double a1,b1,c1;
public:
     double  Area();
     double Setshaape();
     Tri(){};
};

 double Tri::Area(){
    if((a1+b1)>c1){
      double p=(a1+b1+c1)/2.0;
    return sqrt(p*(p-a1)*(p-b1)*(p-c1));
    }
    else{
        cout<<"这不是一个三角形"<<endl;
    }
    }
double Tri::Setshaape(){
cin>>a1>>b1>>c1;
}
class R:public shape{
private :
    double  len,win;
public:
    R(){}
     double  Area();
     double  Setshaape();
};
double R::Setshaape(){
cin>>len>>win;
}
 double R:: Area(){
    return len*win;
    }


class C:public shape{
 private :
    double r;
public:
    double  Area();
    double  Setshaape();
    C(){}
};
double C::Setshaape(){
cin>>r;
}
double C::Area(){
  double p;
    p= r*r*3.1415;
   return p;
    }

class Total:public Tri,public R,public C{
 public:
     double show (Tri  t,R r,C c){
     return double( t.Area()+r.Area()+c.Area());
     }
};
int main()
{
   cout<<"请输入三角形三边"<<endl;
   Tri T;
  T.Setshaape();
  cout<<T.Area()<<endl;
   cout<<"请输入矩形边长"<<endl;
   R r;
   r.Setshaape();
   cout<<r.Area()<<endl;
    cout<<"请输入圆的半径"<<endl;
   C c;
   c.Setshaape();
   cout<<c.Area()<<endl;
   Total T1;
   cout<<T1.show(T,r,c)<<endl;
    return 0;
}



  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值