zoukankan      html  css  js  c++  java
  • 第十一周项目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 //定义坐标点类
    {
    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<<")";//输出点
        cout<<endl;
    }
    class Line: public Point   //利用坐标点类定义直线类, 其基类的数据成员表示直线的中点
    {
    public:
        Line(Point pts, Point pte); //构造函数,用初始化直线的两个端点及由基类数据成员描述的中点
        double Length();    //计算并返回直线的长度
        void PrintLine();   //输出直线的两个端点和直线长度
    private:
        class Point pts,pte;   //直线的两个端点,从Point类继承的数据成员表示直线的中点
    };
    Line::Line(Point pt1, Point pt2):Point((pt1.getx()+pt2.getx())/2,(pt1.gety()+pt2.gety())/2)
    {
        pts=pt1;
        pte=pt2;
    }
    double Line::Length()
    {
        int l;
        l=sqrt((pts.getx()-pte.getx())*(pts.getx()-pte.getx())+(pts.gety()-pte.gety())*(pts.gety()-pte.gety()));
        return l;
    }
    void Line::PrintLine()
    {
        cout<<"第一条"<<endl;
        pts.PrintPoint();
        cout<<"第二条"<<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;
    }
    
    运行结果:


    @ Mayuko

  • 相关阅读:
    417 Pacific Atlantic Water Flow 太平洋大西洋水流
    416 Partition Equal Subset Sum 分割相同子集和
    415 Add Strings 字符串相加
    414 Third Maximum Number 第三大的数
    413 Arithmetic Slices 等差数列划分
    412 Fizz Buzz
    410 Split Array Largest Sum 分割数组的最大值
    409 Longest Palindrome 最长回文串
    day22 collection 模块 (顺便对比queue也学习了一下队列)
    day21 计算器作业
  • 原文地址:https://www.cnblogs.com/mayuko/p/4567487.html
Copyright © 2011-2022 走看看