天天看點

第6周-任務4-用點類作成員的三角形類

【題目】設計一個三角形類,能夠輸入三角形的三個頂點,求出其面積、周長,并判斷其是否為直角三角形和等腰三角形。

提示:(1)這個問題需要用到兩個類,頂點類參照任務3中的cpoint類;(2)三角形類參考下面ctriangle類的聲明;(3)充分利用cpoint類中已有的代碼實作;(4)關于三條邊的處理,可以增加三個私有屬性,在初始化時求出來備用,也可以在需要時計算得到。

【講解視訊】

第6周-任務4-用點類作成員的三角形類

【參考解答】

【讨論】在上面的實作中,求周長、面積、判斷類型的成員函數都需要用到邊長,于是重複出現了求三邊長的語句:double a=b.distance(c),b=c.distance(a),c=a.distance(b);

。另一種處理方案就是将三邊長a,b,c定義為三角形的成員函數,然後在構造函數中确定三個頂點後立刻求出,這樣在其他成員函數中就可以直接使用了。利用這種方案需要注意的是,如果在其他成員函數需要修改頂點(三角形可以進行平移、變形等操作)是,邊長必須同步修改,否則可能會造成資料的不一緻。這是考量在設計中的智慧了。

(本文完)

繼續閱讀