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 }
编写一个程序,用于计算正方形 三角形 和圆的面值
以及计算各类图形的总面积
以上程序还可以添加一个求三角形的 各个角的角度,以及各个角的三角函数。
以后有待添加.......................................