一个很不错的C++类的练习题目
生活随笔
收集整理的這篇文章主要介紹了
一个很不错的C++类的练习题目
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
//一個很不錯的C++類的練習題目1.定義一個C++枚舉(作為枚舉結構),有以下四個值:一次、每天、每周、每月。
為這個枚舉定義一個重載的輸出操作符<<,根據枚舉值,它將每日、每周、每月和其他任何事情都寫到作為參數傳遞的字符輸出流參考上。
此外,為枚舉值定義一個重載的輸入操作符>>(也見下面的例子)。2.定義一個名為CO2Emission的抽象類,其成員如下。
命名為下一個的私人指針屬性,以建立一個二氧化碳排放的列表。
公共標準構造函數,將指針屬性初始化為一個C++的空指針。
公共虛擬析構器將 "destructor CO2Emission: done "寫入標準字符輸出流中。
名為get_next的公共成員函數,不帶參數,返回指針屬性的值。
名為set_next的公共成員函數,以一個CO2Emission類型的指針為參數,將指針屬性的值設置為參數值。
名為get_co2的公共純虛擬成員函數沒有參數,并以浮點數作為返回值,必須在派生類中實現。
公共的純虛擬成員函數名為print,沒有參數也沒有返回,必須在派生類中實現。3.定義一個名為 "運輸 "的抽象類,該類公開繼承自CO2Emission,其成員如下。
命名為km的私有屬性,類型為浮點數,用于驅動的公里數。
名為frequency的私有屬性,屬于上述定義的枚舉類型Frequency,即運輸發生的頻率。
公共標準構造函數,在其主體中,如下面的例子,上層標準構造函數所走的公里數的值和頻率(通過上述定義的輸入運算符)應從標準字符輸入流中讀取并存儲在兩個屬性中。
帶有兩個參數的公共構造函數,用于用參數值初始化兩個屬性--頻率的參數應是一個默認參數,默認值來自上面定義的枚舉數據類型Frequency。
公共的虛擬析構器,就像下面的例子中寫的那樣" destructor Transport:"、頻率、旅行距離值和 "km done "到標準字符輸出流。
命名為get_co2_pkm的私有成員函數沒有參數,并以浮點數作為返回值,必須在派生類中實現。
名為get_co2的公共成員函數,沒有參數,以一個浮點數作為返回。在該函數中,應計算并返回駕駛公里數和一公里的各自排放值(通過調用先前定義的成員函數)與代表頻率的數字(一次=>1,每天=>365,每周=>52,每月=>12)的乘積。
公共成員函數,名稱為print,無參數,無返回。在正文中,如下面的例子,字符串 "運輸 "和頻率(通過上述定義的輸出運算符)應被寫入標準字符輸出流,駕駛的公里數(小數點后一位),圓括號中的每人公里的二氧化碳排放值(小數點后三位)和計算的二氧化碳排放量(適當地調用前面的成員函數)。4.修改你的類,命名為Bus,并從Transport類公開派生。刪除屬性km和成員函數get_co2。修改兩個構造函數,分別調用超類的構造函數,使其功能保持不變。同時修改成員函數print,使其在輸出 "本地公交 "或 "長途公交"(取決于布爾屬性的值)后調用直接超類的函數print。添加一個公共的虛擬析構器,輸出" destructor Bus: " 并調用函數print(見下面的例子)。5.修改你的名為Car的類,并從Transport類公開派生出來。刪除屬性km和成員函數get_co2。修改兩個構造函數,分別調用超類的構造函數,使其功能保持不變。同時修改成員函數print,使其在輸出 "客車 "后調用直接超類的函數print。添加一個公共的虛擬析構器,輸出" destructor Car:"并調用函數print(見下面的例子)。6.修改你的名為Flight的類,并從Transport類公開派生。刪除屬性km和成員函數get_co2。修改兩個構造函數,分別調用超類的構造函數,使其功能保持不變。同時修改成員函數print,使其在輸出 "flight "后調用直接超類的函數print。添加一個公共的虛擬析構器,輸出 "destructor Flight: done",如下面的例子所示。7.修改你的類,命名為Train,并從Transport類公開派生。刪除屬性km。修改兩個構造函數,分別調用超類的構造函數,使其功能保持不變。修改成員函數get_co2,使其調用超類的相同函數,并且在計算中仍然考慮單程或回程的情況。同時修改成員函數print,使其在輸出 "單程 "或 "回程 "以及 "本地火車 "或 "長途火車 "后調用直接超類的函數print。添加一個公共的虛擬析構器,輸出" destructor Train:"并調用函數print(見下面的例子)。8.修改你的類,命名為Cruise,并從CO2Emission類公開派生。在構造函數中,調用超類的標準構造函數,并為該類添加一個公共的虛擬析構函數,輸出 "destructor Cruise:"并調用函數print(見下面的例子)。9.定義一個名為CO2Footprint的類,其成員如下。
命名為 "姓名 "的私有屬性,類型為C++字符串,碳足跡被分配給誰。
私有指針屬性,名為排放,用于指向二氧化碳排放列表的頭部。
公共構造函數,將名稱初始化為參數的值,將指針屬性初始化為C++的空指針。
公共析構器將 "destructor for CO2Footprint for"、名稱和 "started... "寫入標準字符輸出流,然后在一個循環中逐一刪除堆上的所有列表項,最后將 "destructor CO2Foodprint done "寫入標準字符輸出流(見下例)。
名為get_name的公共成員函數,不帶參數,返回相同的命名屬性的值。
公共成員函數名為add,以CO2Emission類型的指針為參數,將指向的對象插入碳排放列表的頭部。
名為get_sum_co2的公共成員函數沒有參數,以浮點數作為返回值。在正文中,所有列表元素的碳排放量將被加起來,并返回這個和值。
公共成員函數名為print,沒有參數也沒有返回。在正文中,名稱應在字符串 "CO2 FOODPRINT FOR:",打印信息將被發送到列表中的所有對象,然后計算所有二氧化碳排放量的總和,并在 "TOTAL CO2 EMISSIONS. "之后寫入標準字符輸出流。",單位為公斤和噸,每個單位有1位小數(見下面的例子)。10.對函數main修改如下。
刪除所有的東西,除了五個指針變量b2、c2、h2、f2、t2的定義和它們指向堆中新對象的初始化。
定義一個C++字符串類型的變量,在用戶指導下從標準字符輸入流中讀入一個名字后,用這個名字定義并初始化一個CO2Footprint類型的對象f(不是指針*f)(見下面例子)。
向對象f發送一條消息add,并將指針b2, c2, h2, f2, t2作為參數。
編寫一個小菜單,其菜單項如下面的例子所示。對于每個定義的非抽象二氧化碳排放子類,應使用標準構造函數在堆上創建一個新對象,并添加到二氧化碳足跡對象f中。
如果程序結束,C++運行系統會自動調用對象f的析構器,刪除碳排放列表中的所有對象,從而觸發析構器的輸出,如下例所示。
CO2 footprint for? DilbertCO2 footprint input for Dilbert
(e) end
(b) bus transport
(c) car transport
(f) flight tranport
(h) holiday cruise
(t) train transport
(p) print all
>> p
CO2 FOODPRINT FOR: Dilbert
return long distance train transport 628.8 km (0.035 kg CO2/pkm) 44.0 kg CO2
flight transport 2669.9 km (0.270 kg CO2/pkm) 720.9 kg CO2
cruise holiday (without flights): 14 days duration with 3 sea days (sea day 280.000 kg CO2/pkm, harbour day 190.000 kg CO2/pkm) 2930.0 kg CO2
passenger car transport 5500.0 km (0.172 kg CO2/pkm) 948.8 kg CO2
local bus transport 2200.0 km (0.111 kg CO2/pkm) 244.2 kg CO2
TOTAL CO2 EMISSIONS: 4887.8 kg = 4.9 tonsCO2 footprint input for Dilbert
(e) end
(b) bus transport
(c) car transport
(f) flight tranport
(h) holiday cruise
(t) train transport
(p) print all
>> b
transport distance kilometers: 1000
frequency input:
(o) once
(d) daily
(m) monthly
(w) weekly
your choice: m
(1) local transport bus
(2) long distance bus
your choice: 2CO2 footprint input for Dilbert
(e) end
(b) bus transport
(c) car transport
(f) flight tranport
(h) holiday cruise
(t) train transport
(p) print all
>> p
CO2 FOODPRINT FOR: Dilbert
long distance bus transport monthly 1000.0 km (0.036 kg CO2/pkm) 432.0 kg CO2
return long distance train transport 628.8 km (0.035 kg CO2/pkm) 44.0 kg CO2
flight transport 2669.9 km (0.270 kg CO2/pkm) 720.9 kg CO2
cruise holiday (without flights): 14 days duration with 3 sea days (sea day 280.000 kg CO2/pkm, harbour day 190.000 kg CO2/pkm) 2930.0 kg CO2
passenger car transport 5500.0 km (0.172 kg CO2/pkm) 948.8 kg CO2
local bus transport 2200.0 km (0.111 kg CO2/pkm) 244.2 kg CO2
TOTAL CO2 EMISSIONS: 5319.8 kg = 5.3 tonsCO2 footprint input for Dilbert
(e) end
(b) bus transport
(c) car transport
(f) flight tranport
(h) holiday cruise
(t) train transport
(p) print all
>> c
transport distance kilometers: 1000
frequency input:
(o) once
(d) daily
(m) monthly
(w) weekly
your choice: w
passenger car consumption liter petrol per 100 kilometers: 10CO2 footprint input for Dilbert
(e) end
(b) bus transport
(c) car transport
(f) flight tranport
(h) holiday cruise
(t) train transport
(p) print all
>> p
CO2 FOODPRINT FOR: Dilbert
passenger car transport weekly 1000.0 km (0.230 kg CO2/pkm) 11960.0 kg CO2
long distance bus transport monthly 1000.0 km (0.036 kg CO2/pkm) 432.0 kg CO2
return long distance train transport 628.8 km (0.035 kg CO2/pkm) 44.0 kg CO2
flight transport 2669.9 km (0.270 kg CO2/pkm) 720.9 kg CO2
cruise holiday (without flights): 14 days duration with 3 sea days (sea day 280.000 kg CO2/pkm, harbour day 190.000 kg CO2/pkm) 2930.0 kg CO2
passenger car transport 5500.0 km (0.172 kg CO2/pkm) 948.8 kg CO2
local bus transport 2200.0 km (0.111 kg CO2/pkm) 244.2 kg CO2
TOTAL CO2 EMISSIONS: 17279.8 kg = 17.3 tonsCO2 footprint input for Dilbert
(e) end
(b) bus transport
(c) car transport
(f) flight tranport
(h) holiday cruise
(t) train transport
(p) print all
>> f
transport distance kilometers: 1000
frequency input:
(o) once
(d) daily
(m) monthly
(w) weekly
your choice: oCO2 footprint input for Dilbert
(e) end
(b) bus transport
(c) car transport
(f) flight tranport
(h) holiday cruise
(t) train transport
(p) print all
>> p
CO2 FOODPRINT FOR: Dilbert
flight transport 1000.0 km (0.270 kg CO2/pkm) 270.0 kg CO2
passenger car transport weekly 1000.0 km (0.230 kg CO2/pkm) 11960.0 kg CO2
long distance bus transport monthly 1000.0 km (0.036 kg CO2/pkm) 432.0 kg CO2
return long distance train transport 628.8 km (0.035 kg CO2/pkm) 44.0 kg CO2
flight transport 2669.9 km (0.270 kg CO2/pkm) 720.9 kg CO2
cruise holiday (without flights): 14 days duration with 3 sea days (sea day 280.000 kg CO2/pkm, harbour day 190.000 kg CO2/pkm) 2930.0 kg CO2
passenger car transport 5500.0 km (0.172 kg CO2/pkm) 948.8 kg CO2
local bus transport 2200.0 km (0.111 kg CO2/pkm) 244.2 kg CO2
TOTAL CO2 EMISSIONS: 17549.8 kg = 17.5 tonsCO2 footprint input for Dilbert
(e) end
(b) bus transport
(c) car transport
(f) flight tranport
(h) holiday cruise
(t) train transport
(p) print all
>> hcruise holiday data input:
number of days of the whole cruise: 3
number of sea days: 1CO2 footprint input for Dilbert
(e) end
(b) bus transport
(c) car transport
(f) flight tranport
(h) holiday cruise
(t) train transport
(p) print all
>> p
CO2 FOODPRINT FOR: Dilbert
cruise holiday (without flights): 3 days duration with 1 sea days (sea day 280.000 kg CO2/pkm, harbour day 190.000 kg CO2/pkm) 660.0 kg CO2
flight transport 1000.0 km (0.270 kg CO2/pkm) 270.0 kg CO2
passenger car transport weekly 1000.0 km (0.230 kg CO2/pkm) 11960.0 kg CO2
long distance bus transport monthly 1000.0 km (0.036 kg CO2/pkm) 432.0 kg CO2
return long distance train transport 628.8 km (0.035 kg CO2/pkm) 44.0 kg CO2
flight transport 2669.9 km (0.270 kg CO2/pkm) 720.9 kg CO2
cruise holiday (without flights): 14 days duration with 3 sea days (sea day 280.000 kg CO2/pkm, harbour day 190.000 kg CO2/pkm) 2930.0 kg CO2
passenger car transport 5500.0 km (0.172 kg CO2/pkm) 948.8 kg CO2
local bus transport 2200.0 km (0.111 kg CO2/pkm) 244.2 kg CO2
TOTAL CO2 EMISSIONS: 18209.8 kg = 18.2 tonsCO2 footprint input for Dilbert
(e) end
(b) bus transport
(c) car transport
(f) flight tranport
(h) holiday cruise
(t) train transport
(p) print all
>> t
transport distance kilometers: 10
frequency input:
(o) once
(d) daily
(m) monthly
(w) weekly
your choice: d
(1) local transport train
(2) long distance train
your choice: 1
(1) one-way
(2) return
your choice: 1CO2 footprint input for Dilbert
(e) end
(b) bus transport
(c) car transport
(f) flight tranport
(h) holiday cruise
(t) train transport
(p) print all
>> p
CO2 FOODPRINT FOR: Dilbert
one way local train transport daily 10.0 km (0.085 kg CO2/pkm) 310.2 kg CO2
cruise holiday (without flights): 3 days duration with 1 sea days (sea day 280.000 kg CO2/pkm, harbour day 190.000 kg CO2/pkm) 660.0 kg CO2
flight transport 1000.0 km (0.270 kg CO2/pkm) 270.0 kg CO2
passenger car transport weekly 1000.0 km (0.230 kg CO2/pkm) 11960.0 kg CO2
long distance bus transport monthly 1000.0 km (0.036 kg CO2/pkm) 432.0 kg CO2
return long distance train transport 628.8 km (0.035 kg CO2/pkm) 44.0 kg CO2
flight transport 2669.9 km (0.270 kg CO2/pkm) 720.9 kg CO2
cruise holiday (without flights): 14 days duration with 3 sea days (sea day 280.000 kg CO2/pkm, harbour day 190.000 kg CO2/pkm) 2930.0 kg CO2
passenger car transport 5500.0 km (0.172 kg CO2/pkm) 948.8 kg CO2
local bus transport 2200.0 km (0.111 kg CO2/pkm) 244.2 kg CO2
TOTAL CO2 EMISSIONS: 18520.1 kg = 18.5 tonsCO2 footprint input for Dilbert
(e) end
(b) bus transport
(c) car transport
(f) flight tranport
(h) holiday cruise
(t) train transport
(p) print all
>> e
destructor CO2Foodprint: for Dilbert started...destructor Train: one way local train transport daily 10.0 km (0.085 kg CO2/pkm) 310.2 kg CO2destructor Transport: daily 10.0 km done
destructor CO2Emission: donedestructor Cruise: cruise holiday (without flights): 3 days duration with 1 sea days (sea day 280.000 kg CO2/pkm, harbour day 190.000 kg CO2/pkm) 660.0 kg CO2
destructor CO2Emission: donedestructor Flight: donedestructor Transport: 1000.0 km done
destructor CO2Emission: donedestructor Car: passenger car transport weekly 1000.0 km (0.230 kg CO2/pkm) 11960.0 kg CO2destructor Transport: weekly 1000.0 km done
destructor CO2Emission: donedestructor Bus: long distance bus transport monthly 1000.0 km (0.036 kg CO2/pkm) 432.0 kg CO2destructor Transport: monthly 1000.0 km done
destructor CO2Emission: donedestructor Train: return long distance train transport 628.8 km (0.035 kg CO2/pkm) 44.0 kg CO2destructor Transport: 628.8 km done
destructor CO2Emission: donedestructor Flight: donedestructor Transport: 2669.9 km done
destructor CO2Emission: donedestructor Cruise: cruise holiday (without flights): 14 days duration with 3 sea days (sea day 280.000 kg CO2/pkm, harbour day 190.000 kg CO2/pkm) 2930.0 kg CO2
destructor CO2Emission: donedestructor Car: passenger car transport 5500.0 km (0.172 kg CO2/pkm) 948.8 kg CO2destructor Transport: 5500.0 km done
destructor CO2Emission: donedestructor Bus: local bus transport 2200.0 km (0.111 kg CO2/pkm) 244.2 kg CO2destructor Transport: 2200.0 km done
destructor CO2Emission: donedestructor CO2Foodprint: done
總結
以上是生活随笔為你收集整理的一个很不错的C++类的练习题目的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 山西民生云认证工资_山西民生云养老资格认
- 下一篇: c语言总分和平均分,用C语言编程平均分数