在三角形类tri实现两个函数,功能是输入三个顶点坐标判断是否构成等边三角形
#include<iostream.h>
#include<math.h>
class point { point
private:float x,y;
public:f(float a,float b){x=a;y=b;}
f( ){x=0;y=0;}
void set(float a,float b){x=a;y=b;}
f

在三角形类tri实现两个函数,功能是输入三个顶点坐标判断是否构成等边三角形
#include<iostream.h>
#include<math.h>
class point { point
private:float x,y;
public:f(float a,float b){x=a;y=b;}
f( ){x=0;y=0;}
void set(float a,float b){x=a;y=b;}
float getx( ){return x;}
float gety( ){return y;}
};
class tri{
point x,y,z;
float s1,s2,s3;
public....settri(....);//用于输入三个顶点坐标
....test(....);//用于判断是否构成等边三角形
};
请写出两个函数的过程(如果需要形式参数,请给出形参类型和数量,以及返回值类型)


【正确答案】:

VOID TRI::TEST(){
S1=SQRT((X.GETX()-Y.GETX())*(X.GETX()-Y.GETX())+(X.GETY()-Y.GETY())*(X.GETY()-Y.GETY()));
S2=SQRT((X.GETX()-Z.GETX())*(X.GETX()-Z.GETX())+(X.GETY()-Z.GETY())*(X.GETY()-Z.GETY()));
S3=SQRT((Y.GETX()-Z.GETX())*(Y.GETX()-Z.GETX())+(Y.GETY()-Z.GETY())*(Y.GETY()-Z.GETY()));
IF(S1==S3&&S2==S1)
COUT<<"三个顶点坐标能构成等边三角形";
ELSE COUT<<"三个顶点坐标不能构成等边三角形";}
VOID TRI::SETTRI(FLOAT X1,FLOAT Y1,FLOAT X2,FLOAT Y2,FLOAT X3,FLOAT Y3)
{X.SET(X1,Y1);Y.SET(X2,Y2);Z.SET(X3,Y3);}


【题目解析】:

本题需要写的两个函数为:test()和settri()

实现成员函数时要指明类的名称,在类体外定义的一般格式如下:
返回值类型 类名::函数成员名(参数表)
{
    函数体
}

每个顶点的基本形式是(x,y),等边三角形的特点是三条边相等,test()函数中,s1,s2,s3分别是三条边的长度,所以,判断条件是s1==s3且s2==s1。


Top