




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、實(shí)驗(yàn)前言(建議認(rèn)真閱讀)一、上機(jī)實(shí)驗(yàn)的目的上機(jī)實(shí)驗(yàn)的目的是提高學(xué)生的分析問題、解決問題的能力和動(dòng)手能力,通過實(shí)踐環(huán)節(jié)理解C+語言的基本結(jié)構(gòu)和程序設(shè)計(jì)方法。通過親手編程掌握C+語言編程的方法。二、實(shí)驗(yàn)基本內(nèi)容為了使學(xué)生在上機(jī)實(shí)驗(yàn)時(shí)目標(biāo)明確,本實(shí)驗(yàn)指導(dǎo)書針對(duì)課程內(nèi)容編寫了五個(gè)實(shí)驗(yàn)。學(xué)生在課內(nèi)機(jī)時(shí)先完成指導(dǎo)書中標(biāo)有“*”號(hào)的程序,理解所學(xué)的知識(shí),在此基礎(chǔ)上再編寫其他應(yīng)用程序。指導(dǎo)書中的五個(gè)個(gè)實(shí)驗(yàn)如下:1. 函數(shù)與編譯處理2. 指針與引用3. 類和對(duì)象4. 繼承和派生類5. 多態(tài)性三、實(shí)驗(yàn)提交(特別提醒)1. 實(shí)驗(yàn)題目以附件形式提交,每個(gè)附件限一個(gè)源程序,附件以實(shí)驗(yàn)編號(hào)-題號(hào)-自己學(xué)號(hào).cpp命名;如
2、學(xué)號(hào)為10051234的同學(xué)提交實(shí)驗(yàn)1的第5題,則附件命名方式為:1-5-10051234.cpp,錯(cuò)誤提交的將視為未提交。2. 提交時(shí)間定為該次實(shí)驗(yàn)課的一周內(nèi),過期不再接收。四、評(píng)分和作弊處理1. 要求提交實(shí)驗(yàn)題總數(shù)為6題(帶“*” 號(hào)),占期末總評(píng)成績的20;2. 存在抄襲和被抄襲的作業(yè),無論抄襲與被抄襲者,本門課程平時(shí)成績以零分記。存在兩次及兩次以上抄襲和被抄襲者,本門課程以不及格記。五、實(shí)驗(yàn)課要求(重點(diǎn)強(qiáng)調(diào))1. 嚴(yán)禁QQ、MSN等即時(shí)軟件工具聊天;2. 嚴(yán)緊接聽手機(jī)、發(fā)送短信;3. 嚴(yán)緊玩游戲。實(shí)驗(yàn)1 函數(shù)與編譯處理一、實(shí)驗(yàn)?zāi)康?. 掌握函數(shù)聲明、定義和使用的方法;2. 掌握形參與實(shí)
3、參之間的對(duì)應(yīng)關(guān)系;3. 掌握函數(shù)調(diào)用時(shí),形參、實(shí)參之間的“值傳遞”和“引用傳遞”的區(qū)別;4. 掌握函數(shù)遞歸調(diào)用的方法;5. 掌握全局變量、局部變量、靜態(tài)變量的使用方法;6. 掌握文件包含的使用方法。二、實(shí)驗(yàn)內(nèi)容1. 定義兩個(gè)函數(shù)swap1和swap2,目的是實(shí)現(xiàn)兩個(gè)整數(shù)的次序交換,其中swap1的參數(shù)是傳遞值參數(shù),swap2的參數(shù)是引用參數(shù),在程序中分別調(diào)用這兩個(gè)函數(shù),其輸出結(jié)果如下所示: 初始值 :x=1,y=2 調(diào)用swap1后的結(jié)果:x=1 y=2 調(diào)用swap2后的結(jié)果:x=2 y=12. 編寫一個(gè)函數(shù),用來計(jì)算從鍵盤上輸入的整數(shù)的階乘。3. 編寫函數(shù)判斷一個(gè)數(shù)是否是素?cái)?shù),在主程序中實(shí)
4、現(xiàn)輸入、輸出。4. 編寫一個(gè)程序,設(shè)計(jì)一個(gè)函數(shù)可以計(jì)算并返回輸入的4個(gè)數(shù)的平均值。*5. 給定某個(gè)年、月、日的值,例如,2005年7月11日,計(jì)算出這一天屬于該年的第幾天,要求寫出計(jì)算閏年的函數(shù)和計(jì)算日期的函數(shù)。三、實(shí)驗(yàn)要求1. 結(jié)合上課內(nèi)容,寫出程序、調(diào)試程序,使用典型數(shù)據(jù)測試程序,并就實(shí)驗(yàn)結(jié)果加以分析。2. 整理上機(jī)步驟,總結(jié)經(jīng)驗(yàn)和體會(huì)。3. 完成實(shí)驗(yàn),并上交程序。實(shí)驗(yàn)2 指針與引用一、實(shí)驗(yàn)?zāi)康?. 熟練掌握指針、地址、指針類型、void指針、空指針等概念;2. 熟練掌握指針變量的定義和初始化、指針的間接訪問、指針的加減運(yùn)算和指針表達(dá)式;3. 會(huì)使用數(shù)組的指針和指向的指針變量;4. 會(huì)使用
5、字符串的指針和指向字符串的指針變量;5. 學(xué)會(huì)使用指向函數(shù)的指針變量;6. 了解指針與鏈表關(guān)系。二、實(shí)驗(yàn)內(nèi)容1. 編寫一個(gè)函數(shù)f,將傳入此函數(shù)的直角坐標(biāo)值轉(zhuǎn)換為極坐標(biāo)值,并返回主調(diào)函數(shù)中。求極坐標(biāo)的公式是: c=q=arctan(y/x)若要將兩值返回主調(diào)函數(shù),有多種方式可以完成,請(qǐng)?jiān)囍海?)兩值均以指針形參帶回(2)由指針形參帶回一個(gè)值,函數(shù)值返回另一個(gè)值(3)兩值均以引用形參返回(提示:程序中可以使用庫函數(shù)sprt、pow及atan,它們的頭文件為math.h) 2. 使用指針變量對(duì)一字符串按照字母,空格、數(shù)字和其他字符進(jìn)行分類統(tǒng)計(jì)( 提示:讀一行字符包括空格用函數(shù)cin.ge
6、tline(ch, 81) )。3. 用指針變量設(shè)計(jì)一通用函數(shù),該函數(shù)查找實(shí)型數(shù)組中最大和最小元素并輸出相應(yīng)元素和下標(biāo)。 三、實(shí)驗(yàn)要求1. 結(jié)合上課內(nèi)容,寫出程序、調(diào)試程序,使用典型數(shù)據(jù)測試程序,并就實(shí)驗(yàn)結(jié)果加以分析。2. 整理上機(jī)步驟,總結(jié)經(jīng)驗(yàn)和體會(huì)。3. 完成實(shí)驗(yàn),并上交程序。實(shí)驗(yàn)3 類和對(duì)象一、實(shí)驗(yàn)?zāi)康?. 掌握類的概念、類的定義格式、類的成員屬性和類的封裝性;2. 掌握對(duì)象的定義;3. 理解類的成員的訪問控制的含義,公有、私有和保護(hù)成員的區(qū)別;4. 掌握構(gòu)造函數(shù)和析構(gòu)函數(shù)的含義與作用、定義方式和實(shí)現(xiàn),能夠根據(jù)要求正確定義和重載構(gòu)造函數(shù),能夠根據(jù)給定的要求定義類并實(shí)現(xiàn)類的成員函
7、數(shù);5. 掌握友元函數(shù)的含義,友元函數(shù)和成員函數(shù)的區(qū)別。二、實(shí)驗(yàn)內(nèi)容1. 定義一個(gè)圓類,計(jì)算圓的面積和周長。 要求:分別用成員函數(shù)和友元函數(shù)來求圓的面積和周長。2. 定義一個(gè)學(xué)生類,其中有3個(gè)數(shù)據(jù)成員有學(xué)號(hào)、姓名、年齡,以及若干成員函數(shù)。同時(shí)編寫主函數(shù)使用這個(gè)類,實(shí)現(xiàn)對(duì)學(xué)生數(shù)據(jù)的賦值和輸出。要求:(1)使用成員函數(shù)實(shí)現(xiàn)對(duì)數(shù)據(jù)的輸入、輸出;(2)使用構(gòu)造函數(shù)和析構(gòu)函數(shù)實(shí)現(xiàn)對(duì)數(shù)據(jù)的輸入、輸出。*3. 定義日期類型Date。要求有以下成員:(1)可以設(shè)置日期;(2)日期加一天操作;(3)輸入函數(shù),輸入格式為:XXXX XX XX,如2010 4 13;(4)輸出函數(shù),輸出格式為:XXXX年XX月XX
8、日,如2010年4月11日。*4. 設(shè)計(jì)一個(gè)float類型的數(shù)組類CFltArray,要求CFltArray可以進(jìn)行如下操作:(1)可以重置數(shù)組的大?。≧esize)(2)可以通過下標(biāo)返回?cái)?shù)組元素,并對(duì)下標(biāo)越界情況進(jìn)行檢查(3)可以利用已知數(shù)組對(duì)象對(duì)整個(gè)數(shù)組賦值和初始化(4)可以返回當(dāng)前數(shù)組的大?。⊿ize)最后用數(shù)據(jù)驗(yàn)證你所設(shè)計(jì)的類。提示:(1)利用已知數(shù)組對(duì)象對(duì)整個(gè)數(shù)組賦值,說明要求重載等號(hào)運(yùn)算符(2)利用已知數(shù)組對(duì)象對(duì)整個(gè)數(shù)組初始化,說明要求重載拷貝構(gòu)造函數(shù)(3)要求用指針存儲(chǔ)數(shù)組對(duì)象中元素三、實(shí)驗(yàn)要求1. 結(jié)合上課內(nèi)容,寫出程序、調(diào)試程序,使用典型數(shù)據(jù)測試程序,并就實(shí)驗(yàn)結(jié)果加以分析。2
9、. 整理上機(jī)步驟,總結(jié)經(jīng)驗(yàn)和體會(huì)。3. 完成實(shí)驗(yàn),并上交程序。實(shí)驗(yàn)4 繼承與派生類一、實(shí)驗(yàn)?zāi)康?. 理解繼承的含義,掌握派生類的定義方法和實(shí)現(xiàn);2. 理解公有繼承下基類成員對(duì)派生類成員和派生類對(duì)象的可見性,能正確地訪問繼承層次中的各種類成員;3. 理解保護(hù)成員在繼承中的作用,能夠在適當(dāng)?shù)臅r(shí)候選擇使用保護(hù)成員以便派生類成員可以訪問基類的部分非公開的成員;4. 理解虛函數(shù)在類的繼承層次中的作用,虛函數(shù)的引入對(duì)程序運(yùn)行時(shí)的影響,能夠?qū)κ褂锰摵瘮?shù)的簡單程序?qū)懗龀绦蚪Y(jié)果。二、實(shí)驗(yàn)內(nèi)容*1. 編寫一個(gè)學(xué)生和教師數(shù)據(jù)輸入和顯示程序,學(xué)生數(shù)據(jù)有編號(hào)、姓名、班級(jí)和成績,教師數(shù)據(jù)有編號(hào)、姓名、職稱和部門。要求將編
10、號(hào)、姓名輸入和顯示設(shè)計(jì)成一個(gè)類person,并作為學(xué)生數(shù)據(jù)操作類student和教師類數(shù)據(jù)操作類teacher的基類。*2編寫一個(gè)程序計(jì)算出球、圓柱和圓錐的表面積和體積。要求:(1)定義一個(gè)基類圓,至少含有一個(gè)數(shù)據(jù)成員半徑;(2)定義基類的派生類球、圓柱、圓錐,都含有求表面積和體積的成員函數(shù)和輸出函數(shù)。(3)定義主函數(shù),求球、圓柱、圓錐的和體積。三、實(shí)驗(yàn)要求1. 結(jié)合上課內(nèi)容,寫出程序、調(diào)試程序,使用典型數(shù)據(jù)測試程序,并就實(shí)驗(yàn)結(jié)果加以分析。2. 整理上機(jī)步驟,總結(jié)經(jīng)驗(yàn)和體會(huì)。3. 完成實(shí)驗(yàn),并上交程序。實(shí)驗(yàn)5 多態(tài)性一、實(shí)驗(yàn)?zāi)康?. 掌握用成員函數(shù)重載運(yùn)算符的方法;2. 掌握用友元函數(shù)重載運(yùn)算
11、符的方法;3. 理解并掌握利用虛函數(shù)實(shí)現(xiàn)動(dòng)態(tài)多態(tài)性和編寫通用程序的方法。 二、實(shí)驗(yàn)內(nèi)容與步驟1. 上機(jī)實(shí)驗(yàn)題一定義一個(gè)復(fù)數(shù)類,通過重載運(yùn)算符: *,/,直接實(shí)現(xiàn)二個(gè)復(fù)數(shù)之間的乘除運(yùn)算。編寫一個(gè)完整的程序,測試重載運(yùn)算符的正確性。要求乘法“*”用友元函數(shù)實(shí)現(xiàn)重載,除法“/”用成員函數(shù)實(shí)現(xiàn)重載。 分析兩復(fù)數(shù)相乘的計(jì)算公式為:(a+b i)*(c+d i)=(acbd )+(ad+bc) i兩復(fù)數(shù)相除的計(jì)算公式為:(a+b i)/(c+d i)=(ac+bd)/(c*c+d*d)+(bc-ad)/(c*c+d*d) i復(fù)數(shù)類及運(yùn)算符重載函數(shù)可定義為: class Complexfloat
12、Real, Image;public:Complex(float r=0,float i=0)Real=r;Image=i;void Show()cout <<"Real="<<Real<<'t'<<"Image="<<Image<<'n'friend Complex operator *(Complex &, Complex &);Complex operator/(Complex &);/重載運(yùn)算符/;Complex ope
13、rator*(Complex &c1,Complex &c2)Complex t;t.Real = c1.Real * c2.Real - c1.Image * c2.Image;t.Image = c1.Image * c2.Real + c1.Real * c2.Image;return t;Complex Complex:operator/(Complex &c)Complex t;t.Real = (Real *c.Real+ Image * c.Image)/(c.Real*c.Real+ c.Image * c.Image);t.Image = (Image
14、 *c.Real - Real * c.Image)/(c.Real*c.Real+ c.Image * c.Image);return t; 上機(jī)要求增加重載復(fù)數(shù)的加法和減法運(yùn)算符的功能,實(shí)現(xiàn)兩個(gè)復(fù)數(shù)的加法,一個(gè)復(fù)數(shù)與一個(gè)實(shí)數(shù)的加法;兩個(gè)復(fù)數(shù)的減法,一個(gè)復(fù)數(shù)與一個(gè)實(shí)數(shù)的減法。用成員函數(shù)實(shí)現(xiàn)加法運(yùn)算符的重載,用友元函數(shù)實(shí)現(xiàn)減法運(yùn)算符的重載。自已設(shè)計(jì)主函數(shù),完成程序的調(diào)試工作。*2. 上機(jī)實(shí)驗(yàn)題二編寫程序:聲明一個(gè)哺乳動(dòng)物類Mammal,再由此派生出狗類Dog和貓類Cat。程序要求:(1)Mammal類中定義名為color和weight的數(shù)據(jù)成員,分別用來存儲(chǔ)動(dòng)物的顏色和體重;并在Mammal類
15、中定義一個(gè)虛函數(shù)print,用于輸出color和weight值。(2)每個(gè)類中都定義一個(gè)名為count的靜態(tài)數(shù)據(jù)成員,用來存儲(chǔ)各類對(duì)象的總數(shù);(3)每個(gè)類都有構(gòu)造函數(shù)和析構(gòu)函數(shù),在構(gòu)造函數(shù)中對(duì)color和weight進(jìn)行初始化,以及執(zhí)行count+語句,在析構(gòu)函數(shù)中執(zhí)行count-語句。在Dog和Cat類中輸出各自的信息,輸出信息要有所區(qū)別;(4)主函數(shù)中以一般方法定義各類若干個(gè)對(duì)象,用new創(chuàng)建幾個(gè)對(duì)象指針,用delete刪除對(duì)象指針。在不同的位置輸出各類count的值。最后輸出"Main function ends."。3. 上機(jī)實(shí)驗(yàn)題三利用虛函數(shù)實(shí)現(xiàn)的多態(tài)性來求四種幾
16、何圖形的面積之和。這四種幾何圖形是:三角形、矩形、正方形和圓。幾何圖形的類型可以通過構(gòu)造函數(shù)或通過成員函數(shù)來設(shè)置。 分析 計(jì)算這四種幾何圖的面積公式分別是:三角形的邊長為W,高為H時(shí),則三角形的面積為W* H/2;矩形的邊長為W,寬為H時(shí),則其面積為W* H;正方形的邊長為S,則正方形的面積為S*S;圓的半徑為R,其面積為 3.1415926 *R *R。為設(shè)置幾何圖形的數(shù)據(jù)并求出幾何圖形的面積,需要定義一個(gè)包含兩個(gè)虛函數(shù)的類:class Shapepublic:virtual float Area( void) =0;/求面積virtual void Setdata(float ,float
17、 =0) =0;/設(shè)置圖形數(shù)據(jù);因面積的計(jì)算依賴于幾何圖形,故在類中只能定義一個(gè)純虛函數(shù)Area。同理,設(shè)置幾何圖形數(shù)據(jù)的函數(shù)Setdata也只能定義為虛函數(shù)。把這個(gè)基類派生出其它幾何圖形類。如派生出的三角形類為:class Triangle : public Shapefloat W, H;/三角形邊長為W,高為Hpublic:Triangle(float w=0, float h=0)W = w;H = h;float Area( void) return W*H/2; void Setdata(float w, float h=0) W=w; H = h; ;在派生類中定義了基類中兩個(gè)虛
18、函數(shù)的實(shí)現(xiàn)。為了實(shí)現(xiàn)求面積和設(shè)置數(shù)據(jù)的多態(tài)性,必須定義一個(gè)類,該類中定義一個(gè)指向基類Shape的指針數(shù)組,其元素分別指向由基類Shape派生出的不同的幾何圖形類,并完成求出所有幾何圖形面積之和,以及設(shè)置參數(shù)的函數(shù)。一個(gè)完整的參考程序如下:#include <iostream.h>#include <string.h>class Shapepublic:virtual float Area( void) = 0;/虛函數(shù)virtual void Setdata(float, float=0) = 0;/虛函數(shù);class Triangle : public Shapefl
19、oat W, H;/三角形邊長為W,高為Hpublic:Triangle(float w=0, float h=0) W=w; H=h; float Area( void) return W*H/2; /定義虛函數(shù)void Setdata(float w, float h=0) W=w; H=h; /定義虛函數(shù);class Rectangle:public Shapefloat W, H;/矩形邊長為W,高為Hpublic:Rectangle(float w=0, float h=0) W=w; H=h; float Area(void) return W*H; /定義虛函數(shù)void Setd
20、ata(float w, float h=0) W=w; H=h; /定義虛函數(shù);class Square:public Shapefloat S;/正方形邊長Spublic:Square(float a=0) S=a; float Area(void) return S*S/2; /定義虛函數(shù)void Setdata(float w, float h=0) S=w; /定義虛函數(shù);class Circle:public Shapefloat R;/圓的半徑為Rpublic:Circle(float r=0) R=r; float Area(void) return 3.1415926*R *
21、R; /定義虛函數(shù)void Setdata(float w, float h=0) R=w; /定義虛函數(shù);class ComputeShape *s;/指向基類的指針數(shù)組public:Compute() s= new Shape *4;/給幾何圖形設(shè)置參數(shù)s0 = new Triangle(3,4);s1 = new Rectangle(6,8);s2 = new Square(6.5);s3 = new Circle(5.5);float SumArea(void ) ;Compute();void Setdata(int n, float a,float b=0)sn->Setdata(a,b);Compute:Compute()/釋放動(dòng)態(tài)分配的存儲(chǔ)空間for(int i=0; i<4; i+)delete si;delete s;float Compute:SumAre
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 27591-2025紙餐具
- 2025年甘肅省武威市、嘉峪關(guān)市、臨夏州中考地理真題含答案
- 專業(yè)婚禮策劃與攝影服務(wù)合同
- 生物學(xué)細(xì)胞生物學(xué)概念考察
- 甲醇中試平臺(tái)建設(shè)的技術(shù)路線與工藝選擇分析
- 建設(shè)工程安全施工合同
- 加強(qiáng)黨組織在學(xué)校治理中的核心引領(lǐng)作用
- 英語聽說讀寫全方位訓(xùn)練
- 2025年心理學(xué)與教育跨學(xué)科考研試題及答案
- 2025年藝術(shù)心理學(xué)基礎(chǔ)理論與實(shí)踐測試題及答案
- 養(yǎng)老護(hù)理員四級(jí)考試題庫及答案
- 2025年大學(xué)生創(chuàng)業(yè)培訓(xùn)考試試卷及答案
- 2025江蘇鹽城燕舞集團(tuán)有限公司招聘58人筆試參考題庫附帶答案詳解析
- 車禍現(xiàn)場急救護(hù)理規(guī)范
- 2025年天津市武清區(qū)等5地中考二模歷史試題(含答案)
- 2024-2025 學(xué)年七年級(jí)英語下學(xué)期期末模擬卷 (深圳專用)原卷
- 浙江省浙南名校聯(lián)盟2024-2025學(xué)年高二下學(xué)期4月期中生物試卷(含答案)
- 2025公需課《新質(zhì)生產(chǎn)力與現(xiàn)代化產(chǎn)業(yè)體系》考核試題庫及答案
- 湖南2024生地會(huì)考試卷及答案
- 奇瑞入職在線測評(píng)題庫
- DL_5000-2000_火力發(fā)電廠設(shè)計(jì)技術(shù)規(guī)程
評(píng)論
0/150
提交評(píng)論