程序頭部註釋開始
* 程序的版權和版本聲明部分
* Copyright (c) 2011, 煙臺大學計算機學院學生
* All rights reserved.
* 文件名稱: Point類的相關處理
* 作 者: 郭廣建
* 完成日期: 2012年 04 月 23 日
* 版 本 號: 1.0
源程序:
#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(x,y)
{
pt1 = pts;
pt2 = pte;
x = (pte.x - pts.x) /2;
y = (pte.y - pts.y) /2;
}
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;
}
int main()
{
Point ps(-2,5),pe(7,9);
Line l(ps,pe);
l.PrintL();//輸出直線l的信息
l.PrintP();//輸出直線l中點的信息
system("pause");
return 0;
}
運算結果:
1st Point:(-2,5)
2nd Point:(7,9)
The middle point of Line: Point:(4.5,2)
The Length of Line: 9.84886
Point:(4.5,2)請按任意鍵繼續. . .
經驗積累:
1.初步熟悉類的派生,瞭解派生類的構造函數