c++面向?qū)ο髮?shí)驗(yàn)報(bào)告_第1頁
c++面向?qū)ο髮?shí)驗(yàn)報(bào)告_第2頁
c++面向?qū)ο髮?shí)驗(yàn)報(bào)告_第3頁
c++面向?qū)ο髮?shí)驗(yàn)報(bào)告_第4頁
c++面向?qū)ο髮?shí)驗(yàn)報(bào)告_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、實(shí)驗(yàn)一 類與對(duì)象一、 實(shí)驗(yàn)?zāi)康?、掌握類的聲明和使用。2、掌握類的聲明和對(duì)象的聲明。3、復(fù)習(xí)具有不同訪問屬性的成員的訪問方式。4、觀察構(gòu)造函數(shù)和析構(gòu)函數(shù)的執(zhí)行過程。5、學(xué)習(xí)類的組合使用方法。6、使用VC+的debug調(diào)試功能觀察程序流程,跟蹤觀察類的構(gòu)造函數(shù)、析構(gòu)函數(shù)、成員 函數(shù)的執(zhí)行順序。二、 實(shí)驗(yàn)任務(wù)1、聲明一個(gè) CPU 類,包含等級(jí)( rank )、頻率( frequency )、電壓( voltage )等屬性,有兩個(gè)公有成員函數(shù) run 、 stop 。其中, rank 為枚舉類型 CPU_Rank ,聲明為 enum CPU_RankP1=1,P2,P3,P4,P5,P6,P7,

2、frequency 為單位是 MHz 的整型數(shù), voltage 為浮點(diǎn)型的電壓值。觀察構(gòu)造函數(shù)和析構(gòu)函數(shù)的調(diào)用順序。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è)類。3、(選作)設(shè)計(jì)一個(gè)用于人事管理的People (人員)類??紤]到通用性,這里只抽象出所有類型人員都具有的屬性:number (編號(hào))、sex (性別)、birthday (出生日期)

3、、id(身份證號(hào))等等。其中“出生日期”聲明為一個(gè)“日期”類內(nèi)嵌子對(duì)象。用成員函數(shù) 實(shí)現(xiàn)對(duì)人員信息的錄入和顯示。要求包括:構(gòu)造函數(shù)和析構(gòu)函數(shù)、拷貝構(gòu)造函數(shù)、內(nèi)聯(lián) 成員函數(shù)、組合。1、#include using namespace std;enum CPU_Rank p1=1,p2,p3,p4,p5,p6,p7;class CPUprivate:CPU_Rank rank;int freauency;float voltage;public: rank=r;freauency=f;voltage=v;cout This is CPU construct programendl;CPU()cou

4、t This is CPU destroy functionendl;void run()cout The CPU is runningendl;void stop()cout The CPU is Stoppingendl;int main()enum CPU_Rank rank;rank=p5;CPU cpu1(rank,1024,;();();return 0;運(yùn)行結(jié)果: This is CPU construct programThe CPU is runningThe CPU is StoppingThis is CPU destroy function2、#include usin

5、g namespace std;enum CPU_Rank p1=1,p2,p3,p4,p5,p6,p7;class CPUprivate:CPU_Rank rank;int freauency;float voltage;public:CPU(CPU_Rank r=p1,int f=0,float v=0) rank=r;freauency=f;voltage=v;cout This is CPU construct programendl;CPU()cout This is CPU destroy functionendl; void run()cout The CPU is runnin

6、gendl; void stop()cout The CPU is Stoppingendl; ;class RAMprivate:int rank;int size;public:RAM( int r=0, int s=0) rank=r;size=s;void run()cout The RAM is runningendl; void stop()cout The RAM is Stoppingendl; ;class CDROMprivate: intrank; intsize;public: rank=r;size=s;void run()cout The CDROM is runn

7、ingendl;void stop()cout The CDROM is Stoppingendl; ;class Computerprivate:CPU cpu;RAM ram;CDROM cdrom;public:Computer(CPU c,RAM r,CDROM cd) cout This is the Computer Constructendl;cpu=c;ram=r;cdrom=cd;void run() cout This is Computer is runningendl;();();void stop () cout This is Computer is stopend

8、l;(); ();int main() enum CPU_Rank rank;rank=p5;CPU cpu1(rank,1024,; RAMram(5,1024); CDROMcdrom(5,1024); Computer cp(cpu1,ram,cdrom);();();return 0;實(shí)驗(yàn)二 C+ 程序結(jié)構(gòu)1、 實(shí)驗(yàn)?zāi)康?.觀察程序運(yùn)行中的變量的作用域、生存期和可見性。2.學(xué)習(xí)類的靜態(tài)成員的使用。3.學(xué)習(xí)多文件結(jié)構(gòu)在 C+ 程序中的使用。2、實(shí)驗(yàn)任務(wù)1.運(yùn)行下面程序, 2. 觀察變量 x、 y 的值。實(shí)現(xiàn)客戶機(jī)( CLIENT )類。定義字符型靜態(tài)數(shù)據(jù)成員ServerName , 4.

9、保存其服 5. 務(wù)器名 6. 稱:整型靜態(tài)數(shù)據(jù)成員 ClientNum , 7.記錄已定義的客戶數(shù)量;定義靜態(tài)函數(shù) ChangeServerName ()改變服 8. 務(wù)器名 9.稱。在頭文件中定義類,10. 在文件中實(shí)現(xiàn), 11. 在文件中測(cè)試這個(gè)類, 12. 觀察相應(yīng)的成員變量取值的變化情況。實(shí)驗(yàn)二 C+ 程序結(jié)構(gòu)1、實(shí)驗(yàn)?zāi)康?. 觀察程序運(yùn)行中的變量的作用域、生存期和可見性。學(xué)習(xí)類的靜態(tài)成員的使用。學(xué)習(xí)多文件結(jié)構(gòu)在 C+ 程序中的使用。2、 實(shí)驗(yàn)任務(wù)1. 運(yùn)行下面程序, 2.觀察變量 x、 y 的值。實(shí)現(xiàn)客戶機(jī)( CLIENT )類。定義字符型靜態(tài)數(shù)據(jù)成員 ServerName ,4.

10、保存其服務(wù)器名 稱:整型靜態(tài)數(shù)據(jù)成員 ClientNum ,記錄已定義的客戶數(shù)量;定義靜態(tài)函數(shù) ChangeServerName ()改變服務(wù)器名稱。在頭文件中定義類,在文件中實(shí)現(xiàn),在文 件中測(cè)試這個(gè)類,觀察相應(yīng)的成員變量取值的變化情況。三、實(shí)驗(yàn)結(jié)果1.2. 服務(wù)器名稱為: N客戶機(jī)數(shù)量為: 2服務(wù)器名稱為: A實(shí)驗(yàn)源代碼:1.#include using namespace std;void fn1();int x = 1, y = 2;void main()cout Begin. endl;cout x = x endl;cout y = y endl;cout Evaluate x an

11、d y in main(). endl;int x = 10, y = 20;cout x = x endl;cout y = y endl;cout Step into fn1(). endl;fn1();cout Back in main endl;cout x = x endl;cout y = y endl; return 0;void fn1()int y = 200;cout x = x endl;cout y = y endl;2. /#include #include using namespace std;class CLIENTprivate:static char Ser

12、verName;static int ClientNum; public:CLIENT();CLIENT();static int GetClientNum();static void ChangServerName(char name); static char GetServerName();/#include CLIENT:CLIENT() ClientNum+ ; CLIENT:CLIENT()ClientNum- ;int CLIENT:GetClientNum()return ClientNum;void CLIENT:ChangServerName(char name) Serv

13、erName=name;char CLIENT:GetServerName()return ServerName;/#include #include int CLIENT:ClientNum = 0;char CLIENT:ServerName= N;int main()CLIENT a;CLIENT b;cout 服務(wù)器名稱為: CLIENT:GetServerName() endl;CLIENT:ChangServerName(A);cout 客戶機(jī)數(shù)量為: CLIENT:GetClientNum() endl; cout 服務(wù)器名稱為: CLIENT:GetServerName() e

14、ndl;實(shí)驗(yàn)三 數(shù)組與指針一、實(shí)驗(yàn)?zāi)康?、學(xué)習(xí)使用數(shù)組。2、學(xué)習(xí)字符串?dāng)?shù)據(jù)的組織和處理。3、掌握指針的使用方法。4、練習(xí)通過 debug 觀察指針的內(nèi)容及其所指的對(duì)象的內(nèi)容。5、練習(xí)通過動(dòng)態(tài)內(nèi)存分配實(shí)現(xiàn)動(dòng)態(tài)數(shù)組,并體會(huì)指針在其中的作用二、實(shí)驗(yàn)任務(wù)1、測(cè)試 3X3 矩陣轉(zhuǎn)置函數(shù)的程序,程序如下:#include using namespace std;void move (int matrix33)int i, j, k;for(i=0; i3; i+)for (j=0; ji; j+) k = matrixij; matrixij = matrixji; matrixji = k;int ma

15、in()int i, j;int data33;cout 輸入矩陣的元素 endl;for(i=0; i3; i+)for (j=0; j3; j+) cout 第 i+1 行第 j+1 dataij;cout 輸入的矩陣的為: endl;for(i=0; i3; i+)for (j=0; j3; j+) cout dataij ;cout endl;move(data);cout 轉(zhuǎn)置后的矩陣的為: endl;for(i=0; i3; i+)for (j=0; j3; j+) cout dataij ;cout endl;2、使用動(dòng)態(tài)內(nèi)存分配生成動(dòng)態(tài)數(shù)組來重新設(shè)計(jì)一個(gè)3X3 矩陣轉(zhuǎn)置函數(shù),使

16、用指針實(shí)現(xiàn)函數(shù)的功能。3、編程實(shí)現(xiàn)兩字符串的連接。要求使用字符數(shù)組保存字符串,不要使用系統(tǒng)函數(shù) 4、使用 String 類定義字符串對(duì)象,重新實(shí)現(xiàn)上一小題。(選作) 5 、定義一個(gè) Employee 類,其中包括姓名、街道地址、城市 和郵編等屬性,以及 change_name ( )和 display ()等函數(shù)。 display( ) 顯示姓名、街道地址、城市和郵編等屬性, change_name ()改變對(duì) 象的姓名屬性。實(shí)現(xiàn)并測(cè)試這個(gè)類。 (提示:對(duì)字符數(shù)組的賦值可以 使用字符串拷貝函數(shù) strcpy ( char * , char* ,name )。(選作) 6、定義包含個(gè) 5 元素的

17、對(duì)象數(shù)組,每個(gè)元素都是Employee類型的對(duì)象。實(shí)驗(yàn)四 繼承與派生一、實(shí)驗(yàn)?zāi)康?、學(xué)習(xí)定義和使用類的繼承關(guān)系,定義派生類。2、熟悉不同繼承方式下對(duì)基類成員的訪問控制。3、學(xué)習(xí)利用虛基類解決二義性問題。二、實(shí)驗(yàn)任務(wù)1、定義一個(gè)基類 Animal ,有私有整型成員變量 age ,構(gòu)造其派生類 dog, 在其成員函數(shù) SetAge(int n) 中直接給 age 賦值,看看會(huì)有什么問題, 把 age 改為公有成員變量,還會(huì)有問題嗎編程試試看。2、定義一個(gè)基類 BaseClass ,有整型成員變量 Number ,構(gòu)造其派生類 DerivedClass, 觀察構(gòu)造函數(shù)和析構(gòu)函數(shù)的執(zhí)行情況。3、定義一

18、個(gè)車( vehicle )基類,具有 MaxSpeed 、 Weight 等成員變 量, Run ,Stop 等成員函數(shù),由此派生出自行車(bicycle )類、汽車( motorcar )類,自行車類具有高度( Height )等屬性,汽車類有 座位數(shù)( SeatNum )等屬性。從 bicycle 和 motorcar 類派生出摩托車 ( motorcycle )類,在繼承過程中,注意把 vehicle 設(shè)置為虛基類。如 果不把設(shè)置為虛基類,會(huì)有什么問題編程試試看。實(shí)驗(yàn)結(jié)果:1、error C2248: age : cannot access private member declared

19、in class Animal改正方案:將 Animal 類中私有成員 age 換成公共成員。2、 構(gòu)造基類對(duì)象 !構(gòu)造派生類對(duì)象 !析構(gòu)派生類對(duì)象 !析構(gòu)基類對(duì)象 !3、 Now it is running!Now it has stopped!/ 如果 vehicle 不是虛基類,有錯(cuò)誤:error C2385: motorcycle:Run is ambiguous? 源程序:1 、 #include using namespace std;class Animalprivate: intage;public:Animal();Animal();class Dog : private Animalpublic:Dog();Dog();void SetAge(int n) age = n; ;int main()Dog a;(10);return 0;2、#include using namespace std;class BaseClasspublic:BaseClass() cout 構(gòu)造基類對(duì)象 ! endl;BaseClass() cout 析構(gòu)基類

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論