两种方法编写程序,输入三角形的三条边,判断是否能够成三角形,如果能够成 三角形,输入构成的是等腰三角形、等边三角形、直角三角形,还是普通的三角形。考虑整型、小数等不同类型数的三角形。方法 1 函数原型:int getType(int a, int b, int c);int getType(Double a, double b, double c);方法 2 函数模板原型: template<typename T> int getType(T a, T b, T c)要用面向对象的方法实现,抽象成类 具体代码c++ 要有用户界面
时间: 2024-01-22 14:21:38 浏览: 110
下面是面向对象的实现,包括Triangle类和getType函数:
#include <iostream>
#include <cmath>
using namespace std;
class Triangle{
private:
double a, b, c;
public:
Triangle(double aa=0, double bb=0, double cc=0):a(aa), b(bb), c(cc){}
void setTriangle(double aa, double bb, double cc){
a = aa;
b = bb;
c = cc;
}
int getType(){
if(a+b<=c || a+c<=b || b+c<=a) return -1; //不能构成三角形
if(a==b && b==c) return 1; //等边三角形
if(a==b || b==c || a==c) return 2; //等腰三角形
if(a*a+b*b==c*c || a*a+c*c==b*b || b*b+c*c==a*a) return 3; //直角三角形
return 4; //普通三角形
}
};
template<typename T>
int getType(T a, T b, T c){
Triangle tri(a, b, c);
return tri.getType();
}
int main(){
double a, b, c;
cout << "请输入三角形的三条边长:" << endl;
cin >> a >> b >> c;
int type = getType(a, b, c);
switch(type){
case -1:
cout << "无法构成三角形" << endl;
break;
case 1:
cout << "等边三角形" << endl;
break;
case 2:
cout << "等腰三角形" << endl;
break;
case 3:
cout << "直角三角形" << endl;
break;
case 4:
cout << "普通三角形" << endl;
break;
}
return 0;
}
用户界面比较简单,只需要输入三角形的三条边长,然后调用getType函数判断类型并输出即可。
相关推荐

















