第5周项目2-对象作为数据成员

来源:互联网 发布:vs怎么连接sql数据库 编辑:程序博客网 时间:2024/05/18 01:42
#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; //两点之间的距离(一点是当前点——想到this了吗?,另一点为p)  double Distance0() const;          // 到原点(0,0)的距离  CPoint SymmetricAxis(char style) const;//style取'x','y'和'o'分别表示按x轴, y轴, 原点对称  void output(); //以(x,y) 形式输出坐标点  void input();};CPoint::CPoint(double xx,double yy){    x=xx;    y=yy;}void CPoint::output(){  cout<<"("<<x<<", "<<y<<")"<<endl;}void CPoint::input(){    cin>>x>>y;}double CPoint::Distance1(CPoint p) const{    double l;    l=sqrt((p.x-x)*(p.x-x)+(p.y-y)*(p.y-y));    return l;}double CPoint::Distance0() const{    double l;    l=sqrt(x*x+y*y);    return l;}CPoint CPoint::SymmetricAxis(char style) const{    CPoint p(x,y);    switch(style)    {        case'x': p.y=-y;break;        case'y': p.x=-x;break;        case'o': p.x=-x,p.y=-y;break;    }    return 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;};float CTriangle::perimeter(void){    double c;    c=A.Distance1(B)+B.Distance1(C)+A.Distance1(C);    return c;}bool CTriangle::isIsoscelesTriangle(){    double a,b,c;    a=B.Distance1(C);    b=A.Distance1(C);    c=A.Distance1(B);    if((a=b)||(a=c)||(b=c))        return true;    else        return false;}float CTriangle::area(void){    double a,b,c,m,s;    a=B.Distance1(C);    b=A.Distance1(C);    c=A.Distance1(B);    m=(a+b+c)/2;    s=sqrt((m-a)*m*(m-b)*(m-c));    return s;}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;} void CTriangle::setTriangle(CPoint &X,CPoint &Y,CPoint &Z) {     A=X;     B=Y;     C=Z; }int main(){    CPoint m,n,l;    cout<<"输入第一个点:";    m.input();    cout<<"输入第二个点:";    n.input();    cout<<"输入第三个点:";    l.input();    CTriangle p(m,n,l);    p.setTriangle(m,n,l);    cout<<"三角形的周长为:"<<p.perimeter();    cout<<"三角形面积为:"<<p.area();    if(p.isRightTriangle())      cout<<"该三角形是直角三角形"<<endl;      else        cout<<"不是直角三角形"<<endl;    if(p.isIsoscelesTriangle())        cout<<"该三角形是等腰三角形"<<endl;    else        cout<<"不是等腰三角形"<<endl;    return 0;}




0 0
原创粉丝点击