![C++語言程序設(shè)計實驗答案_類與對象.doc_第1頁](http://file1.renrendoc.com/fileroot_temp2/2020-3/3/95345193-99b4-4b4d-985e-a896f480aeea/95345193-99b4-4b4d-985e-a896f480aeea1.gif)
![C++語言程序設(shè)計實驗答案_類與對象.doc_第2頁](http://file1.renrendoc.com/fileroot_temp2/2020-3/3/95345193-99b4-4b4d-985e-a896f480aeea/95345193-99b4-4b4d-985e-a896f480aeea2.gif)
![C++語言程序設(shè)計實驗答案_類與對象.doc_第3頁](http://file1.renrendoc.com/fileroot_temp2/2020-3/3/95345193-99b4-4b4d-985e-a896f480aeea/95345193-99b4-4b4d-985e-a896f480aeea3.gif)
![C++語言程序設(shè)計實驗答案_類與對象.doc_第4頁](http://file1.renrendoc.com/fileroot_temp2/2020-3/3/95345193-99b4-4b4d-985e-a896f480aeea/95345193-99b4-4b4d-985e-a896f480aeea4.gif)
![C++語言程序設(shè)計實驗答案_類與對象.doc_第5頁](http://file1.renrendoc.com/fileroot_temp2/2020-3/3/95345193-99b4-4b4d-985e-a896f480aeea/95345193-99b4-4b4d-985e-a896f480aeea5.gif)
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
學(xué)習(xí)資料收集于網(wǎng)絡(luò),僅供參考實驗04 類與對象(6學(xué)時)(第4章 類與對象)一、實驗?zāi)康?1) 掌握類的聲明和使用。(2) 掌握類的聲明和對象的聲明。(3) 復(fù)習(xí)具有不同訪問屬性的成員的訪問方式。(4) 觀察構(gòu)造函數(shù)和析構(gòu)函數(shù)的執(zhí)行過程。(5) 學(xué)習(xí)類的組合使用方法。(6) 使用Visual Studio 2010的調(diào)試功能觀察程序流程,跟蹤觀察類的構(gòu)造函數(shù)、析構(gòu)函數(shù)、成員函數(shù)的執(zhí)行順序。二、實驗任務(wù)4_1 聲明一個CPU類。包含等級(rank)、頻率(frequency)、電壓(voltage)等屬性,有兩個公有成員函數(shù)run、stop。其中,rank為枚舉類型CPU_Rank,聲明為enum CPU_Rank P1=1, P2, P3, P4, P5, P6, P7 ; frequency為單位是MHz的整型數(shù),voltage為浮點型的電壓值。觀察構(gòu)造函數(shù)和析構(gòu)函數(shù)的調(diào)用順序。4_2 聲明一個簡單的Computer類。有數(shù)據(jù)成員芯片(cpu)、內(nèi)存(ram)、光驅(qū)(cdrom)等,有兩個公有成員函數(shù)run和stop。cpu為CPU類的一個對象,ram為RAM類的一個對象,cdrom為CDROM類的一個對象,聲明并實現(xiàn)這個類。4_3 聲明一個表示時間的結(jié)構(gòu)體??梢跃_表示年、月、日、小時、分、秒;提示用戶輸入年、月、日、小時、分、秒的值,然后完整地顯示出來。4_4(習(xí)題4-10)設(shè)計一個用于人事管理的People(人員)類??紤]到通用性,這里只抽象出所有類型人員都具有的屬性:number(編號),sex(性別)、birthday(出生日期)、id(身份證號)等。其中“出生日期”聲明為一個“日期”類內(nèi)嵌子對象。用成員函數(shù)實現(xiàn)人員信息的錄入和顯示。要求包括:構(gòu)造函數(shù)和析構(gòu)函數(shù)、內(nèi)聯(lián)成員函數(shù)、組合。三、實驗步驟1.(驗證)聲明一個CPU類,觀察構(gòu)造函數(shù)和析構(gòu)函數(shù)的調(diào)用順序。首先聲明枚舉類型CPU_Rank,例如enum CPU_Rank P1=1, P2, P3, P4, P5, P6, P7 ,再聲明CPU類,包含等級(rank)、頻率(frequency)、電壓(voltage)等私有數(shù)據(jù)成員,聲明成員函數(shù)run和stop,用來輸出提示信息,在構(gòu)造函數(shù)和析構(gòu)函數(shù)中也可以輸出提示順序。在主程序中聲明一個CPU的對象,調(diào)用其成員函數(shù),觀察類對象的構(gòu)造與析構(gòu)順序,以及成員函數(shù)的調(diào)用。程序名:lab4_1.cpp。(程序見步驟2) 程序的運行結(jié)果:2.(示例)調(diào)試程序文件lab4_1.cpp。使用調(diào)試功能觀察程序lab4_1.cpp的運行流程,跟蹤觀察類的構(gòu)造函數(shù)、析構(gòu)函數(shù)、成員函數(shù)的執(zhí)行順序。參考程序如下:/lab4_1.cpp#include using namespace std;enum CPU_Rank P1=1,P2,P3,P4,P5,P6,P7 ;class CPUprivate:CPU_Rank rank;/數(shù)據(jù)成員,類中的變量int frequency;float voltage;public:CPU(CPU_Rank r,int f,float v)/構(gòu)造函數(shù),對變量初始化rank=r;frequency=f;voltage=v;cout構(gòu)造了一個CPU!endl;CPU() cout析構(gòu)了一個CPU!endl; /析構(gòu)函數(shù),清除變量,系統(tǒng)的要求CPU_Rank GetRank()const return rank; /取值成員函數(shù),取變量的值int GetFrequency()const return frequency; float GetVoltage() const return voltage; void SetRank(CPU_Rank r) rank=r; /賦值成員函數(shù),改變變量的值void SetFrequency(int f) frequency=f; void SetVoltage(float v) voltage=v; void run() coutCPU開始運行!endl; /其他成員函數(shù),根據(jù)情況給出void stop() coutCPU停止運行!endl; ;/const聲明為常成員函數(shù),禁止改變對象的數(shù)據(jù)成員的值void main()CPU a(P6,300,2.8);a.run();a.stop();3.(操作)調(diào)試操作步驟如下:(1) 單擊“調(diào)試 | 逐語句”命令,系統(tǒng)進(jìn)行單步執(zhí)行狀態(tài),程序開始運行,一個DOS窗口出現(xiàn),此時Visual Studio中光標(biāo)停在main()函數(shù)的入口處。(2) 單擊“調(diào)試 | 逐過程”,此時,光標(biāo)下移,程序準(zhǔn)備執(zhí)行CPU對象的初始化。(3) 單擊“調(diào)試 | 逐語句”,程序準(zhǔn)備執(zhí)行CPU類的構(gòu)造函數(shù)。(4) 連續(xù)單擊“調(diào)試 | 逐過程”,觀察構(gòu)造函數(shù)的執(zhí)行情況,直到執(zhí)行完構(gòu)造函數(shù),程序回到主函數(shù),光標(biāo)停在“a.run();”行前。(5) 此時程序準(zhǔn)備執(zhí)行CPU對象的run()方法,單擊“調(diào)試 | 逐語句”,程序進(jìn)入run()成員函數(shù),連續(xù)單擊“調(diào)試 | 逐過程”,直到光標(biāo)停在“a.stop();”行前。(6) 繼續(xù)執(zhí)行程序,參照上述的方法,觀察程序的執(zhí)行順序,加深對類的構(gòu)造函數(shù)、析構(gòu)函數(shù)、成員函數(shù)的執(zhí)行順序的認(rèn)識。(7) 單擊Step Into,進(jìn)入CPU()析構(gòu)函數(shù),連續(xù)單擊“調(diào)試 | 逐過程”,直到光標(biāo)又停在main()函數(shù)的“”行前。(8) 將光標(biāo)移到main()函數(shù)的“”后,右擊,再單擊“運行到光標(biāo)處”,運行結(jié)束。(9) 再試試“調(diào)試”菜單欄中別的菜單項,熟悉調(diào)試的各種方法。4.(編程)聲明CPU類、RAM類以及CDROM類。再聲明Computer類,觀察類對象及其成員變量的構(gòu)造與析構(gòu)順序,以及成員函數(shù)的調(diào)用。首先聲明CPU類(可使用lab4_1.cpp中聲明的CPU類)、RAM類以及CDROM類。再聲明Computer類:聲明私有數(shù)據(jù)成員cpu、ram、cdrom,聲明公有成員函數(shù)run、stop,可在其中輸出提示信息。在主程序中聲明一個Computer的對象,調(diào)用其成員函數(shù),觀察類對象及其成員變量的構(gòu)造與析構(gòu)順序,以及成員函數(shù)的調(diào)用。程序名:lab4_2.cpp。提示:RAM類中有一個數(shù)據(jù)成員(int ramtype;);CDROM類中有一個數(shù)據(jù)成員(int cdromtype;);為了觀察程序執(zhí)行的順序,類似程序lab4_1.cpp,在構(gòu)造函數(shù)、析構(gòu)函數(shù)、run和stop函數(shù)中應(yīng)包含一條輸出語句,給出相關(guān)的信息;每個類中至少包括:數(shù)據(jù)成員、構(gòu)造函數(shù)、析構(gòu)函數(shù)、取值成員函數(shù)、賦值成員函數(shù)。 程序及運行結(jié)果:/lab4_2.cpp#include using namespace std;enum CPU_RankP1=1,P2,P3,P4,P5,P6,P7;/聲明枚舉類型CPU_Rankclass CPU/聲明類CPUprivate:CPU_Rank rank;int frequency;float voltage;public:CPU(CPU_Rank r,int f,float v)rank=r;frequency=f;voltage=v;cout構(gòu)造了一個CPU!endl;CPU() cout析構(gòu)了一個CPU!endl; CPU_Rank GetRank()const return rank; int GetFrequency()const return frequency; float GetVoltage()const return voltage; void SetRank(CPU_Rank r) rank=r; void SetFrequency(int f) frequency=f; void SetVoltage(float v) voltage=v; ;class RAM/聲明類RAMprivate:int ramtype;public:RAM(int r=0)ramtype=r;cout構(gòu)造了一個RAM!endl;RAM() cout析構(gòu)了一個RAM!endl; int Getramtype()const return ramtype; void Setramtype(int r) ramtype=r; ;class CDROM/聲明類CDROMprivate:int cdromtype;public:CDROM(int cd=0)cdromtype=cd;cout構(gòu)造了一個CDROM!endl;CDROM() cout析構(gòu)了一個CDROM!endl; int Getcdromtype()const return cdromtype; void Setcdromtype (int c) cdromtype=c; ;class COMPUTER/聲明類COMPUTERprivate:CPU cpu;RAM ram;CDROM cdrom;public:COMPUTER(CPU_Rank r,int f,float v,int ra,int cd):cpu(r,f,v),ram(ra),cdrom(cd) cout構(gòu)造了一個COMPUTER!endl; COMPUTER() cout析構(gòu)了一個COMPUTER!endl; void run() coutCOMPUTER開始運行!endl; void stop() coutCOMPUTER停止運行!endl; ;void main()COMPUTER a(P6,300,2.8,2,500);a.run();a.stop();5.(操作)調(diào)試程序lab4_2.cpp。使用調(diào)試功能觀察lab4_2.cpp程序的運行流程,跟蹤觀察類的構(gòu)造函數(shù)、析構(gòu)函數(shù)、成員函數(shù)的執(zhí)行順序,特別注意觀察成員變量的構(gòu)造與析構(gòu)順序。6. 編程,習(xí)題2-31)聲明一個表示時間的結(jié)構(gòu)體。聲明一個表示時間的結(jié)構(gòu)體,可以精確表示年、月、日、小時、分、秒;提示用戶輸入年、月、日、小時、分、秒的值,然后完整地顯示出來。建立一個項目lab4_3,包含一個C+源程序lab4_3.cpp。在主程序中實現(xiàn)輸入輸出。參考運行結(jié)果: 程序及運行結(jié)果:/lab4_3.cpp(習(xí)題2-31)#include using namespace std;struct timeshort yy,mm,dd,hh,mi,ss;void main()time t1=2012,2,25,10,30,20;/賦初值coutt1.yy年t1.mm月t1.dd日t1.hh:t1.mi:t1.ssendl;time t2;coutt2.yy;coutt2.mm;coutt2.dd;coutt2.hh;coutt2.mi;coutt2.ss;coutt2.yy年t2.mm月t2.dd日t2.hh:t2.mi:t2.ssendl;7.(編程,習(xí)題4-10)設(shè)計一個用于人事管理的People(人員)類。類People的屬性:number(編號),sex(性別)、birthday(出生日期)、id(身份證號)等。其中“出生日期”聲明為一個“日期”類內(nèi)嵌子對象。用成員函數(shù)實現(xiàn)人員信息的錄入和顯示。要求包括:構(gòu)造函數(shù)和析構(gòu)函數(shù)、內(nèi)聯(lián)成員函數(shù)、組合。程序名:lab4_4.cpp。提示:構(gòu)造函數(shù)和析構(gòu)函數(shù)的函數(shù)體可以定義為空;兩個類中對年、月和日分別定義取值和賦值成員函數(shù);People類中的數(shù)據(jù)成員為:unsigned number;/編號,4位數(shù)字,第一位為1char sex;/性別,m為男,w為女Date birthday;/出生日期unsigned id;/身份證號,8位數(shù)字,第一位不為0參考程序運行結(jié)果: 程序及運行結(jié)果:/ lab4_4.cpp#include using namespace std;class Dateprivate:int yy,mm,dd;public:Date()Date() int Getyy()const return yy; int Getmm()const return mm; int Getdd()const return dd; void Setyy(int y) yy=y; void Setmm(int m) mm=m; void Setdd(int d) dd=d; ;class Peopleprivate:unsigned number;/編號,4位數(shù)字,第一位為1char sex;/性別,m為男,w為女Date birthday;/出生日期unsigned id;/身份證號,6位數(shù)字,第一位不為0public:People()People()unsigned Getnumber() return number; char Getsex() return sex; int Getbirthyy()const return birthday.Getyy(); int Getbirthmm()const return birthday.Getmm(); int Getbirthdd()const return birthday.Getdd(); unsigned Getid() return id; void Setnumber(unsigned nu) number=nu; void Setsex(char se) sex=se; void Setbirthyy(int y) birthday.Setyy(y); void Setbirthmm(int m) birthday.Setmm(m); void Setbirthdd(int d) birthday.Setdd(d); void Setid(unsigned d) id=d; ;void main()People p1,p2;unsigned n,d;char s;int yy,mm,dd;/輸入p1coutn;p1.Setnumber(n);couts;p1.Se
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 國慶節(jié)聯(lián)誼活動方案
- 現(xiàn)代經(jīng)濟(jì)環(huán)境下的市場動態(tài)與趨勢分析
- 弱電施工方案范本
- 1 有余數(shù)的除法 第二課時(說課稿)-2023-2024學(xué)年二年級下冊數(shù)學(xué)蘇教版
- 2023三年級英語下冊 Unit 1 My Body第1課時說課稿 陜旅版(三起)
- 6 有多少浪費本可避免 第一課時 說課稿-2023-2024學(xué)年道德與法治四年級下冊統(tǒng)編版001
- 2024年八年級物理下冊 12.1杠桿說課稿 (新版)新人教版001
- 《14學(xué)習(xí)有方法》(說課稿)-部編版(五四制)道德與法治二年級下冊
- 2023九年級語文下冊 第三單元 11 送東陽馬生序說課稿 新人教版001
- Unit8 We're twins(說課稿)-2023-2024學(xué)年譯林版(三起)英語三年級下冊
- 智研咨詢發(fā)布:2024年中國MVR蒸汽機(jī)械行業(yè)市場全景調(diào)查及投資前景預(yù)測報告
- IF鋼物理冶金原理與關(guān)鍵工藝技術(shù)1
- 煙花爆竹重大危險源辨識AQ 4131-2023知識培訓(xùn)
- 銷售提成對賭協(xié)議書范本 3篇
- 企業(yè)動火作業(yè)安全管理制度范文
- 六年級語文老師家長會
- EPC項目階段劃分及工作結(jié)構(gòu)分解方案
- 《跨學(xué)科實踐活動4 基于特定需求設(shè)計和制作簡易供氧器》教學(xué)設(shè)計
- 2024-2030年汽車啟停電池市場運行態(tài)勢分析及競爭格局展望報告
- 術(shù)后病人燙傷不良事件PDCA循環(huán)分析
- 信息安全意識培訓(xùn)課件
評論
0/150
提交評論