




已閱讀5頁(yè),還剩27頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
甘肅政法學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)本科課程實(shí)驗(yàn)教學(xué)大綱面向?qū)ο蟪绦蛟O(shè)計(jì)實(shí)驗(yàn)一、面向?qū)ο蟪绦蛟O(shè)計(jì)課程實(shí)驗(yàn)教學(xué)基本要求面向?qū)ο蟪绦蛟O(shè)計(jì)是一門理論和實(shí)踐結(jié)合及其緊密的學(xué)科,因此在課程的教學(xué)活動(dòng)中需要采取多種教學(xué)手段與方法,以達(dá)到良好的教學(xué)效果。面向?qū)ο蟪绦蛟O(shè)計(jì)的實(shí)驗(yàn)教學(xué)是理論聯(lián)系實(shí)際的重要環(huán)節(jié),是理論課堂教學(xué)的補(bǔ)充和繼續(xù)。因此,該課程的實(shí)驗(yàn)教學(xué)要求學(xué)生通過實(shí)驗(yàn)課程的學(xué)習(xí),完成實(shí)驗(yàn)指導(dǎo)書具體規(guī)定的各項(xiàng)實(shí)驗(yàn)內(nèi)容,通過實(shí)驗(yàn)使學(xué)生實(shí)現(xiàn)正確和熟練地掌握刑事化驗(yàn)的實(shí)驗(yàn)技能和基本操作,提高學(xué)生動(dòng)手能力。二、實(shí)驗(yàn)項(xiàng)目總表序號(hào)實(shí)驗(yàn)項(xiàng)目名稱學(xué)時(shí)數(shù)項(xiàng)目類別項(xiàng)目類型1Visual Studio集成環(huán)境及C+程序的輸入、調(diào)試和運(yùn)行4演示實(shí)驗(yàn)必做2類和對(duì)象、繼承和派生6演示實(shí)驗(yàn)必做3多態(tài)性和虛函數(shù)6演示實(shí)驗(yàn)必做4運(yùn)算符重載6演示實(shí)驗(yàn)必做5STL應(yīng)用8演示實(shí)驗(yàn)必做三、實(shí)驗(yàn)內(nèi)容實(shí)驗(yàn)一 Visual Studio集成環(huán)境及C+程序的輸入、調(diào)試和運(yùn)行(一)實(shí)驗(yàn)?zāi)康呐c要求1.了解和使用VC集成開發(fā)環(huán)境2.熟悉VC環(huán)境的基本命令和功能鍵,熟悉常用的功能菜單命令3.學(xué)習(xí)使用VC+環(huán)境的幫助4.學(xué)習(xí)完整的C+程序開發(fā)過程5.理解簡(jiǎn)單的C+程序結(jié)構(gòu)(二)實(shí)驗(yàn)內(nèi)容 1.熟悉Visual C+實(shí)驗(yàn)環(huán)境2.控制臺(tái)應(yīng)用3. Windows應(yīng)用4.編寫簡(jiǎn)單的計(jì)算程序(三)實(shí)驗(yàn)器材及設(shè)備1.硬件:個(gè)人微機(jī)(配置不低于:CPU為P4,主頻1.6G,內(nèi)存256MB,硬盤40GB)2.軟件:操作系統(tǒng)為WindowsXP(或2000、server2003等),工具軟件為Visual C+6.0(四)實(shí)驗(yàn)步驟與方法題目1 熟悉Visual C+實(shí)驗(yàn)環(huán)境實(shí)驗(yàn)步驟(1)啟動(dòng)Developer Studio,看看初始化界面由哪些部分組成(2)查看各菜單項(xiàng),看看都有哪些子菜單和命令(3)將鼠標(biāo)放置于各工具條圖標(biāo)上,系統(tǒng)會(huì)自動(dòng)顯示該圖標(biāo)代表的命令含義,了解一下都有哪些命令。(4)在任意工具條上單擊鼠標(biāo)右鍵,彈出式菜單上將顯示所有可用的工具條,選擇其中沒有對(duì)號(hào)()的項(xiàng),看看有什么效果,再選擇有對(duì)號(hào)的項(xiàng),又有什么效果?(5)將鼠標(biāo)移動(dòng)到任意工具條上,將鼠標(biāo)放到圖標(biāo)間隙,按下鼠標(biāo)左鍵不放,移動(dòng)鼠標(biāo)到屏幕中間,有什么現(xiàn)象發(fā)生?再將它拖回到原來位置,有什么現(xiàn)象發(fā)生?(6)將鼠標(biāo)移動(dòng)到左邊的工作區(qū)窗口,按下鼠標(biāo)左鍵不放,移動(dòng)鼠標(biāo)到屏幕中間,有什么現(xiàn)象發(fā)生?再將它拖回到原來位置,有什么現(xiàn)象發(fā)生?(7)將鼠標(biāo)移動(dòng)到下邊的輸出窗口,按鼠標(biāo)右鍵,彈出一個(gè)菜單,選擇其中的菜單項(xiàng)”Hide”,結(jié)果如何?要重新顯示該窗口,選擇菜單View|Output,窗口是不是又顯示出來了?(8)學(xué)習(xí)使用幫助系統(tǒng)。如果你用的是Visual C+5.0,則在工作區(qū)窗口的InfoView中選擇你感興趣的內(nèi)容,雙擊它,在文檔區(qū)顯示具體的幫助信息。如果你用的是Visual C+6.0,選擇菜單Help|Contents,啟動(dòng)MSDN聯(lián)機(jī)幫助系統(tǒng),學(xué)習(xí)使用該幫助系統(tǒng)。聯(lián)機(jī)幫助系統(tǒng)是一個(gè)相對(duì)獨(dú)立的程序,它和Developer Studio是兩個(gè)程序,但是它的啟動(dòng)和停止都受Developer Studio影響。MSDN聯(lián)機(jī)幫助系統(tǒng)運(yùn)行的前提條件是Developer Studio在運(yùn)行。(9)選File|Exit退出Developer Studio。題目2 控制臺(tái)應(yīng)用 用AppWizard建立一個(gè)控制臺(tái)應(yīng)用,在終端上輸出”Hello”。術(shù)語(yǔ):“控制臺(tái)應(yīng)用程序”是一個(gè)在DOS窗口中運(yùn)行的基于字符的程序。由于這種模式的應(yīng)用程序比Windows程序簡(jiǎn)單,我們先選擇利用Visual C+來建立這樣一個(gè)應(yīng)用,這樣使得我們可以將精力先投入到學(xué)習(xí)使用C+編程語(yǔ)言,而不需要把過多的精力投入到學(xué)習(xí)復(fù)雜的Windows編程中去。實(shí)驗(yàn)步驟1)創(chuàng)建第一個(gè)應(yīng)用首先創(chuàng)建一個(gè)項(xiàng)目(project),項(xiàng)目將代表你的應(yīng)用,存放你應(yīng)用的所有信息,包括源文件、資源文件、編譯連接設(shè)置等。創(chuàng)建項(xiàng)目的步驟為:(1)啟動(dòng)Developer Studio(2)從主菜單中選擇File|New,將顯示出New對(duì)話框(3)選擇Projects標(biāo)簽,并從列表中單擊Win32 Console Application(4)在“Location”編輯框中輸入你的工作目錄名稱,如c:studentyour_name(問你的指導(dǎo)教師)(5)在對(duì)話框的右上角的“project name”編輯框內(nèi)鍵入項(xiàng)目的名字,如”Hello”,系統(tǒng)將自動(dòng)為你的項(xiàng)目分配一個(gè)默認(rèn)的目錄(6)單擊OK繼續(xù)(7)如果是VC 6.0,系統(tǒng)將顯示一個(gè)詢問項(xiàng)目類型的程序向?qū)?,選擇“an empty project”(8)單擊Finish或OK結(jié)束配置,創(chuàng)建應(yīng)用程序這時(shí)系統(tǒng)為你創(chuàng)建一個(gè)新的項(xiàng)目,并且在左邊的工作區(qū)窗口中將出現(xiàn)你項(xiàng)目的名字。工作區(qū)窗口除原來的InfoView標(biāo)簽外又增加了兩個(gè)標(biāo)簽(如果是Visual C+6.0,則沒有InfoView標(biāo)簽):ClassView和FileView。ClassView從類的角度顯示項(xiàng)目中建立的各個(gè)類,雙擊某個(gè)類名將會(huì)在右邊的文檔顯示區(qū)顯示類的定義文件并把文件的當(dāng)前位置定位到所選的類;FileView顯示構(gòu)成項(xiàng)目的各個(gè)文件,選擇某一文件將會(huì)在右邊的文檔顯示區(qū)顯示文件內(nèi)容;InfoView是VC5的幫助文件目錄,在這里可以選擇所要獲取幫助的標(biāo)題,在右邊將顯示幫助內(nèi)容。2)編輯你的第一個(gè)C+源程序用下面的方法在你創(chuàng)建的項(xiàng)目中添加一個(gè)文件:(1)在主菜單上選擇File|New(2)在New對(duì)話框中選擇File標(biāo)簽,單擊“C+ Source File”(3)選中Add to Project復(fù)選框(4)在右邊的File name編輯框中為文件指定一個(gè)名字,如Hello,系統(tǒng)將自動(dòng)為你加上后綴.cpp。新的空白文件將自動(dòng)打開,顯示在文檔顯示區(qū)。在文件中輸入以下內(nèi)容(不包括上下兩條橫線):/hello world example#include int main() cout hello! endl ;return 0;/正常返回仔細(xì)檢查你輸入的內(nèi)容,確保內(nèi)容正確常用編輯命令雖然許多編輯命令可以通過菜單和工具欄實(shí)現(xiàn),但大量的編輯命令都可以通過鍵盤實(shí)現(xiàn)。以下命令通常用鍵盤實(shí)現(xiàn):l 撤消前一次操作。當(dāng)你進(jìn)行了一次錯(cuò)誤的操作時(shí),可以通過敲擊鍵盤上的Ctrl+Z完成;l 重復(fù)前一次操作。通過敲擊Ctrl+Y實(shí)現(xiàn)l 剪切一行。用Ctrl+L來刪除一行并將它放到剪切板中l(wèi) 剪切。將選中的文本刪除并將它放到剪切板中,用Ctrl+X實(shí)現(xiàn)l 復(fù)制。將選中的文本復(fù)制到剪切板中,用Ctrl+C實(shí)現(xiàn)l 粘貼。將剪切板中的內(nèi)容放到編輯器中文本的當(dāng)前位置處(由光標(biāo)指示)。,用Ctrl+V實(shí)現(xiàn)要想了解關(guān)于鍵盤操作命令的完整列表,可以選擇Help菜單下的Keyboard Map。你沒有必要記住所有的命令,有些根本不常用。3)保存你的源文件單擊工具欄中的”save”圖標(biāo),或者選擇File|Save來保存你的文件。C+源文件的擴(kuò)展名為.cpp。擴(kuò)展名非常重要,Developer Studio根據(jù)文件的擴(kuò)展名來區(qū)分文件類型,并且根據(jù)文件類型提供相應(yīng)的編輯幫助(如正確的語(yǔ)法高亮顯示)。4)編譯、連接得到可執(zhí)行程序編輯結(jié)束后,仔細(xì)檢查你輸入的內(nèi)容,看有無錯(cuò)誤。確認(rèn)沒有錯(cuò)誤之后,選擇主菜單的Build|Build Hello.exe來編譯你的項(xiàng)目(也可以按功能鍵F7)。如果你輸入的內(nèi)容沒有錯(cuò)誤,那么,在屏幕下方的輸出窗口將會(huì)顯示:hello.exe 0 error(s), 0 warning(s)5)如果在編譯時(shí)得到錯(cuò)誤或警告,是你的源文件出現(xiàn)錯(cuò)誤,再次檢查你的源文件,看是否有錯(cuò)誤,改正它。6)改正源程序中的錯(cuò)誤編譯的錯(cuò)誤會(huì)在Developer Studio的下方的輸出窗口顯示出來,逐個(gè)查看這些錯(cuò)誤的內(nèi)容,用鼠標(biāo)雙擊,光標(biāo)可以自動(dòng)移動(dòng)到發(fā)生錯(cuò)誤的源程序的相應(yīng)地點(diǎn),仔細(xì)檢查你的源程序,改正發(fā)生錯(cuò)誤的地方,注意是否否遺留了分號(hào)、引號(hào)或括號(hào)等。改正后,再重復(fù)步驟4)的操作,直到編譯連接通過為止。7)運(yùn)行你的第一個(gè)程序你可以有三種方式運(yùn)行你的程序:l 在開發(fā)環(huán)境中運(yùn)行程序選擇Build|Execute hello.exe(或者Ctrl+F5),在開發(fā)環(huán)境中執(zhí)行你的程序。程序運(yùn)行以后將顯示一個(gè)類似于DOS的窗口,在窗口中輸出一行“hello”,緊接著在下面顯示“Press any key to continue”,這句話是系統(tǒng)提示你按任意鍵退出當(dāng)前運(yùn)行的程序,回到開發(fā)環(huán)境中。按任意鍵,窗口關(guān)閉,退回到Visual C+開發(fā)環(huán)境。我們實(shí)驗(yàn)中將用這種方式運(yùn)行程序。l 在DOS環(huán)境下運(yùn)行程序打開DOS窗口,改變工作路徑到項(xiàng)目目錄,該目錄是你在創(chuàng)建目錄時(shí)指定的。如果你不記得了,可以在Developer Studio中的工作區(qū)窗口中選擇項(xiàng)目名稱(這里是“hello files”),然后選擇菜單View|Properties,將可以顯示出項(xiàng)目路徑。切換到debug子目錄下,運(yùn)行hello.exe,程序?qū)⑤敵觯篽ello。l 在Windows環(huán)境下運(yùn)行程序打開Windows的資源管理器,找到程序所在的目錄,運(yùn)行它。你看到的結(jié)果是怎樣的?控制臺(tái)應(yīng)用補(bǔ)充:指針和引用請(qǐng)重復(fù)以上步驟,調(diào)試下面的程序段:#include void main()int x,y;x=5;int & refx=x;cout輸出x的值和地址:endl;coutxendl;cout&xendl;cout輸出引用refx的值和地址:endl;coutrefxendl;cout&refxendl;cout通過引用給x賦值,并輸出:endl;refx=6;coutxendl;cout將y值賦給refx,并輸出x,refx,&refx:endl;y=7;refx=y;coutxendl;coutrefxendl;cout&refxendl;查看引用的地址:1、編譯 連接 后,在int & refx=x; 和 cout輸出x的值和地址:TextOut(50,50,Hello, World);(5)按Ctrl+s或者選菜單File|Save來保存所作的修改5)編譯連接并運(yùn)行重新編譯連接該項(xiàng)目,運(yùn)行程序,你可以用Ctrl+F5直接運(yùn)行程序,系統(tǒng)將詢問你是否重新編譯該項(xiàng)目,回答“是(Yes)”,如果有編譯錯(cuò)誤,仔細(xì)檢查你加的一句話,是否有錯(cuò)。當(dāng)編譯連接通過后,系統(tǒng)會(huì)自動(dòng)運(yùn)行該程序。結(jié)果與上面有什么不同?經(jīng)過上述修改后,程序可以輸出一行文字“Hello, World”。這是你實(shí)現(xiàn)的第一個(gè)Windows程序!是不是很簡(jiǎn)單?!不要擔(dān)心有很多不懂的地方,后面的實(shí)驗(yàn)中你會(huì)慢慢理解?,F(xiàn)在你應(yīng)該會(huì)覺得:哦,原來Windows程序的開發(fā)這么簡(jiǎn)單!題目4、編寫簡(jiǎn)單的計(jì)算程序輸入圓的半徑,計(jì)算圓的周長(zhǎng)和面積并輸出。測(cè)試數(shù)據(jù)輸入:2輸出:The perimeter of the circle : 12.5664The area of the circle : 12.5664輸入:10輸出:The perimeter of the circle : 62.8318The area of the circle : 314.159實(shí)驗(yàn)步驟1) 創(chuàng)建一個(gè)控制臺(tái)項(xiàng)目選擇菜單File|New,在Projects標(biāo)簽下選擇Windows32 Console Application,輸入項(xiàng)目名稱“circle”,然后按OK2) 在項(xiàng)目中增加一個(gè)文件選擇菜單File|New,在Files標(biāo)簽下選擇C/C+ Source File,輸入文件名稱“circle”,然后按OK3)在文件中輸入以下內(nèi)容/-/該程序讓用戶輸入圓的半徑Radius,輸出圓的周長(zhǎng)Perimeter和面積Area#include #include const double PI = 3.14159;/定義一個(gè)常量PIint main() int radius;double perimeter, area;cout radius;perimeter = 2 * PI * radius;/周長(zhǎng)=2Rarea = PI * pow(radius, 2);/面積=R2cout The perimeter of the circle : perimeter endl;cout The area of the circle : area endl;return 0;注:power(radius,2)表示求radius的平方,power(x, y)是系統(tǒng)預(yù)定義的函數(shù),該函數(shù)計(jì)算x的y次方。該函數(shù)的原型在文件math.h中說明。4)編譯、連接并運(yùn)行程序如果你輸入的程序有誤,用下面的方法定位并修改錯(cuò)誤。直到編譯連接通過。運(yùn)行程序,測(cè)試數(shù)據(jù)。編譯和連接錯(cuò)誤定位l 開發(fā)環(huán)境下方的輸出窗口(Output)顯示編譯和連接過程中出現(xiàn)的錯(cuò)誤,錯(cuò)誤信息包括:錯(cuò)誤出現(xiàn)的文件名、行號(hào)、錯(cuò)誤代碼。l 如果不懂錯(cuò)誤消息,將光標(biāo)移動(dòng)到該錯(cuò)誤信息,按F1,就可以顯示該錯(cuò)誤的幫助信息。l 在output窗口,雙擊錯(cuò)誤或者選擇該錯(cuò)誤再按ENTER鍵,系統(tǒng)自動(dòng)將光標(biāo)移動(dòng)到發(fā)生錯(cuò)誤的源程序行,你然后就可以改正錯(cuò)誤。F4鍵可以選擇并定位下一個(gè)錯(cuò)誤(五)注意事項(xiàng)1.Visual Studio C+的運(yùn)行環(huán)境2.程序的Debug調(diào)試方法 (六)實(shí)驗(yàn)要求1.熟悉Visual Studio C+的運(yùn)行環(huán)境2.學(xué)習(xí)完整的C+程序開發(fā)過程3.學(xué)習(xí)控制臺(tái)應(yīng)用4.學(xué)習(xí)Windows應(yīng)用實(shí)驗(yàn)二 類和對(duì)象、繼承和派生(一)實(shí)驗(yàn)?zāi)康呐c要宋體加粗小四。求1.理解面向?qū)ο蟪绦蛟O(shè)計(jì)方法的基本原理及主要特點(diǎn)抽象、封裝、繼承。2.理解類和對(duì)象的概念以及如何利用類來解決具體問題。3.理解類的繼承與派生4.理解不同繼承方式下的基類成員的訪問控制 5.理解添加派生類的構(gòu)造和析構(gòu)函數(shù)的方法 (二)實(shí)驗(yàn)內(nèi)容1.構(gòu)造函數(shù)和析構(gòu)函數(shù)2.派生類的構(gòu)造函數(shù)和析構(gòu)函數(shù)3.觀察構(gòu)造函數(shù)和析構(gòu)函數(shù)的執(zhí)行過程(三)實(shí)驗(yàn)器材及設(shè)備1.硬件:個(gè)人微機(jī)(配置不低于:CPU為P4,主頻1.6G,內(nèi)存256MB,硬盤40GB)2.軟件:操作系統(tǒng)為WindowsXP(或2000、server2003等),工具軟件為Visual C+6.0(四)實(shí)驗(yàn)步驟與方法1.構(gòu)造函數(shù)和析構(gòu)函數(shù)1.1創(chuàng)建項(xiàng)目的步驟為:?jiǎn)?dòng)Developer Studio從主菜單中選擇File|New,將顯示出New對(duì)話框選擇Projects標(biāo)簽,并從列表中單擊Win32 Console Application(1)在“Location”編輯框中輸入你的工作目錄名稱,如c:studentyour_name(問你的指導(dǎo)教師)(2)在對(duì)話框的右上角的“project name”編輯框內(nèi)鍵入項(xiàng)目的名字,如”Hello”,系統(tǒng)將自動(dòng)為你的項(xiàng)目分配一個(gè)默認(rèn)的目錄(3)單擊OK繼續(xù)(4)如果是VC 6.0,系統(tǒng)將顯示一個(gè)詢問項(xiàng)目類型的程序向?qū)Вx擇“an empty project”(5)單擊Finish或OK結(jié)束配置,創(chuàng)建應(yīng)用程序1.2構(gòu)造函數(shù)和析構(gòu)函數(shù)的執(zhí)行#include class scorepublic:score(int x,int y)sc1=x;sc2=y;coutconstructing score : x yendl;score()coutdestructing score: sc1 sc2endl;protected:int sc1;int sc2;class student public:/student(int id):stusc(88,99)/student(int id):xy(20*id)student(int id):english(55),stusc(88,99) noid=id; /coutconstructing a student,id : noidendl; coutconstructing a student,id : noid english: englishendl; student() coutdestructing a student: noidendl; private: int noid; int english; int xy; score stusc;void main() student s1(333);coutback in mainendl; 2.派生類構(gòu)造函數(shù)和析構(gòu)函數(shù)的執(zhí)行 啟動(dòng)Developer Studio從主菜單中選擇File|New,將顯示出New對(duì)話框選擇Projects標(biāo)簽,并從列表中單擊Win32 Console Application(1)在“Location”編輯框中輸入你的工作目錄名稱,如c:studentyour_name(問你的指導(dǎo)教師)(2)在對(duì)話框的右上角的“project name”編輯框內(nèi)鍵入項(xiàng)目的名字,如”Hello”,系統(tǒng)將自動(dòng)為你的項(xiàng)目分配一個(gè)默認(rèn)的目錄(3)單擊OK繼續(xù)(4)如果是VC 6.0,系統(tǒng)將顯示一個(gè)詢問項(xiàng)目類型的程序向?qū)?,選擇“an empty project”(5)單擊Finish或OK結(jié)束配置,創(chuàng)建應(yīng)用程序class Person char m_strName10; intm_nAge;public:Person(char* name,int age) strcpy(m_strName, name);m_nAge = age;coutconstructor of personm_strNameendl; Person() coutdeconstrutor of personm_strNameendl;class Employee : public Personchar m_strDept20;Person Wang;public:Employee(char *name, int age, char *dept, char *name1, int age1): Person(name,age) , Wang(name1,age1)strcpy(m_strDept, dept);coutconstructor of Employeeendl;Employee() coutdeconstrucor of Employeeendl; (五)注意事項(xiàng)1.觀察構(gòu)造函數(shù)和析構(gòu)函數(shù)何時(shí)調(diào)用2.基類、派生類的構(gòu)造函數(shù)和析構(gòu)函數(shù)的調(diào)用順序(六)實(shí)驗(yàn)要求1.掌握面向?qū)ο蟮某绦蛟O(shè)計(jì)思想2.掌握類的定義。3.掌握對(duì)象的聲明和引用。4.掌握具有不同訪問屬性的成員的訪問方式5.掌握繼承和派生的概念,派生類的定義方法。6.熟悉繼承的不同方式對(duì)基類成員的訪問控制7.掌握多重繼承的概念、定義方法、多重繼承派生類構(gòu)造函數(shù)的執(zhí)行順序先執(zhí)行所有基類的構(gòu)造函數(shù)(順序按照定義派生類時(shí)指定的各基關(guān)順序)再執(zhí)行對(duì)象成員所在類的構(gòu)造函數(shù)(順序按照它們?cè)陬愔械穆暶黜樞?最后執(zhí)行派生類構(gòu)造函數(shù)體中的內(nèi)容(七)思考題類的三種繼承方式的主要區(qū)別是什么?實(shí)驗(yàn)三 多態(tài)性和虛函數(shù)(一)實(shí)驗(yàn)?zāi)康呐c要宋體加粗小四。求1.了解多態(tài)性的概念2.了解虛函數(shù)的作用和使用方法3.了解純虛函數(shù)和抽象類的概念和用法(二)實(shí)驗(yàn)內(nèi)容1.理解多態(tài)性的基本思想2.學(xué)習(xí)使用虛函數(shù)實(shí)現(xiàn)動(dòng)態(tài)多態(tài)性(三)實(shí)驗(yàn)器材及設(shè)備1.硬件:個(gè)人微機(jī)(配置不低于:CPU為P4,主頻1.6G,內(nèi)存256MB,硬盤40GB)2.軟件:操作系統(tǒng)為WindowsXP(或2000、server2003等),工具軟件為Visual C+6.0(四)實(shí)驗(yàn)步驟與方法1、多態(tài)性編程實(shí)例#include class chuzhongpublic:chuzhong(double x,double y):x1(x),y1(y)virtual doublesum()double score;score=x1+y1;return score;protected:double x1,y1;class gaozhong :public chuzhongpublic:gaozhong(double x,double y,double z):chuzhong(x,y),z1(z)virtual doublesum() double score;score=x1+y1+z1;return score;protected: doublez1;void fn(chuzhong & chu)coutchu.sum()endl;void main()chuzhong cz(85.5,95.5);gaozhong gz(75.5,78.5,80.5);fn(cz);fn(gz);(五)注意事項(xiàng)1.虛函數(shù)的定義2.實(shí)現(xiàn)多態(tài)性的機(jī)制(六)實(shí)驗(yàn)要求1.掌握多態(tài)性的概念2.掌握虛函數(shù)的作用和使用方法3.掌握純虛函數(shù)和抽象類的概念和用法4.程序格式規(guī)范,程序運(yùn)行正確5.認(rèn)真書寫實(shí)驗(yàn)報(bào)告,如實(shí)填寫各項(xiàng)實(shí)驗(yàn)內(nèi)容(七)思考題 虛函數(shù)是如何實(shí)現(xiàn)多態(tài)性的?實(shí)驗(yàn)四 運(yùn)算符重載(一)實(shí)驗(yàn)?zāi)康呐c要宋體加粗小四。求理解運(yùn)算符重載的概念(二)實(shí)驗(yàn)內(nèi)容掌握運(yùn)算符重載的方法并學(xué)會(huì)使用(三)實(shí)驗(yàn)器材及設(shè)備1.硬件:個(gè)人微機(jī)(配置不低于:CPU為P4,主頻1.6G,內(nèi)存256MB,硬盤40GB)2.軟件:操作系統(tǒng)為WindowsXP(或2000、server2003等),工具軟件為Visual C+6.0(四)實(shí)驗(yàn)步驟與方法運(yùn)算符重載程序設(shè)計(jì):#include class Complexdouble m_fReal, m_fImag;public:Complex(double r = 0, double i = 0): m_fReal(r), m_fImag(i)double Real()return m_fReal;double Imag()return m_fImag;Complex operator +(Complex&);Complex operator +(double);Complex operator =(Complex); Complex Complex:operator + (Complex &c)/ 重載運(yùn)算符 Complex temp;temp.m_fReal = m_fReal+c.m_fReal;temp.m_fImag = m_fImag+c.m_fImag;return temp;Complex Complex:operator + (double d)/ 重載運(yùn)算符Complex temp;temp.m_fReal = m_fReal+d;temp.m_fImag = m_fImag;return temp;Complex Complex:operator = (Complex c)/ 重載運(yùn)算符m_fReal = c.m_fReal;m_fImag = c.m_fImag;return *this;void main()Complex c1(3,4),c2(5,6),c3;cout C1 = c1.Real() +j c1.Imag() endl;cout C2 = c2.Real() +j c2.Imag() endl;c3 = c1+c2;cout C3 = c3.Real() +j c3.Imag() endl;c3 = c3+6.5;cout C3 + 6.5 = c3.Real() +j c3.Imag() endl;(五)注意事項(xiàng) 運(yùn)算符重載的規(guī)則(六)實(shí)驗(yàn)要求 掌握運(yùn)算符重載(七)思考題 哪些運(yùn)算符可以重載?實(shí)驗(yàn)五 STL應(yīng)用(一)實(shí)驗(yàn)?zāi)康呐c要宋體加粗小四。求1.理解類模板定義、使用方法2.vector的用法3.set的用法4.map的用法(二)實(shí)驗(yàn)內(nèi)容1.vector的用法2.set的用法3.map的用法(三)實(shí)驗(yàn)器材及設(shè)備1.硬件:個(gè)人微機(jī)(配置不低于:CPU為P4,主頻1.6G,內(nèi)存256MB,硬盤40GB)2.軟件:操作系統(tǒng)為WindowsXP(或2000、server2003等),工具軟件為Visual C+6.0(四)實(shí)驗(yàn)步驟與方法 1.序列式容器序列式容器中元素的順序與元素值無關(guān),只與元素插入的先后次序和存放位置有關(guān)。STL預(yù)先定義好了三種序列式容器,即Vectors(向量)、Deque(雙向隊(duì)列)和List(雙向鏈表)。STL中的每種序列式容器類都內(nèi)嵌了一個(gè)iterator(迭代器)類,可以由它來定義該容器的iterator。 【例5-1】簡(jiǎn)單應(yīng)用#include #include using namespace std;void main()vector intList;int i;intList.push_back(13); /在尾部插入元素13intList.push_back(75);intList.push_back(28);intList.push_back(35);coutLine 1: List Elements: ;for(i=0;i4;i+) /遍歷向量容器 coutintListi ; /向量容器可以象數(shù)組那樣隨機(jī)訪問coutendl;for(i=0;i4;i+) intListi *=2; /向量容器可以象數(shù)組那樣來訪問coutLine 2: List Elements: ;for(i=0;i4;i+) coutintListi ; /向量容器可以象數(shù)組那樣來訪問coutendl;vector:iterator listIt; /聲明一個(gè)迭代器對(duì)象coutLine 3: list Elements: ;for(listIt=intList.begin();listIt != intList.end();+listIt) /通過迭代器訪問向量容器 cout*listIt ;coutendl;listIt=intList.begin();+listIt;+listIt;intList.insert(listIt,88);coutLine 4: List Elements: ;for(listIt = intList.begin();listIt !=intList.end();+listIt)cout*listIt ;coutendl;運(yùn)行程序輸出結(jié)果如圖5-1所示。圖5-1 例5-1運(yùn)行結(jié)果使用向量容器的成員函數(shù)操作向量容器的再舉例(1)成員函數(shù)push_back ()【功能】在容器尾端加入一個(gè)新數(shù)據(jù)元素通過vector容器的構(gòu)造函數(shù)可以創(chuàng)建一個(gè)vector容器對(duì)象(方式很多種),然后對(duì)vector容器初始化賦值(可以使用成員函數(shù)push_back()在容器尾端加入元素),如果要對(duì)vector容器遍歷的話,既可以常用數(shù)組下標(biāo)方式隨即訪問,也可以用迭代器方式訪問。【例5-2】下面的例子展示了如何用數(shù)組方式訪問vector元素。#include /”vector”頭文件#include using namespace std;int main(void)vector v; /創(chuàng)建一個(gè)vector容器對(duì)象v.push_back(11); /在末端添加數(shù)據(jù)元素11v.push_back(22); v.push_back(33);for(int i = 0; i v.size(); i+)cout v i = vi endl; /下標(biāo)法,隨即訪問return 0; 運(yùn)行結(jié)果如圖5-2所示。圖5-2 例5-2運(yùn)行結(jié)果2、成員函數(shù)insert ()【功能】在任意位置插入一個(gè)數(shù)據(jù)元素除了push_back()函數(shù)可以給vector容器尾部添加元素外,insert()函數(shù)則可以在任意位置插入元素。由于插入的時(shí)候要先將插入位置后面的元素后移,因此,與push_back函數(shù)相比,insert函數(shù)耗時(shí)比push_back函數(shù)久。【例5-3】下面代碼就展示了如何使用insert函數(shù):#include #include using namespace std; int main(void)vector v;v.push_back(22); v.push_back(33);v.push_back(55);v.push_back(66);v.insert(v.begin() + 3, 44); / v.begin() + 3=0+3=3,在v的第3個(gè)位置插入44v.insert(v.begin(),11); v.insert(v.end(),77); for(int i = 0; i v.size(); i+) cout v i = vi endl; return 0; 運(yùn)行結(jié)果如圖5-3所示。圖5-3 例5-3運(yùn)行結(jié)果1、 成員函數(shù)erase()與clear()【功能】刪除元素學(xué)會(huì)了如何給vector容器添加元素以后,當(dāng)然要知道怎么刪除元素了。vector容器提供了erase()函數(shù),可以用來刪除指定元素或者迭代器區(qū)間first,last)內(nèi)的元素。vector容器還提供另一個(gè)刪除元素的函數(shù)是clear()函數(shù),它在內(nèi)部調(diào)用了erase()函數(shù)將begin(),end()區(qū)間的元素全部刪除,即清空vector容器?!纠?-4】下面代碼展示了如何使用erase成員函數(shù)和clear成員函數(shù)#include #include using namespace std;void main(void)vector v; v.push_back(11);v.push_back(22);v.push_back(33);v.push_back(44);v.push_back(55);v.erase(v.begin()+1); v.erase(v.begin()+2,v.begin()+4);vector:iterator i;int j;for(i=v.begin(), j=0; i!=v.end(); i+, j+) coutv j = *i endl;v.clear(); cout vector clear()! endl;運(yùn)行結(jié)果如圖5-4所示。圖5-4 例5-4運(yùn)行結(jié)果/注:之前用的迭代器是正向,vector還提供了反向迭代器(reverse_iterator,相應(yīng)的有rbegin(),rend(),具體使用方法跟之前的一樣,這里就不舉例了。4、成員函數(shù)swap() 【功能】交換兩個(gè)同類型vector容器的數(shù)據(jù)元素【例5-5】下面代碼展示了如何使用swap函數(shù):#include #include using namespace std;void print(vector& v)for(int i = 0; i v.size(); i+)cout vi ;cout endl;void main(void)vector v1; v1.push_back(11);v1.push_back(22);v1.push_back(33);cout v1 = ;print(v1); vector v2;v2.push_back(44);v2.push_back(55);v2.push_back(66);cout v2 = ;print(v2);v1.swap(v2); /交換v1和v2的元素cout After swap: endl;cout v1 = ;print(v1);cout v2 = ;print(v2); 運(yùn)行結(jié)果如圖5-5所示。圖5-5 例5-5運(yùn)行結(jié)果5、其它幾個(gè)成員函數(shù)vector容器還提供了一些可以用于統(tǒng)計(jì)的函數(shù),可以用empty()函數(shù)來判斷容器是否為空;size()函數(shù)返回容器實(shí)際的元素個(gè)數(shù)(上面已經(jīng)有用到過);max_size()函數(shù)來獲得容器的最大元素個(gè)數(shù),capacity()函數(shù)來獲得容器當(dāng)前可容納的vector元素個(gè)數(shù)(如果沒有特殊聲明容器可容納元素個(gè)數(shù)的話,該函數(shù)返回值一般跟size()是一樣的,不過如果使用reserve函數(shù)來重新調(diào)整容器可容納元素個(gè)數(shù)則會(huì)修改該函數(shù)的返回值,而不會(huì)修改size()函數(shù)的返回值), 【例5-6】下面的代碼展示了上面幾個(gè)函數(shù)的用法:#include #include using namespace std;void print(vector& v)cout - endl;cout empty = v.empt
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 設(shè)施維護(hù)安全管理辦法
- 福建高速超限管理辦法
- 營(yíng)運(yùn)企業(yè)計(jì)劃管理辦法
- 私立醫(yī)院捐贈(zèng)管理辦法
- 肩頸護(hù)理課件
- 醫(yī)院全員應(yīng)急培訓(xùn)課件
- 外聯(lián)禮儀培訓(xùn)課件
- 高中自助招生數(shù)學(xué)試卷
- 二零一九小升初數(shù)學(xué)試卷
- 高中提分?jǐn)?shù)學(xué)試卷
- 2022年西學(xué)中考試題庫(kù)
- 電極檢驗(yàn)標(biāo)準(zhǔn)
- 戰(zhàn)略定位與企業(yè)核心競(jìng)爭(zhēng)力課件
- 《大學(xué)物理》課程教學(xué)大綱
- 99S203消防水泵接合器安裝圖集
- 建筑安全生產(chǎn)自查臺(tái)賬(建筑施工)
- 人教版 小學(xué)音樂下冊(cè) 一至六年級(jí)全套精品教案(1-6年級(jí)全套合集)
- 承臺(tái)模板及支架檢驗(yàn)批質(zhì)量驗(yàn)收記錄表
- 完整word版ZEMAX光學(xué)設(shè)計(jì)超級(jí)學(xué)習(xí)手冊(cè)第1章
- 老年友善醫(yī)療機(jī)構(gòu)創(chuàng)建資料匯編(患者就醫(yī)服務(wù)流程)
- 人教版小學(xué)數(shù)學(xué)三年級(jí)下冊(cè)期末復(fù)習(xí)計(jì)算題專項(xiàng)訓(xùn)練—口算與估算【含答案】
評(píng)論
0/150
提交評(píng)論