【北理工复试上机题】创建类判断是否是直角三角形

来源:互联网 发布:.net调用前台js函数 编辑:程序博客网 时间:2024/04/27 23:49
创建一个CTriangle 类,需要用到第二题中创建Cpoint的类,即用3 点来代表一个三角形,
输入三个点的坐标,实现判断此三角形是不是直角三角形,并输出此三角形的周长。
可以根据需要加入自己的成员变量或成员函数
要求:1。输入三个点的坐标,输出周长并给出是否直角三角形的信息

2。注意程序的健壮性


#include<iostream>#include<math.h>using namespace std;class CPoint{private:int x,y;public:CPoint(int xx,int yy){x=xx;y=yy;}float operator- (CPoint c);};float CPoint::operator- (CPoint c){return sqrt((float)(x-c.x)*(x-c.x)+(float)(y-c.y)*(y-c.y));}class ctriangle{private:CPoint A,B,C;float AB,BC,AC;public:ctriangle(CPoint a,CPoint b,CPoint c):A(a),B(b),C(c){AB=A-B;BC=B-C;AC=A-C;}void display();bool fun();};bool ctriangle::fun(){float a=AB,b=BC,c=AC,t;if(a>c){t=c;c=a;a=t;}if(b>c){t=b;b=c;c=t;}if((b*b+a*a-c*c)<10e-6)return true;elsereturn false;}void ctriangle::display(){cout<<"直角三角形的周长为:"<<AB+BC+AC<<endl;}int main(){int x1,x2,x3,y1,y2,y3;cout<<"请依次输入三个点的坐标:";cin>>x1>>y1>>x2>>y2>>x3>>y3;CPoint a(x1,y1),b(x2,y2),c(x3,y3);ctriangle T(a,b,c);if(T.fun())T.display();elsecout<<"不是直角三角形!"<<endl;system("pause");return 0;}


原创粉丝点击