描述
定义一个Point类(只有一个带参的构造函数),在此基础上,定义一个Line类。要求:Line包含三个Point对象,Line支持构造函数的重载(带参和 不带参的构造 函数),Line 类包含判断是否能构成三角形成员函数,Line 类包含计算周长的成员函数
输入
输入三个点的标:
输出
输出三角形的周长。如果不是三角形,输出no
样例输入
0 0 0 1 1 0
样例输出
3.414
#include <iostream>
#include <iomanip>
#include <cmath>
using namespace std;
class Line;
class Point{
int x,y;
public:
Point (int x,int y){
this->x=x;
this->y=y;
}
friend class Line;
};
class Line{
Point Aa,Bb,Cc;
double l1,l2,l3;
public:
Line();
Line(Point a,Point b,Point c):Aa(a),Bb(b),Cc(c){}
bool flag(Point A,Point B,Point C)
{
l1=sqrt((A.x-B.x)*(A.x-B.x)+(A.y-B.y)*(A.y-B.y));
l2=sqrt((A.x-C.x)*(A.x-C.x)+(A.y-C.y)*(A.y-C.y));
l3=sqrt((C.x-B.x)*(C.x-B.x)+(C.y-B.y)*(C.y-B.y));
if(l1+l2>l3&&l2+l3>l1&&l1+l3>l2) return true;
else return false;
}
void circu()
{
cout<<fixed<<setprecision(3)<<l1+l2+l3<<endl;
}
};
int main()
{
int a,b,c,d,e,f;
cin>>a>>b>>c>>d>>e>>f;
Point A (a,b);
Point B (c,d);
Point C (e,f);
Line s(A,B,C);
if(s.flag(A,B,C))
s.circu();
else cout<<"no"<<endl;
return 0;
}