C++第11周(春)项目3 - 点类派生直线类

来源:互联网 发布:崩坏学园2淘宝冲钻 编辑:程序博客网 时间:2024/05/22 03:18

课程首页在:http://blog.csdn.net/sxhelijian/article/details/11890759,内有完整教学方案及资源链接

【项目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(); //输出点的信息  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类继承的数据成员表示直线的中点  };    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;  }  
程序运行参考图:


参考解答:

#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(); //输出点的信息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;   //直线的两个端点};//构造函数,分别用初始化直线的两个端点及由基类数据成员(属性)描述的中点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<<" 1st "<<endl;    pts.PrintPoint();    cout<<" 2nd "<<endl;    pte.PrintPoint();    cout<<" The 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;}



=================== 迂者 贺利坚 CSDN博客专栏=================|== IT学子成长指导专栏 专栏文章的分类目录(不定期更新) ==||== C++ 课堂在线专栏  贺利坚课程教学链接(分课程年级) ==||== 我写的书——《逆袭大学——传给IT学子的正能量》    ==|===== 为IT菜鸟起飞铺跑道,和学生一起享受快乐和激情的大学 =====



0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 手机充电变慢怎么办 手机内屏分离怎么办 电脑屏幕摔碎了怎么办 三星手机外屏碎了怎么办 苹果手机外屏碎了怎么办 iphone6s听筒坏了怎么办 苹果x外屏碎了怎么办 苹果手机屏摔坏了怎么办 苹果8外屏摔碎了怎么办 苹果7内屏坏了怎么办 苹果手机屏幕里面有水痕怎么办 iphone6屏幕摔裂怎么办 苹果手机电池坏了怎么办 苹果手机充电器坏了怎么办 苹果充电器老是坏怎么办 苹果手机屏幕失控了怎么办 手机自己乱点怎么办 手机点屏幕没用怎么办 手机界面不动了怎么办 手机关不了机怎么办 小米5花屏怎么办 小米手机死机怎么办呢 手机触屏失灵怎么办? 手机触屏不行怎么办 苹果手机屏幕触摸失灵怎么办 苹果7按键失灵怎么办 苹果中间键失灵怎么办 苹果屏触摸不灵怎么办 ipad屏幕乱跳怎么办 屏幕自己乱点怎么办 手机触屏漂移怎么办 玩不好飘频怎么办 苹果手机城乱码了怎么办 苹果手机屏幕乱跳怎么办 苹果笔记本键盘乱码怎么办 苹果电脑打开word乱码怎么办 iphone5s屏幕竖纹怎么办 电脑显示跳屏怎么办 电脑显示器跳屏怎么办 ipad老是跳屏怎么办 lol一直跳ping怎么办