第三次实验参考程序

参考代码

/**********************************************************/ //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; //wrong else { if(a == b && b == c) return 1; //equilateral triangle else { 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 triangle else return 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(); }

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值