第十一周项目点类派生直线类
2016-06-21 13:46
274 查看
/*Copyright(c)2016,烟台大学计算机与控制工程学院 *All right reserved. *文件名称:main。cpp *作 者:闫舒 *完成日期:2016年6月21日 *版 本 号:vc++6.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) {}; 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; }
运行结果:
相关文章推荐
- Java并发包中的读写锁及其实现分析
- 使用IDA的调试器
- Swift - 使用表格组件(UITableView)实现单列表
- mysql中插入中文数据
- Linux USB 驱动开发实例 (三)—— 基于USB总线的无线网卡浅析
- HTML行为元素和块级元素及语义化
- xcode 更新后,pod install 失败
- Android 相关博客地址【更新中】
- Lock wait timeout exceeded
- Hadoop学习(一): Ubuntu上安装Hadoop
- 【Unity Shaders】学习笔记——SurfaceShader(四)用纹理改善漫反射
- HDU 2295 舞蹈链可重复覆盖+二分
- Linux USB 驱动开发实例(二)—— USB 鼠标驱动注解及测试
- tomcat的配置
- android高级控件之AutoCompleteTextView
- studio 代码混淆
- Android Dialog点击对话框外部让其消失的实现方法
- Linux USB 驱动开发实例(一) —— USB摄像头驱动实现源码分析
- cmake 强制链接静态库
- Kafka+Storm+HDFS整合实践