点类派生出直线类

程序代码

#include <iostream>
#include <Cmath>

using namespace std;

class Point //定义坐标点类
{
public:
    Point(double x = 0, double y = 0);//构造函数
    double getX();//得到x坐标
    double getY();//得到y坐标
    void PrintPoint(); //输出点的信息

private:
    double x,y;//点的横坐标和纵坐标
};

//构造函数
Point::Point(double x, double y)
{
    this->x = x;
    this->y = y;
}

//得到点的x坐标
double Point::getX()
{
    return x;
}

//得到点的y坐标
double Point::getY()
{
    return y;
}

void Point::PrintPoint()//输出点的信息
{
    cout<<"("<<x<<","<<y<<")"<<endl;
}

class Line: public Point   //利用坐标点类定义直线类, 其基类的数据成员表示直线的中点
{
public:
    Line(Point pts, Point pte);//构造函数,用初始化直线的两个端点及由基类数据成员描述的中点
    double getLength();//计算直线的长度
    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::getLength()//计算直线的长度
{
    double d;//保存直线的长度

    d = sqrt((pts.getX() - pte.getX())*(pts.getX() - pte.getX()) +
        (pts.getY() - pte.getY())*(pts.getY() - pte.getY()));

    return d;
}

void Line::PrintLine()//输出直线的两个端点和直线长度
{
    cout<<"直线的长度:"<<getLength()<<endl;
}

void main()
{
    //定义两个点的对象
    Point ps(0,0), pe(3,4);

    //定义一个直线对象
    Line l(ps,pe);

    //输出两个点的坐标
    cout<<"ps:";
    ps.PrintPoint();
    cout<<"pe:";
    pe.PrintPoint();

    //输出直线的长度
    l.PrintLine();

    //输出中点的坐标
    cout<<"直线l的中点的坐标:";
    l.PrintPoint();

    system("pause");
}

执行结果:

时间: 2024-10-05 11:42:43

点类派生出直线类的相关文章

点类派生出圆类,圆类派生出圆柱类

#include <iostream>#include <stdlib.h>using namespace std;const double PI=3.14159; //基类的定义class Point{private: int x,y;public: Point(int xx,int yy) { x=xx; y=yy; } int Getx() { return x; } int Gety() { return y; } /* void show() { cout<<

时间类和日期类派生出时间日期类

今天再写一个多重继承的应用实例,时间类和日期类派生出时间日期类 程序代码 #include <iostream> using namespace std; class Date//日期类 { public: //构造函数 Date(int y = 0, int m = 0, int d = 0); //设置日期 void SetDate(int y,int m,int d); //打印日期 void PrintDate() { cout<<year<<"年&q

第十一周项目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

点类派生直线类

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

第十一周 项目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 PrintPoint()

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

/* *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,从基类中继承的点的信息表示直线的中点.请阅读下面的代码,并将缺少的部分写出来. #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