- /*
- * 程序的版权和版本声明部分
- * Copyright (c)2012, 烟台大学计算机学院学生
- * All rightsreserved.
- * 文件名称: fun.cpp
- * 作 者: 王俊
- * 完成日期:2013 年5月21日
- * 版本号: 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 x,y; //数据成员,表示点的横坐标和纵坐标 }; void Point::PrintPoint() { cout<<"Point:("<<x<<","<<y<<")"; //输出点 } class Line: public Point //利用坐标点类定义直线类, 其基类的数据成员表示直线的中点 { public: Line(Point pt1, Point pt2):pt1(pt1),pt2(pt2){}; //构造函数,用初始化直线的两个端点及由基类数据成员描述的中点 double Length(); //计算并返回直线的长度 void PrintLine(); //输出直线的两个端点和直线长度 private: class Point pt1,pt2; //直线的两个端点 }; //下面定义Line 类的成员函数 double Line::Length() { double m; m=sqrt((pt1.x-pt2.x)*(pt1.x-pt2.x)+(pt1.y-pt2.y)*(pt1.y-pt2.y)); return m; } void Line::PrintLine() { double m; m=Length(); cout<<"两个点的坐标为:"<<"("<<pt1.x<<","<<pt1.y<<")"<<" "<<"("<<pt2.x<<","<<pt2.y<<")"<<endl; cout<<"直线长度为:"<<m<<endl; } int main() { Point pt1(-2,5),pt2(7,9); Line l(pt1,pt2); l.PrintLine();//输出直线l 的信息(请补全代码) cout<<"\n The middle point of Line: "; //输出直线l 中点的信息(请补全代码) cout<<"中点坐标为:"<<"("<<(pt1.x+pt2.x)/2.0<<","<<(pt1.y+pt2.y)/2.0<<")"<<endl; return 0; }
运行结果: