1. 程式人生 > >第13周實驗--任務3--定義抽象基類Shape,由它派生出3個派生類,Circle、Rectangle、Triangle。求出定義的3個幾何體的面和。

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

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

* 作    者:         雷恆鑫                       
* 完成日期:     2012    年 05      月  11  日
* 版 本 號:       V1.0   
* 對任務及求解方法的描述部分
* 輸入描述: 定義抽象基類Shape,由它派生出3個派生類,Circle(圓形)、Rectangle(矩形)、Triangle(三角形)。

* 問題描述: 
* 程式輸出:用如下的mian()函式,求出定義的幾個幾何體的面積和。 

* 程式頭部的註釋結束

*/

#include<iostream>   
#include<Cmath>   
using namespace std;
const double pi=3.1415926;  
class Shape //定義抽象基類
{
public:
	virtual double areas()=0;
};
  
class Circle: public Shape   //利用抽象基類定義圓類   
{  
public:  
    Circle(double Circle_radius);//建構函式   
    ~Circle(){} 
	double areas();
private:  
    double Circle_radius;  
};

class Rectangle: public Shape    //利用抽象基類定義矩形類     
{  
public:  
    Rectangle(double Rectangle_long,double Rectangle_wide);//建構函式   
	~Rectangle(){}  
	double areas();  
private:  
    double Rectangle_long;  
	double Rectangle_wide;  
}; 

class Triangle: public Shape  //利用抽象基類定義三角形類   
{  
public:  
    Triangle(double Triangle_bottom,double Triangle_high); //建構函式   
	~Triangle(){}  
    double areas(); 
private:  
    double Triangle_bottom;
	double Triangle_high;  
};
Circle::Circle(double Circle_radius)//建構函式
{
	this->Circle_radius=Circle_radius;
}
double Circle::areas()
{
return (pi*Circle_radius*Circle_radius);
}
Rectangle::Rectangle(double Rectangle_long,double Rectangle_wide)
{
	this->Rectangle_long=Rectangle_long;
	this->Rectangle_wide=Rectangle_wide;
}
double Rectangle::areas()
{
	return (Rectangle_long*Rectangle_long);
}
Triangle::Triangle(double Triangle_bottom,double Triangle_high)
{
	this->Triangle_bottom=Triangle_bottom;
	this->Triangle_high=Triangle_high;
}
double Triangle::areas() 
{
	return (Triangle_bottom*Triangle_high/2);
}

int main()
{
	Circle c1(12.6),c2(4.9);    //建立Circle類物件c1,c2,引數為圓半徑
	Rectangle r1(4.5,8.4),r2(5.0,2.5);       //建立Rectangle類物件r1,r2,引數為矩形長、寬
	Triangle t1(4.5,8.4),t2(3.4,2.8);    //建立Triangle類物件t1,t2,引數為三角形底邊長與高
	Shape *pt[6]={&c1,&c2,&r1,&r2,&t1,&t2}; //定義基類指標陣列pt,各元素指向一個派生類物件
	double areas=0.0;      //areas為總面積
	for(int i=0; i<6; i++)
	{
		areas=areas+pt[i]->areas();
	}
	cout<<"totol of all areas="<<areas<<endl;   //輸出總面積
	system("pause");
	return 0;
}


執行結果:

相關推薦

13實驗--任務3--定義抽象Shape生出3派生CircleRectangleTriangle定義3幾何體的面

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

C++十三週【任務3定義抽象Shape生出3派生Circle(圓形)Rectangle(矩形)Triangle(三角形)

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

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

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

C#--11實驗--任務1(建立Windows窗體應用程式)--設計一個窗體--單擊按鈕時在標籤上顯示當前系統時間 .

/* (程式頭部註釋開始)    * 程式的版權和版本宣告部分    * Copyright (c) 2011, 煙臺大學計算機學院學生     * All rights reserved.    * 檔名稱:設計一個窗體   * 版 本 號: V1.0     * 對任務

C#--11實驗--任務1(建立Windows窗體應用程式)--設計一個窗體--單擊按鈕時在標籤上顯示當前系統時間

Form.cs /* (程式頭部註釋開始) * 程式的版權和版本宣告部分 * Copyright (c) 2011, 煙臺大學計算機學院學生 * All rights reserved. * 檔名稱:設計一個窗體 * 作 者: 雷恆鑫

習題 12.5 寫一個程式定義抽象Shape生出5派生CircleSquareRectangleTarpezoidTriangle用虛擬函式分別計算幾種圖形面積

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

寫一個程式定義抽象Shape生出3派生: Circle(圓形)Rectangle(矩形)Triangle(三角形)

 寫一個程式,定義抽象基類Shape,由它派生出3個派生類: Circle(圓形)、Rectangle(矩形)、Triangle(三角形),用一個函式printArea分別輸出以上三者的面積,3個圖形的資料在定義物件時給定。 #include<iostream> usi

C#--2實驗--任務14--隨機給一個0至99(包括099)之間的數字然後讓你猜是什麼數字

/* (程式頭部註釋開始)* 程式的版權和版本宣告部分* Copyright (c) 2011, 煙臺大學計算機學院學生 * All rights reserved.* 檔名稱:隨機給出一個0至99(包括0和99)之間的數字,然後讓你猜是什麼數字。你可以隨便猜一個數字,遊戲

C#--2實驗--任務2(1)--使用者輸入一個字元並用Console的Readkey()方法讀取該字元並在控制檯上輸出該字元

/* (程式頭部註釋開始) * 程式的版權和版本宣告部分 * Copyright (c) 2011, 煙臺大學計算機學院學生 * All rights reserved. * 檔名稱:建立一個控制檯應用--使用者輸入一個字元,並用Console類的Readkey()方法讀

C#--12實驗--任務2(設計一個窗體)--開啟對話方塊

/* (程式頭部註釋開始) * 程式的版權和版本宣告部分 * Copyright (c) 2011, 煙臺大學計算機學院學生 * All rights reserved. * 檔名稱:訊息對話方塊 * 作 者: 雷恆鑫 * 完成日期: 2

C#--2實驗--任務12--輸入10個數存入陣列中然後實現氣泡排序

/* (程式頭部註釋開始) * 程式的版權和版本宣告部分 * Copyright (c) 2011, 煙臺大學計算機學院學生  * All rights reserved. * 檔名稱:輸入10個數存入陣列中,然後實現氣泡排序 * 作 者: 雷恆鑫  * 完成日期: 20

14C++上機報告(抽象CSolid)

/* * 程式的版權和版本宣告部分 * Copyright (c)2012, 煙臺大學計算機學院學生 * All rightsreserved. * 檔名稱: object.cpp * 作者:王昕彤 * 完成日期: 2013年 6 月 3 日 * 版本號: v1.0 * 輸

13-任務3-抽象Shape派生Circle RectangleTriangle

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

《C++實驗報告3-1》----接8任務3定義分數中運算子過載實現分數的輸入輸出

/* (程式頭部註釋開始) * 程式的版權和版本宣告部分 * Copyright (c) 2011, 煙臺大學計算機學院學生 * All rights reserved. * 檔名稱: CFraction.cpp *

C++13專案3——漢諾塔

【專案3-漢諾塔】漢諾塔(又稱河內塔)問題是源於印度一個古老傳說的益智玩具。古代有一個梵塔,塔內有三個座A、B、C,A座上有64個盤子,盤子大小不等,大的在下,小的在上。有一個和尚想把這64個盤子從A座

13張文小組學習情況總結

成員 基本原則 應用 產生 討論 軟件工程 十分 流程 調查問卷 繼上周對於5,6章節的學習之後,這一周我們小組成員基本都已進入7,8章節的自學。 第七章介紹了微軟推薦的軟件開發方法MSF。MSF的最大特性是商業化,並一直體現在項目的實施過程中。所謂商業化意味著客戶的商業利

2017-2018-1 20155212 《信息安全系統設計基礎》13學習總結

date ref archive 64位 階段 gdb expr 匯編代碼 理解 2017-2018-1 20155212 《信息安全系統設計基礎》第13周學習總結 教材學習內容總結 歷史觀點 X86 尋址方式經歷三代 DOS時代的平坦模式,不區分用戶空間和內核空間,很

2017-2018-1 20155202 《信息安全系統設計基礎》13學習總結

track 並行 hpu i/o ack owin ridge sys 廠商 2017-2018-1 20155202 《信息安全系統設計基礎》第13周學習總結 本周任務: 找出全書你認為最重要的一章,深入重新學習一下,要求(期末占10分): 完成這一章所有習題 詳細總結

20155236 《信息安全系統設計基礎》13學習總結

在操作 -m 提高效率 加載 構造 類型 並發 多線程程序 %d 20155236 《信息安全系統設計基礎》第13周學習總結 網絡編程 套接字接口概述: 並發編程 並發:邏輯控制流在時間上重疊 並發程序:使用應用級並發的應用程序稱為並發程序。 三種基本的構造並發程

2017-2018-1 20155226《信息安全系統設計基礎》13學習總結

miss 補碼 模式 3.1 返回值 test 結束 fgets clas 2017-2018-1 20155226《信息安全系統設計基礎》第13周學習總結 教材學習內容深度學習 章節練習題 3.58 long decode2(long x, long y, long z)