




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
個人資料整理 僅限學(xué)習(xí)使用《面向?qū)ο蟪绦蛟O(shè)計》實驗指導(dǎo)書適用專業(yè):計算機科學(xué)與技術(shù)軟件工程網(wǎng)絡(luò)工程編寫者:呂華,許智宏2018年3月實驗一 C++程序設(shè)計基礎(chǔ)練習(xí)一、實驗?zāi)康?、學(xué)習(xí)編寫簡單的 C++程序,并掌握C++程序的基本格式與規(guī)范。2、理解C++程序結(jié)構(gòu)的特點。3、學(xué)習(xí)C++程序基本的輸入輸出操作。個人資料整理 僅限學(xué)習(xí)使用4、學(xué)習(xí)數(shù)據(jù)類型常量和變量以及修飾符的使用。5、學(xué)習(xí)基本的函數(shù)定義與調(diào)用方法。6、學(xué)習(xí)作用域運算符的功能與基本使用方法。7、學(xué)習(xí)內(nèi)存的動態(tài)分配與釋放方法。8、學(xué)習(xí)引用的概念,掌握引用的基本使用方法。二、實驗內(nèi)容<一)程序填空1、調(diào)試和運行參考程序 1和參考程序 1,掌握輸入輸出及其格式控制的基本使用方法。參考程序 1#include<iostream.h>intmain(>{charname[20]。cout<<”Hello,yourname:”。//在下畫線處填上語句,完成將字符串輸入到數(shù)組 name中____________//在下畫線處填上語句,完成將
name數(shù)組用
cout輸出____________return0。}參考程序 2include<iostream.h>voidmain(>{intx=25。在畫線處填上語句,將變量x的值分別以十六進制、十進制、八進制輸出___________________________________________________}2、調(diào)試和運行參考程序 3,理解內(nèi)置函數(shù)與函數(shù)重載的概念與基本使用方法。參考程序 3#include<iostream.h>intmul(intx,inty>//mul 函數(shù)1{returnx*y。}個人資料整理 僅限學(xué)習(xí)使用intmul(intx,inty,intz>//mul{returnx*y*z 。}voidmain(>{
函數(shù)
2inta=3,b=4,c=5。//在下畫線處填上語句,用于調(diào)用
mul函數(shù)
1cout<<a<<'*'<<b<<'='<<___________<<endl
。//在下畫線處填上語句,用于調(diào)用
mul函數(shù)
2cout<<a<<'*'<<b<<'*'<<c<<'='<<__________<<endl 。}3、調(diào)試和運行參考程序 4,并觀察輸出結(jié)果,體會和理解作用域運算符的概念與基本使用方法。參考程序
4#include<iostream.h>intavar。main(>{intavar。//在下畫線處填上語句,將局部變量
avar賦值
25_______________//在下畫線處填上語句,將全局變量
avar賦值
10________________//在下畫線處填上語句,輸出局部變量
avar的值cout<<"localavaris:"<<______<<endl
。//在下畫線處填上語句,輸出全局變量
avar的值cout<<"g1obalavaris:"<<________<<endl 。return0。}4、調(diào)試和運行參考程序 5,并觀察輸出結(jié)果,體會和理解內(nèi)存動態(tài)分配的概念與new、delete運算符的基本使用方法。參考程序 5#include<iostream.h>main(>{int*p。//在畫線處填上語句,用 new關(guān)鍵字動態(tài)分配一個 int型存儲區(qū),并將首地址賦給p個人資料整理 僅限學(xué)習(xí)使用_____________________if(!p>{cout<<"allocationfailure\n"
。return1。}//在下畫線處填上語句,將
p所指向的存儲區(qū)賦值
20________________cout<<*p。//在下畫線處填上語句,用于撤銷指針
p,釋放
p指向的存儲空間________________return0。}<二)程序設(shè)計題1、輸出1到100的偶數(shù),一行5個。2、打印一個三角形的 1~9的乘法表。3、編程求矩陣的加法: 。4、編寫一個程序,用來分別求 2個整數(shù)、3個整數(shù)、2個雙精度數(shù)和 3個雙精度數(shù)的最大值。要求使用重載函數(shù)來完成。實驗二類與對象一、實驗?zāi)康?、學(xué)習(xí)類與對象的定義,掌握類與對象的使用方法。個人資料整理 僅限學(xué)習(xí)使用2、學(xué)習(xí)數(shù)據(jù)成員與成員函數(shù)的訪問方式,理解構(gòu)造函數(shù)和析構(gòu)函數(shù)的定義與執(zhí)行過程,學(xué)會構(gòu)造函數(shù)的重載方法。3、掌握數(shù)組與指針的定義與使用方法,理解數(shù)組與指針的存儲分配與表示。4、掌握用指針和引用向函數(shù)傳遞參數(shù)。5、掌握靜態(tài)數(shù)據(jù)成員和靜態(tài)成員函數(shù)的使用。6、理解友元與友元函數(shù)的作用與使用方法。二、實驗內(nèi)容1、下面是一個計算器類的定義,請完成該類成員函數(shù)的實現(xiàn)。classCounter{public:Counter(intnumber>。voidincrement(>。 //給原值加1voiddecrement(>。//給原值減1intgetValue(>。
//取得計數(shù)器值intprint(>。
//顯示計數(shù)private:intvalue。}。2、構(gòu)建一個購書清單類 booklist,其中含有私有數(shù)據(jù)成員 bookname<書名)、price<單價)、sum<總價),建立一個有 5個元素的對象數(shù)組,接受 5個以內(nèi)圖書信息,并輸出圖書信息和總價格。3、參考課本例子,建立一個源程序文件,在此文件中建立一個新的類,將新建的類命名為 Rect。classRect{public:intArea_int(>。個人資料整理 僅限學(xué)習(xí)使用doubleArea_double(>。Rect(doublelength,doublewidth>。Rect(intlength,intwidth>。virtual~Rect(>。private:intnLength。intnWidth。doubledLength。doubledWidth。};【要求】(1>向Rect類中添加數(shù)據(jù)成員及成員函數(shù),并完善成員函數(shù)的功能。如設(shè)計一個 Area_int(>函數(shù),計算邊長為整型的長方形的面積;設(shè)計一個Area_double(>函數(shù),計算邊長為 double型的長方形的面積。(2>重載構(gòu)造函數(shù)。一種構(gòu)造函數(shù)用整型變量記錄長方形的長和寬,另一種構(gòu)造函數(shù)用double型記錄。(3>體現(xiàn)對象的構(gòu)造和析構(gòu)過程。例如,在構(gòu)造函數(shù)中用 cout<<”amItheconstructor!<<endl”;在析構(gòu)函數(shù)中輸出 cout<<”Iamthedestructor”<<endl。(4>在main(>函數(shù)中定義兩個Rect類的對象,一個對象用實例實現(xiàn)(就像定義普通的變量一樣>,另一個對象用指針實現(xiàn)(利用關(guān)鍵字new,給指針分配內(nèi)存空間>。并用不同的參數(shù),以調(diào)用不同的構(gòu)造函數(shù)體現(xiàn)構(gòu)造函數(shù)的重載。4、聲明一個 Student,在該類中包括一個數(shù)據(jù)成員 score<分?jǐn)?shù))、兩個靜態(tài)數(shù)據(jù)成員 total_score<總分)和 count(學(xué)生人數(shù)>;還包括一個成員函數(shù)account(>用于設(shè)置分?jǐn)?shù)、累計學(xué)生的成績之和、累計學(xué)生人數(shù),一個靜態(tài)成員函數(shù)sum(>用于返回學(xué)生的成績之和,另一個靜態(tài)成員函數(shù) average(>用于求全班成績的平均值。在main(>函數(shù)中,輸入某班學(xué)生的成績,并調(diào)用上述函數(shù)求出全班學(xué)生的成績之和和平均分。5、設(shè)計一個用來表示直角坐標(biāo)系的
Location
類,在主程序中創(chuàng)建類Location的兩個對象
A和
B,要求
A的坐標(biāo)點在第
3象限,B
的坐標(biāo)點在第
2個人資料整理 僅限學(xué)習(xí)使用象限,分別采用成員函數(shù)和友元函數(shù)計算給定兩個坐標(biāo)點之間的距離,要求按如下格式輸出結(jié)果:A(x1,y1>,B(x2,y2>Distance=d其中:x1、y1、x2、y2為指定的坐標(biāo)值,d為兩個坐標(biāo)點之間的距離。實驗三派生類與繼承一、實驗?zāi)康?、學(xué)習(xí)類的繼承,能夠定義和使用類的繼承關(guān)系。2、學(xué)習(xí)派生類的聲明與定義方法。3、掌握類的定義和對象的聲明。4、熟悉公有派生和私有派生的訪問特性。5、掌握派生類構(gòu)造函數(shù)和析構(gòu)函數(shù)的執(zhí)行順序。6、掌握利用訪問聲明調(diào)整基類成員在派生類中的訪問屬性。二、實驗內(nèi)容1、已有類Time和Date,要求設(shè)計一個派生類 Birthtime,它繼承類 Time和Date,并且增加一個數(shù)據(jù)成員 Childname用于表示小孩的名字,同事設(shè)計主程序顯示一個小孩的出生時間和名字。classTime{public:Time(inth,intm,ints>{hours=h。minutes=m。seconds=s。}voiddisplay(>{cout<<"出生時間:"<<hours<<"時"<<minutes<<"分"<<seconds<<"秒"<<endl。}protected:inthours,minutes,seconds。}。個人資料整理 僅限學(xué)習(xí)使用classDate{public:Date(intm,intd,inty>{month=m。day=d。year=y。}voiddisplay(>{cout<<"出生年月:"<<year<<"年"<<month<<"月"<<day<<"日"<<endl。}protected:intmonth,day,year。}。2、編寫一個學(xué)生和教師的數(shù)據(jù)輸入和顯示程序。學(xué)生數(shù)據(jù)有編號、姓名、性別、年齡、系別和成績,教師數(shù)據(jù)有編號、姓名、性別、年齡、職稱和部門。要求將編號、姓名、性別、年齡的輸入和顯示設(shè)計成一個類 Person,并作為學(xué)生類Student和教師類Teacher的基類。3、給出下面的基類:classarea{protected:doubleheight。doublewidth。public:area(doubleh,doublew>{height=h。width=w。}virtualdoublegetarea(>=0。}?!疽蟆?lt;1)建立基類area的倆個派生類 rectangle與isosceles,讓每一個派生類都包含一個函數(shù) getarea(>,分別用來返回矩形與三角形的面積。用構(gòu)造函數(shù)對height與width進行初始化。<2)寫出主程序,用來求 height與width分別為10.0與5.0的矩形面積,個人資料整理 僅限學(xué)習(xí)使用以及求height與width分別為4.0與6.0的三角形面積。<3)要求通過使用基類指針訪問虛函數(shù)的方法 <即運行時的多態(tài)性)分別求出矩形和三角形面積。實驗四多態(tài)性一、實驗?zāi)康?、掌握運算符重載的基本方法。2、掌握友元運算符函數(shù)和成員運算符函數(shù)的使用方法及兩者之間的不同。3、學(xué)習(xí)虛函數(shù)的定義與使用方法。4、了解靜態(tài)多態(tài)性和動態(tài)多態(tài)性。5、學(xué)習(xí)使用虛函數(shù)和繼承實現(xiàn)動態(tài)多態(tài)性。二、實驗內(nèi)容1、編寫一個程序,要求:<1)生明一個類 Complex<復(fù)數(shù)類),定義類 Complex的兩個對象 c1和c2,對象 c1通過構(gòu)造函數(shù)直接指定復(fù)數(shù)的實部和虛部 <類私有數(shù)據(jù)成員為double類型:real和imag)為2.5及3.7,對象c2通過構(gòu)造函數(shù)直接指定復(fù)數(shù)的實部和虛部為4.2及6.5;<2)定義友元運算符+,—的重載函數(shù),以 c1、c2對象為參數(shù),調(diào)用函數(shù)時能返回兩個復(fù)數(shù)對象相加、相減操作;<3)定義成員函數(shù) print,調(diào)用該函數(shù)時,以格式“ real+imagi”輸出當(dāng)前對象的實部和虛部,例如:對象的實部和虛部分別是 4.2和6.5,則調(diào)用print函數(shù)輸出格式為:4.2+6.5i;<4)編寫主程序,計算出復(fù)數(shù)對象 c1和c2相加、相減結(jié)果,并將其結(jié)果輸出。2、編寫一個程序,用于進行集合的和、并和交運算。例如輸入整數(shù)集合{9,5,4,3,6,7}和{2,4,6,9},計算出他們進行集合的并、差和交運算后的結(jié)果。【提示】<1)可以用一下表達(dá)式實現(xiàn)整數(shù)集合的基本運算:s1+s2兩個整數(shù)集合的并運算個人資料整理 僅限學(xué)習(xí)使用s1-s2兩個整數(shù)集合的差運算s1*s2兩個整數(shù)集合的交運算<2)參考以下Set類的框架,用于完成集合基本運算所需的各項功能。classSet{public:Set(>。voidinput(intd>。//向集合中添加一個元素intlength(>。//返回集合中的元素個數(shù)intgetd(inti>。//返回集合中位置 i的元素voiddisplay(>。//顯示集合的所有元素Setoperator+(Sets1>。//成員運算符重載函數(shù),實現(xiàn)集合的并運算Setoperator-(Sets1>。//成員運算符重載函數(shù),實現(xiàn)集合的差運算Setoperator*(Sets1>。//成員運算符重載函數(shù),實現(xiàn)集合的交運算Setoperator=(Sets1>。//成員運算符重載函數(shù),實現(xiàn)集合的賦值運算protected:intlen。//統(tǒng)計結(jié)合中元素的個數(shù);ints[MAX]。//存放集合中的元素}。3、下面提供一個體會繼承中的多態(tài)性和虛函數(shù)在多態(tài)性中的作用的題目。請根據(jù)提示進行實驗。定義類 BaseFly,其中Fly(>函數(shù)輸出特定內(nèi)容。例如:classBaseFly{public:voidFly(>(cout<<"\n-----CIassBaseFly::Fly(>-----\n";}};<1)定義類BirdFly、DragonFly和PlaneFly,都繼承自 BaseFly,重載Fly(>函數(shù),使得各類中的 Fly(>函數(shù)分別輸出不同的內(nèi)容。classBirdFly:publicBaseFly{個人資料整理 僅限學(xué)習(xí)使用public:voidFly(>{cout<<"\n-----classBirdFly::Fly(>-----\n"};
;}classDragonFly:publicBaseFly{public:voldFly(>{cout<<"\n-----ClassDragonFly::Fly(>-----\n";>>;classPlaneFly:publicBaseFly{public:voidFly(>{cout<<"\n-----ClassPlaneFly::Fly(>-----\n";}};<2)在main(>函數(shù)中,用“new”關(guān)鍵字分配出以上四個類的實例,調(diào)用各個實例的Fly(>函數(shù)測試多態(tài)性。請參考以下代碼:intmain(>{cout<<"\n測試?yán)^承中的多態(tài)性(Virtual?Ornot?>:\n';BaseFly*pBase;BirdFly*pBird=newBirdFly;pBasc=pBird;cout<<"\nBirdFly->\n"。pBase->Fly(>;DragonFly*pDragon=newDragonFly;pBase=pDragon;cout<<"\nDragonFly->\n"。pBase->Fly(>;PlaneFly*pPlane=newPlaneFly。pBase=pPlane;個人資料整理 僅限學(xué)習(xí)使用cout<<"\nPlaneFly->\n"。pBase->Fly(>。return0,}<3)將BaseFly::Fly(>聲明為virtual,在main(>中定義BaseFly的指針:*pBase,依次分別指向UirdFly、DragonFly和P1aneFly,并調(diào)用各類的Fly(>函數(shù),體會虛函數(shù)作用。BaseFly*pBase=newBaseFly;BirdFly*pBird=newBirdFly;pBase=pBird;4、寫一個程序,定義抽象類 Container:classContainer{protected:doubleradius。public:Container(doubler>。//抽象類Container的構(gòu)造函數(shù)virtualdoublesurface_area(>=0。//純虛函數(shù)surface_areavirtualdoublevolume(>=0。//純虛函數(shù)volume}?!疽蟆拷?個繼承 Container的派生類:Sphere<球體)、Cylinder<圓柱體)、Cube<正方體),讓每一個派生類都包含虛函數(shù) surface_area(>和volume(>,分別用來球體、圓柱體和正方體的表面積和體積。要求寫出主程序,應(yīng)用 C++的多態(tài)性,分別計算邊長為 6.0的正方體、半徑為 5.0的球體,以及半徑為 5.0和高為6.0的圓柱體的表面積和體積。實驗五模板與異常處理一、實驗?zāi)康膫€人資料整理 僅限學(xué)習(xí)使用1、正確理解模板的概念。2、掌握函數(shù)模板與類模板的聲明和使用方法。3、學(xué)習(xí)簡單的異常處理方法。二、實驗內(nèi)容1、已知下列主函數(shù):intmain(>{cout<<min(10,5,3><<endl。cout<<min(10.2,5.6,3.8><<endl。cout<<min('a','b','c'><<endl。return0。}聲明求3個數(shù)中最小者的函數(shù)模板,并寫出調(diào)用此函數(shù)模板的完整程序。2、編寫一個求任意類型數(shù)組中最大元素和最小元素的程序,要求將求最大元素和最小元素的函數(shù)設(shè)計成函數(shù)模板,并寫出調(diào)用此函數(shù)模板的完整程序,使得函數(shù)調(diào)用時,數(shù)組的類型可以是整型也可以是雙精度類型。3、編寫一個函數(shù)模板,使用冒泡排序?qū)?shù)組內(nèi)容由小到大排列并打印出來,并寫出調(diào)用此函數(shù)模板的完整程序,使得函數(shù)調(diào)用時,數(shù)組的類型可以是整型也可以是雙精度型。4、編寫一個程序,使用類模板對數(shù)組元素進行排序、倒置、查找和求和?!咎崾尽吭O(shè)計一個類模板template<classType>classArray{}。具有對數(shù)組元素進行排序、倒置、查找和求和功能,然后產(chǎn)生類型實參分別是int型和double型的兩個模板類,分別對整型數(shù)組與雙精度數(shù)組完成所要個人資料整理 僅限學(xué)習(xí)使用求的操作。5、編寫一個程序,求
溫馨提示
- 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)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 農(nóng)家別墅買賣合同范本
- DSE和木霉降解木質(zhì)纖維素殘渣及其發(fā)酵產(chǎn)物對菘藍(lán)促生抗旱研究
- 婚約解除損害賠償責(zé)任制度研究
- 慢性阻塞性肺疾病合并肌少癥患者SI、TWEAK水平的變化及相關(guān)研究
- C鋼管公司供應(yīng)鏈績效優(yōu)化研究
- 井蓋勞務(wù)合同范例
- 買買車定金合同范例
- 保險經(jīng)濟公合同范例
- 企業(yè)保養(yǎng)合同范例
- 買賣合同范例參考
- 四年級數(shù)學(xué)(四則混合運算)計算題專項練習(xí)與答案匯編
- 8年級上冊(人教版)物理電子教材-初中8~9年級物理電子課本
- 人教版高中英語新教材必修2單詞默寫表
- 中金公司在線測評真題
- 項目資金管理統(tǒng)籌實施方案
- 2024年秋新滬科版物理八年級上冊 6.3來自地球的力 教學(xué)課件
- 定密培訓(xùn)課件教學(xué)課件
- 三、種植芽苗菜(教學(xué)設(shè)計)魯科版二年級下冊綜合實踐活動
- 2025屆東北師大附屬中學(xué)高考物理五模試卷含解析
- GB/T 7409.1-2024同步電機勵磁系統(tǒng)第1部分:定義
- 液化氣站雙重預(yù)防體系手冊
評論
0/150
提交評論