




已閱讀5頁(yè),還剩8頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
學(xué)習(xí)資料收集于網(wǎng)絡(luò),僅供參考實(shí)驗(yàn)04 類與對(duì)象(6學(xué)時(shí))(第4章 類與對(duì)象)一、實(shí)驗(yàn)?zāi)康?1) 掌握類的聲明和使用。(2) 掌握類的聲明和對(duì)象的聲明。(3) 復(fù)習(xí)具有不同訪問(wèn)屬性的成員的訪問(wèn)方式。(4) 觀察構(gòu)造函數(shù)和析構(gòu)函數(shù)的執(zhí)行過(guò)程。(5) 學(xué)習(xí)類的組合使用方法。(6) 使用Visual Studio 2010的調(diào)試功能觀察程序流程,跟蹤觀察類的構(gòu)造函數(shù)、析構(gòu)函數(shù)、成員函數(shù)的執(zhí)行順序。二、實(shí)驗(yàn)任務(wù)4_1 聲明一個(gè)CPU類。包含等級(jí)(rank)、頻率(frequency)、電壓(voltage)等屬性,有兩個(gè)公有成員函數(shù)run、stop。其中,rank為枚舉類型CPU_Rank,聲明為enum CPU_Rank P1=1, P2, P3, P4, P5, P6, P7 ; frequency為單位是MHz的整型數(shù),voltage為浮點(diǎn)型的電壓值。觀察構(gòu)造函數(shù)和析構(gòu)函數(shù)的調(diào)用順序。4_2 聲明一個(gè)簡(jiǎn)單的Computer類。有數(shù)據(jù)成員芯片(cpu)、內(nèi)存(ram)、光驅(qū)(cdrom)等,有兩個(gè)公有成員函數(shù)run和stop。cpu為CPU類的一個(gè)對(duì)象,ram為RAM類的一個(gè)對(duì)象,cdrom為CDROM類的一個(gè)對(duì)象,聲明并實(shí)現(xiàn)這個(gè)類。4_3 聲明一個(gè)表示時(shí)間的結(jié)構(gòu)體??梢跃_表示年、月、日、小時(shí)、分、秒;提示用戶輸入年、月、日、小時(shí)、分、秒的值,然后完整地顯示出來(lái)。4_4(習(xí)題4-10)設(shè)計(jì)一個(gè)用于人事管理的People(人員)類??紤]到通用性,這里只抽象出所有類型人員都具有的屬性:number(編號(hào)),sex(性別)、birthday(出生日期)、id(身份證號(hào))等。其中“出生日期”聲明為一個(gè)“日期”類內(nèi)嵌子對(duì)象。用成員函數(shù)實(shí)現(xiàn)人員信息的錄入和顯示。要求包括:構(gòu)造函數(shù)和析構(gòu)函數(shù)、內(nèi)聯(lián)成員函數(shù)、組合。三、實(shí)驗(yàn)步驟1.(驗(yàn)證)聲明一個(gè)CPU類,觀察構(gòu)造函數(shù)和析構(gòu)函數(shù)的調(diào)用順序。首先聲明枚舉類型CPU_Rank,例如enum CPU_Rank P1=1, P2, P3, P4, P5, P6, P7 ,再聲明CPU類,包含等級(jí)(rank)、頻率(frequency)、電壓(voltage)等私有數(shù)據(jù)成員,聲明成員函數(shù)run和stop,用來(lái)輸出提示信息,在構(gòu)造函數(shù)和析構(gòu)函數(shù)中也可以輸出提示順序。在主程序中聲明一個(gè)CPU的對(duì)象,調(diào)用其成員函數(shù),觀察類對(duì)象的構(gòu)造與析構(gòu)順序,以及成員函數(shù)的調(diào)用。程序名:lab4_1.cpp。(程序見(jiàn)步驟2) 程序的運(yùn)行結(jié)果:2.(示例)調(diào)試程序文件lab4_1.cpp。使用調(diào)試功能觀察程序lab4_1.cpp的運(yùn)行流程,跟蹤觀察類的構(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ù),對(duì)變量初始化rank=r;frequency=f;voltage=v;cout構(gòu)造了一個(gè)CPU!endl;CPU() cout析構(gòu)了一個(gè)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開(kāi)始運(yùn)行!endl; /其他成員函數(shù),根據(jù)情況給出void stop() coutCPU停止運(yùn)行!endl; ;/const聲明為常成員函數(shù),禁止改變對(duì)象的數(shù)據(jù)成員的值void main()CPU a(P6,300,2.8);a.run();a.stop();3.(操作)調(diào)試操作步驟如下:(1) 單擊“調(diào)試 | 逐語(yǔ)句”命令,系統(tǒng)進(jìn)行單步執(zhí)行狀態(tài),程序開(kāi)始運(yùn)行,一個(gè)DOS窗口出現(xiàn),此時(shí)Visual Studio中光標(biāo)停在main()函數(shù)的入口處。(2) 單擊“調(diào)試 | 逐過(guò)程”,此時(shí),光標(biāo)下移,程序準(zhǔn)備執(zhí)行CPU對(duì)象的初始化。(3) 單擊“調(diào)試 | 逐語(yǔ)句”,程序準(zhǔn)備執(zhí)行CPU類的構(gòu)造函數(shù)。(4) 連續(xù)單擊“調(diào)試 | 逐過(guò)程”,觀察構(gòu)造函數(shù)的執(zhí)行情況,直到執(zhí)行完構(gòu)造函數(shù),程序回到主函數(shù),光標(biāo)停在“a.run();”行前。(5) 此時(shí)程序準(zhǔn)備執(zhí)行CPU對(duì)象的run()方法,單擊“調(diào)試 | 逐語(yǔ)句”,程序進(jìn)入run()成員函數(shù),連續(xù)單擊“調(diào)試 | 逐過(guò)程”,直到光標(biāo)停在“a.stop();”行前。(6) 繼續(xù)執(zhí)行程序,參照上述的方法,觀察程序的執(zhí)行順序,加深對(duì)類的構(gòu)造函數(shù)、析構(gòu)函數(shù)、成員函數(shù)的執(zhí)行順序的認(rèn)識(shí)。(7) 單擊Step Into,進(jìn)入CPU()析構(gòu)函數(shù),連續(xù)單擊“調(diào)試 | 逐過(guò)程”,直到光標(biāo)又停在main()函數(shù)的“”行前。(8) 將光標(biāo)移到main()函數(shù)的“”后,右擊,再單擊“運(yùn)行到光標(biāo)處”,運(yùn)行結(jié)束。(9) 再試試“調(diào)試”菜單欄中別的菜單項(xiàng),熟悉調(diào)試的各種方法。4.(編程)聲明CPU類、RAM類以及CDROM類。再聲明Computer類,觀察類對(duì)象及其成員變量的構(gòu)造與析構(gòu)順序,以及成員函數(shù)的調(diào)用。首先聲明CPU類(可使用lab4_1.cpp中聲明的CPU類)、RAM類以及CDROM類。再聲明Computer類:聲明私有數(shù)據(jù)成員cpu、ram、cdrom,聲明公有成員函數(shù)run、stop,可在其中輸出提示信息。在主程序中聲明一個(gè)Computer的對(duì)象,調(diào)用其成員函數(shù),觀察類對(duì)象及其成員變量的構(gòu)造與析構(gòu)順序,以及成員函數(shù)的調(diào)用。程序名:lab4_2.cpp。提示:RAM類中有一個(gè)數(shù)據(jù)成員(int ramtype;);CDROM類中有一個(gè)數(shù)據(jù)成員(int cdromtype;);為了觀察程序執(zhí)行的順序,類似程序lab4_1.cpp,在構(gòu)造函數(shù)、析構(gòu)函數(shù)、run和stop函數(shù)中應(yīng)包含一條輸出語(yǔ)句,給出相關(guān)的信息;每個(gè)類中至少包括:數(shù)據(jù)成員、構(gòu)造函數(shù)、析構(gòu)函數(shù)、取值成員函數(shù)、賦值成員函數(shù)。 程序及運(yùn)行結(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)造了一個(gè)CPU!endl;CPU() cout析構(gòu)了一個(gè)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)造了一個(gè)RAM!endl;RAM() cout析構(gòu)了一個(gè)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)造了一個(gè)CDROM!endl;CDROM() cout析構(gòu)了一個(gè)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)造了一個(gè)COMPUTER!endl; COMPUTER() cout析構(gòu)了一個(gè)COMPUTER!endl; void run() coutCOMPUTER開(kāi)始運(yùn)行!endl; void stop() coutCOMPUTER停止運(yùn)行!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程序的運(yùn)行流程,跟蹤觀察類的構(gòu)造函數(shù)、析構(gòu)函數(shù)、成員函數(shù)的執(zhí)行順序,特別注意觀察成員變量的構(gòu)造與析構(gòu)順序。6. 編程,習(xí)題2-31)聲明一個(gè)表示時(shí)間的結(jié)構(gòu)體。聲明一個(gè)表示時(shí)間的結(jié)構(gòu)體,可以精確表示年、月、日、小時(shí)、分、秒;提示用戶輸入年、月、日、小時(shí)、分、秒的值,然后完整地顯示出來(lái)。建立一個(gè)項(xiàng)目lab4_3,包含一個(gè)C+源程序lab4_3.cpp。在主程序中實(shí)現(xiàn)輸入輸出。參考運(yùn)行結(jié)果: 程序及運(yùn)行結(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è)計(jì)一個(gè)用于人事管理的People(人員)類。類People的屬性:number(編號(hào)),sex(性別)、birthday(出生日期)、id(身份證號(hào))等。其中“出生日期”聲明為一個(gè)“日期”類內(nèi)嵌子對(duì)象。用成員函數(shù)實(shí)現(xiàn)人員信息的錄入和顯示。要求包括:構(gòu)造函數(shù)和析構(gòu)函數(shù)、內(nèi)聯(lián)成員函數(shù)、組合。程序名:lab4_4.cpp。提示:構(gòu)造函數(shù)和析構(gòu)函數(shù)的函數(shù)體可以定義為空;兩個(gè)類中對(duì)年、月和日分別定義取值和賦值成員函數(shù);People類中的數(shù)據(jù)成員為:unsigned number;/編號(hào),4位數(shù)字,第一位為1char sex;/性別,m為男,w為女Date birthday;/出生日期unsigned id;/身份證號(hào),8位數(shù)字,第一位不為0參考程序運(yùn)行結(jié)果: 程序及運(yùn)行結(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;/編號(hào),4位數(shù)字,第一位為1char sex;/性別,m為男,w為女Date birthday;/出生日期unsigned id;/身份證號(hào),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. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年教師招聘之中學(xué)教師招聘能力測(cè)試試卷B卷附答案
- 2025年二級(jí)造價(jià)工程師之安裝工程建設(shè)工程計(jì)量與計(jì)價(jià)實(shí)務(wù)能力提升試卷B卷附答案
- 煉鐵中的廢氣治理技術(shù)研究考核試卷
- 玻璃保溫容器生產(chǎn)過(guò)程優(yōu)化與改進(jìn)措施實(shí)踐探索總結(jié)考核試卷
- 2025至2030年中國(guó)井式多用爐市場(chǎng)分析及競(jìng)爭(zhēng)策略研究報(bào)告
- 肥料制造中的供應(yīng)鏈管理與優(yōu)化策略考核試卷
- 粉末冶金在G通信設(shè)備制造中的應(yīng)用考核試卷
- 電氣設(shè)備高頻電路設(shè)計(jì)與分析考核試卷
- 電池制造過(guò)程中的產(chǎn)品質(zhì)量分析與提升考核試卷
- 橡膠板在電子設(shè)備防塵密封中的應(yīng)用考核試卷
- 2024年福建高考?xì)v史真題(解析版)
- 項(xiàng)目六-解決溫標(biāo)轉(zhuǎn)換問(wèn)題認(rèn)識(shí)程序和程序設(shè)計(jì)語(yǔ)言
- 印刷廠安全生產(chǎn)事故應(yīng)急預(yù)案模版(3篇)
- 道路運(yùn)輸免責(zé)協(xié)議書(2篇)
- 個(gè)人借款單范本
- 服務(wù)響應(yīng)時(shí)間和服務(wù)保障方案
- 安全生產(chǎn)法律法規(guī)知識(shí)培訓(xùn)課件
- 《糧食機(jī)械原理與應(yīng)用》 課件全套 阮競(jìng)蘭 1-11篩分除雜設(shè)備-色選設(shè)備
- 七年級(jí)英語(yǔ)上冊(cè)全冊(cè)單元檢測(cè)題(附聽(tīng)力材料及答案)
- 泰興經(jīng)濟(jì)開(kāi)發(fā)區(qū)國(guó)有企業(yè)招聘筆試題庫(kù)2024
- DL∕T 5509-2015 架空輸電線路覆冰勘測(cè)規(guī)程
評(píng)論
0/150
提交評(píng)論