6_4三角形类 (二)

2014-11-24 03:12:43 · 作者: · 浏览: 2
iangle::setTriangle(CPoint &X,CPoint &Y,CPoint &Z)
{
A=X;
B=Y;
C=Z;
}

double CTriangle::perimeter(void)
{
double a=B.distance(C),b=C.distance(A),c=A.distance(B);
return (a + b + c);
}

double CTriangle::area(void)
{
double a=B.distance(C),b=C.distance(A),c=A.distance(B);
double s = (a + b + c) / 2;
return sqrt(s * (s - a) * (s - b) * (s - c));
}

bool CTriangle::isRightTriangle()//是否为直角三角形
{
double a=B.distance(C),b=C.distance(A),c=A.distance(B);
if(a*a+b*b==c*c||b*b+c*c==a*a||a*a+c*c==b*b)
return true;
else
return false;
}
bool CTriangle::isIsoscelesTriangle() //是否为等腰三角形
{
double a=B.distance(C),b=C.distance(A),c=A.distance(B);
if((abs(a-b)<1e-7)||(abs(b-c)<1e-7)||(abs(c-a)<1e-7))
return true;
else
return false;
}

int main()
{
CPoint X,Y,Z;
std::cout<<"请输入点X坐标";
X.input();
std::cout<<"请输入点Y坐标";
Y.input();
std::cout<<"请输入点Z坐标";
Z.input();
CTriangle Tri1(X,Y,Z);
cout<<"该三角形的周长为:"< cout<<"该三角形"<<(Tri1.isRightTriangle() "是":"不是")<<"直角三角形"< cout<<"该三角形"<<(Tri1.isIsoscelesTriangle() "是":"不是")<<"等腰三角形"< return 0;
}
运行结果:

\\