《C 語言基礎》實踐參考 點 圓的關係

2021-09-23 18:00:16 字數 2874 閱讀 1917

返回:賀老師課程教學鏈結

專案要求

【專案4 - 點、圓的關係】

(1)先建立乙個point(點)類,包含資料成員x,y(座標點);

(2)以point為基類,派生出乙個circle(圓)類,增加資料成員(半徑),基類的成員表示圓心;

(3)編寫上述兩類中的構造、析構函式及必要運算子過載函式(本專案主要是輸入輸出);

(4)定義友元函式int locate,判斷點p與圓的位置關係(返回值<0圓內,==0圓上,>0 圓外);

int main( )

//建構函式

double distance(const point &p) const; //求距離

friend ostream & operator<<(ostream &,const point &);//過載運算子「<<」

protected: //受保護成員

double x,y;};

double point::distance(const point &p) const //求距離

ostream & operator<<(ostream &output,const point &p);

//過載運算子「<<」,使之按規定的形式輸出圓的資訊

ostream &operator<<(ostream &output,const circle &c)

//建構函式

protected: //受保護成員

double x,y;

};class circle:public point //circle是point類的公用派生類

//建構函式

double area ( ) const; //計算圓面積

friend ostream &operator<<(ostream &,const circle &);//過載運算子「<<」

//過載關係運算子運算子,使之能夠按圓的面積比較兩個圓的大小;

bool operator>(const circle &);

bool operator<(const circle &);

bool operator>=(const circle &);

bool operator<=(const circle &);

bool operator==(const circle &);

bool operator!=(const circle &);

protected:

double radius;

};//計算圓面積

double circle::area( ) const

//過載運算子「<<」,使之按規定的形式輸出圓的資訊

ostream &operator<<(ostream &output,const circle &c)

bool circle::operator<(const circle &c)

bool circle::operator>=(const circle &c)

bool circle::operator<=(const circle &c)

bool circle::operator==(const circle &c)

bool circle::operator!=(const circle &c)

int main( )

//建構函式

friend ostream & operator<<(ostream &,const point &);//過載運算子「<<」

friend void crossover_point(point &p,circle &c, point &p1,point &p2 ) ; //求交點的友元函式

protected: //受保護成員

double x,y;

};ostream & operator<<(ostream &output,const point &p)

//建構函式

friend ostream & operator<<(ostream &,const point &);//過載運算子「<<」

friend doublepoint crossover_point(point &p,circle &c) ; //求交點的友元函式

protected: //受保護成員

double x,y;

};ostream & operator<<(ostream &output,const point &p)

class circle:public point //circle是point類的公用派生類

//建構函式

friend ostream &operator<<(ostream &,const circle &);//過載運算子「<<」

friend doublepoint crossover_point(point &p,circle &c) ; //求交點的友元函式

protected:

double radius;

};//過載運算子「<<」,使之按規定的形式輸出圓的資訊

ostream &operator<<(ostream &output,const circle &c)

struct doublepoint //專門用於返回值的結構體型別

;//給定一點p,求出該點與圓c的圓心相連成的直線與圓的兩個交點

//方案2:結果返回到doublepoint型別的結構體中

//crossover_point函式已經宣告為point和circle類的友元函式,類中私有成員可以直接訪問

doublepoint crossover_point(point &p, circle &c)

int main( )

C 實踐參考 點類派生直線類

專案 點類派生直線類 定義點類point,並以點類為基類,派生出直線類line,從基類中繼承的點的資訊表示直線的中點。請閱讀下面的 並將缺少的部分寫出來。include includeusing namespace std class point 定義座標點類 point double x0,dou...

C 實踐參考 點類派生直線類

專案 點類派生直線類 定義點類point,並以點類為基類,派生出直線類line,從基類中繼承的點的資訊表示直線的中點。請閱讀下面的 並將缺少的部分寫出來。include includeusing namespace std class point 定義座標點類 point double x0,dou...

《C 語言基礎》實踐參考 鍊錶類

返回 賀老師課程教學鏈結 專案要求 專案 鍊錶類 動態鍊錶也是程式設計中的一種非常有用的資料結構。可以說,是否能夠理解有關操作的原理,決定了你是否有資格稱為 科班 出身。在後續的專業基礎課中,相關的內容還會從不同的角度,反覆地認識,反覆地實踐。不過,在現階段多些體驗,也是很有必要的了。1 閱讀下面的...