(修正版)《面向對象》實驗指導書
《(修正版)《面向對象》實驗指導書》由會員分享,可在線閱讀,更多相關《(修正版)《面向對象》實驗指導書(15頁珍藏版)》請在裝配圖網上搜索。
1、 《面向對象程序設計》實驗指導書 林煜明 應用科技學院 實驗一 簡單C++程序的設計 1、實驗目的 熟悉VC6.0的運行環(huán)境,通過編寫簡單的C++程序,學會在VC6.0中編輯、編譯、運行和調試程序。 2、實驗內容 以下內容(1)和(2)必做,(3)可根據具體情況選做。 (1) 編寫程序,實現輸入兩個整數,計算并輸出其結果,要求顯示相應的交互信息。 (2) 將(1)中的功能使用函數實現,并在main函數中要求由用戶確定是否繼續(xù)。提示:每計算完一次,提示用戶輸入Y/N,輸入Y則繼續(xù)調用,輸入N則推出程序。 (3)
2、 編寫一個有助于小學生學習乘法的程序,利用rand函數生成兩個一位的正整數。隨后,函數輸入如下所示的問題:How much is 6×7?然后學生輸入答案。由程序檢查學生的答案。如果正確,就打印“Very good!”;如果答案錯誤,就打印“Error!Please try again?!弊寣W生再次輸入答案,直到正確為止。注:rand函數包含在stdlib.h頭文件中。 3、實驗要求 (1) 獨立完成實驗。 (2) 實驗前需先完成預習報告,報告中應預先編寫好源程序。 (3) 實驗過程中盡量獨立思考,培養(yǎng)分析問題和解決問題的能力。 (4) 實驗完畢后書寫實驗報告,實驗報告內容包括實
3、驗目的、實驗內容、結果分析以及本次實驗的心得體會。要求將程序源碼和運行時的輸入/輸出數據情況書寫在實驗內容部分,并對程序的輸出結果進行分析,說明為什么能得出相應的結果(如果不能輸出預期結果,需要分析說明其原因)。 實驗二 函數模板和帶有缺省參數的函數 1、實驗目的 掌握函數模板和帶有缺省參數的函數的定義,理解函數模板的作用,此外還應注意對帶有缺省參數的函數進行調用時的具體情況。 2、實驗內容 以下內容中可根據具體情況(1)和(2)選一,(3)和(4)選一。 (1) 設計一個函數模板,它返回三個值中的較大值,并用int、char、double型的值進行驗證。 (2) 編
4、寫程序,在主函數中輸入兩個值,然后將這兩個值交換。要求用函數模板來實現函數swap(x,y)實現值得交換,并分別用整形和字符型的值進行測試。 (3) 設計一個函數int Addnum(int x),該函數接收用戶輸入x個整數,并將它們相加求值,x的默認值為5。編寫相應的main函數,并對Addnum函數進行調用。要求調用Addnum函數時分別采用默認值和設定值兩種方式。 (4) 編寫一個具有5個參數的函數,其中3個具有默認值,然后在main函數中針對參數不同的設置情況進行調用,要求運行時顯示參數的設置情況。 3、實驗要求 (1)獨立完成實驗。 (2)實驗前需先完成預習報告,報告中
5、應預先編寫好源程序。 (3)實驗過程中盡量獨立思考,培養(yǎng)分析問題和解決問題的能力。 (4)實驗完畢后書寫實驗報告,實驗報告內容包括實驗目的、實驗內容、結果分析以及本次實驗的心得體會。要求將程序源碼和運行時的輸入/輸出數據情況書寫在實驗內容部分,并對程序的輸出結果進行分析,說明為什么能得出相應的結果(如果不能輸出預期結果,需要分析說明其原因)。 實驗三 函數重載 1、實驗目的 學會利用C++語言的基本知識編寫程序,理解程序的結構。特別注重掌握函數重載、引用的使用等。 2、實驗內容 以下內容可根據具體情況至少選做兩題。 (1) 編寫一個函數,該函數能求出某個字符串的
6、長度。然后再分別定義一個重載函數,能對整數求其長度(即數值中的位數)。最后,編寫一個主函數并對以上兩個函數的功能進行測試和驗證。 (2) 利用函數重載,分別定義兩個函數,能查找一個整數是否在一個整數數組內存在,并且查找一個字符串是否在一個字符串指針數組內,如果存在則返回所在數組元素的下標,如果不存在則返回-1。最后編寫main函數進行調用,并測試其結果。 (3) 編寫一個函數,該函數能對一個整數數組進行倒置;然后再定義一個重載函數,該函數能對字符串指針數組中的字符串進行倒置;最后編寫main函數進行調用,并測試結果。 3、實驗要求 (5) 獨立完成實驗。 (6) 實驗前需先完成預
7、習報告,報告中應預先編寫好源程序。 (7) 實驗過程中盡量獨立思考,培養(yǎng)分析問題和解決問題的能力。 (8) 實驗完畢后書寫實驗報告,實驗報告內容包括實驗目的、實驗內容、結果分析以及本次實驗的心得體會。要求將程序源碼和運行時的輸入/輸出數據情況書寫在實驗內容部分,并對程序的輸出結果進行分析,說明為什么能得出相應的結果(如果不能輸出預期結果,需要分析說明其原因)。 實驗四 類和對象 1、 實驗目的 掌握類和對象的定義方法、成員函數的實現與調用方法,深刻領會類與對象的區(qū)別、類實現數據隱藏與封裝的原理等。 2、 實驗內容 以下內容可根據具體情況至少選做兩題。 (1) 定義一個D
8、ata類,包括year、month、day三個數據成員,通過set_date成員函數輸入出生日期數據,通過disp_date成員函數將其輸出,并設計出相應的程序測試類功能。 (2) 定義一個兩點坐標與距離的類,輸入坐標上的兩點,計算出兩點之間的距離,并輸出。同時設計出相應的程序測試類的功能。 (3) 定義一個類,輸入若干名學生的學號、姓名和成績,然后顯示這個數據并計算出平均分。同時設計出相應的程序測試類的功能。 (4) 定義一個正方體類Cube,輸入變長的值、計算并輸出立方體的表面積和體積。同時設計出相應的程序測試類的功能。 (5) 定義一個矩形類,內有私有數據成員代表長和寬,成員函數
9、用于取長和取寬,成員函數print( )用于打印長×寬的矩形,如長為10,寬為4的矩陣如下: ********** ********** ********** ********** 3、 實驗要求 在編寫程序時,將類的定義寫成頭文件(.h),類的實現寫成.cpp文件,即把類的定義與類的實現代碼分成不同的文件來保存。在后面的實驗中,也應該養(yǎng)成這樣的習慣。 (1)獨立完成實驗。 (2)實驗前需先完成預習報告,報告中應預先編寫好源程序。 (3)實驗過程中盡量獨立思考,培養(yǎng)分析問題和解決問題的能力。 (4)實驗完畢后書寫實驗報告,實驗報告內容包括實驗目的、實驗內容、結果分析以及
10、本次實驗的心得體會。要求將程序源碼和運行時的輸入/輸出數據情況書寫在實驗內容部分,并對程序的輸出結果進行分析,說明為什么能得出相應的結果(如果不能輸出預期結果,需要分析說明其原因)。 實驗五 構造函數和析構函數 1、 實驗目的 掌握類的構造函數的定義方法、構造函數的重載、析構函數的定義方法、掌握對象數據成員的初始化方法。深刻領會構造函數和析構函數被調用的時間和特點以及它們在程序中的作用、類與對象的區(qū)別、類實現數據隱藏與封裝的原理等。 2、 實驗內容 以下內容可根據具體情況至少選做兩題。 (1) 寫一段代碼說明構造函數和析構函數何時被調用,并測試它。 (2) 以下是產品類P
11、roduct的定義,但沒有類的實現部分,請根據類的定義編寫類的實現部分的代碼,并編寫相應的對所定義的類進行測試的程序。 class Product { private: char *name; //產品名稱 int price; //產品單價 int quantity; //產品剩余量 public: Procduct(char *a, int b, int c); //構造函數 void purchase(int money); //購買產品
12、void remain(); //顯示剩余產品數量 ~Product(); //析構函數 }; (3) 以下是圖書類Book的定義,但沒有類的實現部分,請根據類的定義編寫類的實現部分的代碼,并編寫相應的對所定義的類進行測試的程序。 class Book { private: char *name; //書名 int *author; //作者 int sale; //銷售量 public: Book( ); //默認構造函數 Boo
13、k(char *a, char *b, int c); //構造函數 void print( ); //輸出函數 ~Book( ); //析構函數 }; (4) 設計兩個有意義的類,使一個類的對象作為另一個類的數據成員。 3、 實驗要求 (1)獨立完成實驗。 (2)實驗前需先完成預習報告,報告中應預先編寫好源程序。 (3)實驗過程中盡量獨立思考,培養(yǎng)分析問題和解決問題的能力。 (4)實驗完畢后書寫實驗報告,實驗報告內容包括實驗目的、實驗內容、結果分析以及本次實驗的心得體會。要求將程序源碼和運行時的輸入/輸出數據情況書寫在實驗內容部
14、分,并對程序的輸出結果進行分析,說明為什么能得出相應的結果(如果不能輸出預期結果,需要分析說明其原因)。 實驗六 友元函數與友元類 1、實驗目的 掌握友元函數和友元類的說明方法,理解友元函數和友元類的使用特點。 2、實驗內容 (1)~(4)可根據具體情況至少選做兩題,然后再做(5)相應的題目。 (1) 利用友元函數求兩個數的平方差。 (2) 編寫程序,設計一個友元函數比較學生成績的高低,并輸出所有學生中最高分和最低分學生的姓名。 (3) 日期類Date包含日期的年、月、日三個數據成員,編寫一個友元函數,求兩個日期之間相差的天數。 (4) 點類Point,包含點
15、的坐標x和y兩個數據成員,設計兩個友元函數,分別計算兩點間的水平距離和垂直距離。 (5) 采用友元類方式重新編寫以上各題的程序。 3、實驗要求 (1)獨立完成實驗。 (2)實驗前需先完成預習報告,報告中應預先編寫好源程序。 (3)實驗過程中盡量獨立思考,培養(yǎng)分析問題和解決問題的能力。 (4)實驗完畢后書寫實驗報告,實驗報告內容包括實驗目的、實驗內容、結果分析以及本次實驗的心得體會。要求將程序源碼和運行時的輸入/輸出數據情況書寫在實驗內容部分,并對程序的輸出結果進行分析,說明為什么能得出相應的結果(如果不能輸出預期結果,需要分析說明其原因)。 實驗七 靜態(tài)成員 1、實驗目
16、的 掌握類中靜態(tài)成員的定義方法,掌握靜態(tài)數據成員的初始化方法、靜態(tài)數據成員和靜態(tài)成員函數的訪問和使用方法。 2、實驗內容 以下內容可根據具體情況至少選做一題。 (1) 編寫程序,統(tǒng)計某旅館住宿客人的總數。要求輸入客人的姓名,輸出客人編號(按先后順序自動生成)、姓名以及總人數。 (2) 編寫程序,統(tǒng)計歌手大賽參賽人數,每名選手的平均得分。要求一次輸入選手的編號、姓名、各評委的打分;輸出參賽總人數,并按平均分由高到低的順序輸出每位選手的名次、姓名、平均得分。 3、實驗要求 (1)獨立完成實驗。 (2)實驗前需先完成預習報告,報告中應預先編寫好源程序。 (3)實驗過程中
17、盡量獨立思考,培養(yǎng)分析問題和解決問題的能力。 (4)實驗完畢后書寫實驗報告,實驗報告內容包括實驗目的、實驗內容、結果分析以及本次實驗的心得體會。要求將程序源碼和運行時的輸入/輸出數據情況書寫在實驗內容部分,并對程序的輸出結果進行分析,說明為什么能得出相應的結果(如果不能輸出預期結果,需要分析說明其原因)。 實驗八 繼承和派生 1、實驗目的 掌握利用單繼承和多重繼承的方式定義派生類的方法;深刻理解在各種繼承方式下構造函數和析構函數的執(zhí)行順序;理解和掌握公有繼承、私有繼承和保護繼承對基類成員的訪問機制;理解虛基類的概念以及引入虛基類的目的和作用。 2、實驗內容 以下內容可根
18、據具體情況至少選做兩題。 (1) 設計A、B兩個類,包含自己的缺省構造函數。由類A派生出新類C,并在C中包含類B的一個成員對象,且不創(chuàng)建類C的構造函數。創(chuàng)建類C的一個對象,觀察其結果。 (2) 設計一個圓類Circle和一個桌子類Table,在設計一個圓桌類Roundatable,它是從前兩個類派生出來的。要求輸出圓桌的高度、面積、顏色等數據。其中,類Circle包含數據成員radius和圓面積的成員函數,類Table包含數據成員height和返回高度的成員函數,類Roundtable再添加數據成員color和相應的成員函數。 (3) 設計一個基類Person,包含name和age兩個數
19、據成員;由它派生出學生類Student和教師類Teacher,其中學生類添加學號,教師類添加職稱信息;每個類均有構造函數和析構函數;編程實現,并用一些數據進行測試。 (4) 求長方形和等腰三角形的面積都需要兩個數據,設計一個類Data管理這兩個數據,由它派生出長方形類和等腰三角形類,并求出其面積。 (5) 設計一個汽車類Vehicle,包含數據成員車輪數和車重,由它派生出類Car和類Truck,前者包含載客數,后者包含載重量。編寫程序實現。 3、實驗要求 (1)獨立完成實驗。 (2)實驗前需先完成預習報告,報告中應預先編寫好源程序。 (3)實驗過程中盡量獨立思考,培養(yǎng)分析問題和
20、解決問題的能力。 (4)實驗完畢后書寫實驗報告,實驗報告內容包括實驗目的、實驗內容、結果分析以及本次實驗的心得體會。要求將程序源碼和運行時的輸入/輸出數據情況書寫在實驗內容部分,并對程序的輸出結果進行分析,說明為什么能得出相應的結果(如果不能輸出預期結果,需要分析說明其原因)。 (5)畫出程序中各個類和派生類的繼承關系圖。 實驗九 虛函數與多態(tài)性 1、實驗目的 掌握虛函數的定義方法及其在實現多態(tài)性中的作用,理解和掌握實現多態(tài)性的前提條件,理解靜態(tài)多態(tài)性和動態(tài)多態(tài)性的區(qū)別。 2、實驗內容 以下內容可根據具體情況至少選做兩題。 (1)已知基類: class Ba
21、se
{
public:
virtual void I_am()
{
cout<<”Base”< 22、,派生出圓柱體類、球類、正方體類和長方體類。
(3)設計一個抽象類Vehicle,由它派生出類Car和類Truck。類Car包含名稱、顏色、載客數3個數據成員,類Truck包含名稱、顏色、載客重量3個數據成員。
(4)編寫程序顯示動物種類?;怉nimal,包含name成員;由它派生2個類:類Mammal和類Bird,前者包含子女數,后者包含生蛋數。
3、實驗要求
(1)獨立完成實驗。
(2)實驗前需先完成預習報告,報告中應預先編寫好源程序。
(3)實驗過程中盡量獨立思考,培養(yǎng)分析問題和解決問題的能力。
(4)實驗完畢后書寫實驗報告,實驗報告內容包括實驗目的、實驗內容、結果分 23、析以及本次實驗的心得體會。要求將程序源碼和運行時的輸入/輸出數據情況書寫在實驗內容部分,并對程序的輸出結果進行分析,說明為什么能得出相應的結果(如果不能輸出預期結果,需要分析說明其原因)。
(5)畫出程序中各個類和派生類的繼承關系圖。
實驗十 模板
1、實驗目的
進一步加深理解類模板和函數模板的意義和作用,掌握類模板和函數模板的定義方法及在程序中的使用方法。
2、實驗內容
以下內容(1)(2)必做。
(1) 設計一個類模板Binfind,它可以用二分法在一個給定的有序數組中查找給定的元素值是否存在,如果存在則輸出該元素在數組中的下標值;如果未找到,則輸出-1。編寫相應的 24、程序測試類模板。注:該題中,類模板中的數組的類型不能定義成固定的某個類型。
(2) 設計一個類模板,它的數據成員至少包含一個類型未定,長度由用戶確定的一維數組,成員函數sort()將數組元素按從小到大的順序排序,printArray(int s,int n)將數組從第s個元素開始共打印出n個元素的值。編寫相應的程序測試類模板。
(3)設計一個函數模板,它返回兩個值中的較大值,并用int、char、double型的值進行驗證
3、實驗要求
(1)獨立完成實驗。
(2)實驗前需先完成預習報告,報告中應預先編寫好源程序。
(3)實驗過程中盡量獨立思考,培養(yǎng)分析問題和解決問題的能力。
25、
(4)實驗完畢后書寫實驗報告,實驗報告內容包括實驗目的、實驗內容、結果分析以及本次實驗的心得體會。要求將程序源碼和運行時的輸入/輸出數據情況書寫在實驗內容部分,并對程序的輸出結果進行分析,說明為什么能得出相應的結果(如果不能輸出預期結果,需要分析說明其原因)。
實驗十一 運算符重載
1、實驗目的
理解運算符重載的概念和實質,掌握運算符重載函數的定義方法,掌握將運算符重載為類的成員函數和友元函數的方法,掌握和運用幾種常用的用C++語言運算符的重載進行解決問題的方法。
2、實驗內容
以下內容可根據具體情況至少選做兩題。
(1) 編寫程序,運用運算符重載實現點類Point的 26、兩個對象(即兩點)間橫、縱坐標的相加運算。
(2) 設計一個person類,包含姓名、年齡等數據成員。要求重載流插入運算符(<<)和流提取運算符(>>),以實現對person類對象信息的輸入和輸出。
(3) 設計一個長方形類Triangle,包含長和寬兩個私有數據成員。要求重載運算符“+”,以實現多個矩形對象的面積之和。
(4) 設計一個復數類Complex,實現兩個復數的相加(+)、相減(雙目-)以及取負(單目-)的運算。
3、實驗要求
(1)獨立完成實驗。
(2)實驗前需先完成預習報告,報告中應預先編寫好源程序。
(3)實驗過程中盡量獨立思考,培養(yǎng)分析問題和解決問題的能力。
(4)實驗完畢后書寫實驗報告,實驗報告內容包括實驗目的、實驗內容、結果分析以及本次實驗的心得體會。要求將程序源碼和運行時的輸入/輸出數據情況書寫在實驗內容部分,并對程序的輸出結果進行分析,說明為什么能得出相應的結果(如果不能輸出預期結果,需要分析說明其原因)。
15
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
5. 裝配圖網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 市教育局冬季運動會安全工作預案
- 2024年秋季《思想道德與法治》大作業(yè)及答案3套試卷
- 2024年教師年度考核表個人工作總結(可編輯)
- 2024年xx村兩委涉案資金退還保證書
- 2024年憲法宣傳周活動總結+在機關“弘揚憲法精神推動發(fā)改工作高質量發(fā)展”專題宣講報告會上的講話
- 2024年XX村合作社年報總結
- 2024-2025年秋季第一學期初中歷史上冊教研組工作總結
- 2024年小學高級教師年終工作總結匯報
- 2024-2025年秋季第一學期初中物理上冊教研組工作總結
- 2024年xx鎮(zhèn)交通年度總結
- 2024-2025年秋季第一學期小學語文教師工作總結
- 2024年XX村陳規(guī)陋習整治報告
- 2025年學校元旦迎新盛典活動策劃方案
- 2024年學校周邊安全隱患自查報告
- 2024年XX鎮(zhèn)農村規(guī)劃管控述職報告