c++ 2024.9.5

 #include <iostream>                                                          
 #include <cmath>
 #define PI 3.14
 using namespace std;
 
 //图形类
 class Graphical
 {
     public:
         Graphical(){}
         Graphical(float p1,float a1):perm(p1),area(a1){}
         virtual ~Graphical(){}
         virtual void show()=0;
     protected:
         float perm;//周长
         float area;
 };
 
 //矩形类
 class Rectangle: public Graphical
 {
     public:
         Rectangle(){}
         Rectangle(float l1,float w1):length(l1),wide(w1){}
         ~Rectangle(){}
         void show() override
         {
             perm=(length+wide)*2;
             area=length*wide;
             cout<<"矩形周长:"<<perm<<endl;
             cout<<"矩形面积:"<<area<<endl;
         }
     private:
         float length;
         float wide;
 };
 
 //圆类
 class Circle: public Graphical
 {
     public:
         Circle(){}
         Circle(float r1):radius(r1){}
         ~Circle(){}
         void show() override                                                            
         {
             perm=2*PI*radius;
             area=PI*radius*radius;
             cout<<"圆周长为:"<<perm<<endl;
             cout<<"圆面积为:"<<area<<endl;
         }
     private:
         float radius;//半径
 };
 
 //三角形类
 class Triangle: public Graphical
 {
     public:
         Triangle(){}
         Triangle(float x1,float y1,float z1):x(x1),y(y1),z(z1){}
         ~Triangle(){}
         void show() override
         {
             perm=x+y+z;
             float p;
             p=perm*0.5;
             area=sqrt(p*(p-x)*(p-y)*(p-z));
             cout<<"三角形周长为:"<<perm<<endl;
             cout<<"三角形面积为:"<<area<<endl;
         }
     private:
         float x;
         float y;
         float z;
 };
 
 void shows(Graphical &rs)
 {
     rs.show();
     return;
 }
 
 
 int main(int argc, const char *argv[])
 {
     //矩形
 //  Rectangle re((float)2.5,(float)5.0);
 //  shows(re);
 
     //圆
 //  Circle ci((float)4.1);
 //  shows(ci);
 
     //三角形
     Triangle tr(3,4,5);
     shows(tr);
 
     return 0;
 }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值