点类派生直线类

来源:互联网 发布:知乎 父母的爱 编辑:程序博客网 时间:2024/05/22 00:05

上机内容:由点类派生直线类

上机目的:学习派生

我的程序:

/*  * 程序的版权和版本声明部分:   * 作    者:烟台大学计算机学院学生:段元晋* 完成日期:2013年5月25日* 版 本 号:vc++6.0* 对任务及求解方法的描述部分: * 输入描述:无* 问题描述:略* 程序输出:略 * 问题分析:略 * 算法设计:略  */    #include<iostream>  #include<Cmath>  using namespace std;  class Point //定义坐标点类  {  public:      Point():x(0),y(0) {};      Point(double x0, double y0):x(x0), y(y0) {};double getX(){return x;}double getY(){return y;}    void PrintPoint(); //输出点的信息      double x,y;   //数据成员,表示点的横坐标和纵坐标  };  void Point::PrintPoint()  {      cout<<"Point:("<<x<<","<<y<<")";    //输出点  }      class Line: public Point   //利用坐标点类定义直线类, 其基类的数据成员表示直线的中点  {  public:      Line(Point pts, Point pte);  //构造函数,初始化直线的两个端点及由基类数据成员描述的中点,中点的坐标可以由端点坐标计算而来      double Length();    //计算并返回直线的长度      void PrintLine();   //输出直线的两个端点和直线长度  private:      Point pts,pte;   //直线的两个端点  };   //下面定义Line类的成员函数  Line::Line(Point pt1,Point pt2):Point((pt1.getX()+pt2.getX())/2,(pt1.getY()+pt2.getY())/2){pts=pt1;pte=pt2;}double Line::Length(){double dx=pts.getX()-pte.getX();double dy=pts.getY()-pte.getY();return sqrt(dx*dx+dy*dy);}void Line::PrintLine(){cout<<"端点1:";pts.PrintPoint();cout<<endl<<"端点2:";pte.PrintPoint();cout<<endl<<"直线的长度:";cout<<Length();}int main()  {      Point ps(-2,5),pe(7,9);      Line l(ps,pe);      l.PrintLine();      cout<<"\n The middle point of Line: ";      l.PrintPoint();cout<<endl;    return 0;  }  
运行结果:



原创粉丝点击