九九热最新网址,777奇米四色米奇影院在线播放,国产精品18久久久久久久久久,中文有码视频,亚洲一区在线免费观看,国产91精品在线,婷婷丁香六月天

歡迎來到裝配圖網(wǎng)! | 幫助中心 裝配圖網(wǎng)zhuangpeitu.com!
裝配圖網(wǎng)
ImageVerifierCode 換一換
首頁 裝配圖網(wǎng) > 資源分類 > DOC文檔下載  

《C++程序設(shè)計》實(shí)驗指導(dǎo)書

  • 資源ID:28009223       資源大?。?span id="24d9guoke414" class="font-tahoma">505.50KB        全文頁數(shù):45頁
  • 資源格式: DOC        下載積分:15積分
快捷下載 游客一鍵下載
會員登錄下載
微信登錄下載
三方登錄下載: 微信開放平臺登錄 支付寶登錄   QQ登錄   微博登錄  
二維碼
微信掃一掃登錄
下載資源需要15積分
郵箱/手機(jī):
溫馨提示:
用戶名和密碼都是您填寫的郵箱或者手機(jī)號,方便查詢和重復(fù)下載(系統(tǒng)自動生成)
支付方式: 支付寶    微信支付   
驗證碼:   換一換

 
賬號:
密碼:
驗證碼:   換一換
  忘記密碼?
    
友情提示
2、PDF文件下載后,可能會被瀏覽器默認(rèn)打開,此種情況可以點(diǎn)擊瀏覽器菜單,保存網(wǎng)頁到桌面,就可以正常下載了。
3、本站不支持迅雷下載,請使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
4、本站資源下載后的文檔和圖紙-無水印,預(yù)覽文檔經(jīng)過壓縮,下載后原文更清晰。
5、試題試卷類文檔,如果標(biāo)題沒有明確說明有答案則都視為沒有答案,請知曉。

《C++程序設(shè)計》實(shí)驗指導(dǎo)書

C程序設(shè)計實(shí)驗指導(dǎo)書董曉梅 張?zhí)斐?編寫東北大學(xué) 信息科學(xué)與工程學(xué)院計算機(jī)軟件與理論研究所2006年3月前 言本書是本科生課程C+語言程序設(shè)計的配套實(shí)驗指導(dǎo)書。C+語言程序設(shè)計是一門實(shí)踐性很強(qiáng)的課程,學(xué)習(xí)C+語言程序設(shè)計最重要的環(huán)節(jié)就是實(shí)踐,而不可能僅僅通過閱讀教科書或聽課來掌握。書中內(nèi)容包括13個精心設(shè)計的實(shí)驗,與C+語言程序設(shè)計課程的各章內(nèi)容配合,每一個實(shí)驗都包括“實(shí)驗?zāi)康摹?、“?shí)驗要求”、“實(shí)驗內(nèi)容及實(shí)驗步驟”和“思考題”幾部分,使學(xué)生在實(shí)踐中達(dá)到對教科書和課堂內(nèi)容的深入理解和熟練掌握。本書中的實(shí)驗內(nèi)容不僅可以指導(dǎo)學(xué)生上機(jī)練習(xí),也可以由教師作為例題在課堂上演示,以豐富教學(xué)內(nèi)容。目錄前 言1Microsoft Visual C+ 6.0開發(fā)環(huán)境簡介1Exercise 1 熟悉語言及程序開發(fā)環(huán)境3Exercise 2 C+簡單程序設(shè)計10Exercise 3 函數(shù)的應(yīng)用15Exercise 4 類與對象18Exercise 5 作用域與多文件程序21Exercise 6 數(shù)組、指針與字符串24Exercise 7 繼承與派生27Exercise 8 多態(tài)性29Exercise 9 工資管理程序設(shè)計30Exercise 10 模板31Exercise 11 流類庫與輸入輸出32Exercise 12 異常處理35Exercise 13 Windows編程基礎(chǔ)36Microsoft Visual C+ 6.0開發(fā)環(huán)境簡介Developer Studio是VisualC6.0的核心部分,是Microsoft Windows環(huán)境下的一個集成開發(fā)環(huán)境,集成了開發(fā)C或 C應(yīng)用程序所需要的所有工具和C編譯器。1主窗口包括標(biāo)題欄、菜單欄、工具欄、項目工作區(qū)窗口、文檔窗口、輸出窗口和狀態(tài)欄,如圖1所示。圖1 Visual C6.0集成開發(fā)平臺的主窗口2菜單欄包括以下菜單項:File, Edit, View, Insert, Project, Build, Tools, Windows和 Help。3工具欄默認(rèn)時顯示三個工具欄:Standard, Build和WizardBar。4采用項目開發(fā)應(yīng)用程序采用項目開發(fā)一個應(yīng)用程序的一般步驟如下:(1) 創(chuàng)建一個項目,系統(tǒng)自動創(chuàng)建了應(yīng)用程序所需的基本文件。(2) 采用工作區(qū)窗口建立項目中的類、文件和資源。(3) 將文件添加到項目中,或從項目中刪除文件。(4) 編輯項目中的源代碼和資源。(5) 連編項目。(6) 執(zhí)行應(yīng)用程序。Exercise 1 熟悉語言及程序開發(fā)環(huán)境1 實(shí)驗?zāi)康氖煜icrosoft Visual C 6.0集成開發(fā)環(huán)境,學(xué)習(xí)創(chuàng)建控制臺應(yīng)用程序項目、編輯源程序、編譯和調(diào)試程序。2 實(shí)驗要求(1)熟悉程序開發(fā)環(huán)境(2)編輯源程序(3)編譯并調(diào)試程序3 實(shí)驗內(nèi)容及實(shí)驗步驟31 熟悉Microsoft Visual Studio 6.0 的開發(fā)環(huán)境(1) 啟動Visual C+6.0;(2) 用鼠標(biāo)左鍵分別單擊各主菜單項,觀察各下拉菜單的項目內(nèi)容;(3) 單擊“文件>新建”,觀察彈出的對話框;(4) 分別單擊“新建”對話框的各選項卡,查看其中的內(nèi)容;(5) 單擊“結(jié)束”按鈕,關(guān)閉對話框;(6) 單擊“幫助>幫助目錄”,熟悉幫助的內(nèi)容和使用方法。32 編輯并調(diào)試下面的程序321 在Visual C環(huán)境中編輯并調(diào)試下面的程序(1)啟動Visual C+6.0;(2)向AppWizard提供關(guān)于新項目的有關(guān)信息:(a)單擊“文件>新建”,(b)在“新建”對話框中: 單擊“工程”選項卡; 在列表中選中“Win32 Console Application”; 在名為“工程”的文本框中輸入項目名“Time” 在“位置”文本框中設(shè)置項目的位置; 選擇“創(chuàng)建新工作區(qū)”選項; 確認(rèn)在“平臺”列表框中選中了“Win32”; 單擊“確定”按鈕。以上過程如圖1.1所示。(3)選擇項目類型:An empty project。(4)單擊“完成”按鈕。(5)在開發(fā)環(huán)境的主窗口中單擊“插入>新建類”,類型為“Generic Class”,名字為“TimeType”,單擊“確定”。見圖1.2。圖1.1向AppWizard提供關(guān)于新項目的有關(guān)信息圖1.2 新建類(6)在左側(cè)的“Class View”中選擇類“TimeType”,單擊右鍵,選擇“添加成員變量”,在彈出的對話框中填入變量hrs的類型和名稱,見圖1.3和圖1.4;重復(fù)此過程,加入成員變量mins和secs。圖1.3 選擇類“TimeType”,單擊右鍵圖1.4 添加成員變量(7)選擇類“TimeType”,單擊右鍵,選擇“添加成員函數(shù)”,在彈出的對話框中填入函數(shù)Set的原型說明,并在代碼編輯窗口中填入函數(shù)體的代碼,見圖1.5和圖1.6;重復(fù)此過程,加入所有的成員函數(shù)。圖1.5添加成員函數(shù)圖1.6 添加代碼(8)保存文件。(9)單擊“文件>新建”,在“新建”對話框的“文件”選項卡中選擇“C源文件”,名字為“diary”。(10)在代碼編輯窗口中寫入代碼,保存文件。(11)編譯和執(zhí)行程序:單擊“編譯>構(gòu)件Time.exe”,或者按F7鍵,生成可執(zhí)行文件Time.exe;單擊“編譯>執(zhí)行Time.exe”,或者同時按下“Ctrl”和“F5”鍵,執(zhí)行程序,查看運(yùn)行結(jié)果。322 源程序:(1)文件TimeType.h:/“TimeType.h”class TimeTypepublic:void Set(int hours, int minutes, int seconds);void Increment();void Write() const;bool Equal(TimeType otherTime) const;bool LessThan(TimeType otherTime) const;private:int hrs;int mins;int secs;(2)文件TimeType.cpp:/“TimeType.cpp”#include “timetype.h”#include <iostream.h>void TimeType:Set(int hours, int minutes, int seconds)hrs = hours;mins = minutes;secs = seconds;void TimeType:Increment()secs+;if (secs>59) secs=0;mins+;if (mins>59) mins=0;hrs+;if (hrs>23) hrs=0;void TimeType:Write() constif (hrs<10) cout << 0;cout << hrs << :;if (mins<10) cout <<0;cout << mins << :;if (secs<10) cout <<0;cout << secs;bool TimeType:Equal(TimeType otherTime) constreturn (hrs=otherTime.hrs && mins=otherTime.mins && secs=otherTime.secs);bool TimeType:LessThan(TimeType otherTime) constreturn (hrs<otherTime.hrs|hrs=otherTime.hrs && mins<otherTime.mins|hrs=otherTime.hrs && mins=otherTime.mins && secs<otherTime.secs);(3)文件Diary.cpp:/Diary.cpp#include <iostream.h>#include "TimeType.h"int main()TimeType time;int hours;int minutes;int seconds;cout<<"Enter a time (use hours < 0 to quit): "cin>>hours>>minutes>>seconds;while(hours>=0)time.Set(hours, minutes, seconds);time.Increment();cout<<"Incremented time is "time.Write();cout<<endl;cout<<"Enter a time (use hours < 0 to quit): "cin>>hours>>minutes>>seconds;return 0;4 思考題(1) 如何啟動Microsoft Visual Studio 6.0?(2) 如何用AppWizard新建一個控制臺項目?(3) 如何新建一個類,并添加類的成員?(4) 如何編譯和連接一個程序?(5) 如何執(zhí)行一個程序?(6) 如何使用幫助?Exercise 2 C+簡單程序設(shè)計1 實(shí)驗?zāi)康模?)學(xué)會編寫簡單的C+程序。(2)復(fù)習(xí)基本數(shù)據(jù)類型變量和常量的應(yīng)用。(3)復(fù)習(xí)運(yùn)算符與表達(dá)式的應(yīng)用。(4)復(fù)習(xí)結(jié)構(gòu)化程序設(shè)計基本控制結(jié)構(gòu)的運(yùn)用。(5)復(fù)習(xí)自定義數(shù)據(jù)類型的應(yīng)用。(6)練習(xí)使用簡單的輸入輸出。(7)觀察頭文件的作用。(8)學(xué)會使用Visual C+6.0開發(fā)環(huán)境中的debug調(diào)試功能:單步執(zhí)行、設(shè)置斷點(diǎn)、觀察變量值。2 實(shí)驗要求(1)輸入并運(yùn)行教材C+語言程序設(shè)計中的例題2-7,即:用do-while語句編程,求自然數(shù)110之和。程序正確運(yùn)行之后,去掉源程序中#include語句,重新編譯,觀察會有什么問題。(2)將do-while語句用for語句代替,完成相同的功能。(3)編程計算圖形的面積。程序可計算圓形、長方形、正方形的面積,運(yùn)行時先提示用戶選擇圖形的類型,然后,對圓形要求用戶輸入半徑值,對長方形要求用戶輸入長和寬的值,對正方形要求用戶輸入邊長的值,計算出面積的值后將其顯示出來。(4)使用debug調(diào)試功能觀察任務(wù)3程序運(yùn)行中變量值的變化情況。(5)定義一個表示時間的結(jié)構(gòu)體,可以精確表示年、月、日、小時、分、秒;提示用戶輸入年、月、日、小時、分、秒的值,然后完整地顯示出來。3 實(shí)驗內(nèi)容及實(shí)驗步驟(1) 建立一個控制臺應(yīng)用程序項目lab2_1,向其中添加一個C+源文件lab2_1.cpp(方法見實(shí)驗1),輸入教材C+語言程序設(shè)計中例2-7的代碼,檢查一下確認(rèn)沒有輸入錯誤,選擇菜單命令Build | Build 1ab2_1.exe編譯源程序,再選擇Build | Execute運(yùn)行程序,觀察輸出是否與教材中的答案一致。(2)程序正確運(yùn)行之后,在源程序第一行“#include<iostream.h>”前面加注釋標(biāo)記“/”使之成為注釋行,重新編譯,查看此時編譯器會輸出什么樣的提示?,F(xiàn)在,刪除注釋標(biāo)記,將程序恢復(fù)正確。(3)另建立一個項目lab2_2,包含一個C+源程序1ab2_2.cpp,將do-while語句用for語句代替,完成與實(shí)驗任務(wù)1相同的功能。(4)建立項目lab2_3,計算圖形的面積。圓形的面積計算公式為S=PI*r*r,長方形的面積計算公式為S=a*b,正方形的面積計算公式為S=a*a。程序中定義一個整型變量iType表示圖形的類型,用cout語句輸出提示信息讓用戶選擇圖形的類型,用cin讀入iType的值,然后,使用switch語句判斷圖形的類型,分別提示用戶輸入需要的參數(shù)值,計算出面積的值后用cout語句顯示出來。最后,編譯運(yùn)行程序。(5)學(xué)習(xí)簡單的debug調(diào)試功能,參考程序如下:lab2_3.cpp#include<iostream.h>const float PI=3.1416;void main() int iType; float radius,a,b,area; COUt<<”圖形的類型為?(1為圓形,2為長方形,3為正方形):”; cin>>iType; switch(iType) case 1: cout<<”圓的半徑為:”; cin>>radius; area=PI*radius*radius ; cout<<”面積為:”<<area<<endl; break; case 2: cout<<”矩形的長為:”; cin>>a; cout<<”矩形的寬為:”; cin>>b; area=a*b; cout<<”面積為:”<<area<<endl; break; case 3: cout<<”正方形的邊長為:”; cin>>a; area=a*a; cout<<”面積為:”<<area<<endl; break; default: cout<<"不是合法的輸入值!"<<endl;1)首先在第10行處設(shè)置調(diào)試斷點(diǎn)。用鼠標(biāo)右鍵單擊源程序第10行左邊的空白處,出現(xiàn)一個菜單,如圖2.1所示。單擊鼠標(biāo)右鍵,彈出的菜單圖2.1 插入斷點(diǎn)2)選擇Insert|Remove Breakpoint選項,可看到左邊的邊框上出現(xiàn)了一個褐色的圓點(diǎn),這代表已經(jīng)在這里設(shè)置了一個斷點(diǎn)。所謂斷點(diǎn)就是程序運(yùn)行時的暫停點(diǎn),程序運(yùn)行到斷點(diǎn)處便暫停,這樣我們就可以觀察程序的執(zhí)行流程,以及執(zhí)行到斷點(diǎn)處時有關(guān)變量的值。3)然后選擇菜單命令Build | Start Debug | Go,或按下快捷鍵F5,系統(tǒng)進(jìn)入Debug(調(diào)試)狀態(tài),程序開始運(yùn)行,一個DOS窗口出現(xiàn),此時,Visual Studio的外觀如圖2.2所示,程序暫停在斷點(diǎn)處。斷點(diǎn)圖2.2 調(diào)試狀態(tài)4)單步執(zhí)行:從Debug菜單或Debug工具欄中單擊Step Over選項或按鈕兩次。在程序運(yùn)行的DOS窗口中輸人選擇的圖形類型,例如,輸入3,代表正方形,這時,回到Visual Studio中,把鼠標(biāo)放在變量名iType上片刻,可看到出現(xiàn)了一個提示:iType=3;此時,在Variables窗口中也可看到iType以及其他變量的值。單步執(zhí)行時每次執(zhí)行一行語句,便于跟蹤程序的執(zhí)行流程。因此為了調(diào)試方便,需要單步執(zhí)行的語句不要與其它語句寫在一行中。5)在Watch窗口中,在Name欄中輸入iType,按回車鍵,可看到Value欄中出現(xiàn)3,這是變量iType現(xiàn)在的值(如果沒看到Variables窗口或Watch窗口,可通過View菜單的Debug Windows | Variables或Debug Windows | Watch選項打開它們)。圖23是此時Variables窗口和Watch窗口的狀態(tài)。6)繼續(xù)執(zhí)行程序,參照上述的方法,再試試Debug菜單欄中別的菜單項,熟悉Debug的各種方法。(6)建立一個項目lab2_4,包含一個C+源程序lab2_4cpp。定義一個表示時間的結(jié)構(gòu)體,有表示年、月、日、小時、分、秒的成員,可以使用short類型;在主程序中實(shí)現(xiàn)輸入輸出。4 思考題(1) 如何在集成環(huán)境中建立一個簡單的C+程序?(2) 如何設(shè)置斷點(diǎn)?(3) 如何單步運(yùn)行一個程序?(4) 如何觀察程序運(yùn)行過程中某個變量的值?Exercise 3 函數(shù)的應(yīng)用1 實(shí)驗?zāi)康模?)掌握函數(shù)的定義和調(diào)用方法(2)練習(xí)重載函數(shù)的使用。(3)練習(xí)使用系統(tǒng)函數(shù)。(4)學(xué)習(xí)使用VC+的debug調(diào)試功能,使用step into追蹤到函數(shù)內(nèi)部。2 實(shí)驗要求(1)編寫一個函數(shù)把華氏溫度轉(zhuǎn)換為攝氏溫度,轉(zhuǎn)換公式如下 C=(F-32)*5/9(2)編寫重載函數(shù)Max1可分別求兩個整數(shù),三個整數(shù),兩個雙精度數(shù),三個雙精度數(shù)的最大值。(3)使用系統(tǒng)函數(shù)pow(x,y)計算xy的值,注意包含頭文件math.h。(4)用遞歸的方法編寫函數(shù)求Fibonacci級數(shù),觀察遞歸調(diào)用的過程3 實(shí)驗內(nèi)容及實(shí)驗步驟(1)編寫函數(shù)float Convert(float TempFer),參數(shù)和返回值都為float類型,實(shí)現(xiàn)算法C=(F-32)*5/9,在main()函數(shù)中實(shí)現(xiàn)輸入、輸出。程序名:lab3_1.cpp。(2) 分別編寫四個同名函數(shù)max1,實(shí)現(xiàn)函數(shù)重載,在main()函數(shù)中測試函數(shù)功能。程序名:lab3_2.cpp(3)在main()函數(shù)中提示輸入兩個整數(shù)x、y,使用cin語句得到x、y的值,調(diào)用pow(x,y)函數(shù)計算x的y次冪的結(jié)果,再顯示出來。程序名:lab3_4.cpp(4)編寫遞歸函數(shù)int fib(int n),在主程序中輸入n的值,調(diào)用fib函數(shù)計算Fibonacci級數(shù)。公式為 fib(n)=fib(n-1)+fib(n-2),n>2;fib(1)=fib(2)=1。使用if語句判斷函數(shù)的出口,在程序中用cout語句輸出提示信息。程序名:lab3_5.cpp(5)使用debug中的Step Into追蹤到函數(shù)內(nèi)部,觀察函數(shù)的調(diào)用過程,參考程序如下: /lab3_5 #include<iostream.h> int fib(int n); int main() int n,answer; cout<<”Enter number:”; cin>>n; cout<<”nn”; answer=fib(n); cout<<answer<<”is the”<<n<<”th Fibonacci numbern”; return 0;int fib(int n)cout<<”Processing fib(“<<n<<”)”;if(n<3)cout<<”Reutrn 1!n”;return(1);else cout<<”Call fib(“<<n-2<<”)and fib(“<<n-1<<”).n”; return(fib(n-2)+fib(n-1);(6)調(diào)試操作步驟如下:1)選擇菜單命令Build | Start Debug | Step in,或按下快捷鍵F11,系統(tǒng)進(jìn)入單步執(zhí)行狀態(tài),程序開始運(yùn)行,并出現(xiàn)一個DOS窗口,此時Visual Studio中光標(biāo)停在main()函數(shù)的入口處。2)把光標(biāo)移到語句answer=fib(n)前,從Debug菜單或Debug工具欄中單擊Run to Cursor,在程序運(yùn)行的DOS窗口中按提示輸入數(shù)字10,這時回到Visual Studio中,光標(biāo)停在第11行,觀察一下n的值(觀察方法見實(shí)驗2)。3)從Debug菜單或Debug工具欄中單擊Step Into,程序進(jìn)入fib函數(shù),觀察一下n的值,把光標(biāo)移到語句return(fib(n-2)+fib(n-1)前,從Debug菜單或Debug工具欄中單擊Run to Cursor,再單擊Step Into,程序遞歸調(diào)用fib函數(shù),又進(jìn)入fib函數(shù),觀察一下n的值。4)繼續(xù)執(zhí)行程序,參照上述的方法,觀察程序的執(zhí)行順序,加深對函數(shù)調(diào)用和遞歸調(diào)用的理解。5)再試試Debug菜單欄中的菜單項,熟悉Debug的各種方法。4 思考題(1) 如何利用系統(tǒng)函數(shù)來實(shí)現(xiàn)一些常用的功能?(2) 如何查找系統(tǒng)函數(shù)?(3) 如何實(shí)現(xiàn)函數(shù)重載?(4) 如何編寫一個遞歸程序?Exercise 4 類與對象1 實(shí)驗?zāi)康模?)掌握類的定義和使用。(2)掌握類的定義和對象的聲明。(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í)行順序。2 實(shí)驗要求(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為浮點(diǎn)型的電壓值。觀察構(gòu)造函數(shù)和析構(gòu)函數(shù)的調(diào)用順序。(2)定義一個簡單的Computer類,有數(shù)據(jù)成員芯片(cpu)、(內(nèi)存)、光驅(qū)(cdrom)等等,有兩個公有成員函數(shù)run、stop。cpu為CPU類的一個對象,ram為RAM類的一個對象,cdrom為CDROM類的一個對象,定義并實(shí)現(xiàn)這個類。(3)(選做)設(shè)計一個用于人事管理的People(人員)類??紤]到通用性這里只抽象出所有類型人員都具有的屬性:number(編號)、sex(性別)、birthday(出生日期)、id(身份證號)等等。其中“出生日期”定義為一個“日期”類內(nèi)嵌子對象。用成員函數(shù)實(shí)現(xiàn)對人員信息的錄入和顯示。要求包括:構(gòu)造函數(shù)和析構(gòu)函數(shù)、拷貝構(gòu)造函數(shù)、內(nèi)聯(lián)成員函數(shù)、聚集。3 實(shí)驗內(nèi)容及實(shí)驗步驟(1)首先定義枚舉類型CPU_Rank, 例如enum CPU_RankP1=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)使用debug調(diào)試功能觀察程序lab4_1.cpp的運(yùn)行流程,跟蹤觀察類的構(gòu)造函數(shù)、析構(gòu)函數(shù)、成員函數(shù)的執(zhí)行順序。參考程序如下:/lab4_1.cpp#include<iostream.h>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 rank; 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 開始運(yùn)行!”<<endl; void Stop() cout<<”CPU 停止運(yùn)行!”<<endl; ;void main()CPU a(P6,300,2.8);a.Run();a.Stop();(3)調(diào)試操作步驟如下:1)單擊Build | Start Debug | Step Into命令,或按下快捷鍵F11,系統(tǒng)進(jìn)入單步執(zhí)行狀態(tài),程序開始運(yùn)行,一個DOS窗口出現(xiàn),此時Visual Studio 中光標(biāo)停在main()函數(shù)的入口處;2)從Debug菜單或Debug工具欄中單擊Step Over,此時,光標(biāo)下移,程序準(zhǔn)備執(zhí)行CPU對象的初始化;3)單擊Step Into,程序準(zhǔn)備執(zhí)行CPU類的構(gòu)造函數(shù);4)連續(xù)單擊Step Over,觀察構(gòu)造函數(shù);5)此時程序準(zhǔn)備執(zhí)行CPU對象的run()函數(shù),單擊Step Into,程序進(jìn)入run()成員函數(shù),連續(xù)單擊Step Over,直到回到main()函數(shù)。6)繼續(xù)執(zhí)行程序,參照上述的方法,觀察程序的執(zhí)行順序,加深對類的構(gòu)造函數(shù)、析構(gòu)函數(shù)、成員函數(shù)的執(zhí)行順序的認(rèn)識。7)再試試Debug菜單欄中別的菜單項,熟悉Debug的各種方法。(4)首先定義CPU類(可使用第二題中的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.(5)使用debug調(diào)試功能觀察lab4_2.cpp程序的運(yùn)行流程,跟蹤觀察類的構(gòu)造函數(shù)、析構(gòu)函數(shù)、成員函數(shù)的執(zhí)行順序,特別注意觀察成員變量的構(gòu)造與析構(gòu)順序。4 思考題(1) 如何定義一個類?(2) 如何定義類的構(gòu)造函數(shù)和析構(gòu)函數(shù)?(3) 類的各成員函數(shù)的執(zhí)行順序是怎樣的?(4) 類聚集時對象的構(gòu)造順序是怎樣的?Exercise 5 作用域與多文件程序1 實(shí)驗?zāi)康模?)掌握自動變量與靜態(tài)變量的概念。(2)掌握函數(shù)原型、塊、函數(shù)和文件作用域的概念。(3)掌握全局變量與局部變量的概念(4)掌握VC6.0下多文件程序的上機(jī)調(diào)試方法2 實(shí)驗要求(1)調(diào)試程序段1,弄清自動變量與靜態(tài)變量的區(qū)別。(2)調(diào)試程序段2,理解塊作用域的概念。(3)調(diào)試程序段3,理解全局變量和局部變量的概念。(4)使用多文件結(jié)構(gòu)編寫并調(diào)試程序,計算和的值。3 實(shí)驗內(nèi)容及實(shí)驗步驟(1)閱讀下列程序,寫出執(zhí)行結(jié)果,然后上機(jī)調(diào)試程序,比較結(jié)果的正確性,弄清自動變量與靜態(tài)變量的區(qū)別。#include<iostream.h>int func(int);void main() cout<<func(1)<<endl; cout<<func(1)<<endl;int func(int c) int a=0; static int b=1; a+; b+;return a+b+c;(2)分析下列程序,寫出執(zhí)行結(jié)果,然后上機(jī)調(diào)試程序,比較結(jié)果是否正確,從而理解塊作用域的概念。#include<iostream.h> void main() int a=1,b=2,c=3; cout<<”a=”<<a<<t<<”b=”<<b<<t<<”c=”<<c<<t<<endl; int b=4,c=5; cout<<”a=”<<a<<t<<”b=”<<b<<t<<”c=”<<c<<t<<endl; a=b; int c=b; cout<<”a=”<<a<<t<<”b=”<<b<<t<<”c=”<<c<<t<<endl; cout<<”a=”<<a<<t<<”b=”<<b<<t<<”c=”<<c<<t<<endl; cout<<”a=”<<a<<t<<”b=”<<b<<t<<”c=”<<c<<t<<endl; (3)寫出下列程序的執(zhí)行結(jié)果,然后上機(jī)調(diào)試程序,比較結(jié)果是否正確,從而理解全局變量和局部變量的概念。 #include<iostream.h> int a=1,b=2; int f1(int x) int i,b=3; i=(a*b)/x; cout<<”i=”<<i<<endl; return i; int c=3; int f2(int x,int y) int u,v,a=5; u=x+y; v=(b-a)/c; cout<<”u=”<<u<<endl; cout<<”v=”<<v<<endl; return u-v; void main() cout<<f1(1)+a-b<<endl; cout<<f2(2,3)*c<<endl; (4)使用多文件結(jié)構(gòu)編寫并調(diào)試程序,計算和的值。要求: 把求階乘的函數(shù)存放在文件file1.cpp中;把求的函數(shù)存放在文件file2.cpp中;求的函數(shù)存放在文件file3.cpp中;函數(shù)原型在頭文件headf.h中聲明;主函數(shù)存放在文件mainf.cpp中。上機(jī)調(diào)試程序,掌握多文件程序的調(diào)試方法。4 思考題(1)總結(jié)全局變量、局部變量、靜態(tài)局部變量等的概念和使用方法。(2)總結(jié)多文件程序的調(diào)試方法。(3)多文件程序調(diào)試和單文件調(diào)試有哪一些相同點(diǎn)和不同點(diǎn)?Exercise 6 數(shù)組、指針與字符串1 實(shí)驗?zāi)康模?)學(xué)習(xí)使用數(shù)組。(2)學(xué)習(xí)字符串?dāng)?shù)據(jù)的組織和處理。(3)學(xué)習(xí)標(biāo)準(zhǔn)C+庫的使用。(4)掌握指針的使用方法。(5)練習(xí)通過Debug觀察指針的內(nèi)容及其所指的對象的內(nèi)容(6)聯(lián)系通過動態(tài)內(nèi)存分配實(shí)現(xiàn)動態(tài)數(shù)組,并體會指針在其中的作用。(7)分別使用字符數(shù)組和標(biāo)準(zhǔn)C+庫練習(xí)處理字符串的方法。2 實(shí)驗要求(1)編寫并測試3*3矩陣轉(zhuǎn)置函數(shù),使用數(shù)組保存3*3矩陣。(2)使用動態(tài)內(nèi)存分配生成動態(tài)數(shù)組來重新完成上題,使用指針實(shí)現(xiàn)函數(shù)的功能。(3)編程實(shí)現(xiàn)兩字符串的連接。要求使用字符數(shù)組保存字符串,不要使用系統(tǒng)函數(shù)。(4)使用string類定義字符串對象,重新實(shí)現(xiàn)上一小題。(5)定義一個Employee類,其中包括姓名、街道地址、城市和郵編等屬性,以及change_name()和display()等函數(shù)。Display()顯示姓名、街道地址、城市和郵編等屬性,change_name()改變對象的姓名屬性。實(shí)現(xiàn)并測試這個類。(6)定義包含5個元素的對象數(shù)組,每個元素都是Employee類型的對象。(7)(選做)修改實(shí)驗4中的選做實(shí)驗中的people(人員)類。具有的屬性如下:姓名char name11、編號char number7、性別char sex3、生日birthday、身份證號char id16。其中“出生日期”定義為一個“日期”類內(nèi)嵌對象。用成員函數(shù)實(shí)現(xiàn)對人員信息的錄入和顯示。要求包括:構(gòu)造函數(shù)和析構(gòu)函數(shù)、拷貝構(gòu)造函數(shù)、內(nèi)聯(lián)成員函數(shù)、聚集。在測試程序中定義people類的對象數(shù)組,錄入數(shù)據(jù)并顯示。3實(shí)驗內(nèi)容及實(shí)驗步驟(1) 編寫矩陣轉(zhuǎn)置函數(shù),輸入?yún)?shù)為3*3整形數(shù)組,使用循環(huán)語句實(shí)現(xiàn)矩陣元素的行列對調(diào),注意在循環(huán)語句中究竟需要對哪些元素進(jìn)行操作,編寫main()函數(shù)實(shí)現(xiàn)輸入、輸出。程序名:lab6_1.cpp。(2) 改寫矩陣轉(zhuǎn)置函數(shù),參數(shù)為整型指針,使用指針對數(shù)組元素進(jìn)行操作,在main()函數(shù)中使用new操作符分配內(nèi)存生成動態(tài)數(shù)組。通過Debug觀察指針的內(nèi)容及其所指的對象中的內(nèi)容。程序名:lab6_2.cpp。(3) 編程實(shí)現(xiàn)兩字符串的連接。定義字符數(shù)組保存字符串,在程序中提示用戶輸入兩個字符串,實(shí)現(xiàn)兩個字符串的連接,最后用cout語句顯示輸出。程序名:lab6_3.cpp。用cin實(shí)現(xiàn)輸入,注意,字符串的結(jié)束標(biāo)志是ASCII碼0,使用循環(huán)語句進(jìn)行字符串見的字符拷貝。(4) 使用string類定義字符串對象,編程實(shí)現(xiàn)兩字符串的連接。在string類中已重載了運(yùn)算符“+=”實(shí)現(xiàn)字符串的連接,可以使用這個功能。程序名:lab6_4.cpp。(5) 在employee.h文件中定義Employee類。Employee類具有姓名、街道地址、城市和郵編等私有數(shù)據(jù)成員,都可以用字符型數(shù)組來表示,在成員函數(shù)中,構(gòu)造函數(shù)用來初始化所有成員數(shù)組,對字符數(shù)組的賦值可以使用字符串拷貝函數(shù)strcpy(char *,char * name);display()中使用cout顯示姓名、街道地址、城市和郵編等屬性,change_name()改變類中表示姓名屬性的字符數(shù)組類型的數(shù)據(jù)成員。在主程序中定義這個類的對象并對起進(jìn)行操作。程序名:lab6_5.cpp。(6) 使用上一小題中定義的Employee類定義對象數(shù)組emp5,使用循環(huán)語句把數(shù)據(jù)顯示出來。程序名:lab6_6.cpp。(7) (選作)調(diào)試下面的程序,看看運(yùn)行結(jié)果,想一想為什么會出錯。源程序如下:# include <iostream.h>class String private: char *contents; public: string()*contents = 0; int get_length(); char *get_contents()return contents; void set_contents(int in_length, char *in_contents); void set_contents(char *in_contents);int String:get_length() int i=0; char *p=contents; while(*p+!=0) i+; return i;void String:set_contents(int in_length, char *in_contents) in_contentsin_length=0; contents=in_contents;void String:set_contents(char *in_contents)contents=in_contents;void main() String x,y; x.set_contents("Hello, world!"); y.set_contents(34,"This is an object_oriented program"); char *p=x.get_contents(); char *q=y.get_contents(); cout<<"x="<<p<<"y="<<q<<n; int i=x.get_length(); cout<<"The length of string x is"<<i;4 思考題(1) 如何存儲和處理字符串?(2) 頭文件<string.h>和頭文件<string>有何區(qū)別?(3) 有幾種方法來表示和處理數(shù)組元素?Exercise 7 繼承與派生1 實(shí)驗?zāi)康模?)學(xué)習(xí)定義和使用類的繼承關(guān)系,定義派生類。(2)熟悉不同繼承方式下對基類成員的訪問控制。(3)學(xué)習(xí)利用虛基類解決二義性問題。2 實(shí)驗要求(1)定義一個基類Animal,有私有整型成員變量age,構(gòu)造其派生類dog,在其成員函數(shù)SetAge(int n)中直接給age賦值,看看會有什么問題,把a(bǔ)ge 改為公有成員變量,還回有問題嗎?編程試之。(2)定義一個基類BaseClass,有整型變量Number,構(gòu)造其派生類DerivedClass,觀察構(gòu)造函數(shù)和析構(gòu)函數(shù)的執(zhí)行情況。(3)定義一個車(vehicle)基類,具有Maxspeed、Weight等成員,Run、Stop等成員函數(shù),由此派生出自行車(bicycle)類、汽車(motorcar)類。自行車(bicycle)類有高度(Height)等屬性,汽車(motorcar)類有座位數(shù)(SeatNun)等屬性。從bicycle和motorcar派生出摩托車(motorbicycle)類,在繼承過程中,注意把vehicle設(shè)置為虛基類。如果不把vehicle設(shè)置為虛基類,會有什么問題?編程試之。3 實(shí)驗內(nèi)容及實(shí)驗步驟(1)編寫程序定義基類Animal,成員變量age定義為私有的。構(gòu)造派生類dog,在其成員函數(shù)SetAge(int n)中直接對age賦值時,會出現(xiàn)類似以下的錯誤提示:error C2248 : age : cannot access private member declared in class Animalerror C2248 : age : cannot access private member declared in class Animal把a(bǔ)ge改為公有成員變量后重新編譯就可以了。程序名:lab7_1.cpp。(2)編寫程序定義一個基類BaseClass,構(gòu)造其派生類DerivedClass,在構(gòu)造函數(shù)和析構(gòu)函數(shù)中用cout輸出提示信息,觀察構(gòu)造函數(shù)和析構(gòu)函數(shù)的執(zhí)行情況。程序名:lab7_2.cpp。(3)用debug功能跟蹤程序lab7_2的執(zhí)行過程,觀察基類和派生類的構(gòu)造函數(shù)和析構(gòu)函數(shù)的執(zhí)行情況。(4)編寫程序定義一個車(vehicle)基類,由此派生出自行車(bicycle)類、汽車(motorcar)類,注意把vehicle派生為虛基類。再從bicycle和motorcar派生出摩托車(motorcycle)類,在main()函數(shù)中測試這個類。程序名:lab7_3.cpp.編譯成功后,把vehicle設(shè)置為非虛基類,再編譯一次,此時系統(tǒng)報錯,無法編譯成功。這是因為若不把vehicle設(shè)置為虛基類,會出現(xiàn)二義性錯誤,程序不能成功編譯。4 思考題(1) 如何在已有的類的基礎(chǔ)上設(shè)計新的類?(2) 基類和派生類對象的構(gòu)造順序是怎樣的?(3) 如何利用虛基類解決二義性問題?Exercise 8 多態(tài)性1 實(shí)驗?zāi)康模?)掌握運(yùn)算符重載的方法。(2)學(xué)習(xí)使用虛函數(shù)實(shí)現(xiàn)動態(tài)多態(tài)性。2. 實(shí)驗要求(1)定義Point類,有坐標(biāo)_x,_y兩個成員變量;對Point類重載“”(自增)、“”(自減)運(yùn)算符,實(shí)現(xiàn)對坐標(biāo)值的改變。(2)定義一個車(vehiele)基類,有Run、Stop等成員函數(shù),由此派生出自行車(bicycle)類、汽車(motorcar)類,從bicycle和motorcar派生出摩托車(motorcycle)類,它們都有Run、Stop等成員函數(shù)。觀察虛函數(shù)的作用。(3) (選做)對實(shí)驗4中的People類重載“”運(yùn)算符和“”運(yùn)算符,“”運(yùn)算符判斷兩個people類對象的id屬性是否相等;“”運(yùn)算符實(shí)現(xiàn)People類對象的賦值操作。3. 實(shí)驗內(nèi)容及實(shí)驗步驟(1) 編寫程序定義Point類,在類中定義整型的私有成員變量_x_y,定義成員函數(shù)Point& operator+();Point operator+(int);以實(shí)現(xiàn)對Point類重載“+”(自增)運(yùn)算符,定義成員函數(shù)Point operator();Point operator(int);以實(shí)現(xiàn)對Point類重載“”(自減)運(yùn)算符,實(shí)現(xiàn)對坐標(biāo)值的改變。程序名:1ab8_1cpp。(2) 編寫程序定義一個車(vehicle)基類,有Run、Stop等成員函數(shù),由此派生出自行車(bicycle)類、汽車(motorcar)類,從bicycle和motorcar派生出摩托車(motorcycle)類,它們都有Run、Stop等成員函數(shù)。在main()函數(shù)中定義vehicle、bicycle、motorcar、motorcycle的對象,調(diào)用其Run()、Stop()函數(shù),觀察其執(zhí)行情況。再分別用vehicle類型的指針來調(diào)用這幾個對象的成員函數(shù),看看能否成功;把Run、Stop定義為虛函數(shù),再試試看。程序名:lab8_2cpp。4 思考題(1) 如何將一個運(yùn)算符重載為類的成員函數(shù)?(2) 如何將一個運(yùn)算符重載為類的友元函數(shù)?(3) 如何實(shí)現(xiàn)運(yùn)行時刻的多態(tài)?Exercise 9 工資管理程序設(shè)計1 實(shí)驗?zāi)康木C合運(yùn)用前面學(xué)過的類定義和類的繼承、多態(tài)機(jī)制,利用面向?qū)ο蟪绦蛟O(shè)計方法,設(shè)計一個完整的程序。2. 實(shí)驗要求設(shè)計一個簡單的計算雇員工資的程序。假設(shè)有3類雇員工人、銷售員和管理人員。工人的工資為每小時工資額乘當(dāng)月工作時數(shù)再加上工齡工資;銷售員工資為每小時工資額乘當(dāng)月工作時數(shù)加上銷售額提成再加上工齡工資,其中銷售額提成等于該銷售員當(dāng)月售出商品金額的1;管理人員工資為基本工資再加上工齡工資。工齡工資就是雇員在該公司工作的工齡每增加1年,月工資就增加35元。用C語言寫出完整的程序。3. 實(shí)驗內(nèi)容及實(shí)驗步驟(1)建立一個控制臺項目lab9。(2)建立雇員基類(Employee),成員數(shù)據(jù)為:工齡;成員函數(shù)包括構(gòu)造函數(shù)、析構(gòu)函數(shù)和純虛函數(shù)salary(),用于計算工資。(3)分別建立工人(Worker)類、銷售員(Salesman)類和管理人員(Manager)類,包括相應(yīng)的成員數(shù)據(jù)和成員函數(shù),注意,要重新定義虛函數(shù)salary()。(4)編寫主函數(shù),分別創(chuàng)建各類雇員對象,計算相應(yīng)的工資。程序名:lab9.cpp。4 思考題(1) 如何利用類的繼承與派生機(jī)制來設(shè)計具有通用性的類?(2) 如何設(shè)計抽象類?(3) 如何利用相同的函數(shù)實(shí)現(xiàn)不同的功能?Exercise 10 模板1 實(shí)驗?zāi)康木毩?xí)函數(shù)模板和類模板的定義與使用。2 實(shí)驗要求(1)編寫函數(shù)模板,分別實(shí)現(xiàn)求兩個整數(shù)、兩個雙精度數(shù)、三個整數(shù)、三個雙精度數(shù)的最大值。(2)運(yùn)行教材中例92的程序,觀察類模板的定義和使用。3 實(shí)驗內(nèi)容及實(shí)驗步驟(1)建立一個控制臺項目lab10_1,在其中編寫兩個同名的函數(shù)模板Max1,其參數(shù)個數(shù)不同,分別實(shí)現(xiàn)求兩個數(shù)、三個數(shù)的最大值。編寫main()函數(shù),分別用兩個整數(shù)、兩個雙精度數(shù)、三個整數(shù)、三個雙精度數(shù)來測試,程序名:lab10_1.cpp。(2)建立一個項目lab10_2,向其中輸入教材中例92的程序,編譯、鏈接并運(yùn)行程序,觀察輸出結(jié)果。程序名:lab10_2.cpp。4 思考題(1) 函數(shù)模板有什么作用?(2) 如何定義一個函數(shù)模板?(3) 類模板有什么作用?(4) 如何定義和使用類模板?Exercise 11 流類庫與輸入輸出1 實(shí)驗?zāi)康模?)熟悉流類庫中常用的類及其成員函數(shù)的用法。(2)學(xué)習(xí)標(biāo)準(zhǔn)輸入輸出及格式控制。(3)學(xué)習(xí)對文件的應(yīng)用方法(二進(jìn)制文件、文本文件)。2 實(shí)驗要求(1)觀察以下程序的輸出,注意對輸出格式的控制方法:/lab11_1cpp#include <fstream>using namespace std;#define D(a) T<<#a<<endl;aofstream T("output.out");void main()D(int i=53;)D(float f=4700113.141593;)char *s="Is there any more?"D(T.setf(ios:unitbuf);)D(T.setf(ios:showbase);)D(T.setf(ios:uppercase);)D(T.setf(ios:showpos);)D(T<<i<<endl;)D(T.setf(ios:hex,ios:basefield);)D(T<<i<<endl;)D(T.unsetf(ios:uppercase);)D(T.setf(ios:oct,ios:basefield);)D(T<<i<<endl;)D(T.unsetf(ios:showbase);)D(T.setf(ios:dec,ios:basefield);)D(T.setf(ios:left,ios:adjustfield);)D(T.fill (0);)D(T <<"fill char:"<<T.fill()<<endl;)D(T.width(8);)T<<i<<endl;D(T.setf(ios:right, ios:adjustfield);)D(T.width (8);)T<<i<<endl;D(T.setf(ios:internal, ios:adjustfield);)D(T.width (8);

注意事項

本文(《C++程序設(shè)計》實(shí)驗指導(dǎo)書)為本站會員(仙***)主動上傳,裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對上載內(nèi)容本身不做任何修改或編輯。 若此文所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng)(點(diǎn)擊聯(lián)系客服),我們立即給予刪除!

溫馨提示:如果因為網(wǎng)速或其他原因下載失敗請重新下載,重復(fù)下載不扣分。




關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!