description
給出正方形(square)、長方形(rectangle)、立方體(cuboid)的邊長,求周長、面積、體積。
square類只需存一條邊長,建構函式產生一條輸出,有邊長、周長、面積的函式。
rectangle類需存長和寬,若從square類派生而來,因此只需增加一條邊,建構函式產生一條輸出,有長、寬、周長、面積的函式。
cuboid類需存長寬高,若從rectangle類派生而來,因此也只增加一條邊,建構函式產生一條輸出,有長、寬、高、周長、面積、體積的函式。它的周長定義為所有稜長之和。
input
輸入分為三部分,每一部分都已乙個整數n開始,表示後面有n組測試資料。
在第一部分測試資料中,每組是乙個整數,表示正方形的邊長。
在第二部分測試資料中,每組是兩個整數,表示長方形的長和寬。
在第三部分測試資料中,每組是三個整數, 表示立方體的長和寬。
output
每組測試資料對應的輸出為兩部分,前面是建構函式的輸出,最後是輸出圖形的資訊,包括長寬高、周長、面積、體積等資訊,格式見sample;
sample input
1 4
1 3 4
1 3 4 6
sample output
construct square (4)
a square length 4, perimeter 16, area 16
*************************
construct square (3)
construct rectangle (3, 4)
a rectangle length 3, width 4, perimeter 14, area 12
*************************
construct square (3)
construct rectangle (3, 4)
construct cuboid (3, 4, 6)
a cuboid length 3, width 4, height 6, perimeter 52, area 108, volume 72
hint
int main()
cout
<< "*************************"
<< endl;
cin >> cases;
for(int i = 1; i <= cases; ++i)
cout
<< "*************************"
<< endl;
cin >> cases;
for(int i = 1; i <= cases; ++i)
}
ac**
#include
using
namespace
std;
class square
int perimeter()
int area()
};class rectangle:public square
int perimeter()
int area()
};class cuboid:public rectangle
int perimeter()
int area()
int volume()
};int main()
cout
<< "*************************"
<< endl;
cin >> cases;
for(int i = 1; i <= cases; ++i)
cout
<< "*************************"
<< endl;
cin >> cases;
for(int i = 1; i <= cases; ++i)
}
本題注意:
1、命名雖然題目中沒有給出,但是後面main函式中有,所以在做題的時候不僅要看清楚題意,同時也要結合main函式;
2、賦值的順序千萬不要弄反了,結合題意,結合main函式,結合輸入、輸出的資料來做題;
3、乙個函式的名字和要返回的函式的名字是不能一樣的;例如int length()
這樣是錯誤的,因為名字一樣,必須保證不一樣。
4、因為沒有重複名字的函式,所以呼叫函式的時候直接呼叫即可,不需要類名::函式名()
動態規劃法 入門 最大正方形 最大長方形
最大正方形 largest square 題意 現有h w個邊長為1cm的正方形瓷磚排列在一起,其中有一部分瓷磚有汙跡,求僅有乾淨瓷磚構成的最大正方形的面積。輸入 4 50 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 輸出4首先,我們設乙個dp陣列,其中dp i j ...
動態規劃處理長方形分割為正方形問題
動態規劃主要是採用遞推以及區域性結果復用來進行計算處理。比較清晰的乙個例子就是斐波拉契數列,f n f n 1 f n 2 把每次的計算結果儲存起來,就可以方便的得到下乙個資料了。這樣的規劃處理方式比直接遞迴處理要快很多。動態規劃的經典應用是揹包問題。這裡討論長方形切分為正方形的問題,每次把邊長為整...
最小長方形
題目 給定一系列2維平面點的座標 x,y 其中x和y均為整數,要求用乙個最小的長方形框將所有點框在內。長方形框的邊分別平行於x和y座標軸,點落在邊上也算是被框在內。輸入 測試輸入包含若干測試用例,每個測試用例由一系列座標組成,每對座標 x y 佔一行,其中 x 和 y 小於 1000 一對 0,0 ...