C++程序設(shè)計實驗指導(dǎo)書.doc_第1頁
C++程序設(shè)計實驗指導(dǎo)書.doc_第2頁
C++程序設(shè)計實驗指導(dǎo)書.doc_第3頁
C++程序設(shè)計實驗指導(dǎo)書.doc_第4頁
C++程序設(shè)計實驗指導(dǎo)書.doc_第5頁
已閱讀5頁,還剩36頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

C+程序設(shè)計實驗指導(dǎo)書C+程序設(shè)計實驗指導(dǎo)書軟件學(xué)院遼寧工業(yè)大學(xué)2012年8月目 錄實驗一 VC+ + 6.0開發(fā)環(huán)境應(yīng)用入門3實驗二 C+ +簡單程序設(shè)計7實驗三 函數(shù)的應(yīng)用9實驗四 類與對象11實驗五 C+ + 程序的結(jié)構(gòu)18實驗六 數(shù)組、指針與字符串23實驗七 繼承與派生28實驗八 多態(tài)性31實驗九 異常處理37實驗十 創(chuàng)建Windows應(yīng)用程序39實驗一 VC+ + 6.0開發(fā)環(huán)境應(yīng)用入門一、實驗?zāi)康?了解Visual C+ + 6.0的特點。2熟悉Visual C+ + 6.0的開發(fā)環(huán)境。3學(xué)習(xí)用Visual C+ + 6.0編寫標(biāo)準(zhǔn)的C+ +控制臺程序。二、實驗內(nèi)容1使用Visual C+ +建立一個非圖形化的標(biāo)準(zhǔn)C+ +程序,編譯、運行例2-1,即以下程序:#includeusing namespace std;int main( ) cout“Hello! n”; cout2; fib(1)= fib(2)=1。四、實驗報告要求1報告請用專門的實驗報告紙書寫,字跡清晰,格式規(guī)范。2報告中應(yīng)寫清姓名、學(xué)號、實驗日期、實驗題目、實驗?zāi)康?、實驗?nèi)容及實驗過程。3無論實驗完成與否,均應(yīng)有實驗結(jié)果分析。報告中應(yīng)含源代碼,如調(diào)試通過,請注明通過并寫出或打印出運行結(jié)果;如未調(diào)試通過或結(jié)果不正確,請分析原因。實驗四 類與對象一、實驗?zāi)康?掌握類的聲明和使用。2掌握類的聲明和對象的聲明。3復(fù)習(xí)具有不同訪問屬性的成員的訪問方式。4觀察構(gòu)造函數(shù)和析構(gòu)函數(shù)的執(zhí)行過程。5學(xué)習(xí)類的組合使用方法。二、實驗內(nèi)容1聲明一個CPU類,包含等級(rank)、頻率(frequency)、電壓(voltage)等屬性,有兩個公有成員函數(shù)run 、stop。其中,rank為枚舉類型CPU-Rank,聲明為enum CPU-RankP1=1,P2,P3,P4,P5,P6,P7;frequency為單位是MHz的整型數(shù),voltage為浮點型的電壓值。觀察構(gòu)造函數(shù)和析構(gòu)函數(shù)的調(diào)用順序。2聲明一個簡單的Computer類,有數(shù)據(jù)成員芯片(cpu)、內(nèi)存(ram)、光驅(qū)(cdrom)等,有兩個公有成員函數(shù)run和stop。Cpu為CPU類的一個對象,ram為RAM類的一個對象,cdrom為CDROM類的一個對象,聲明并實現(xiàn)這個類。3(選做)涉及一個用于人事管理的people(人員)類??紤]通用性,這里只抽象出所有類型人員都具有的屬性:number(編號)、sex(性別)、birthdy(出生日期)、id(身份證號)等。其中“出生日期”聲明為一個“日期”類內(nèi)嵌子對象。用成員函數(shù)實現(xiàn)對人員信息的錄入和顯示。要求包括:構(gòu)造函數(shù)和析構(gòu)函數(shù)、拷貝構(gòu)造函數(shù)、內(nèi)聯(lián)成員函數(shù)、組合。三、實驗步驟1 內(nèi)容1參考程序如下:#include using namespace std;enum CPU_Rank P1=1,P2,P3,P4,P5,P6,P7;class 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; void Run() cout CPU開始運行! endl; void Stop() cout CPU停止運行! endl; ;int main()CPU a(P6,300,2.8);a.Run();a.Stop();2內(nèi)容1參考程序如下:#include using namespace std;enum CPU_Rank P1=1,P2,P3,P4,P5,P6,P7;class 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 () 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; void Run() cout CPU開始運行! endl; void Stop() cout CPU停止運行! endl; ;class RAMpublic: RAM ()cout 構(gòu)造了一個RAM! endl; RAM () cout 析構(gòu)了一個RAM! endl; void Run() cout RAM開始運行! endl; void Stop() cout RAM停止運行! endl; ;class CDROMpublic: CDROM ()cout 構(gòu)造了一個CDROM! endl; CDROM () cout 析構(gòu)了一個CDROM! endl; void Run() cout CDROM開始運行! endl; void Stop() cout CDROM停止運行! endl; ;class COMPUTERprivate:CPU cpu;RAM ram;CDROM cdrom;public:COMPUTER()cout 構(gòu)造了一個COMPUTER! endl;COMPUTER () cout 析構(gòu)了一個COMPUTER! endl; void Run() cout COMPUTER開始運行! endl;cpu.Run();ram.Run();void Stop() ram.Stop();cpu.Stop();cout COMPUTER停止運行! endl; ;int main()COMPUTER a;a.Run();a.Stop();四、實驗報告要求1報告請用專門的實驗報告紙書寫,字跡清晰,格式規(guī)范。2報告中應(yīng)寫清姓名、學(xué)號、實驗日期、實驗題目、實驗?zāi)康摹嶒瀮?nèi)容及實驗過程。3無論實驗完成與否,均應(yīng)有實驗結(jié)果分析。報告中應(yīng)含源代碼,如調(diào)試通過,請注明通過并寫出或打印出運行結(jié)果;如未調(diào)試通過或結(jié)果不正確,請分析原因。實驗五 C+ + 程序的結(jié)構(gòu)一、實驗?zāi)康?觀察程序運行中變量的作用域、生存期和可見性。2學(xué)習(xí)類的靜態(tài)成員的使用。3學(xué)習(xí)多文件結(jié)構(gòu)再C+ + 程序中的使用。二、實驗內(nèi)容1 運行下面的程序,觀察變量x 、y的值。/lab5_1.cpp#include using namespace std;void fn1(); int x = 1, y = 2; int main()cout Begin. endl; cout x = x endl; cout y = y endl;cout Evaluate x and 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實現(xiàn)客戶機(CLIENT)類。聲明字符型靜態(tài)數(shù)據(jù)成員ServerName,保存其服務(wù)器名稱;聲明整型靜態(tài)數(shù)據(jù)成員ClientNum,記錄已定義的客戶數(shù)量;定義靜態(tài)函數(shù)ChangeServerName()改變服務(wù)器名稱。頭文件client.h中聲明類,在文件client.cpp中實現(xiàn),在文件test.cpp中測試這個類,觀察相應(yīng)的成員變量取值的變化情況。三、實驗步驟1運行l(wèi)ab5_1,觀察程序輸出。2 內(nèi)容2參考程序如下:/lab5_2.cpp#include client.hint CLIENT:ClientNum = 0;char CLIENT:ServerName= N;int main()CLIENT a;CLIENT b;cout 服務(wù)器名稱為: CLIENT:GetServerName() endl;CLIENT:ChangServerName(A);cout 客戶機數(shù)量為: CLIENT:GetClientNum() endl;cout 服務(wù)器名稱為: CLIENT:GetServerName() endl; /client.cpp#include client.hCLIENT:CLIENT()ClientNum+ ; CLIENT:CLIENT() ClientNum- ; int CLIENT:GetClientNum() return ClientNum; void CLIENT:ChangServerName(char name) ServerName=name; char CLIENT:GetServerName() return ServerName; /client.h#ifndef Client_H#define Client_H#include #include using namespace std;class CLIENTprivate: static char ServerName; static int ClientNum;public: CLIENT(); CLIENT(); static int GetClientNum(); static void ChangServerName(char name); static char GetServerName();#endif/Client_H四、實驗報告要求1報告請用專門的實驗報告紙書寫,字跡清晰,格式規(guī)范。2報告中應(yīng)寫清姓名、學(xué)號、實驗日期、實驗題目、實驗?zāi)康?、實驗?nèi)容及實驗過程。3無論實驗完成與否,均應(yīng)有實驗結(jié)果分析。報告中應(yīng)含源代碼,如調(diào)試通過,請注明通過并寫出或打印出運行結(jié)果;如未調(diào)試通過或結(jié)果不正確,請分析原因。實驗六 數(shù)組、指針與字符串一、實驗?zāi)康?學(xué)習(xí)使用數(shù)組數(shù)據(jù)對象。2學(xué)習(xí)字符串?dāng)?shù)據(jù)的組織和處理。3學(xué)習(xí)標(biāo)準(zhǔn)C+ +庫的使用。4掌握指針的使用方法。5練習(xí)通過動態(tài)內(nèi)存分配實現(xiàn)動態(tài)數(shù)組,并體會指針在其中的作用。二、實驗內(nèi)容1編寫并測試33矩陣轉(zhuǎn)置函數(shù),使用數(shù)組保存33矩陣。2使用動態(tài)內(nèi)存分配生成動態(tài)數(shù)組來重新完成上題,使用指針實現(xiàn)函數(shù)的功能。3編程實現(xiàn)兩字符串的連接。要求使用字符數(shù)組保存字符串,不要使用系統(tǒng)函數(shù)。4使用string類聲明字符串對象,重新實現(xiàn)上一小題。5聲明一個Employee類,其中包括姓名、街道地址、城市和郵編等屬性,以及change-name( )和display( )等函數(shù)。display( )現(xiàn)實姓名、街道地址、城市和郵編等屬性,change-name( )改變對象的姓名屬性。實現(xiàn)并測試這個類。三、實驗步驟1內(nèi)容1參考程序如下:#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 main()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內(nèi)容5參考程序如下:include #include using namespace std;class Employeeprivate:char name30;char street30;char city18;char zip7;public:Employee(char *n, char *str, char *ct, char *z);void change_name(char *n);void display();Employee:Employee (char *n,char *str,char *ct, char *z)strcpy(name, n);strcpy(street, str);strcpy(city, ct);strcpy(zip, z);void Employee:change_name (char *n)strcpy(name, n);void Employee:display ()cout name street ;cout city zip endl;四、實驗報告要求1報告請用專門的實驗報告紙書寫,字跡清晰,格式規(guī)范。2報告中應(yīng)寫清姓名、學(xué)號、實驗日期、實驗題目、實驗?zāi)康摹嶒瀮?nèi)容及實驗過程。3無論實驗完成與否,均應(yīng)有實驗結(jié)果分析。報告中應(yīng)含源代碼,如調(diào)試通過,請注明通過并寫出或打印出運行結(jié)果;如未調(diào)試通過或結(jié)果不正確,請分析原因。實驗七 繼承與派生一、實驗?zāi)康?學(xué)習(xí)聲明和使用類的繼承關(guān)系,聲明派生類。2熟悉不同繼承方式下對基類成員的訪問控制。3學(xué)習(xí)利用虛基類解決二義性問題。二、實驗內(nèi)容1聲明一個基類Animal,私有整型成員變量age,構(gòu)造其派生類dog,在其成員函數(shù)SetAge(int n)中直接給age賦值,看看會有什么問題,把age改為公有成員變量,還有有問題嗎?2聲明一個基類BaseClass,有整型成員變量Number,構(gòu)造其派生類DerivedClass,觀察構(gòu)造函數(shù)和析構(gòu)函數(shù)的執(zhí)行情況。3聲明一個車(vehicle)基類,具有MaxSpeed等成員變量,Run、Stop等成員函數(shù),由此派生出自行車(bicycle)類,汽車(motorcar)類。自行車(bicycle)類有高度(Height)等屬性,汽車(motorcar)類有座位數(shù)(SeatNum)等屬性。從bicycle和motorcar派生出摩托車(motorcycle)類,在繼承過程中,注意把vehicle設(shè)置為虛基類。如果不把vehicle設(shè)置為虛基類,會有什么問題?三、實驗步驟1 內(nèi)容1參考程序如下:#include using namespace std;class Animalpublic:int age;public: Animal();Animal();class Dog : private Animal public:Dog();Dog();void SetAge(int n) age = n;int main()Dog a;a.SetAge(10);2 內(nèi)容2參考程序如下:#include using namespace std;class BaseClasspublic: BaseClass() cout 構(gòu)造基類對象! endl;BaseClass() cout 析構(gòu)基類對象! endl;class DerivedClass : public BaseClasspublic: DerivedClass() cout 構(gòu)造派生類對象! endl;DerivedClass() cout 析構(gòu)派生類對象! endl;int main() DerivedClass d;3編寫程序聲明一個車(vehicle)基類,由此派生出自行車(bicycle)類汽車(motorcar)類。再從bicycle和motorcar派生出摩托車(motorcycle)類,在main()函數(shù)中測試這個類。四、實驗報告要求1報告請用專門的實驗報告紙書寫,字跡清晰,格式規(guī)范。2報告中應(yīng)寫清姓名、學(xué)號、實驗日期、實驗題目、實驗?zāi)康?、實驗?nèi)容及實驗過程。3無論實驗完成與否,均應(yīng)有實驗結(jié)果分析。報告中應(yīng)含源代碼,如調(diào)試通過,請注明通過并寫出或打印出運行結(jié)果;如未調(diào)試通過或結(jié)果不正確,請分析原因。實驗八 多態(tài)性一、實驗?zāi)康?掌握運算符重載的方法。2學(xué)習(xí)使用虛函數(shù)實現(xiàn)動態(tài)多態(tài)性。二、實驗內(nèi)容1聲明Point類,有坐標(biāo)-x,-y兩個成員變量;對Point類重載“+ +”(自增)、“- -”(自減)運算符,實現(xiàn)對坐標(biāo)值的改變。2聲明一個車(vehicle)基類,由Run、Stop等成員函數(shù),由此派生出自行車(bicycle)類、汽車(motorcar)類,從bicycle和motorcar派生出摩托車(motorcycle)類,它們都有Run、Stop等成員函數(shù)。觀察虛函數(shù)的作用。三、實驗步驟1 內(nèi)容1參考程序如下:#include using namespace std;class Pointprivate:int _x, _y;public:Point& operator+();Point operator+(int);Point& operator-();Point operator-(int);Point() _x = _y = 0; int x() return _x; int y() return _y; ;Point& Point:operator+()_x+;_y+;return *this;Point Point:operator+(int)Point temp = *this;+*this;return temp;Point& Point:operator-()_x-;_y-;return *this;Point Point:operator-(int)Point temp = *this;-*this;return temp;int main()Point A;cout A的值為: A.x() , A.y() endl;A+;cout A的值為: A.x() , A.y() endl;+A;cout A的值為: A.x() , A.y() endl;A-;cout A的值為: A.x() , A.y() endl;-A;cout A的值為: A.x() , A.y() endl;2內(nèi)容2參考程序如下:#include using namespace std;class vehicleprivate:int MaxSpeed;int Weight;public: vehicle()MaxSpeed=0; Weight=0;vehicle();virtual void Run() cout A vehicle is running! endl; virtual void Stop() cout A vehicle has stopped! endl; ;class bicycle : virtual public vehicle private:int Height;public:bicycle();bicycle();void Run() cout A bicycle is running! endl; void Stop() cout A bicycle has stopped! endl; ; class motorcar : virtual public vehicle private:int SeatNum;public:motorcar();motorcar();void Run() cout A motorcar is running! endl; void Stop() cout A motorcar has stopped! endl; ;class motorcycle : public bicycle , public motorcar public:motorcycle ();motorcycle ();void Run() cout A motorcycle is running! endl; void Stop() cout A motorcycle has stopped! Run();ptr = &b;ptr-Run();ptr = &c;ptr-Run();ptr = &d;ptr-Run();四、實驗報告要求1報告請用專門的實驗報告紙書寫,字跡清晰,格式規(guī)范。2報告中應(yīng)寫清姓名、學(xué)號、實驗日期、實驗題目、實驗?zāi)康?、實驗?nèi)容及實驗過程。3無論實驗完成與否,均應(yīng)有實驗結(jié)果分析。報告中應(yīng)含源代碼,如調(diào)試通過,請注明通過并寫出或打印出運行結(jié)果;如未調(diào)試通過或結(jié)果不正確,請分析原因。實驗九 異常處理一、實驗?zāi)康?正確理解C+ +的異常處理機制。2 學(xué)習(xí)異常處理的聲明和執(zhí)行過程。二、實驗內(nèi)容聲明一個異常類Cexception,有成員函數(shù)Reason( ),用來顯示異常的類型,在子函數(shù)中觸發(fā)異常,在主程序中處理異常,觀察程序的執(zhí)行流程。三、實驗步驟內(nèi)容參考程序如下:#include using namespace std;class CExc

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論