六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 35|回复: 0

第三次实验参考程序

[复制链接]

升级  32.45%

533

主题

533

主题

533

主题

探花

Rank: 6Rank: 6

积分
1649
 楼主| 发表于 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();}
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表