11427 C 物件導向程式設計 實驗指導書

2021-07-31 17:00:27 字數 3877 閱讀 2502

1. 實驗目的

(1)熟悉上機環境,了解編譯過程中常見的錯誤與解決辦法。

(2)學會編寫簡單的c++程式並會用debug除錯程式。

(3)觀察建構函式和析構函式的執行過程。

(4)掌握動態記憶體分配的兩個運算子的使用

(5)掌握函式引數的三種傳遞方式。

(6)學習利用友元求解問題。

2. 實驗內容

(1) 定義乙個學生類,學生資訊有學號、姓名和成績。成績包括計算機、英語、

數學成績和平均分。要求利用佇列實現學生的入隊、出隊和顯示等功能。

演算法思路:定義乙個類student,資料成員有:學生資訊,進行入隊、出隊和顯示操作的front(隊頭)、rear(隊尾)和num(統計佇列中元素的個數),其中學生資訊定義成結構體型別的陣列;成員函式有學生的入隊操作、出隊操作和顯示操作,通過建構函式對學生資訊進行初始化。

(2) 定義乙個圖書類,圖書資訊有圖書名稱、作者、出版社、**。要求利用

棧實現圖書的入庫、出庫和顯示等功能。

演算法思路:定義乙個類stack,資料成員有:圖書資訊,進行入庫、出庫和顯示操作的top(棧頂指標),其中圖書資訊定義成結構體型別的陣列;成員函式有圖書的入庫、出庫和顯示操作,通過建構函式對圖書資訊進行初始化。

(3) 有distance類和point類,將distance類定義為point類的友元類來實現

計算兩點之間距離。

1. 實驗目的

(1) 掌握函式過載的應用。

(2) 理解內聯函式的作用,掌握內聯函式的應用。

2. 實驗內容

(1) 利用過載求兩個整數、三個整數和四個整數的最小值。

(2) 利用過載計算長方形、正方形、圓、梯形的面積。

(3) 利用過載編寫求整數絕對值和求實數絕對值。

(4) 利用過載實現對10個整數和10個實數的排序。

(5) 判斷乙個字元是否為數字字元,要求用內聯函式實現。

1. 實驗目的

(1) 理解常量的含義與#define的區別。

(2) 理解引用的含義與指標的區別。

(3) 能夠熟練掌握const的各種使用方法。

(4) 能夠熟練應用引用、掌握拷貝建構函式的使用方法。

2. 實驗內容

(1) 利用const定義整型常量、浮點型常量與字元型常量。

(2) 使用const與指標結合,實現常指標與指標常量。

(3) 使用const與函式結合,實現常引數與返回值為常數的函式。

(4) 利用const定義常物件,實現常成員函式。

(5) 分別利用引用與指標實現交換兩個數值功能的函式,比較不同。

1. 實驗目的

(1) 了解靜態物件的定義和使用方法。

(2) 掌握靜態資料成員和靜態成員函式的定義和使用方法。

2. 實驗內容

(1)利用靜態資料成員的概念,編寫乙個類,統計目前存在多少個該類的物件。

提示:定義靜態資料成員count,用來統計物件數目。

(2)利用靜態資料成員的概念,編寫乙個學生類,學生資訊包括姓名、學號、成績;統計學生的總人數及總成績,並輸出。

提示:定義靜態資料成員total_num和total_score,分別用來統計學生的總人數及總成績。

(3) 定義乙個dog類,用靜態資料成員dogs記錄dog的個體數目,靜態成員

函式getdogs用來訪問dogs。設計並測試這個類。

(4) 利用靜態的概念,編寫乙個小貓類,統計並輸出每個小貓的重量、小貓的

總數量及總重量。

1. 實驗目的

(1)掌握成員函式過載運算子。

(2)掌握友元函式過載運算子。

(3)理解型別轉換的必要性,掌握型別轉換的使用方法。

2. 實驗內容

(1)過載減法運算子,實現兩個字串相減。

-=運算子過載函式:

const classname & classname::operator -=(const classname &sub_str) //定義+=運算子過載函式

else

j++;

i}while (i

buffer[k]='\0';

delete temp; //釋放原字串所佔空間

return *this;

}classname:指定義的類的名稱。

buffer:用來存放字串。

length:字串的長度。

(2)編寫乙個程式,用成員函式過載運算子「+」和「-」,實現兩個二維陣列相加和相減,要求第乙個二維陣列的值由建構函式設定,另乙個二維陣列的值由鍵盤輸入。

類的宣告:

const int m=3;

const int n=4;

class matrix

;(3)編寫乙個程式,用友元函式過載運算子「+」和「-」,實現兩個二維陣列相加和相減,要求第乙個二維陣列的值由建構函式設定,另乙個二維陣列的值由鍵盤輸入。

類的宣告:

const int m=3;

const int n=4;

class matrix

;(4)設計人民幣類,其資料成員為fen(分)、jiao(角)、yuan(元)。過載這個類的加法、減法運算子。

類的宣告:

class rmb

rmb operator +(rmb b);

rmb operator -(rmb b);

void print();

};(5)使用建構函式實現二維向量型別和複數型別的相互轉換。

類的宣告:

class vector;

class complex

;class vector

;1. 實驗目的

(1) 了解掌握組合與繼承在定義類的不同與特點。

(2) 理解掌握累的構造與析構順序,能夠熟練使用繼承進行類的定義。

(3) 理解虛函式使用方法與特點,熟練使用虛函式。

(4) 了解掌握純虛函式與抽象類的特點與使用方法。

(5) 了解多重繼承方法與特點,並熟練應用多重繼承。

2. 實驗內容

(1) 利用組合與繼承結合方法實現定義乙個班級類(學生類在下面people類上進行派生),類中包含班級專業名稱、學生數量、學生類物件列表。

class people

void setname(const char * sname)

};(2) 定義實現交通工具、汽車、小汽車三個層次派生類,了解繼承中類物件的構造與析構。

(3) 在(2)的基礎上,增加虛函式,了解函式的動態繫結與靜態繫結。

(4) 首先定義點類、顏色類,然後利用多重繼承方法定義矩形類、圓形類。

1. 實驗目的

(1)掌握函式模板與模板函式的使用。

(2)掌握類模板與模板類的使用。

2. 實驗內容

(1)編寫乙個使用類模板對陣列進行排序、查詢和求元素和的程式。

類模板的宣告:

const int size=10;

template

class array

;(2)編寫乙個一維陣列,無論整型還是其他型別,可以進行相同的操作:插入、刪除、查詢某一元素、排序等功能。

類模板的宣告:

const int maxsize=10;

template

class array

;(3)用類模板實現將兩個公升序鍊錶組成乙個降序鍊錶。資料元素可以是整型、實型。

類模板的宣告:

const int maxlen=15;

template

struct node;

template

class linklist

{private:

node *head1;

node *head2;

node *head3;

int n1,n2,n3;

public:

linklist();

物件導向程式設計課程實驗指導書 C

實驗01 熟悉mfc程式設計 實驗學時 3 實驗型別 演示 操作 設計 實驗要求 必修 一 實驗目的 通過本實驗的學習,使學生熟悉visual c 6.0整合開發環境的使用,為今後程式程式設計和除錯奠定基礎 同時熟練c 基本語法 程式的基本結構和除錯一般程式的方法。二 實驗內容 1 進入和退出mic...

物件導向程式設計實驗報告

綜合實驗報告 專業名稱 物聯網工程 班級 2012級2班 姓名 你哥哥 學號 201202051928 資訊科學與工程學院 二零一三年七月 第一題 2 1.1題目概述 2 1.2設計思路 2 1.3設計說明與除錯分析 2 1.4編碼實現 3 1.5程式執行結果 4 1.6設計心得 4 第二題 5 2...

物件導向程式設計實驗報告

安康學院經濟與管理系 課程單項實驗 上機 實訓 報告 課程名稱物件導向程式設計 班級專業 11級資訊管理與資訊系統1班 學生姓名 學號指導教師 填寫時間 年月日 課程單項實驗 上機 實訓 報告填寫要求 1.課程單項實驗是指該課程實驗由每乙個單獨設定的實驗專案組成,每個實驗專案應寫乙份實驗報告,課程實...