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;

    }