給出下面的多邊形基類框架:
class polygon
建立乙個派生類rectangle(矩形),增加以下資料成員:
int height;
int width;
增加以下成員函式:
rectangle類的無參和引數化建構函式
int perimeter();//計算矩形邊長
void display();//輸出多邊形邊數和周長
建立乙個派生類equal_polygon(等邊多邊形),增加以下資料成員:
int side_len;
增加以下成員函式:
equal_polygon類的無參和引數化建構函式
int perimeter();//計算等邊多邊形邊長
void display();//輸出多邊形邊數和周長
生成上述類並編寫主函式,要求主函式有乙個基類polygon指標陣列 pt2poly,陣列元素不超過10個
polygon *pt2poly[10];
主函式根據輸入的多邊形資訊,相應建立乙個多邊形類物件或矩形類物件或等邊多邊形類物件,並且取址按序賦給基類指標陣列元素,最後遍歷基類polygon指標陣列 pt2poly,計算每乙個多邊形的周長並且輸出其邊數、多邊形型別(polygon、rectangle、equal_rectangle三者之一)和周長。
測試輸入包含乙個測試用例,該測試用例的第一行輸入多邊形的個數n,接下來n行每一行給出乙個多邊形的基本資訊,每行的第乙個數字為當前多邊形的型別,0為一般多邊形,後面跟隨m個數字為m條邊的邊長,-1為一般多邊形邊長輸入結束標誌,1為矩形,後面跟隨兩個數字,分別為height和width,2為等邊多邊形,後面跟隨兩個數字為等邊多邊形的邊數和邊長。
30 32 54 76 88 24 -1
1 32 54
2 3 32
5 polygon 274**:4 rectangle 172
3 equal_polygon 96
#include
using
namespace std;
class
polygon
void
setside
(int
* len)
virtual
intperimeter()
virtual
void
display()
};class
rectangle
:public polygon
intperimeter()
void
display()
private
:int height, width;};
class
equal_polygon
:public polygon
intperimeter()
void
display()
private
:int side_len;};
intmain()
else
if(type ==1)
else
}for
(int i =
0; i < j; i++
)return0;
}
PTA 7 1 數字加密
輸入乙個四位數,將其加密後輸出。方法是將該數每一位上的數字加9,然後除以10取餘,做為該位上的新數字,最後將千位和十位上的數字互換,百位和個位上的數字互換,組成加密後的新四位數。例如輸入1257,經過加9取餘後得到新數字0146,再經過兩次換位後得到4601。輸入格式 輸入在一行中給出乙個四位的整數...
PTA 7 1 換硬幣 列舉
7 1 換硬幣 20 分 將一筆零錢換成5分 2分和1分的硬幣,要求每種硬幣至少有一枚,有幾種不同的換法?輸入在一行中給出待換的零錢數額x 8,100 要求按5分 2分和1分硬幣的數量依次從大到小的順序,輸出各種換法。每行輸出一種換法,格式為 fen5 5分硬幣數量,fen2 2分硬幣數量,fen1...
PTA 7 1 複數的比較
題目描述 建立乙個複數類,實數和虛數是其私有資料成員。建立乙個 大於號 的運算子過載,比較兩個複數間模的大小。輸入格式 測試輸入包含若干測試用例,每個測試用例佔一行。每個測試用例包括四個數字,前兩個數字分別表示第乙個複數的實部和虛部,第三個和第四個數字分別表示第二個複數的實部和虛部。每個數字之間用空...