saybody 发表于 2013-1-26 12:38:34

第三次实验参考程序

参考代码
/**********************************************************/   //Function                              :   main,Triangle类//parm                                    :       //comment                                 :      //return                                  :   void    //Author                                  :      //date                                    :   2010.10.25/**********************************************************/#include <iostream.h>#include <stdlib.h>#include <math.h>class Triangle{public:Triangle(double x,double y,double z){a = x;b = y;c = z;}Triangle(double x,double y){a = x;b = x;c = y;}Triangle(double x){a = x;b = x;c = x;}Triangle(){a = 5;b = 5;c = 5;}double GetArea(){double k=(a + b + c) / 2;return sqrt( k * (k - a) * (k - b) * (k - c));}double GetPerimeter(){return a + b + c;}int TriangleType();void Show();private:double a,b,c;};int Triangle::TriangleType()    //This function can be optimized!{if(a <= 0 || b <= 0 || c <= 0 || a + b < c || a + c < b || b + c < a)return 0;    //wrongelse{if(a == b && b == c)return 1;    //equilateral triangleelse {if(a == b || b == c){if(a * a + b * b - c * c < 1e-3 ||a * a + c + c - b * b < 1e-3 || b * b + c * c - a * a < 1e-3)return 2;    //isoceles triangle right-angled triangleelsereturn 3;    //isoceles triangle}else{if(a * a + b * b == c * c || a * a + c * c == b * b || b * b + c * c == a * a)return 4;    //right-angled triangle}}}return 5;}void Triangle::Show(){int flag;cout<<"The Triangle's sides are:"<<a<<","<<b<<","<<c<<endl;flag = TriangleType();switch(flag){case 0: cout<<"The Triangle data is wrong!"<<endl; break;case 1: cout<<"The Triangle is equilateral triangle!"<<endl; break;case 2: cout<<"The Triangle is isoceles triangle right-angled triangle!"<<endl; break;case 3: cout<<"The Triangle is isoceles triangle!"<<endl; break;case 4: cout<<"The Triangle is right-angled triangle!"<<endl; break;case 5: cout<<"The Triangle is general triangle!"<<endl; break;}if(!TriangleType())exit(0);cout<<"The Triangle's Area is:"<<GetArea()<<endl;cout<<"The Triangle's Perimeter is:"<<GetPerimeter()<<endl;}void main(){double a,b,c;cout<<"Please input the three sides of Triangle:"<<endl;cin>>a>>b>>c;Triangle T1(a,b,c);//Triangle T2(a,b);//Triangle T3(a);//Triangle T4;T1.Show();//T2.Show();//T3.Show();//T4.Show();}
页: [1]
查看完整版本: 第三次实验参考程序