01./* 02.* 程式的著作權和版本聲明部分 03.* Copyright (c)2013, 煙台大學電腦學院學生 04.* All rightsreserved. 05.* 檔案名稱:Point .cpp 06.* 作 者:趙冠哲 07* 完成日期:2013年5月9日 08.* 版本號碼: v1.0 09.* 輸入描述: 10.* 問題描述: 11.*/#include<iostream>#include<Cmath>using namespace std;class Point //定義座標點類{ public: double x,y; //點的橫座標和縱座標 Point(){x=0;y=0;} Point(double x0,double y0) {x=x0; y=y0;} void PrintP(){cout<<"Point:("<<x<<","<<y<<")";}};class Line: public Point //利用座標點類定義直線類, 其基類的資料成員表示直線的中點{ private: class Point pt1,pt2; //直線的兩個端點public: Line(Point pts, Point pte); //建構函式 double Dx(){return pt2.x-pt1.x;} double Dy(){return pt2.y-pt1.y;} double Length();//計算直線的長度 void PrintL(); //輸出直線的兩個端點和直線長度};//建構函式,分別用參數初始化對應的端點及由基類屬性描述的中點Line::Line(Point pts, Point pte):Point((pts.x+pte.x)/2, (pts.y+pte.y)/2){ pt1=pts; pt2=pte;}double Line::Length(){return sqrt(Dx()*Dx()+Dy()*Dy());}//計算直線的長度void Line::PrintL(){ cout<<" 1st "; pt1.PrintP(); cout<<"\n 2nd "; pt2.PrintP(); cout<<"\n The middle point of Line: "; PrintP(); cout<<"\n The Length of Line: "<<Length()<<endl;//調用Length()輸出直線的長度}int main(){ Point ps(-2,5),pe(7,9); Line l(ps,pe); l.PrintL();//輸出直線l的資訊 l.PrintP();//輸出直線l中點的資訊 cout<<endl; return 0;}
運行結果: