第十週任務(一)

/* (程序頭部註釋開始)

* 程序的版權和版本聲明部分

* Copyright (c) 2011, 煙臺大學計算機學院學生

* All rights reserved.* 文件名稱:    000

* 作 者:   楊繼宇

* 完成日期: 2012年04 月25  日

* 版 本 號: 0000

* 對任務及求解方法的描述部分 

* 輸入描述: 在下面一段類的定義中,需要填充的函數由註釋內容給出了功能

* 問題描述:

* 程序輸出:

* 程序頭部的註釋結束

*/

#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();  //輸出直線的兩個端點和直線長度
};

//(1)構造函數,分別用參數初始化對應的端點及由基類屬性描述的中點
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());};//(2)計算直線的長度

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; //(3)輸出直線長度
}

int main()
{
	Point ps(-2,5),pe(7,9);
	Line l(ps,pe);
        l.PrintL(); //(4)輸出直線l的信息
        l.PrintP();//(5)輸出直線l中點的信息
	system("pause");
	return 0;
}


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