1. 程式人生 > >C++用抽象類,派生類求圓,正方形,矩形,梯形,三角形面積

C++用抽象類,派生類求圓,正方形,矩形,梯形,三角形面積

do{
cout<<"/t/t*************************************"<<endl;
cout<<"/t/t             請選擇選單              "<<endl;
cout<<"/t/t             1.求圓面積              "<<endl;
cout<<"/t/t             2.求正方形面積          "<<endl;
cout<<"/t/t             3.求長方形面積          "<<endl;
cout<<"/t/t             4.求梯形面積            "<<endl;
cout<<"/t/t             5.求三角形面積          "<<endl;
cout<<"/t/t             6.求所有形狀圖形面積的和"<<endl;
cout<<"/t/t             0.退出                  "<<endl;
cout<<"/t/t*************************************"<<endl;
cin>>i;
switch(i)
{
case 1:   {
           cout<<"請輸入圓半徑R,橫座標X,縱座標Y:";
           cin>>a>>b>>c;
           circle C(a,b,c);
     p[0]=&C;
     p[0]->show();
    }break;
case 2:   {
           cout<<"請輸入正方形的邊長A:";
           cin>>b;
           Square S(b);
     p[1]=&S;
     p[1]->show();
    }break;
case 3:{
           cout<<"請輸入長方形的長和寬A,B:";
           cin>>a>>b;
           Rectangle R(a,b);
     p[2]=&R;
     p[2]->show();
    }break;
case 4:{
           cout<<"請輸入梯形上底,下底,高A,B,H:";
           cin>>a>>b>>c;
           Trapezoid Tra(a,b,c);
     p[3]=&Tra;
     p[3]->show();
    }break;
case 5:{
           cout<<"請輸入三角形的三邊A,B,C:";
           cin>>a>>b>>c;
           Triangle Tri(a,b,c);
     p[4]=&Tri;
     if(Tri.Istriangle())           /*判斷是否符合三角形三邊的條件*/
     p[4]->show();
    }break; 
case 6:{float k=0;
    for(i=0;i<5;i++)
    {if(p[i]==NULL)
     k=k+0;
    else k=k+p[i]->area();}
    cout<<"總面積為:"<<k<<endl;
    }
   break;

相關推薦

C++抽象,派生,正方形,矩形,梯形,三角形面積

do{cout<<"/t/t*************************************"<<endl;cout<<"/t/t             請選擇選單              "<<endl;cout<<"/t/t    

派生

ffi 是我 etag plus prot 間接 ron img tco 看了c#的教程,也上網絡上搜索基類與派生類的概念,一直沒有一個很明確的定義.弄得偶一直很迷糊,現在搜索到c++的教程裏倒是有比較明確的說明,特意貼在這裏,幫助自己理解. 繼承機制提供了無限重復利用程序

派生 的繼承與約束

用法 1、在基類中定義所有的方法,在各個派生類中繼承基類,派生類可以直接呼叫基類中的方法,基類中的方法就是預設配置方法,若項自定義方法可以在派生類中自定義方法。 2、在基類中定義方法,方法中丟擲異常,異常內容為提示必須建立此方法,派生類繼承基類,若派生類中為定義基類中方法則呼叫時丟擲異常,提示派生類必須自

繼承基派生,虛擬函式小結

基類TableTennisPlayer  派生類RatedPlayer 1.       基類指標可以在不進行顯示型別轉換的情況下指向派生類物件;基類引用可以在不進行顯示型別轉換的情況下引用派生類物件. RatedPlayer palyer(1000,”Mallory”,

面向物件方法實現和橢圓的周長與面積

  設最底層的基類為Shape,Shape有周長和麵積,圓Circle和橢圓Ellipse繼承於Shape,設定計算周長的介面為circum(),計算面積的介面為area()。繼承圖表如下: 圖(1) Shape、Circle和Ellipse之間的繼承圖表

計算幾何 ( 凸包,計算三角形面積 )——最大三角形 ( HDU 2202 )

1.求凸包: int cmp(point a, point b) //水平排序 { if(a.x==b.x)return a.y<b.y; return a.x

Opencv識別矩形三角形的步驟(優化)

       按照之前的步驟雖然可以識別出來,但是識別效果受角度,光照的因素很大!故在原來的基礎上做了些優化,最主要的是用到腐蝕膨脹函式,優化效果如下: 步驟如下: 0.通過攝像頭或是載入圖片的方式獲

C++資訊學奧賽一本通題庫1034計算三角形面積

計算三角形面積 時間限制: 1000 ms         記憶體限制: 65536 KB 提交數: 1813     通過數: 622  【題目描述】 平面上有一個三角形,它的三個頂點座標分別為(x1, y1), (x2, y2), (x3, y3),那麼請問這個三角形的

習題 12.5 寫一個程式,定義抽象Shape,由它派生出5個派生:Circle、Square、Rectangle、Tarpezoid、Triangle。虛擬函式分別計算幾種圖形面積,並。。。

C++程式設計(第三版) 譚浩強 習題12.5 個人設計 習題 12.5 寫一個程式,定義抽象基類Shape,由它派生出5個派生類:Circle、Square、Rectangle、Tarpezoid、Triangle。用虛擬函式分別計算幾種圖形面積,並求它們的和

C++基派生的構造函數和析構函數的調

str 生命 ons stream all 兩種 col 生命期 析構函數 C++基類和派生類的構造函數和析構函數的調用 1.調用順序   當創建一個派生類的對象時,系統首先自動創建一個基類對象,也就是說,在調用派生類構造函數創建派生類對象之前,系統首先調用基類的構造函數創

C++——的綜合案例——純虛函數與抽象( 加強對接口與多態,以及派生構造函數的理解 )

構造 set 由於 技術 als str wid choice gre 註意派生類構造函數的寫法。 1 #include <iostream> 2 3 using namespace std; 4 5 enum COLOR {

習題 12.4 寫一個程式,定義抽象Shape,由它派生出3個派生:Circle(圓形)、Rectangle(矩形)、Triangle(三角形),一個函式printArea分別輸出以上。。。

C++程式設計(第三版) 譚浩強 習題12.4 個人設計 習題 12.4 寫一個程式,定義抽象基類Shape,由它派生出3個派生類:Circle(圓形)、Rectangle(矩形)、Triangle(三

C++動態聯編的好處,為什麼要的指標指向派生的方式來實現重寫

動態聯編的意義:省事 一個derived類物件,要呼叫一個函式,他就會在自己的類中查詢函式名,如果找到了就呼叫自己的; 如果沒找到就到基類找,呼叫基類的函式。(名字查詢優先於型別檢查,找到名字符合的就停下來,不向上一個基類的作用域繼續找)。 class

第13周實驗--任務3--定義抽象Shape,由它派生出3個派生,Circle、Rectangle、Triangle。出定義的3個幾何體的面和。

* (程式頭部註釋開始) * 程式的版權和版本宣告部分 * Copyright (c) 2011, 煙臺大學計算機學院學生  * All rights reserved. * 檔名稱:設計一個抽象基類,生出三個派生類。 * 作    者:         雷恆鑫    

c++建立一個SUM,二維陣列外圍各元素的和,並且輸出陣列各元素及所之和。

具體要求如下: (1)私有資料成員 int a[4][4]:二維陣列,存放要處理的資料。 int s:存放陣列a外圍各元素的和。 (2)公有成員函式 SUM(int b[4][4]):建構函式,用陣列

C++第十三週【任務3】定義抽象Shape,由它派生出3個派生,Circle(圓形)、Rectangle(矩形)、Triangle(三角形

/* * 程式的版權和版本宣告部分 * Copyright (c) 2011, 煙臺大學計算機學院學生  * All rights reserved. * 檔名稱:C++第十三週【任務3】                               * 作    者:  

《C++第十三週實驗報告4-1》---設計一個抽象CSolid,含有兩個表面積及體積的純虛擬函式。 設計個派生CCube、CBall、CCylinder,分別表示正方體、球體及圓柱體。...

/* 【任務4】設計一個抽象類CSolid,含有兩個求表面積及體積的純虛擬函式。 設計個派生類CCube、CBall、CCylinder,分別表示正方體、球體及圓柱體。 在main()函式中,定義基類的指標p(CSolid *p;),利用p指標,輸出正方體、球體及圓柱體物件的

C++ 封裝實現隊列

pan pub pre () turn ear als sin push 1 #include<stdlib.h> 2 #include <iostream> 3 using std::cout; 4 using std::end

抽象,子調弗雷的方法,super

經典 clas 沒有 meta 文本 優先 base pri bst 1\ 抽象類 子類 必須與子類一樣的函數名, 限制了子類名必須與父類名一樣,就定義了一個標準,做統一, 抽象類,不能被實例化,作用就是定義標準,不用具體實例化 1 Python本身不提供抽象類和接

C#調自己定義表型參數

drop pro -h height csharp pass ria code not null -SQL SERVER生成測試環境:--創建測試DB CREATE database Sales; go USE Sales GO --創建表類型 IF TYPE_ID(‘