C++问题,求个大神来回答,求代码
1个回答

#include

using namespace std;

class Line

{

private:

double x1,x2,y1,y2;

public:

void setPoint1(double a,double b)

{

x1=a;

y1=b;}

void setPoint2(double a,double b)

{

x2=a;

y2=b;}

void getPoint1()

{

cout< }

void getPoint2()

{

cout< }

Line(double a1,double a2,double b1,double b2)

{

setPoint1(a1,b1);

setPoint2(a2,b2);

}

};

class Rectangle:public Line

{

private:

float a;//矩形的长

float b;//矩形的宽

public:

float getArea()

{

return (float)(a*b);

}

float getCircumference()

{

return (float)((a+b)*2.0);

}

Rectangle(float q1,float q2, float p1, float p2):Line(q1,q2,p1,p2)//以线段作为对角线派生矩形

{

a=abs(p2-p1);

b=abs(q2-q1);

}

};

class Triangle:public Line

{

private:

float a,b,c;

public:

float getArea()

{

//已知三角形三条边,用海伦公式计算面积

double d=(a+b+c)/2;

double s=sqrt( d*(d-a)*(d-b)*(d-c) );

return s;

}

float getCircumference()

{

return (float)(a+b+c);

}

Triangle(float q1,float q2, float p1, float p2,float x,float y):Line(q1,q2,p1,p2)//以线段作为一条边派生三角形

{

if( ((x-q1)/(y-p1)) != ((x-q2)/(y-p2)) )//该点不在直线上

{

a=sqrt( (y-p1)*(y-p1)+(x-q1)*(x-q1) );

b=sqrt( (y-p2)*(y-p2)+(x-q2)*(x-q2) );

c=sqrt( (p1-p2)*(p1-p2)+(q1-q2)*(q2-q2) );

}

}

};

int main()

{

Triangle s(15,11,45,56,65,56);

cout

cout<

return 0;

}