實驗指導2010版_第1頁
實驗指導2010版_第2頁
實驗指導2010版_第3頁
實驗指導2010版_第4頁
實驗指導2010版_第5頁
已閱讀5頁,還剩24頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、面向?qū)ο缶幊?實驗指導書前 言本書是電大本科課程面向?qū)ο蟪绦蛟O(shè)計的實驗指示書,一般人員也可以使用它作為學習C+語言的上機指導。因為選擇以Microsoft公司的C+開發(fā)環(huán)境Visual C+作為實驗環(huán)境,因此書的前一部分介紹了Visual C+的一些基本知識,并且在實驗進行的過程中穿插介紹使用Visual C+的一些技巧。書的內(nèi)容分為兩大部分:第一部分介紹Visual C+實驗環(huán)境;第二部分是具體的實驗安排。使用本書前,請先閱讀以下內(nèi)容:1C+語言實驗環(huán)境配置要求硬件配置:586以上PC兼容機或品牌機,配有彩色顯示器、鼠標、鍵盤,內(nèi)存不小于20MB,硬盤自由空間不少于60MB。推薦配置為內(nèi)存3

2、2MB或64MB(或以上),硬盤自由空間500MB以上。軟件配置:操作系統(tǒng):Windows95, Windows98, Windows NT3.51以上版本。開發(fā)集成環(huán)境:Microsoft Visual C+5.0以上版本2建立自己的工作目錄你需要在計算機上先建立自己的工作目錄,所有的實驗都在該工作目錄下進行。使用Visual C+建立新項目時,需要指定該目錄作為項目所在的目錄。本書中假設(shè)你的工作目錄為c:studentyour_name,具體的實驗目錄由你的指導教師指定。3安裝Visual C+Visual C+ 6.0和Visual C+ 5.0最大的不同是在聯(lián)機幫助系統(tǒng)上做了很大改變。

3、Visual C+ 5.0的幫助系統(tǒng)直接集成在開發(fā)環(huán)境之中,在安裝Visual C+ 5.0時就可以選擇安裝幫助內(nèi)容。而Visual C+ 6.0的聯(lián)機幫助系統(tǒng)采用了MSDN(Microsoft Developer Network)庫,在安裝Visual C+ 6.0時,只安裝了MSDN的索引,實際的內(nèi)容在光盤上。如果希望能脫離光盤使用幫助系統(tǒng),需要在安裝了Visual C+ 6.0以后,再運行MSDN的安裝程序,把完整的庫裝到硬盤上。第一部分 Visual C+實驗環(huán)境介紹一、Visual C+簡介Visual C+是Microsoft公司的Visual Studio開發(fā)工具箱中的一個C+程

4、序開發(fā)包。VisualStudio提供了一整套開發(fā)Internet和Windows應用程序的工具,包括VisualC+, Visual Basic, Visual Foxpro, Visual InterDev, Visual J+以及其他輔助工具,如代碼管理工具Visual SourceSafe和聯(lián)機幫助系統(tǒng)MSDN。Visual C+包中除包括C+編譯器外,還包括所有的庫、例子和為創(chuàng)建Windows應用程序所需要的文檔。從最早期的1.0版本,發(fā)展到最新的6.0版本,Visual C+已經(jīng)有了很大的變化,在界面、功能、庫支持方面都有許多的增強。最新的6.0版本在編譯器、MFC類庫、編輯器以及

5、聯(lián)機幫助系統(tǒng)等方面都比以前的版本做了較大改進。Visual C+一般分為三個版本:學習版、專業(yè)版和企業(yè)版,不同的版本適合于不同類型的應用開發(fā)。實驗中可以使用這三個版本的任意一種。Visual C+集成開發(fā)環(huán)境(IDE)集成開發(fā)環(huán)境(IDE)是一個將程序編輯器、編譯器、調(diào)試工具和其他建立應用程序的工具集成在一起的用于開發(fā)應用程序的軟件系統(tǒng)。Visual C+軟件包中的Developer Studio就是一個集成開發(fā)環(huán)境,它集成了各種開發(fā)工具和VC編譯器。程序員可以在不離開該環(huán)境的情況下編輯、編譯、調(diào)試和運行一個應用程序。IDE中還提供大量在線幫助信息協(xié)助程序員做好開發(fā)工作。Developer S

6、tudio中除了程序編輯器、資源編輯器、編譯器、調(diào)試器外,還有各種工具和向?qū)Вㄈ鏏ppWizard和ClassWizard),以及MFC類庫,這些都可以幫助程序員快速而正確地開發(fā)出應用程序。向?qū)?Wizard)向?qū)且粋€通過一步步的幫助引導你工作的工具。Developer Studio中包含三個向?qū)В脕韼椭绦騿T開發(fā)簡單的Windows程序,它們是:AppWizard:用來創(chuàng)建一個Windows程序的基本框架結(jié)構(gòu)。AppWizard向?qū)徊讲较虺绦騿T提出問題,詢問他所創(chuàng)建的項目的特征,然后AppWizard會根據(jù)這些特征自動生成一個可以執(zhí)行的程序框架,程序員然后可以在這個框架下進一步填充內(nèi)

7、容。AppWizard支持三類程序:基于視圖/文檔結(jié)構(gòu)的單文檔應用、基于視圖/文檔結(jié)構(gòu)的多文檔應用程序和基于對話框的應用程序。也可以利用AppWizard生成最簡單的控制臺應用程序(類似于DOS下用字符輸入輸出的程序)。ClassWizard:用來定義AppWizard所創(chuàng)建的程序中的類??梢岳肅lassWizard在項目中增加類、為類增加處理消息的函數(shù)等。ClassWizard也可以管理包含在對話框中的控件,它可以將MFC對象或者類的成員變量與對話框中的控件聯(lián)系起來。ActiveX Control Wizard:用于創(chuàng)建一個ActiveX控件的基本框架結(jié)構(gòu)。ActiveX控件是用戶自定義的

8、控件,它支持一系列定義的接口,可以作為一個可再利用的組件。MFC庫庫(library)是可以重復使用的源代碼和目標代碼的集合。MFC(Microsoft Fundamental Casses)是Visual C+開發(fā)環(huán)境所帶的類庫,在該類庫中提供了大量的類,可以幫助開發(fā)人員快速建立應用程序。這些類可以提供程序框架、進行文件和數(shù)據(jù)庫操作、建立網(wǎng)絡(luò)連接、進行繪圖和打印等各種通用的應用程序操作。使用MFC庫開發(fā)應用程序可以減少很多工作量。 二、項目開發(fā)過程在一個集成的開發(fā)環(huán)境中開發(fā)項目非常容易。一個用C+開發(fā)的項目的通用開發(fā)過程可以用左圖表示。建立一個項目的第一步是利用編輯器建立程序代碼文件,包括頭

9、文件、代碼文件、資源文件等。然后,啟動編譯程序,編譯程序首先調(diào)用預處理程序處理程序中的預處理命令(如#include,#define等),經(jīng)過預處理程序處理的代碼將作為編譯程序的輸入。編譯對用戶程序進行詞法和語法分析,建立目標文件,文件中包括機器代碼、連接指令、外部引用以及從該源文件中產(chǎn)生的函數(shù)和數(shù)據(jù)名。此后,連接程序?qū)⑺械哪繕舜a和用到的靜態(tài)連接庫的代碼連接起來,為所有的外部變量和函數(shù)找到其提供地點,最后產(chǎn)生一個可執(zhí)行文件。一般有一個makefile文件來協(xié)調(diào)各個部分產(chǎn)生可執(zhí)行文件。 可執(zhí)行文件分為兩種版本:Debug和Release。Debug版本用于程序的開發(fā)過程,該版本產(chǎn)生的可執(zhí)行程

10、序帶有大量的調(diào)試信息,可以供調(diào)試程序使用,而Release版本作為最終的發(fā)行版本,沒有調(diào)試信息,并且?guī)в心撤N形式的優(yōu)化。學員在上機實習過程中可以采用Debug版本,這樣便于調(diào)試。選擇是產(chǎn)生Debug版本還是Release版本的方法是:在Developer Studio中選擇菜單Build|Set Active Configuration,在彈出的對話框中,選擇所要的類型,然后選擇OK關(guān)閉對話框。Visual C+ 集成開發(fā)環(huán)境中集成了編輯器、編譯器、連接器以及調(diào)試程序,覆蓋了的開發(fā)應用程序的整個過程,程序員不需要脫離這個開發(fā)環(huán)境就可以開發(fā)出完整的應用程序。三、集成開發(fā)環(huán)境Developer S

11、tudio進入Developer Studio如果你使用的是Visual C+ 6.0,則要進入Developer Studio,需要單擊任務欄中“開始”后選擇“程序”,找到Microsoft Visual Studio 6.0文件夾后,單擊其中的Microsoft Visual C+6.0圖標,則可以啟動Developer Studio。如果你使用的是Visual C+ 5.0,則要進入Developer Studio,需要單擊任務欄中“開始”后選擇“程序”,找到Microsoft Visual C+ 5.0文件夾后,單擊其中的Microsoft Visual C+5.0圖標,則可以啟動De

12、veloper Studio。Developer Studio的界面Developer Studio用戶界面是一個由窗口、工具條、菜單、工具及其他部分組成的一個集成界面。通過這個界面,用戶可以在同一環(huán)境下創(chuàng)建、測試、調(diào)試應用程序。VC5和VC6的Developer Studio的初始化界面有一些小的差異,VC5的界面如下:主要部分介紹如下: 工具條和菜單,用于提供用戶操作的命令接口。菜單以文字和層次化的方式提供命令接口,工具條由一系列按鈕組成。這些按鈕用一系列小的位圖標志。工具條以圖標方式提供快速的命令選擇。菜單和工具條在開發(fā)的不同進程有不同顯示內(nèi)容。當?shù)谝淮未蜷_Developer Studi

13、o時,標準的工具條和菜單就會顯示出來,隨著開發(fā)的不同步驟,不同的工具條就會自動顯示出來,菜單也會有所變化。工具條有很多種,你可以顯示任意多的工具條,只要屏幕空間允許。工具條可以任意移動,也可以放大縮小。工具條和菜單條功能基本相同,唯一的區(qū)別是:菜單條總占據(jù)一行,并且一般不能隱藏。 工作區(qū)窗口,這個窗口包含關(guān)于正在開發(fā)的這個項目的有關(guān)信息。在沒有開發(fā)任何項目時,該窗口顯示系統(tǒng)的幫助目錄。當打開一個項目以后,工作區(qū)窗口將會顯示關(guān)于當前項目的文件信息和類的信息。下圖是打開一個項目hello以后的工作區(qū)窗口(假設(shè)該項目由兩個文件cpp1.cpp, cpp2.cpp組成)。 文檔窗口區(qū),這個區(qū)域可以顯示

14、各種類型的文檔,如源代碼文件、頭文件、資源文件等??梢酝瑫r打開多個文檔。 輸出窗口,輸出窗口用來顯示幾種信息,可以通過選擇不同的標簽顯示不同的信息。這些信息包括:編譯連接結(jié)果信息(Build標簽)、調(diào)試信息(Debug標簽)、查找結(jié)果信息(Find in Files標簽)。其中查找結(jié)果信息有兩個標簽,可以顯示兩次在文件中查找指定內(nèi)容的結(jié)果VC6因為在聯(lián)機幫助系統(tǒng)上比VC5做了很大改進,所以在工作區(qū)窗口中沒有VC5的InfoView,初始化界面的其他部分都與VC5相似。Deleveloper Studio使用Microsoft Developer Network(MSDN)庫作為它的聯(lián)機幫助系統(tǒng)

15、。其界面如下:總的來說,窗口和命令接口(包括工具條和菜單條)是構(gòu)成界面的最主要組成部分。通常有兩種窗口:文檔窗口和可附著(docking)窗口。文檔窗口顯示在文檔窗口區(qū),用于顯示和編輯文檔,其的大小和位置可以隨其所處的Developer Studio窗口的改變而改變,可以最大化和最小化??筛街翱诳梢愿街趹贸绦虼翱诘倪吔?,也可以浮在屏幕上的任何位置??筛街翱谟校汗ぷ鲄^(qū)(workspace)窗口,輸出(output)窗口,調(diào)試窗口(包括variable, watch, local等窗口)等。文檔窗口的位置、大小及是否可見和它所在的項目有關(guān),docking窗口的位置、大小及是否可見則與項目進

16、行的狀態(tài)以及各種編輯和調(diào)試的操作有關(guān)。各種窗口和各種工具條以及菜單構(gòu)成了界面的布局。一旦用戶決定了一種界面布局,系統(tǒng)就會為一直為用戶保持這種布局,直到用戶下一次改變該布局為止。獲得幫助信息大多數(shù)時候,你可以通過按F1得到上下文幫助。如在編輯文件時按F1可以得到有關(guān)編輯的幫助,在編譯連接錯誤信息上按F1可以得到關(guān)于該錯誤的幫助信息。如果想系統(tǒng)地獲得幫助,在VC5中可以單擊工作區(qū)窗口的InfoView標簽,從其中選擇要想了解的內(nèi)容。要想查找關(guān)于某個話題的幫助,可以選擇菜單Help|Search,在查詢對話框中進行查找。VC6中,可以通過選擇菜單Help|Contents來啟動MSDN查閱器,MSD

17、N查閱器是一個功能強大的程序,可以方便地瀏覽、查找信息,要想知道具體如何使用MSDN查閱器,可以在MSDN查閱器中選菜單Help下的命令。Visual C+的編輯器Developer Studio包含一個功能強大的編輯器,可以編輯將被編譯成Windows程序的Visual C+源文件。這個編輯器有點象字處理器,但是沒有字處理器具備的復雜的排版、文本格式等功能,它注重的是如何幫助程序員快速高效地編制程序。它具有以下特點: 自動語法。用高亮度和不同顏色的字來顯示不同的語法成分,如注釋、關(guān)鍵字和一般代碼用不同的顏色顯示 自動縮進。幫助你排列源代碼,使其可讀性更強 參數(shù)幫助。在編輯時用到預定義的win

18、dows函數(shù)時,可以自動為你顯示函數(shù)參數(shù) 集成的關(guān)鍵字幫助。能夠使你快速得到任何關(guān)鍵字、MFC類或Windows函數(shù)的幫助信息(按F1即可) 拖放編輯。能夠用鼠標選擇文本并自由拖動到任意位置 自動錯誤定位。能自動將光標移動到有編譯錯誤的源代碼處。當你打開一個源代碼文件時,就可以利用編輯器對其進行編輯。源代碼文件在文檔顯示區(qū)顯示,每個文件有獨立的顯示窗口。如果你選擇用其他編輯器編輯源文件,必須將它以純文本的方式保存。VC的編譯器不能處理其中有特別格式字符的文件。四、常用功能鍵及其意義為了使程序員能夠方便快捷地完成程序開發(fā),開發(fā)環(huán)境提供了大量快捷方式來簡化一些常用操作的步驟。鍵盤操作直接、簡單,而

19、且非常方便,因而程序員非常喜歡采用鍵盤命令來控制操作。下面是一些最常用的功能鍵,希望學員在實驗中逐步掌握。操作類型功能鍵對應菜單含義文件操作Ctrl+NFile|New創(chuàng)建新的文件、項目等Ctrl+OFile|Open打開項目、文件等Ctrl+SFile|Save保存當前文件編輯操作Ctrl+XEdit|Cut剪切Ctrl+CEdit|Copy復制Ctrl+VEdit|Paste粘貼Ctrl+ZEdit|Undo撤消上一個操作Ctrl+YEdit|Redo重復上一個操作Ctrl+AEdit|Select All全選DelEdit|Del刪除光標后面的一個字符建立程序操作Ctrl+F7Build

20、| Compiler current file編譯當前源文件Ctrl+F5Build|Run exe運行當前項目F7Build|Build exe建立可執(zhí)行程序F5Build|Start Debugging啟動調(diào)試程序調(diào)試F5Debug|Go繼續(xù)運行F11Debug|Step into進入函數(shù)體內(nèi)部shift+F11Debug|Step out從函數(shù)體內(nèi)部運行出來F10Debug|Step over執(zhí)行一行語句F9設(shè)置/清除斷點Ctrl+F10Debug|Run to cursor運行到光標所在位置shift+F9Debug|QuickWatch快速查看變量或表達式的值Shift + F5De

21、bug|Stop debugging停止調(diào)試第二部分 實驗注意事項:(1) 每次實驗以前,需要詳細閱讀實驗目的、實驗要求和實驗提示,以便能準確地理解實驗要求,達到實驗的目的。有測試數(shù)據(jù)要求的,需要給出測試結(jié)果,有要求回答問題的,需要給出問題的回答。每次實驗都有幾個題目,要求為每個題目創(chuàng)建不同的項目,以便于檢查。(2) 有的實驗前后有聯(lián)系,需要先完成前面的實驗再進行后面的實驗,如類和繼承的實驗。請務必按照先后順序完成實驗。(3) 輔導老師那兒有關(guān)于實驗的詳細解答,如果有疑問,可以請教輔導老師。實驗一 結(jié)構(gòu)與類一、實驗目的:1、熟悉VC+6.0的集成環(huán)境及其基本操作。2、掌握一個VC+應用程序的組

22、成及創(chuàng)建方法。3、理解簡單的C+程序結(jié)構(gòu)。4、理解結(jié)構(gòu)與類。二、實驗要求:1、 分別用結(jié)構(gòu)體和類來表示多項式中的一項MP_NODE(節(jié)點);2、 定義一個多項式創(chuàng)建函數(shù)Create(實現(xiàn)從鍵盤按指數(shù)從大到小輸入各項系數(shù)和指數(shù));3、 定義一個多項式乘一個實數(shù)的函數(shù)Multiply();4、 定義一個多項式相加函數(shù)Add;5、 定義一個輸出多項式的函數(shù)Show;6、定義一個刪除多項式的函數(shù)Del;7、定義main函數(shù)驗證以上要求。三、程序模版#include iostream.hstruct MP_NODEfloat coef;int exp;MP_NODE *next;class MP_NOD

23、EPublic:float coef;int exp;MP_NODE *next;MP_NODE *Create()MP_NODE *head=0;/第1項MP_NODE *tail=0;/最后項MP_NODE *tp=0;/新增項float coef;int exp;cout請按指數(shù)從大到小的方式輸入多項式的系數(shù)和指數(shù)endl;while(1)coutcoef;coutexp;if(coef=0)/系數(shù)為0表示結(jié)束該多項式break;tp=new MP_NODE;tp-coef=coef;tp-exp=exp;tp-next=0;if(head=0)/第1項tail=tp;head=tp;e

24、lsetail-next=tp;tail=tp;return head;MP_NODE *Add(MP_NODE *pa,MP_NODE *pb)MP_NODE *pacur=pa,*pbcur=pb;MP_NODE *head=0;/結(jié)果第1項MP_NODE *tail=0;/結(jié)果最后項MP_NODE *tp=0;/新增項float coef;int exp;while(pacur!=0&pbcur!=0)if(pacur-exp pbcur-exp)/pacur指數(shù)大/待補充完成else if(pacur-exp exp)/pbcur指數(shù)大/待補充完成else/指數(shù)相等/待補充完成if(c

25、oef!=0)/系數(shù)不為0,結(jié)果中新增一項/待補充完成/經(jīng)過上面循環(huán)處理后,pacur與pbcur必有一個已經(jīng)處理完成while(pacur!=0)/pbcur處理完成后,直接將pacur剩下的項加入結(jié)果中即可/待補充完成while(pbcur!=0)/paur處理完成后,直接將pbcur剩下的項加入結(jié)果中即可coef=pbcur-coef;exp=pbcur-exp;pbcur=pbcur-next;if(coef!=0)/待補充完成return head;/多項式乘一個實數(shù)void Multiply(MP_NODE *head,float f)MP_NODE *tp=head;while(

26、tp!=0)tp-coef*=f;tp=tp-next;/輸出多項式void Show(MP_NODE *mp)while(mp!=0)coutcoefXexpnext;coutnext;delete tp;int main(int argc, char* argv)MP_NODE *pa=Create();Show(pa);MP_NODE *pb=Create();Show(pb);MP_NODE *pc=Add(pa,pb);Show(pc);Del(pa);Del(pb);Del(pc);return 0;實驗二 構(gòu)造函數(shù)一、實驗目的:1、進一步熟悉VC+6.0的集成環(huán)境及其基本操作。2

27、、初步學習程序調(diào)試。3、理解并掌握構(gòu)造函數(shù)的定義和作用。二、實驗要求:1、 在第一次實驗的基礎(chǔ)上,給類MP_NODE增加一個構(gòu)造函數(shù)(實現(xiàn)將當前正在創(chuàng)建的項加入多項式的功能);2、 定義包含3個MP_NODE指針的2個數(shù)組(一個是head,一個是tail);3、 重載一個多項式相乘函數(shù)Multiply();4、定義main函數(shù)驗證以上要求。三、程序模版#include iostream.hclass MP_NODEpublic:float coef;int exp;MP_NODE *next;int head_index;MP_NODE(float f,int e,int index);MP_

28、NODE *head3,*tail3;MP_NODE:MP_NODE(float f,int e,int index)coef=f;exp=e;next=0;if(headindex=0)headindex=this;tailindex=this;elsetailindex-next=this;tailindex=this;void Create(int i)headi=0;/第1項taili=0;/最后項MP_NODE *tp=0;/新增項float coef;int exp;cout請按指數(shù)從大到小的方式輸入多項式的系數(shù)和指數(shù)endl;while(1)coutcoef;coutexp;if

29、(coef=0)/系數(shù)為0表示結(jié)束該多項式break;tp=new MP_NODE(coef,exp,i);void Add(int a,int b)MP_NODE *pacur=heada,*pbcur=headb;head2=0;/結(jié)果第1項tail2=0;/結(jié)果最后項MP_NODE *tp=0;/新增項float coef;int exp;while(pacur!=0&pbcur!=0)if(pacur-exp pbcur-exp)/pacur指數(shù)大/待補充完成else if(pacur-exp exp)/pbcur指數(shù)大/待補充完成else/指數(shù)相等/待補充完成if(coef!=0)/

30、系數(shù)不為0,結(jié)果中新增一項/待補充完成/經(jīng)過上面循環(huán)處理后,pacur與pbcur必有一個已經(jīng)處理完成while(pacur!=0)/pbcur處理完成后,直接將pacur剩下的項加入結(jié)果中即可/待補充完成while(pbcur!=0)/paur處理完成后,直接將pbcur剩下的項加入結(jié)果中即可coef=pbcur-coef;exp=pbcur-exp;pbcur=pbcur-next;if(coef!=0)/待補充完成/輸出多項式void Show(int i)MP_NODE *tp=headi;while(tp!=0)coutcoefXexpnext;coutnext;delete tp;

31、/i多項式相乘一個實數(shù)fvoid Multiply(int i,float f)MP_NODE *tp=headi;while(tp!=0)tp-coef*=f;tp=tp-next;/a,b兩個多項式相乘void Multiply(int a,int b)/自己補充完整int main(int argc, char* argv)Create(0);Show(0);Create(1);Show(1);Add(0,1);Show(2);Del(0);Del(0);Del(2);return 0;實驗三 析構(gòu)函數(shù)一、實驗目的:1、進一步熟悉VC+6.0的集成環(huán)境及其基本操作。2、進一步學習程序調(diào)試

32、。3、理解并掌握析造函數(shù)的定義和作用。二、實驗要求:1、在第二次實驗的基礎(chǔ)上定義一個析構(gòu)函數(shù)(實現(xiàn)將當前正在析構(gòu)的項脫離多項式的功能);2、修改從鍵盤輸入各項系數(shù)和指數(shù)為隨機方式;3、修改輸出多項式為習慣方式;4、定義main函數(shù)驗證以上要求。三、程序模版#include iostream.hclass MP_NODEpublic:float coef;int exp;MP_NODE *next;int head_index;MP_NODE(float f,int e,int index);MP_NODE();MP_NODE *head3,*tail3;/實現(xiàn)將當前對象(this)脫離鏈表的功

33、能MP_NODE:MP_NODE()/首先找到headhead_index鏈中位于this前的一個節(jié)點tp/tp-next=next;MP_NODE:MP_NODE(float f,int e,int index)coef=f;exp=e;next=0;if(headindex=0)headindex=this;tailindex=this;elsetailindex-next=this;tailindex=this;void Create(int i)headi=0;/第1項taili=0;/最后項MP_NODE *tp=0;/新增項float coef;int exp;/修改從鍵盤輸入各項

34、系數(shù)和指數(shù)為隨機方式;void Add(int a,int b)MP_NODE *pacur=heada,*pbcur=headb;head2=0;/結(jié)果第1項tail2=0;/結(jié)果最后項MP_NODE *tp=0;/新增項float coef;int exp;while(pacur!=0&pbcur!=0)if(pacur-exp pbcur-exp)/pacur指數(shù)大/待補充完成else if(pacur-exp exp)/pbcur指數(shù)大/待補充完成else/指數(shù)相等/待補充完成if(coef!=0)/系數(shù)不為0,結(jié)果中新增一項/待補充完成/經(jīng)過上面循環(huán)處理后,pacur與pbcur必有

35、一個已經(jīng)處理完成while(pacur!=0)/pbcur處理完成后,直接將pacur剩下的項加入結(jié)果中即可/待補充完成while(pbcur!=0)/paur處理完成后,直接將pbcur剩下的項加入結(jié)果中即可coef=pbcur-coef;exp=pbcur-exp;pbcur=pbcur-next;if(coef!=0)/待補充完成/輸出多項式void Show(int i)/修改輸出多項式為習慣方式;/刪除多項式void Del(int i)MP_NODE *tp=headi;while(headi!=0)tp=headi;headi=headi-next;delete tp;/i多項式

36、相乘一個實數(shù)fvoid Multiply(int i,float f)MP_NODE *tp=headi;while(tp!=0)tp-coef*=f;tp=tp-next;/a,b兩個多項式相乘void Multiply(int a,int b)int main(int argc, char* argv)Create(0);Show(0);Create(1);Show(1);Add(0,1);Show(2);Del(0);Del(0);Del(2);return 0;實驗四 友元與對象成員一、實驗目的:1、進一步熟悉VC+6.0的集成環(huán)境及其基本操作。2、進一步學習程序調(diào)試。3、理解并掌握友

37、元作用。4、理解并掌握對象成員的作用以及如何由簡單對象組成復雜對象。二、實驗要求:1、 在前3次實驗的基礎(chǔ)上,定義一個多項式類MP(有一個MP_NODE類型的head指針和MP_NODE類型的tail指針);2、 定義MP的構(gòu)造函數(shù)(實現(xiàn)創(chuàng)建多項式的功能,即類似前面Create函數(shù));3、 定義MP的析構(gòu)函數(shù)(實現(xiàn)多項式的撤消功能)。4、 定義main函數(shù)驗證以上要求。三、程序模版/ lhp.cpp : Defines the entry point for the console application./#include iostream.hclass MP;class MP_NODEpu

38、blic:float coef;int exp;MP_NODE *next;int head_index;MP_NODE(float f,int e,MP * mMp);MP_NODE();class MPMP_NODE *head;MP_NODE *tail;public:friend MP_NODE;MP(int flag);MP *Add(MP *pb);/多項式加另一個多項式void Multiply(float f);/多項式乘一個實數(shù)MP *Multiply(MP *b);/多項式乘另一個多項式MP();void Show();/輸出多項式;/實現(xiàn)將當前對象(this)脫離鏈表的功

39、能MP_NODE:MP_NODE()/首先找到head鏈中位于this前的一個節(jié)點tp/tp-next=next;MP_NODE:MP_NODE(float f,int e,MP *pMp)coef=f;exp=e;next=0;if(pMp-head=0)pMp-head=this;pMp-tail=this;elsepMp-tail-next=this;pMp-tail=this;/flag用于表示創(chuàng)建的多項式是否為空MP:MP(int flag)head=0;/第1項tail=0;/最后項MP_NODE *tp=0;/新增項float coef;int exp;if(flag=1)/創(chuàng)建

40、空多項式return;else/修改從鍵盤輸入各項系數(shù)和指數(shù)為隨機方式;MP *MP:Add(MP *pb)MP_NODE *pacur=head,*pbcur=pb-head;MP *tp=new MP(1);float coef;int exp;while(pacur!=0&pbcur!=0)if(pacur-exp pbcur-exp)/pacur指數(shù)大/待補充完成else if(pacur-exp exp)/pbcur指數(shù)大/待補充完成else/指數(shù)相等/待補充完成if(coef!=0)/系數(shù)不為0,結(jié)果中新增一項/待補充完成/經(jīng)過上面循環(huán)處理后,pacur與pbcur必有一個已經(jīng)處理

41、完成while(pacur!=0)/pbcur處理完成后,直接將pacur剩下的項加入結(jié)果中即可/待補充完成while(pbcur!=0)/paur處理完成后,直接將pbcur剩下的項加入結(jié)果中即可coef=pbcur-coef;exp=pbcur-exp;pbcur=pbcur-next;if(coef!=0)/待補充完成return tp;/析構(gòu)多項式MP:MP()MP_NODE *tp=head;while(head!=0)tp=head;head=head-next;delete tp;/i多項式相乘一個實數(shù)fvoid MP:Multiply(float f)MP_NODE *tp=head;while(tp!=0)tp-coef*=f;tp=tp-next;int main(int argc, char* argv)return 0;實驗五 繼承與多態(tài)性一、實驗目的:1、進一步熟悉VC+6.0的集成環(huán)境及其基本操作。2、進一步學習程序調(diào)試。3、理解并掌握繼承這種軟件復用形式。4、理解并掌握虛擬繼承。5、掌握子類對象的各種構(gòu)造方式。二、實驗要求:人工人學生大學生研究生在職研究生1、 按照以上層次圖定義6個類(Person、Worker、Student、CStudent、GStudent、GWorke

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論