《面向?qū)ο蟪绦蛟O(shè)計》實驗指導書 (1-6個實驗,含參考代碼)_第1頁
《面向?qū)ο蟪绦蛟O(shè)計》實驗指導書 (1-6個實驗,含參考代碼)_第2頁
《面向?qū)ο蟪绦蛟O(shè)計》實驗指導書 (1-6個實驗,含參考代碼)_第3頁
《面向?qū)ο蟪绦蛟O(shè)計》實驗指導書 (1-6個實驗,含參考代碼)_第4頁
《面向?qū)ο蟪绦蛟O(shè)計》實驗指導書 (1-6個實驗,含參考代碼)_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、面向?qū)ο蟪绦蛟O(shè)計實驗指導書(適用:電子信息11級)彭召意 陶立新 編寫計算機與通信學院2014.9目錄實驗一 C+基礎(chǔ)的應(yīng)用1實驗二 類和對象的應(yīng)用3實驗三 類的構(gòu)造函數(shù)、析構(gòu)函數(shù)的應(yīng)用4實驗四 友員和運算符重載5實驗五 類的繼承與派生6實驗六 類的多態(tài)性與虛函數(shù)7附錄:各實驗的程序代碼8實驗一 C+基礎(chǔ)的應(yīng)用(實驗課時:2 實驗性質(zhì):設(shè)計)實驗名稱: C+基礎(chǔ)的應(yīng)用實驗?zāi)康? (1)進一步學習VC+6.0開發(fā)環(huán)境及程序調(diào)試方法。(2)練習C+函數(shù)的定義及使用;(3)練習C+數(shù)組的定義及使用;(4)練習C+指針的定義及使用;(5)練習C+結(jié)構(gòu)體的定義及使用;(6)練習多文件的程序的編譯和運行方

2、法;實驗設(shè)備: (1)硬件:個人微機(配置不低于:CPU為P4,主頻1.6G,內(nèi)存256MB,硬盤40GB);(2)軟件:操作系統(tǒng)為WindowsXP(或2000、server2003等),工具軟件為Visual C+6.0。實驗內(nèi)容: (1)熟悉Visual C+6.0編譯系統(tǒng)的常用功能,特別是debug調(diào)試功能;(2)編程1:編寫一個程序c1.cpp,用來求2個或3個整數(shù)的最大數(shù)。要求:用重載函數(shù)的方法來求最大數(shù);函數(shù)原型:int max( int a, int b) 和 int max( int a, int b,int c)。(3)編程2:編寫一個程序c2.cpp,求: a!+ b!

3、+ c!的值。要求:使用遞歸函數(shù)。主程序和函數(shù)分開到兩個源程序文件中,分別進行編譯后,再運行;(4)編程3:有一個3*4的矩陣,要求編程求出其中值最大的那個元素的值,以及其所在的行號和列號;(5)編程4:建立一個動態(tài)鏈表并進行輸出和刪除管理。鏈表的每個節(jié)點為學生信息,包括:學號,姓名,性別,下一學生信息的指針。程序的工作:(a)建立三個學生信息的節(jié)點,然后順序輸出該三個學生信息;(b)刪除中間的節(jié)點,再順序輸出學生信息。(6)使用debug調(diào)試功能:追蹤第2個程序中函數(shù)的運行。(7)思考: 在第2個程序中,如果a,b,c的值較大,則顯示的結(jié)果會怎樣?這時如何解決此問題?(提示:顯示的結(jié)果會不對

4、,可能還會是負數(shù),定義一個數(shù)組來存放最后結(jié)果。)實驗要求: (1)掌握Visual C+6.0開發(fā)環(huán)境的常用功能及使用,能進一步使用Visual C+6.0的debug調(diào)試功能:單步調(diào)試、設(shè)置斷點等;(2)掌握C+函數(shù)的定義及使用,掌握函數(shù)的嵌套調(diào)用和遞歸調(diào)用的方法;(3)掌握C+數(shù)組、指針、結(jié)構(gòu)體的定義及使用;(4)掌握多文件的程序的編譯和運行方法;(5)程序格式規(guī)范,程序運行正確;(6)認真書寫實驗報告,如實填寫各項實驗內(nèi)容。實驗步驟: (1)啟動Visual C+6.0開發(fā)環(huán)境;(2)熟悉Visual C+6.0編譯系統(tǒng)的常用功能;(3)在file菜單中,新建C+源程序c1.cpp; (

5、4)編輯C+源程序文件c1.cpp的內(nèi)容。(5) 編譯c1.cpp,系統(tǒng)會提示是否創(chuàng)建工程(由于前面沒有創(chuàng)建工程),選擇“是”。則創(chuàng)建一個工程;(6)程序編譯正確時,則可建立可執(zhí)行程序;(注意觀察每步的結(jié)果)(7)運行可執(zhí)行文件;(8)關(guān)閉工作空間。(9)對編程2,在file菜單中,新建C+源程序cpp2_1; (10)編輯C+源程序文件cpp2_1的內(nèi)容;(11)編譯cpp2_1,系統(tǒng)會提示是否創(chuàng)建工程(由于前面沒有創(chuàng)建工程),選擇“是”,則創(chuàng)建工程;(12)在file菜單中,新建C+源程序cpp2_2; (13)編輯C+源程序文件cpp2_2的內(nèi)容;(14)編譯文件cpp2_2時,系統(tǒng)提示

6、是否加入到此工程,選擇“是”,則把文件cpp2_2加入到該工程中。(15)編譯和運行此程序,并注意觀察每步的結(jié)果。(16)使用調(diào)試功能:運行到光標處、單步跟蹤、查看變量值。(17)使用關(guān)閉工作空間。(18)參照上述方法,完成編程3和編程4。注意:若編譯時出錯:“fatal error c1010:unexpexted end of file while looking for precompiled header directive.”;該文件需要包含頭文件:stdafx.h,即在開頭有語句:#include “stdafx.h”思考題:假如已建立了兩個C+源程序c1.cpp和c2.cpp。先

7、用open打開c1.cpp,并完成了編譯、連接和運行,再打開c2.cpp,對它進行編譯和連接。此時會出現(xiàn)什么問題?原因何在?怎樣解決?實驗二 類和對象的應(yīng)用(實驗課時:2 實驗性質(zhì):設(shè)計)實驗名稱: 類和對象的應(yīng)用實驗?zāi)康? (1)熟悉C+面向?qū)ο蟮某绦蛟O(shè)計的基本概念;(2)練習類的定義和對象的創(chuàng)建;(3)練習對象的成員函數(shù)的調(diào)用方法以及對象的初始化;實驗設(shè)備: (1)硬件:個人微機(配置不低于:CPU為P4,主頻1.6G,內(nèi)存256MB,硬盤40GB);(2)軟件:操作系統(tǒng)為WindowsXP(或2000、server2003等),工具軟件為Visual C+6.0。實驗內(nèi)容: 事先編好程序

8、,上機調(diào)試和運行程序,分析結(jié)果。(1)編程1:定義并實現(xiàn)一個簡單的學生類:公有屬性為:學號、姓名、班級,成員函數(shù)為輸入和顯示一個學生的上述信息;(2)將程序(1)中的數(shù)據(jù)成員改為私有的,考慮對程序有何影響;(3)編程2:設(shè)計一個長方形類Rectangle。成員變量包括:長度和寬度,成員函數(shù)有:Area計算面積,Set設(shè)置長方形的長和寬,Get獲取長方形的長和寬。最后,編寫一個主程序來測試該類及成員函數(shù)。(4)編程3:設(shè)計一個汽車類Car。成員變量有:品牌,顏色,車門,車燈,行駛速度。成員函數(shù)有:打開車門、打開車燈、加速、減速等。最后,編寫一個主程序來測試該類及功能。(提示:在成員函數(shù)中用輸出成

9、員函數(shù)名來表示該成員函數(shù)被調(diào)用)實驗要求: (1)掌握C+類和對象的基本概念;(2)掌握C+類和對象的定義及使用;(3)掌握對象的成員函數(shù)的調(diào)用方法;(4)程序格式規(guī)范,程序運行正確;(5)認真書寫實驗報告,如實填寫各項實驗內(nèi)容。實驗步驟: (1)啟動Visual C+6.0開發(fā)環(huán)境;(2)創(chuàng)建一個項目;(3)建立C+源程序文件;(4)編輯C+源程序文件內(nèi)容;(5)建立并運行可執(zhí)行程序;(6)關(guān)閉工作空間。實驗三 類的構(gòu)造函數(shù)、析構(gòu)函數(shù)的應(yīng)用(實驗課時:2 實驗性質(zhì):設(shè)計)實驗名稱: 類的構(gòu)造函數(shù)、析構(gòu)函數(shù)的應(yīng)用實驗?zāi)康? (1)練習類的構(gòu)造函數(shù)、析構(gòu)函數(shù)的定義和使用方法;(2)練習對象數(shù)組、

10、對象指針的使用;(3)練習類的靜態(tài)成員的使用。實驗設(shè)備: (1)硬件:個人微機(配置不低于:CPU為P4,主頻1.6G,內(nèi)存256MB,硬盤40GB);(2)軟件:操作系統(tǒng)為WindowsXP(或2000、server2003等),工具軟件為Visual C+6.0。實驗內(nèi)容: (1)編程:設(shè)計一個學生類。要求:學生的屬性有:學號,姓名,性別;學生的行為有:輸入學生的上述屬性和輸出學生的上述屬性。編寫構(gòu)造函數(shù)對學生的所有屬性初始化,無參數(shù)的構(gòu)造函數(shù)設(shè)置學號為1001,姓名為“張三”,性別為M(M代表男,F(xiàn)代表女)。(2)修改上述程序:修改定義析構(gòu)函數(shù),在析構(gòu)函數(shù)中輸出學號。再運行程序,觀察運行

11、結(jié)果。(3)修改上述main程序:使用對象指針,用new生成一個學生對象,然后,用delete清除該對象,使用單步運行觀察運行結(jié)果。(4)修改上述程序:增加一個私有數(shù)據(jù)成員成績score;增加一個成員函數(shù)readdata:輸入一學生的學號和成績;增加一個成員函數(shù)getscore:取得學生的成績。再修改main函數(shù);定義一個班的同學(假如一個班有10位同學,采用對象數(shù)組),輸出該班的平均成績。(5)不用對象數(shù)組,而使用靜態(tài)的數(shù)據(jù)成員來實現(xiàn)(4)中求一個班的學生的平均成績,學生的成績在構(gòu)造函數(shù)中輸入。(提示:定義2個靜態(tài)數(shù)據(jù)成員,1個是存儲總成績,1個是存儲學生人數(shù))。(6)分別運行上述程序,并分

12、析結(jié)果。注意:在增加一個新的功能時,可以把暫時不需要的功能代碼給注釋掉。實驗要求: (1)掌握C+類的構(gòu)造函數(shù)、析構(gòu)函數(shù)的定義和使用方法;(2)掌握C+對象數(shù)組、對象指針的使用;(3)掌握類的靜態(tài)數(shù)據(jù)成員的定義和使用;(4)程序格式規(guī)范,程序運行正確;(5)認真書寫實驗報告,如實填寫各項實驗內(nèi)容。實驗步驟: (1)啟動Visual C+6.0開發(fā)環(huán)境;(2)創(chuàng)建一個項目;(3)建立C+源程序文件;(4)編輯C+源程序文件內(nèi)容;(5)建立并運行可執(zhí)行程序;(6)關(guān)閉工作空間。實驗四 友員和運算符重載(實驗課時:2 實驗性質(zhì):設(shè)計)實驗名稱: 友元和運算符重載實驗?zāi)康? (1)進一步了解運算符重載

13、的概念和使用方法;(2)掌握幾種常用的運算符重載的方法;(3)練習友員函數(shù)的定義和使用;(4)了解轉(zhuǎn)換構(gòu)造函數(shù)的使用方法。實驗設(shè)備: (1)硬件:個人微機(配置不低于:CPU為P4,主頻1.6G,內(nèi)存256MB,硬盤40GB);(2)軟件:操作系統(tǒng)為WindowsXP(或2000、server2003等),工具軟件為Visual C+6.0。實驗內(nèi)容: 事先編好程序,上機調(diào)試和運行程序,分析結(jié)果。(1)有兩個矩陣a和b,均為2行3列。求兩個矩陣之和。重載運算符“+”,使之能用于矩陣相加。如: c=a+b。(2)編寫一個友元函數(shù)來讀取矩陣指定所在行列的值。(3)定義一個Teacher(教師)類和

14、一個Student(學生)類,二者有一部分數(shù)據(jù)成員是相同的,例如num(號碼),name(姓名),sex(性別)。編寫程序,將一個Student對象(學生)轉(zhuǎn)換為Teacher(教師)類,只將以上3個相同的數(shù)據(jù)成員移植過去??梢栽O(shè)想為: 一位學生大學畢業(yè)了,留校擔任教師,他原有的部分數(shù)據(jù)對現(xiàn)在的教師身份來說仍然是有用的,應(yīng)當保留并成為其教師的數(shù)據(jù)的一部分。實驗要求: (1)掌握C+運算符重載的概念和使用方法;(2)熟悉轉(zhuǎn)換構(gòu)造函數(shù)的使用方法;(3)程序格式規(guī)范,程序運行正確;(4)認真書寫實驗報告,如實填寫各項實驗內(nèi)容。實驗步驟: (1)啟動Visual C+6.0開發(fā)環(huán)境;(2)創(chuàng)建一個項目

15、;(3)建立C+源程序文件;(4)編輯C+源程序文件內(nèi)容;(5)建立并運行可執(zhí)行程序,并分析結(jié)果;(6)關(guān)閉工作空間。實驗五 類的繼承與派生(實驗課時:2 實驗性質(zhì):設(shè)計)實驗名稱:類的繼承與派生實驗?zāi)康? (1)進一步理解繼承與派生的概念;(2)掌握通過繼承派生出一個新的類的方法;實驗設(shè)備: (1)硬件:個人微機(配置不低于:CPU為P4,主頻1.6G,內(nèi)存256MB,硬盤40GB);(2)軟件:操作系統(tǒng)為WindowsXP(或2000、server2003等),工具軟件為Visual C+6.0。實驗內(nèi)容: 事先編好程序,上機調(diào)試和運行程序,分析結(jié)果。(1)編程:編寫一個學生類Studen

16、t。要求: 學生的保護屬性有:學號(Num),姓名(Name),性別(Sex);學生的公用成員函數(shù)有:ReadData( )用于輸入Num、Name、Sex。OutputData( )用于輸出Num、Name、Sex。 然后,在學生類的基礎(chǔ)上派生出研究生類Graduate,該類新增私有屬性研究方向(ResearchD),新增公用成員函數(shù)ResearchWork( ),該函數(shù)功能為輸出學號和研究方向。 編寫main函數(shù)測試基類和派生類的各屬性很函數(shù)的訪問。修改派生類的派生方式以及基類成員的訪問方式,再測試看看基類和派生類的屬性訪問方式有何不同。(2)編程:在上述工程中增加一個Teacher(教師

17、)類,采用多重繼承方式由Student和Teacher類公有派生出新類Student_Teacher。要求: Teacher類的保護成員有:Name、Sex、Title(職稱)、Wages(工資)。兩個基類中的Name、Sex同名,在引用這些數(shù)據(jù)成員時,指定作用域。 在派生類Student_Teacher中,增加兩個成員函數(shù):ReadF1()用于讀入:Num、Name、Sex、Title、Wages。Show()用于輸出數(shù)據(jù),在Show()中,首先調(diào)用Student類的display()函數(shù)用于輸出Num、Name、Sex,然后再用cout語句輸出Title、Wages。 在類體中聲明成員函數(shù)

18、,在類外定義成員函數(shù)。思考題:類的三種繼承方式的主要區(qū)別是什么?實驗要求: (1)掌握繼承與派生的概念;(2)掌握通過繼承派生出一個新的類的方法;(3)程序格式規(guī)范,程序運行正確;(4)認真書寫實驗報告,如實填寫各項實驗內(nèi)容。實驗步驟: (1)啟動Visual C+6.0開發(fā)環(huán)境;(2)創(chuàng)建一個項目;(3)建立C+源程序文件;(4)編輯C+源程序文件內(nèi)容;(5)建立并運行可執(zhí)行程序;(6)關(guān)閉工作空間。實驗六 類的多態(tài)性與虛函數(shù)(實驗課時:2 實驗性質(zhì):設(shè)計)實驗名稱: 類的多態(tài)性與虛函數(shù)實驗?zāi)康? (1)了解多態(tài)性的概念;(2)了解虛函數(shù)的作用和使用方法;(3)了解純虛函數(shù)和抽象類的概念和用

19、法。實驗設(shè)備: (1)硬件:個人微機(配置不低于:CPU為P4,主頻1.6G,內(nèi)存256MB,硬盤40GB);(2)軟件:操作系統(tǒng)為WindowsXP(或2000、server2003等),工具軟件為Visual C+6.0。實驗內(nèi)容: 事先編好程序,上機調(diào)試和運行程序,分析結(jié)果。(1)編程:定義抽象基類Shape(圖形)。Shape類有一個公共的純虛函數(shù)Area,用于派生類求圖形的面積。(2)由Shape派生出3個派生類:Circle(圓形)、Rectangle(矩形)、Triangle(三角形),用一個函數(shù)PrintArea分別輸出以上三者的面積,3個圖形的數(shù)據(jù)在定義對象時給定。在主程序中

20、測試這些類的PrintArea函數(shù)。(3)在類Circle基礎(chǔ)上再派生一個圓柱體Cylinder,重載Area函數(shù)求圓柱體的體積。然后,編寫主程序采用靜態(tài)多態(tài)性和動態(tài)多態(tài)性分別測試Area函數(shù)。(4)在類Circle中定義一個析構(gòu)函數(shù),讓它輸出一行信息“This is Cicle Destruction?!保陬怌ylinder中定義一個析構(gòu)函數(shù),讓它輸出一行信息“This is Cylinder Destruction?!薄T谥鞒绦蛑杏弥赶蚧怌ircle類的指針動態(tài)生成Cylinder類對象,然后用delete語句釋放該對象,測試看看運行結(jié)果如何。再修改Circle的析構(gòu)函數(shù)為虛函數(shù),測試

21、看看運行結(jié)果如何。(5)運行上述程序,并分析結(jié)果。實驗要求: (1)掌握多態(tài)性的概念;(2)掌握虛函數(shù)的作用和使用方法;(3)掌握純虛函數(shù)和抽象類的概念和用法;(4)程序格式規(guī)范,程序運行正確;(5)認真書寫實驗報告,如實填寫各項實驗內(nèi)容。實驗步驟: (1)啟動Visual C+6.0開發(fā)環(huán)境;(2)創(chuàng)建一個項目;(3)建立C+源程序文件;(4)編輯C+源程序文件內(nèi)容;(5)建立并運行可執(zhí)行程序,并分析結(jié)果;(6)關(guān)閉工作空間。思考題:虛函數(shù)的作用是什么? 附錄:各實驗的程序代碼實驗1:程序代碼程序1:#include using namespace std;int main()int max

22、(int a,int b,int c); int max(int a,int b); int a=8,b=-12,c=7; coutmax(a,b,c)=max(a,b,c)endl; coutmax(a,b)=max(a,b)a) a=b; if(ca) a=c; return a;int max(int a,int b)if(ab) return a; else return b;程序2:/cpp2_1.cpp#include using namespace std;int main() int fac(int); int a,b,c,sum=0; coutabc; sum=sum+fac

23、(a)+fac(b)+fac(c); couta!+b!+c!=sumendl; return 0; /cpp2_2.cpp,遞歸方式 int fac(int n) if ( n=1) return 1; else return ( n*fac(n-1); /cpp2_2.cpp,非遞歸方式 int fac(int n) int f=1; for (int i=1;i=n;i+) f=f*i; return f; 程序3:#include using namespace std;int main() int i,j,row=0,colum=0,max; int a34=5,12,23,56,1

24、9,28,37,46,-12,-34,6,8; max=a00; for (i=0;i=2;i+) for (j=0;jmax) max=aij; row=i; colum=j; coutmax=max,row=row,colum=columendl; return 0; 程序4:#include /#include using namespace std;const int n=10;struct student char num6; char name8; char sex; student *next; ;int main() int i; student *head,*p1,*p2;

25、head=p1=NULL; for (i=0;i3;i+) p2 = new student; if (p2=NULL) break; coutinput student information: endl; coutp2-num; coutp2-name; coutp2-sex; if (i=0) head=p1=p2; else p1-next = p2; p1 = p2; if (p1!=NULL) p1-next = NULL; coutOutput information:n; p1=head; i=0; while (p1!=NULL) i+; coutNumber iendl;

26、cout num:num name:name sex:sexnext; p1= head-next; head-next = p1-next; delete p1; coutAfter delete,Output information:n; p1=head; i=0; while (p1!=NULL) i+; coutNumber iendl; cout num:num name:name sex:sexnext; while (head!=NULL) p1 = head-next; delete head; head = p1; return 0; 思考題:打開c2.cpp,對它進行編譯時

27、,出現(xiàn)提示:選擇“否”,出現(xiàn)提示:選擇“是”,則編譯完成。連接時,出現(xiàn)錯誤提示:-Configuration: Cpp1 - Win32 Debug-Linking.Cpp2.obj : error LNK2005: _main already defined in Cpp1.objDebug/Cpp1.exe : fatal error LNK1169: one or more multiply defined symbols foundError executing link.exe.Cpp1.exe - 2 error(s), 0 warning(s)出錯原因:c1工程中有兩個main(

28、)函數(shù)。解決方法:關(guān)閉c1的工作空間后,再打開c2.cpp。實驗2:程序代碼(1)定義并實現(xiàn)類 student#includeclass student /定義類 public: /類的公有成員 int Num; char Name10; char Sclass20; void inputs( ) cinNumNameSclass; void display( ) cout n 學號: Num” 姓名:”Name” 班級:”Sclassendl; ;void main( ) /主函數(shù) student ss; /聲明對象 ss.inputs(); /調(diào)用成員函數(shù) ss.display( ); (

29、2)程序2include using namespace std;class Time public: void set_time(void) cinhour; cinminute; cinsec; void show_time(void) couthour:minute:secendl; private: int hour; int minute; int sec; ; Time t;int main() t.set_time(); t.show_time(); return 0; 程序3#include using namespace std;class Time public: void

30、 set_time(void); void show_time(void); private: int hour; int minute; int sec; ; void Time:set_time(void) cinhour; cinminute; cinsec; void Time:show_time(void)couthour:minute:secendl; Time t;int main() t.set_time(); t.show_time(); return 0; 實驗3:程序代碼(1)3.5#include #include using namespace std;class S

31、tudent public: Student(int n,string nam,char s) num=n; name=nam; sex=s; coutConstructor called.endl; Student() coutDestructor called.endl; void display() coutnum:numendl; coutname:nameendl;coutsex:sexendlendl; private: int num; string name; char sex; int main() Student stud1(10010,Wang_li,f); stud1.

32、display(); Student stud2(10011,Zhang_fun,m); stud2.display(); return 0; (2)修改析構(gòu)函數(shù):Student() coutNum=numnumscore;float getscore() return score; 修改main:增加:Student s10; int i;float total=0;增加:for (i=0;i10;i+)si.readdata(); total+=si.getscore();couttotal/10; (5)增加:在類Student中:friend void fdisplay(Student

33、 *s);在類外:void fdisplay(Student *s)cout Num=num Name=name score=scoreendl;在main函數(shù)中:Student s1;s1.readdata();fdisplay(&s1); 實驗4:程序1:#include using namespace std;class Matrix /定義Matrix類 public: Matrix(); /默認構(gòu)造函數(shù) friend Matrix operator+(Matrix &,Matrix &); /重載運算符“+” void input(); /輸入數(shù)據(jù)函數(shù) void display();

34、 /輸出數(shù)據(jù)函數(shù) private: int mat23; ; Matrix:Matrix() /定義構(gòu)造函數(shù)for(int i=0;i2;i+) for(int j=0;j3;j+) matij=0; Matrix operator+(Matrix &a,Matrix &b) /定義重載運算符“+”函數(shù)Matrix c; for(int i=0;i2;i+) for(int j=0;j3;j+) c.matij=a.matij+b.matij; return c; void Matrix:input() /定義輸入數(shù)據(jù)函數(shù)coutinput value of matrix:endl; for(

35、int i=0;i2;i+) for(int j=0;jmatij; void Matrix:display() /定義輸出數(shù)據(jù)函數(shù)for (int i=0;i2;i+) for(int j=0;j3;j+) coutmatij ; coutendl; int main()Matrix a,b,c; a.input(); b.input(); coutendlMatrix a:endl; a.display(); coutendlMatrix b:endl; b.display(); c=a+b; /用重載運算符“+”實現(xiàn)兩個矩陣相加 coutendlMatrix c = Matrix a +

36、 Matrix b :endl; c.display(); return 0; 另外的參考矩陣類:定義一個矩陣類Matrix/首先定義了矩陣類的最大行數(shù)和列數(shù)#include using namespace std;#define MaxRow 100#define MaxColumn 100class Matrix /定義Matrix類public: Matrix() Row = 2;Column = 2; /默認構(gòu)造函數(shù)Matrix(int r,int c) /帶參數(shù)的構(gòu)造函數(shù) int i,j; if (rMaxRow) Row = MaxRow; else Row = r; if (cM

37、axColumn) Column = MaxColumn; else Column = c; for(i=0;iRow;i+) for (j=0;jColumn;j+) MatValij = 0; ; private: int MatValMaxRowMaxColumn; /矩陣值 int Row;/行數(shù) int Column; /列數(shù) ; /主程序int main()Matrix a,b,c(2,3); return 0; 程序2:#include using namespace std;class Studentpublic: Student(int,char,char,float); i

38、nt get_num()return num; char * get_name()return name; char get_sex()return sex; void display() coutnum:numnname:namensex:sexnscore:scorenn; private: int num; char name20; char sex; float score; Student:Student(int n,char nam,char s,float so) num=n; strcpy(name,nam); sex=s; score=so; class Teacher pu

39、blic: Teacher() Teacher(Student&); Teacher(int n,char nam,char sex,float pay); void display(); private: int num; char name20; char sex; float pay; ; Teacher:Teacher(int n,char nam,char s,float p)num=n; strcpy(name,nam); sex=s; pay=p; Teacher:Teacher(Student& stud) num=stud.get_num(); strcpy(name,stu

40、d.get_name(); sex=stud.get_sex(); pay=1500; void Teacher:display()coutnum:numnname:namensex:sexnpay:paynn; int main()Teacher teacher1(10001,Li,f,1234.5),teacher2; Student student1(20010,Wang,m,89.5); coutstudent1:endl; student1.display(); teacher2=Teacher(student1); coutteacher2:endl; teacher2.displ

41、ay(); return 0; 實驗5:程序代碼(1)例5.3#include #include using namespace std;class Student /聲明基類public: /基類公用成員 void display( ); protected : /基類保護成員 int num; string name; char sex; void Student:display( ) coutnum: numendl; coutname: nameendl; coutsex: sexendl; class Student1: protected Student /用protected繼承

42、方式聲明一個派生類public: void display1( ); private: int age; string addr; void Student1:display1( ) coutnum: numendl; /引用基類的保護成員,合法 coutname: nameendl; /引用基類的保護成員,合法 coutsex: sexendl; /引用基類的保護成員,合法 coutage: ageendl; /引用派生類的私有成員,合法 coutaddress: addrendl; /引用派生類的私有成員,合法 ; int main( ) Student1 stud1; /stud2是派生

43、類student2的對象 stud1.display1( ); /display是派生類中的公用成員函數(shù) stud1.num = 10023; / 該語句錯誤,應(yīng)該刪除。 return 0; 增加的成員函數(shù)ReadData():(1)聲明語句為:void ReadData();(2)定義該函數(shù)的語句為:void Student:ReadData() coutnumnamesex; coutendl; (2)增加的Teacher類:class Teacher /聲明基類 protected : /基類保護成員 string name;char sex;string title;double wages; (3)派生類Student_Teacher:class Student_Teacher: public Student,public Teacher public: void ReadF1(); void Show();void Student_Teacher :ReadF1() coutPlease input:num,name,sex,title,wages:numTeacher:nameTeacher:

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論