第十一周补充项目 3.1点直线类
2016-05-03 17:10
330 查看
/* *Copyright(c) 2016, 烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:main.cpp *作 者:李德坤 *完成日期:2016年5月3日 *版本号:v1.0 * *问题描述:定义点类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(); //输出点的信息 double getX() { return x; } double getY() { return y; } protected: double x,y; //点的横坐标和纵坐标 }; void Point::PrintPoint() { cout<<"Point: ("<<x<<","<<y<<")"<<endl; //输出点 } class Line: public Point //利用坐标点类定义直线类, 其基类的数据成员表示直线的中点 { public: Line(Point pt1, Point pt2); //构造函数,用初始化直线的两个端点及由基类数据成员描述的中点 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() //计算并返回直线的长度 { double dx = pts.getX() - pte.getX(); double dy =pts.getY() - pte.getY(); return sqrt(dx*dx+dy*dy); } void Line::PrintLine() { cout<<" 1st "; pts.PrintPoint(); cout<<" 2nd "; 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; }
相关文章推荐
- 二、进程间通信
- Android 短信拦截及用途分析
- 1-6-06:校门外的树
- iOS使用Object-C自定义cordova插件(二)
- 如何实现单服务器300万个长连接的?-来自知乎的经典问答
- javascript 手机号码正则表达式验证函数
- android webview设置以及与h5交互
- shell 中的单行注释和多行注释
- Python获取指定文件夹下的文件名
- IOS MenuController初步了解
- 知问前端——验证插件(二)
- [置顶] 新博客地址
- Jetty的工作原理以及与Tomcat的比较
- 1.JavaScript如何使用
- 吝啬的国度
- ELASTICSEARCH几个问题的解决
- 开源新闻速递(160503):Chrome 超越 IE ,市场占有率第一
- 固定fotter
- 关于单例模式的一些讨论(实现单例模式)
- 【Halcon】霍夫直线检测hough_lines