第十週實驗報告(任務1)

程序頭部註釋開始
* 程序的版權和版本聲明部分
* 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.初步熟悉類的派生,瞭解派生類的構造函數

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章