第三次实验参考程序
参考代码/**********************************************************/ //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]