6-2-对象作为数据成员

来源:互联网 发布:手机全透明软件 编辑:程序博客网 时间:2024/06/06 01:43
01./*  02.* 程序的版权和版本声明部分:  03.* Copyright (c) 2011, 烟台大学计算机学院  04.* All rights reserved.  05.* 文件名称:test.cpp  06.* 作    者:刘芳07.* 完成日期:201 4年04 月  07日  08.* 版 本 号:v1.0  09.* 对任务及求解方法的描述部分: 10.* 输入描述:无  11.* 问题描述: 输入三点,构成三角形,求面积,周长,做出判断12.* 程序输出:面积,周长,做出判断 13.* 问题分析:略 14.* 算法设计:略  15.*/    


 

#include <iostream>#include <cmath>using namespace std;class CPoint  {      public:      void input();  //以a,b 形式输入坐标点      void output(); //以(a,b) 形式输出坐标点      CPoint(double xx=0,double yy=0);      double Distance1(CPoint p) const;   // 两点之间的距离      private:      double a;//横坐标      double b;//纵坐标  };class CTriangle{public:  CTriangle(CPoint &X,CPoint &Y,CPoint &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 x,y,z;    CTriangle CT(x,y,z);     cout<<"请输入第一个点的坐标:"<<endl;     z.input();     cout<<"请输入第二个点的坐标:"<<endl;     y.input();     cout<<"请输入第三个点的坐标:"<<endl;     z.input();     CT.setTriangle(x,y,z);     CT.perimeter();     cout<<"三角形的周长是"<<CT.perimeter()<<endl;     CT.area();     cout<<"三角形的面积是:"<<CT.area()<<endl;     if(!CT.isRightTriangle())     cout<<"此三角形不是直角三角形"<<endl;     else     cout<<"此三角形是直角三角形"<<endl;     if(!CT.isIsoscelesTriangle())     cout<<"此三角形不是等腰三角形"<<endl;     else     cout<<"此三角形是等腰三角形"<<endl;        return 0;}void CPoint::input(){    cin>>a>>b;} CPoint::CPoint(double xx,double yy)  {      a=xx;      b=yy;  }CTriangle::CTriangle(CPoint &X,CPoint &Y,CPoint &Z)  {      A=X;      B=Y;      C=Z;  }  void CTriangle::setTriangle(CPoint &X,CPoint &Y,CPoint &Z)  {      A=X;      B=Y;      C=Z;  }  double CPoint::Distance1(CPoint p) const  {      double L;      L=sqrt((p.a-a)*(p.a-a)+(p.b-b)*(p.b-b));      return L;  }  float CTriangle::perimeter(void)  {      double c,d,e;      c=A.Distance1(B);      d=A.Distance1(C);      e=B.Distance1(C);      return c+d+e;  }float CTriangle::area(void){    double c,d,e,s;      c=A.Distance1(B);      d=A.Distance1(C);      e=B.Distance1(C);      s=(c+d+e)/2;      return sqrt(s*(s-c)*(s-d)*(s-e));}bool CTriangle::isRightTriangle(){    double c,d,e;      c=A.Distance1(B);      d=A.Distance1(C);      e=B.Distance1(C);      if(c*c+d*d==e*e||c*c+e*e==d*d||e*e+d*d==c*c)      return true;      else      return false;}bool CTriangle::isIsoscelesTriangle(){     double c,d,e;      c=A.Distance1(B);      d=A.Distance1(C);      e=B.Distance1(C);    if(c==d||c==e||e==d)    return true;    else    return false;}


有点坎坷。。 

0 0
原创粉丝点击