在此練習中,您要使用視覺化編輯器建立 cone 類別。Cone 類別代表 3D 圓錐。
在前一個練習中,您是使用 UML 建模工具,來延伸圓圈與球形類別。在此練習中,您要使用 UML 視覺化工具,新增 cone 類別到專案中。Cone 類別是繼承自 shape3d 類別,它會依據圓錐的半徑與高度,計算並顯示面積及表面區域。您可以使用 UML 建模工具,新增類別至專案,以及新增屬性至類別。若要編輯方法的主體,在圖型中,按兩下該方法,並在程式碼編輯器中編輯原始碼。
您可以使用 C/C++ 專案瀏覽器視圖,新增類別至專案。您可以透過新增 C++/類別精靈,定義任何繼承關係。
現在您已經新增 cone 類別至形狀專案。您現在可以使用 UML 建模工具, 新增類別和屬性至新的類別。您的圖型看起來應該與下圖類似:
Cone 類別會實作由基礎形狀類別定義的 getColor 和 setColor 兩個方法。
現在您已經新增 getColor 及 setColor 方法至 cone 類別。
Cone 類別會實作由基礎形狀類別定義的 getSize 和 getSize 兩個方法。大小欄位會儲存圓錐的高度。
現在您已經新增 getSize 及 setSize 方法至 cone 類別。
Cone 類別會實作由基礎形狀類別定義的 getRadius 和 setRadius 兩個方法。半徑欄位會儲存基礎圓錐的半徑。應用程式會使用半徑來計算圓錐的圓周和面積。
現在您已經新增 getRadius 及 setRadius 方法至 cone 類別。
Cone 類別會實作 shapes3d 類別定義的表面區域與面積方法。用於計算圓錐 surfaceArea 的公式是 pi * r * (r + (r2 + h2)1/2)。用於計算圓錐面積的公式是 1/3 x pi x r2 h。
現在您已經新增 surfaceArea 及 volume 方法至 cone 類別。
Cone 類別會實作由基礎形狀類別定義的 set 和 print 兩個方法。
{ cout << "Cone:" << "\n\tLength = " << getSize() << "\n\tArea = " << surfaceArea() << "\n\tVolume = " << volume() << "\n\tColor = " << getColor() << "\n\n"; };
現在您已經新增 print 及 set 方法至 cone 類別。
cone.cpp 類別檔中包含了 set 方法的實作方式,以及建構子和解構子。修改 set 方法的主體,可以提示使用者輸入圓錐的大小和半徑。您必須編輯預設建構子,以設定新的 cone 類別之起始值。
void cone::set() { double size; double radius; string color; cout << "Enter the height of the cone: "; cin >> size; setSize(size); cout << "Enter the radius of the base of the cone: "; cin >> radius; setRadius(radius); cout << "Enter the color of the cone: "; cin >> color; setColor(color); }
現在您已經新增 set 方法至 cone.cpp 類別檔中,完成「形狀」專案。
在執行應用程式之前,您必須在 main.cpp 類別中加入 include 陳述式,以包括新的 cone 類別。您可以藉由修改 main.cpp 類別,來執行應用程式並將新的 cone 類別實例化。
//實例化及執行 cone 類別 cone c; c.print(); c.set(); c.print();
程式會顯示圓錐形狀的大小、顏色、表面區域及面積,並提示您指定新圓錐實例的值。