PTA 7 1 多邊形周長計算(多型)

2021-10-06 23:34:36 字數 1805 閱讀 7386

給出下面的多邊形基類框架:

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為等邊多邊形,後面跟隨兩個數字為等邊多邊形的邊數和邊長。

3

0 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 複數的比較

題目描述 建立乙個複數類,實數和虛數是其私有資料成員。建立乙個 大於號 的運算子過載,比較兩個複數間模的大小。輸入格式 測試輸入包含若干測試用例,每個測試用例佔一行。每個測試用例包括四個數字,前兩個數字分別表示第乙個複數的實部和虛部,第三個和第四個數字分別表示第二個複數的實部和虛部。每個數字之間用空...