< 上一個課程

第 3 課:建立圓錐體類別

在這個練習中,您將建立圓錐體類別。圓錐體類別代表 3D 圓錐體。

在上一個練習中,您利用 C++ 視覺化開發工具來延伸圓形和球體類別。 在這個練習中,您將利用 C++ 視覺化開發工具,在專案中新增圓錐體類別。 圓錐體類別(繼承自 shape3d 類別)會根據圓錐體的半徑和高度來計算和顯示體積和表面積。 利用 C++ 視覺化開發工具,您可以在專案中新增類別和在類別中新增屬性。 若要編輯方法的主體,請在圖型中按兩下方法,然後在程式碼編輯器中編輯程式碼。

將圓錐體類別新增至 Shape 專案

您可以利用「C/C++ 專案瀏覽器」視圖將類別新增至專案。 您可以利用「新建 C++/類別」精靈來找出任何繼承關係。

若要將圓錐體類別新增至 Shape 專案:

  1. 在「C/C++ 專案瀏覽器」視圖中,用滑鼠右鍵按一下形狀專案, 再按一下新建 > 類別
  2. 「新建 C++ 類別」視窗中,在名稱欄位中鍵入 cone,再按一下瀏覽
  3. 「選擇基礎類別」視窗中,從相符類型清單中按兩下 shapes3d
  4. 「C/C++ 專案瀏覽器」視圖中,展開 cone.h, 按一下 cone 類別元素,拖曳至圖型編輯器。

您現在已將 cone 類別新增至 Shape 專案。您可以利用 C++ 視覺化開發工具來新增類別和在新類別中加入屬性。 圖型看起來類似下圖:

Shape專案包含新的 Cone 類別。

將 getColor 和 setColor 方法新增至 cone 類別

cone 類別實作基本 shape 類別所定義的 getColor 和 setColor 方法。

若要將 getColor 和 setColor 方法新增至 cone 類別:

  1. 在圖案編輯器中,在 classdiagram.dnx 圖型中用滑鼠右鍵按一下 cone 類別,再按一下新增 C/C++ > 欄位
  2. 「建立 C++ 欄位」視窗中,在名稱欄位中鍵入 color
  3. 類型清單中,鍵入 string,再按一下完成
  4. 在圖案編輯器中,在 classdiagram.dnx 圖型中用滑鼠右鍵按一下 cone 類別,再按一下新增 C/C++ > 方法
  5. 「建立 C++ 方法」視窗中,在名稱欄位中鍵入 getColor
  6. 傳回類型清單中,鍵入 string,再按一下完成
  7. 在 cone 類別中,按兩下 getColor 方法, 在程式碼編輯器中指定 getColor 方法的主體,如下所示:{return color;};
  8. 在圖案編輯器中,在 classdiagram.dnx 圖型中用滑鼠右鍵按一下 cone 類別,再按一下新增 C/C++ > 方法
  9. 「建立 C++ 方法」視窗中,在名稱欄位中鍵入 setColor,再按一下完成
  10. 在 cone 類別中,按兩下 setColor 方法, 在程式碼編輯器中,指定方法的簽章為 void setColor(string c),指定 setColor 方法的主體為 {color = c;};
您現在已將 getColor 和 setColor 方法新增至 cone 類別。

將 getSize 和 setSize 方法新增至 cone 類別

cone 類別實作基本 shape 類別所定義的 getSize 和 setSize 方法。size 欄位儲存圓錐體的高度。

若要將 getSize 和 setSize 方法新增至 cone 類別:

  1. 在圖案編輯器中,在 classdiagram.dnx 圖型中用滑鼠右鍵按一下 cone 類別,再按一下新增 C/C++ > 欄位
  2. 「建立 C++ 欄位」視窗中,在名稱欄位中鍵入 size
  3. 類型清單中,選取 double,再按一下完成
  4. 在圖案編輯器中,在 classdiagram.dnx 圖型中用滑鼠右鍵按一下 cone 類別,再按一下新增 C/C++ > 方法
  5. 「建立 C++ 方法」視窗中,在名稱欄位中鍵入 getSize
  6. 傳回類型清單中,按一下 void 旁邊的↓, 選取 double,再按一下完成
  7. 在 cone 類別中,按兩下 getSize 方法, 在程式碼編輯器中,指定 getSize 方法的主體,如下所示:{return size;};
  8. 在圖案編輯器中,在 classdiagram.dnx 圖型中用滑鼠右鍵按一下 cone 類別,再按一下新增 C/C++ > 方法
  9. 「建立 C++ 方法」視窗中,在名稱欄位中鍵入 setSize,再按一下完成
  10. 在 cone 類別中,按兩下 setSize 方法, 在程式碼編輯器中,指定 setSize 方法的主體,如下所示: {size = s < 0 ? 0:S;};
您現在已將 getSize 和 setSize 方法新增至 cone 類別。

將 getRadius 和 setRadius 方法新增至 cone 類別

cone 類別實作基本 shape 類別所定義的 getRadius 和 setRadius 方法。radius 欄位儲存圓錐體底部的半徑。 應用程式以 radius 來計算圓錐體的圓周和體積。

若要新增 getRadius 和 setRadius 方法:

  1. 在圖案編輯器中,用滑鼠右鍵按一下 cone 類別, 再按一下新增 C/C++ > 欄位
  2. 「建立 C++ 欄位」視窗中,在名稱欄位中鍵入 radius
  3. 類型清單中,按一下 double,再按一下完成
  4. 在圖案編輯器中,在 classdiagram.dnx 圖型中用滑鼠右鍵按一下 cone 類別,再按一下新增 C/C++ > 方法
  5. 「建立 C++ 方法」視窗中,在名稱欄位中鍵入 getRadius
  6. 傳回類型清單中,選取 double,再按一下完成
  7. 在 cone 類別中,按兩下 getRadius 方法, 在程式碼編輯器中指定 getRadius 方法的主體,如下所示:{return radius;};
  8. 在圖案編輯器中,在 classdiagram.dnx 圖型中用滑鼠右鍵按一下 cone 類別,再按一下新增 C/C++ > 方法
  9. 「建立 C++ 方法」視窗中,在名稱欄位中鍵入 setRadius,再按一下完成
  10. 在 cone 類別中,按兩下 setRadius 方法, 在程式碼編輯器中,指定 setRadius 方法的主體,如下所示:{radius = r < 0 ? 0:r;};
您現在已將 getRadius 和 setRadius 方法新增至 cone 類別。

將 surfaceArea 和 volume 方法新增至 cone 類別

cone 類別實作基本 shapes3d 類別所定義的 surfacearea 和 volume 方法。 圓錐體表面積的計算公式為 πr² (r + (r2 + h2)1/2)。圓錐體的體積計算公式為 1/3 x πr²h。

若要將 surfaceArea 和 volume 方法新增至 cone 類別:

  1. 在圖案編輯器中,在 classdiagram.dnx 圖型中用滑鼠右鍵按一下 cone 類別,再按一下新增 C/C++ > 方法
  2. 「建立 C++ 方法」視窗中,在名稱欄位中鍵入 surfaceArea
  3. 傳回類型清單中,選取 double,再按一下完成
  4. 在 cone 類別中,按兩下 surfaceArea 方法, 在程式碼編輯器中指定 surfaceArea 方法的主體,如下所示:{return pi * radius * (radius + (pow(pow(radius,2) + pow(size,2),0.5)));};
  5. 在圖案編輯器中,在 classdiagram.dnx 圖型中用滑鼠右鍵按一下 cone 類別,再按一下新增 C/C++ > 方法
  6. 「建立 C++ 方法」視窗中,在名稱欄位中鍵入 volume,再按一下完成
  7. 在 cone 類別中,按兩下 volume 方法, 在程式碼編輯器中,指定 volume 方法的主體,如下所示:{return 0.333 * pi * (pow(radius,2) * size);};
您現在已將 surfaceArea 和 volume 方法新增至 cone 類別。

將 set 和 print 方法新增至 cone 類別

cone 類別實作基本 shape 類別所定義的 set 和 print 方法。

若要將 set 和 print 方法新增至 cone 類別:

  1. 在圖案編輯器中,在 classdiagram.dnx 圖型中用滑鼠右鍵按一下 cone 類別,再按一下新增 C/C++ > 方法
  2. 「建立 C++ 方法」視窗中,在名稱欄位中鍵入 print,再按一下完成
  3. 在 cone 類別中,按兩下 print 方法, 在程式碼編輯器中,指定 print 方法的主體,如下所示:
    { cout  << "Cone:"
    			<< "\n\tLength = " << getSize()
    			<< "\n\tArea   = " << surfaceArea()
    			<< "\n\tVolume = " << volume()
    			<< "\n\tColor  = " << getColor()
    			<< "\n\n";
    };
  4. 在圖案編輯器中,在 classdiagram.dnx 圖型中用滑鼠右鍵按一下 cone 類別,再按一下新增 C/C++ > 方法
  5. 「建立 C++ 方法」視窗中,在名稱欄位中鍵入 set,再按一下完成
您現在已將 print 和 set 方法新增至 cone 類別。

編輯 cone.cpp 檔案

cone.cpp 類別檔案包含 set 方法的實作,也包含建構子和解構子。 您可以修改 set 方法的主體,提示使用者指定圓錐體的大小和半徑。 您也必須編輯預設建構子來設定新的 cone 類別的起始值。

若要編輯 cone.cpp 檔案:

  1. 「C++ 專案瀏覽器」視圖中,按兩下 cone.cpp 類別。
  2. 在程式碼編輯器中,在 cone.cpp 類別中指定預設建構子的主體,如下所示:{color="Transparent"; radius=0; size=0;}
  3. 在方法宣告區段中,指定 set 方法的主體,如下所示:
    void cone::set()	{
    	double size;
    	double radius;
    	string color;
    	
    	cout << "輸入圓錐體的高度:";
    	cin >> size; 
    	setSize(size);
    	
    	cout << "輸入圓錐體的底半徑:";
    	cin >> radius; 
    	setRadius(radius);
    	
    	cout << "輸入圓錐體的顏色:";
    	cin >> color;
    	setColor(color);
    }
  4. 若要儲存專案,請按一下檔案 > 儲存
您已將 set 方法新增至 cone.cpp 類別檔案,現在已完成 Shape 專案。

執行延伸應用程式

您必須先將 include 陳述式新增至 main.cpp 類別來併入新的 cone 類別,才能執行應用程式。 您可以修改 main.cpp 類別來執行應用程式和實例化新的 cone 類別。

若要執行應用程式:

  1. 「C++ 專案瀏覽器」視圖中,按兩下 main.cpp 類別。
  2. 在類別的宣告區段中,在 #include "tetrahedron.h" 下面新增下列 include 陳述式: #include "cone.h"
  3. 在程式碼編輯器中,在類別的 main 主體中新增下列程式碼:
    //實例化和執行 cone 類別
    		cone c;
    		c.print();
    		c.set();
    		c.print();
  4. 若要儲存和建置專案,請按一下檔案 > 儲存
  5. 按一下執行
程式會顯示圓錐體形狀的大小、顏色、表面積及體積,並提示您指定新圓錐體實例的值。

意見
< 上一個課程