第六周——对象做数据成员

来源:互联网 发布:java gc日志分析工具 编辑:程序博客网 时间:2024/05/25 18:11
/** Copyright (c) 2013, 烟台大学计算机学院* All rights reserved.* 作    者:申玉迪* 完成日期:2014 年 4 月 1 日* 版 本 号:v1.0*/#include <iostream>#include <cmath>using namespace std;class CPoint{private:    double x;  // 横坐标    double y;  // 纵坐标public:    CPoint(double xx=0,double yy=0);    double Distance1(CPoint p) const;   // 两点之间的距离(一点是当前点,另一点为参数p)};class CTriangle{public:    CTriangle(CPoint &X,CPoint &Y,CPoint &Z):A(X),B(Y),C(Z) {} //给出三点的构造函数    void setTriangle(CPoint &X,CPoint &Y,CPoint &Z);    float perimeter(void);//计算三角形的周长    float area(void);//计算并返回三角形的面积    bool isRightTriangle(); //是否为直角三角形    bool isIsoscelesTriangle(); //是否为等腰三角形private:    CPoint A,B,C; //三顶点};int main(){    CPoint s(0,0),t(2,3),r(0,2);    CTriangle c(s,t,r);    cout<<"周长为:"<<c.perimeter()<<endl;    cout<<"面积为:"<<c.area()<<endl;    if(c.isRightTriangle())    {        cout<<"此三角形为直角三角形"<<endl;    }    else    {        cout<<"此三角形不是直角三角形"<<endl;    }    if(c.isIsoscelesTriangle())    {        cout<<"此三角形为等腰三角形"<<endl;    }    else    {        cout<<"此三角形不是等腰三角形"<<endl;    }    return 0;}CPoint::CPoint(double xx,double yy){    x=xx;    y=yy;}double CPoint::Distance1(CPoint p) const{    return(sqrt((p.x-x)*(p.x-x)+(p.y-y)*(p.y-y)));}void CTriangle::setTriangle(CPoint &X,CPoint &Y,CPoint &Z){    A=X;    B=Y;    C=Z;}float CTriangle::perimeter(){    double a,b,c;    a=B.Distance1(C);    b=A.Distance1(C);    c=A.Distance1(B);    return (a+b+c);}float CTriangle::area(){    double a,b,c,p;    a=B.Distance1(C);    b=A.Distance1(C);    c=A.Distance1(B);    p=(a+b+c)/2;    return(sqrt(p*(p-a)*(p-b)*(p-c)));}bool CTriangle::isRightTriangle(){    double a,b,c;    a=B.Distance1(C);    b=A.Distance1(C);    c=A.Distance1(B);    if((a*a+b*b==c*c)||(a*a+c*c==b*b)||(b*b+c*c==a*a))        return true;    else        return false;}bool CTriangle::isIsoscelesTriangle(){    double a,b,c;    a=B.Distance1(C);    b=A.Distance1(C);    c=A.Distance1(B);    if((a==b)||(b==c)||(a==c))        return true;    else        return false;}


 

拿到题时,瞬间懵了,模板前两句的到底有什么用,就这一问题,卡那里了,无奈了......

0 0