编写一个用于计算各类数学图形的面积程序

  1 /**************************************************
  2 ** 编写一个程序,用于计算正方形 三角形 和圆的面值**
  3 ** 以及计算各类图形的总面积                      **
  4 **************************************************/
  5 #include<iostream>
  6 #include<string>
  7 using namespace std;
  8 static const PI=3.1415926;
  9 
 10 /***************************************
 11                   Shape
 12 ****************************************/
 13 class Shape
 14 {
 15 protected:
 16     string name;
 17     static int count;
 18 public:
 19      Shape();
 20      void show();
 21      virtual double area()=0;
 22      virtual string shapename()=0; 
 23 };
 24 
 25 Shape::Shape()
 26 {
 27 cout<<"please input:";
 28 count=count+1;
 29 }
 30 
 31 void Shape::show()
 32 {
 33 cout<<""<<count<<"个图形是"<<shapename();
 34 cout<<"面积为:"<<area()<<endl;
 35 }
 36 
 37 /***************************************
 38                   Triangle
 39 ****************************************/
 40 class Triangle:public Shape  //定义派生类Triangle
 41 {
 42 protected:
 43         double h,w;
 44 public:
 45      Triangle();
 46          double area(){ return h*w*0.5;}
 47      string shapename(){name="三角形";return name;}
 48 
 49 };
 50 
 51 Triangle::Triangle()
 52 {
 53 double myw,myh;
 54 cout<<"三角形的低和高:";
 55 cin>>myw>>myh;
 56 w=myw;
 57 h=myh;
 58 }
 59 
 60 /***************************************
 61                     Rectangle
 62 ****************************************/
 63 class Rectangle:public Shape//定义派生类Rectangle 
 64 {
 65 protected:
 66       double L,W;
 67 public:
 68     Rectangle();
 69 double area(){return L*W;}
 70 string shapename(){name="矩形";return name;}
 71 };
 72 
 73 Rectangle::Rectangle()
 74 {
 75 double myl,myw;
 76 cout<<"矩形的长和宽:";
 77 cin>>myl>>myw;
 78 L=myl;W=myw;
 79 
 80 }
 81 /***************************************
 82                 Circle
 83 ****************************************/
 84 class Circle:public Shape//定义派生类Circle
 85 {
 86 protected:
 87     double radius;
 88 public:
 89     Circle();
 90     double area(){return radius*radius*3.14; }
 91     string shapename(){name="";return name;}
 92 
 93 };
 94 Circle::Circle()
 95 {
 96 double r;
 97 cout<<"圆的半径:";
 98 cin>>r;
 99 radius=r;
100 
101 }
102 /***************************************
103                  Total
104 ****************************************/
105 double total(Shape *s[],int n) //全局函数,计算所有图形的总面积
106 {
107     double sum=0;
108     for(int i=0;i<n;i++)
109     {
110         sum+=s[i]->area();
111         delete s[i];
112     }
113     return sum;
114 }
115 /***************************************
116                  Main
117 ****************************************/
118 int Shape::count=0;
119 int main()
120 {
121      Shape *s[4];
122     s[0]=new Triangle();
123     s[0]->show();
124     s[1]=new Rectangle();
125     s[1]->show();
126     s[2]=new Circle();
127     s[2]->show();
128     s[3]=new Circle();
129     s[3]->show();
130     double sum=total(s,4);
131     cout<<"上述图形的面积和为:";
132     cout<<sum<<endl;
133     return 0;
134 }
View Code

编写一个程序,用于计算正方形 三角形 和圆的面值
以及计算各类图形的总面积  

以上程序还可以添加一个求三角形的 各个角的角度,以及各个角的三角函数。

以后有待添加.......................................                   

转载于:https://www.cnblogs.com/Ricezhang/articles/math_shape.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值