第11周 【项目3 - 点类派生直线类】

问题描述:

【项目3 - 点类派生直线类】定义点类Point,并以点类为基类,派生出直线类Line,从基类中继承的点的信息表示直线的中点。请阅读下面的代码,并将缺少的部分写出来。

[cpp] view
plain
copyprint?

  1. #include<iostream>
  2. #include<Cmath>
  3. using namespace std;
  4. class Point //定义坐标点类
  5. {
  6. public:
  7. Point():x(0),y(0) {};
  8. Point(double x0, double y0):x(x0), y(y0) {};
  9. void PrintPoint(); //输出点的信息
  10. protected:
  11. double x,y;   //点的横坐标和纵坐标
  12. };
  13. void Point::PrintPoint()
  14. {
  15. cout<<"Point: ("<<x<<","<<y<<")";    //输出点
  16. }
  17. class Line: public Point   //利用坐标点类定义直线类, 其基类的数据成员表示直线的中点
  18. {
  19. public:
  20. Line(Point pts, Point pte); //构造函数,用初始化直线的两个端点及由基类数据成员描述的中点
  21. double Length();    //计算并返回直线的长度
  22. void PrintLine();   //输出直线的两个端点和直线长度
  23. private:
  24. class Point pts,pte;   //直线的两个端点,从Point类继承的数据成员表示直线的中点
  25. };
  26. int main()
  27. {
  28. Point ps(-2,5),pe(7,9);
  29. Line l(ps,pe);
  30. cout<<"About the Line: "<<endl;
  31. l.PrintLine();  //输出直线l的信息:两端点及长度
  32. cout<<"The middle point of Line is: ";
  33. l.PrintPoint(); //输出直线l中点的信息
  34. return 0;
  35. }

程序运行参考图:

代码:

#include<iostream>
#include<Cmath>
using namespace std;
class Point //定义坐标点类
{
public:
    Point():x(0),y(0) {};
    Point(double x0, double y0):x(x0), y(y0) {};
    void PrintPoint(); //输出点的信息
    double getX(){
        return x;
    }
    double getY(){
        return y;
    }
protected:
    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:
    class Point pts,pte;   //直线的两个端点,从Point类继承的数据成员表示直线的中点
};
Line::Line(Point pts1, Point pte1){
    pts=pts1;
    pte=pte1;
    x=pts.getX()+pte.getX();
    x/=2;
    y=pts.getY()+pte.getY();
    y/=2;
}
double Line::Length(){
    return sqrt((pts.getX()-pte.getX())*(pts.getX()-pte.getX())+(pts.getY()-pte.getY())*(pts.getY()-pte.getY()));
}
void Line::PrintLine(){
    cout<<" A: ";
    pts.PrintPoint();
    cout<<" \nB ";
    pte.PrintPoint();
    cout<<" \nThe Length of Line: "<<Length()<<endl;
}
int main()
{
    Point ps(-2,5),pe(7,9);
    Line l(ps,pe);
    cout<<"About the Line: "<<endl;
    l.PrintLine();  //输出直线l的信息:两端点及长度
    cout<<"The middle point of Line is: ";
    l.PrintPoint(); //输出直线l中点的信息
    return 0;
}

运行结果:

时间: 2024-11-08 18:54:25

第11周 【项目3 - 点类派生直线类】的相关文章

第十一周 项目3 - 点类派生直线类】定义点类Point,并以点类为基类,继承关系

项目3 - 点类派生直线类]定义点类Point,并以点类为基类,派生出直线类Line,从基类中继承的点的信息表示直线的中点.请阅读下面的代码,并将缺少的部分写出来. [cpp] view plaincopyprint? #include<iostream> #include<Cmath> using namespace std; class Point //定义坐标点类 { public: Point():x(0),y(0) {}; Point(double x0, double 

第十一周项目三-点类派生直线类

[项目3 - 点类派生直线类]定义点类Point,并以点类为基类,派生出直线类Line,从基类中继承的点的信息表示直线的中点.请阅读下面的代码,并将缺少的部分写出来. #include<iostream> #include<Cmath> using namespace std; class Point //定义坐标点类 { public: Point():x(0),y(0) {}; Point(double x0, double y0):x(x0), y(y0) {}; void

第十一周(点类派生直线类)

/* *copyright(c) 2015,烟台大学计算机学院 *All rights reserved. *文件名称:第十一周(点类派生直线类) *作者:王忠 *完成日期:2015.5.20 *版本号:v1.0 * *问题描述:定义点类Point,并以点类为基类,派生出直线类Line,从基类中继承的点的信息表示直线的中点.请阅读下面的代码,并将缺少的部分写出来. *输入描述: *程序输出: #include<iostream> #include<Cmath> using name

第11周 项目三-点类派生直线类

定义点类Point,并以点类为基类,派生出直线类Line,从基类中继承的点的信息表示直线的中点.请阅读下面的代码,并将缺少的部分写出来. #include<iostream> #include<Cmath> using namespace std; class Point //定义坐标点类 { public: Point():x(0),y(0) {}; Point(double x0, double y0):x(x0), y(y0) {}; void PrintPoint(); /

第十一周项目3-点类派生直线类

定义点类Point,并以点类为基类,派生出直线类Line,从基类中继承的点的信息表示直线的中点.请阅读下面的代码,并将缺少的部分写出来. /* *Copyright (c) 2015,烟台大学计算机学院 *All gight reserved. *文件名称:Demo.cpp *作者:邵帅 *完成时间:2015年05月25日 *版本号:v1.0 */ #include<iostream> #include<Cmath> using namespace std; class Point

第十一周上机实践项目3——点类派生直线类

定义点类Point,并以点类为基类,派生出直线类Line,从基类中继承的点的信息表示直线的中点.请阅读下面的代码,并将缺少的部分写出来. 代码 #include<iostream> #include<Cmath> using namespace std; class Point //定义坐标点类 { public: Point():x(0),y(0) {}; Point(double x0, double y0):x(x0), y(y0) {}; void PrintPoint()

点类派生直线类

输入代码: /* *Copyright (c)2015,烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:sum123.cpp *作 者:林海云 *完成日期:2015年5月29日 *版 本 号:v2.0 * *问题描述:定义点类Point,并以点类为基类,派生出直线类Line,从基类中继承的点的信息表示直线的中点. 请阅读下面的代码,并将缺少的部分写出来. *程序输入:无 *程序输出:按要求输出点线的信息 */ #include<iostream> #inc

第10、11周-项目4-教师兼干部类

问题及代码: /*Copyright (c)2016,烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:main.cpp *作 者:王艺霖 *完成日期:2016年5月10日 *版 本 号:v1.0 *问题描述:分别定义Teacher(教师)类和Cadre(干部)类,采用多重继承方式由这两个类派生出新类Teacher_Cadre(教师兼干部).要求: (1)在两个基类中都包含姓名.年龄.性别.地址.电话等数据成员. (2)在Teacher类中还包含数据成员tit

C++第10/11周项目 继承与派生 【项目5 - 摩托车继承自行车和机动车】(复习新版)

/* *copyright(c) 2016,烟台大学计算机学院 *All rights reserved *文件名称:test.cpp *作者:谭泽纯 *版本:v6.0 * 在下面一段类的定义中,自行车类的虚基类为车辆类,机动车类的虚基类也为车辆类,摩托车类的基类为自行车类和机动车类,类之间均为公有继承,如图所示. 下载可执行文件链接motorcar.exe. (1)根据上面各类间关系的描述,补全下面程序段中空缺的代码: (2)实现程序中声明的成员函数,注意相应操作中的动作发生的条件不能满足时应