《面向?qū)ο蟪绦蛟O(shè)計(jì)》實(shí)驗(yàn)冊(cè)
《《面向?qū)ο蟪绦蛟O(shè)計(jì)》實(shí)驗(yàn)冊(cè)》由會(huì)員分享,可在線閱讀,更多相關(guān)《《面向?qū)ο蟪绦蛟O(shè)計(jì)》實(shí)驗(yàn)冊(cè)(64頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
金陵科技學(xué)院實(shí)驗(yàn)報(bào)告 學(xué) 生 實(shí) 驗(yàn) 報(bào) 告 冊(cè) 理工類 課程名稱 面向?qū)ο蟪绦蛟O(shè)計(jì) 專業(yè)班級(jí) 13 計(jì)統(tǒng) 2 班 學(xué)生學(xué)號(hào) 1305103038 學(xué)生姓名 曹亞孟 金陵科技學(xué)院實(shí)驗(yàn)報(bào)告 所屬院部 計(jì)算機(jī)工程學(xué)院 指導(dǎo)教師 吳剛 20 15 20 16 學(xué)年 第 一 學(xué)期 金陵科技學(xué)院教務(wù)處制 實(shí)驗(yàn)報(bào)告書寫要求 實(shí)驗(yàn)報(bào)告原則上要求學(xué)生手寫 要求書寫工整 若因課程特點(diǎn) 需打印的 要遵照以下字體 字號(hào) 間距等的具體要求 紙張一律 采用 A4 的紙張 實(shí)驗(yàn)報(bào)告書寫說(shuō)明 實(shí)驗(yàn)報(bào)告中一至四項(xiàng)內(nèi)容為必填項(xiàng) 包括實(shí)驗(yàn)?zāi)康暮鸵?實(shí) 驗(yàn)儀器和設(shè)備 實(shí)驗(yàn)內(nèi)容與過(guò)程 實(shí)驗(yàn)結(jié)果與分析 各院部可根據(jù) 學(xué)科特點(diǎn)和實(shí)驗(yàn)具體要求增加項(xiàng)目 填寫注意事項(xiàng) 1 細(xì)致觀察 及時(shí) 準(zhǔn)確 如實(shí)記錄 2 準(zhǔn)確說(shuō)明 層次清晰 3 盡量采用專用術(shù)語(yǔ)來(lái)說(shuō)明事物 4 外文 符號(hào) 公式要準(zhǔn)確 應(yīng)使用統(tǒng)一規(guī)定的名詞和符號(hào) 金陵科技學(xué)院實(shí)驗(yàn)報(bào)告 5 應(yīng)獨(dú)立完成實(shí)驗(yàn)報(bào)告的書寫 嚴(yán)禁抄襲 復(fù)印 一經(jīng)發(fā)現(xiàn) 以零分論處 實(shí)驗(yàn)報(bào)告批改說(shuō)明 實(shí)驗(yàn)報(bào)告的批改要及時(shí) 認(rèn)真 仔細(xì) 一律用紅色筆批改 實(shí) 驗(yàn)報(bào)告的批改成績(jī)采用百分制 具體評(píng)分標(biāo)準(zhǔn)由各院部自行制定 實(shí)驗(yàn)報(bào)告裝訂要求 實(shí)驗(yàn)批改完畢后 任課老師將每門課程的每個(gè)實(shí)驗(yàn)項(xiàng)目的實(shí)驗(yàn) 報(bào)告以自然班為單位 按學(xué)號(hào)升序排列 裝訂成冊(cè) 并附上一份該 門課程的實(shí)驗(yàn)大綱 金陵科技學(xué)院實(shí)驗(yàn)報(bào)告 實(shí)驗(yàn)項(xiàng)目名稱 C 基礎(chǔ)程序設(shè)計(jì) 實(shí)驗(yàn)學(xué)時(shí) 3 同組學(xué)生姓名 無(wú) 實(shí)驗(yàn)地點(diǎn) A107 實(shí)驗(yàn)日期 9 18 實(shí)驗(yàn)成績(jī) 批改教師 吳剛 批改時(shí)間 金陵科技學(xué)院實(shí)驗(yàn)報(bào)告 一 實(shí)驗(yàn)?zāi)康暮鸵?1 了解 Visual C 6 0 或者 Visual C 2005 以上版本的特點(diǎn) 2 學(xué)會(huì) Visual C 6 0 或者 Visual C 2005 以上版本的開發(fā)環(huán)境 來(lái)創(chuàng)建和調(diào) 試標(biāo)準(zhǔn)的 C 控制后臺(tái)應(yīng)用程序 3 學(xué)會(huì)使用 Visual C 6 0 或者 Visual C 2005 以上版本的開發(fā)環(huán)境中的程序 調(diào)試功能 例如單步執(zhí)行 設(shè)置斷點(diǎn) 觀察變量值等 4 掌握 string 類型的用法 5 掌握 C 語(yǔ)言編程時(shí)輸入和輸出格式控制 6 掌握多文件結(jié)構(gòu)的使用 7 掌握重載函數(shù)的使用 二 實(shí)驗(yàn)設(shè)備和環(huán)境 1 計(jì)算機(jī)每人一臺(tái) 2 安裝 WindowsXP 或者以上版本操作系統(tǒng) 3 安裝 Visual C 6 0 或者 Visual C 2005 以上版本 三 實(shí)驗(yàn)內(nèi)容及步驟 1 給出 Visual C 調(diào)試一個(gè)簡(jiǎn)單應(yīng)用程序的步驟 要求程序輸出字符串 Hello Welcome to C 程序 include using namespace std int main cout Hello endl 金陵科技學(xué)院實(shí)驗(yàn)報(bào)告 cout Welcome to C endl return 0 運(yùn)行結(jié)果 2 調(diào)試以下程序 觀察運(yùn)行結(jié)果 include using namespace std void main int a b 10 int a 20 cout a endl cout ra endl cout cout ra b cout a endl cout ra endl cout b endl 金陵科技學(xué)院實(shí)驗(yàn)報(bào)告 cout cout cout 運(yùn)行結(jié)果及結(jié)果分析 3 編寫一程序 實(shí)現(xiàn)九九乘法表的 2 中格式輸出 格式如下 1 1 2 3 4 5 6 7 8 9 1 1 2 3 4 5 6 7 8 9 2 2 4 6 8 10 12 14 16 18 3 3 6 4 4 8 5 5 10 6 6 12 7 7 14 8 8 16 金陵科技學(xué)院實(shí)驗(yàn)報(bào)告 9 9 18 2 1 2 3 4 5 6 7 8 9 1 1 2 2 4 3 3 6 9 4 4 8 12 16 5 5 10 15 20 25 6 6 12 18 24 30 36 7 7 14 21 28 35 42 49 8 8 16 24 32 40 48 56 64 9 9 18 27 36 45 54 63 72 81 注 要求每種輸出格式均寫成函數(shù)形式 程序 include using namespace std int main int i j cout 顯示 1 endl for i 1 i 10 i for j 1 j 10 j 金陵科技學(xué)院實(shí)驗(yàn)報(bào)告 cout i j t cout endl cout endl 顯示 2 endl for i 1 i 10 i for j 1 j i j cout j i t cout endl return 0 運(yùn)行結(jié)果 金陵科技學(xué)院實(shí)驗(yàn)報(bào)告 4 將第 3 題改成多文件結(jié)構(gòu)實(shí)現(xiàn) 要求該工程中有 3 個(gè) cpp 文件和 1 個(gè) h 文 件 程序 h include using namespace std int cfb1 int x int y int cfb2 int x int y cpp 1 include 3head h void main int i j cout cfb1 i j endl 金陵科技學(xué)院實(shí)驗(yàn)報(bào)告 cout cfb2 i j endl 2 include 3head h int cfb1 int i int j cout 顯示 1 endl for i 1 i 10 i for j 1 j 10 j cout i j t cout endl return 0 3 include 3head h int cfb2 int i int j cout 顯示 2 endl for i 1 i 10 i 金陵科技學(xué)院實(shí)驗(yàn)報(bào)告 for j 1 j i j cout j i t cout endl return 0 5 編程實(shí)現(xiàn)比較兩個(gè)數(shù)的大小 求較大值 要求使用重載函數(shù)實(shí)現(xiàn) 程序 include using namespace std int max int a int b return a b a b int main int m n cout m n cout The bigger is max m n endl return 0 金陵科技學(xué)院實(shí)驗(yàn)報(bào)告 運(yùn)行結(jié)果 6 編寫一個(gè)程序 判斷一 個(gè)字符串是否為另一個(gè)字符串的子串 若是 返回字串在主串中的位置 要求 不適用 strstr 函數(shù) 自己編寫一個(gè)子函數(shù)實(shí)現(xiàn) 建議使用 string 類型 而非 字符數(shù)組 程序 include include string h using namespace std void main char a how are you char b are int i 0 j na nb flag na strlen a nb strlen b flag 1 for i 0 i 0 i if a i b j j 金陵科技學(xué)院實(shí)驗(yàn)報(bào)告 運(yùn)行結(jié)果 四 實(shí)驗(yàn)體會(huì) 熟悉了 C 開發(fā)環(huán)境的使用 對(duì) C 編程有了初步的了解 能夠編寫一些簡(jiǎn) 單的和 C 類似的程序 實(shí)驗(yàn)項(xiàng)目名稱 類與對(duì)象 實(shí)驗(yàn)學(xué)時(shí) 3 同組學(xué)生姓名 無(wú) 實(shí)驗(yàn)地點(diǎn) A107 實(shí)驗(yàn)日期 9 25 實(shí)驗(yàn)成績(jī) 批改教師 吳剛 批改時(shí)間 金陵科技學(xué)院實(shí)驗(yàn)報(bào)告 一 實(shí)驗(yàn)?zāi)康暮鸵?1 掌握類和對(duì)象的概念 定義方法以及類與對(duì)象的簡(jiǎn)單用法 2 掌握成員函數(shù)的實(shí)現(xiàn)與調(diào)用方法 3 深刻領(lǐng)會(huì)類與對(duì)象的區(qū)別 4 理解類實(shí)現(xiàn)數(shù)據(jù)隱藏和封裝的原理 5 掌握構(gòu)造函數(shù) 拷貝構(gòu)造函數(shù) 分析構(gòu)造函數(shù)的定義和使用 尤其注意組合 類中它們的調(diào)用順序 二 實(shí)驗(yàn)設(shè)備和環(huán)境 1 計(jì)算機(jī)每人一臺(tái) 2 安裝 WindowsXP 或者以上版本操作系統(tǒng) 3 安裝 Visual C 6 0 或者 Visual C 2005 以上版本 三 實(shí)驗(yàn)內(nèi)容及步驟 1 用面向?qū)ο蟮某绦蛟O(shè)計(jì)方法實(shí)現(xiàn)棧的操作 棧又叫堆棧 是一個(gè)常用的數(shù)據(jù) 結(jié)構(gòu) 它是一種運(yùn)算受限的線性表 僅允許在表的一端進(jìn)行插入和刪除運(yùn)算 是一種后進(jìn)先出表 提示 棧用一維整型數(shù)組來(lái)表示 棧的大小定義為 10 棧定義為一個(gè)類 stack 實(shí)現(xiàn)棧的創(chuàng)建 進(jìn)棧和出棧 棧的消亡 進(jìn)棧函數(shù) void push int n 出棧函數(shù) int pop void 程序 include using namespace std const int maxsize 10 class stack 金陵科技學(xué)院實(shí)驗(yàn)報(bào)告 public void init top 1 void push int n int pop void dead private int top int data maxsize void stack push int n if top maxsize cout 棧已滿 endl else top data top n int stack pop 金陵科技學(xué)院實(shí)驗(yàn)報(bào)告 if top 0 cout 棧下溢 endl return 0 else top return data top 1 void stack dead if top 0 cout 棧下溢 endl else top cout 棧中還剩 top 1 個(gè)元素 endl int main 金陵科技學(xué)院實(shí)驗(yàn)報(bào)告 stack seqstack int i x m seqstack init cout 請(qǐng)輸入 10 個(gè)數(shù)字 for i 0 i x seqstack push x cout 請(qǐng)輸入你所需要的操作 endl cout 1 元素出棧 endl cout 2 棧的消亡 m switch m case 1 for i 0 i maxsize i cout seqstack pop break case 2 for i 0 i maxsize i 金陵科技學(xué)院實(shí)驗(yàn)報(bào)告 seqstack dead break return 0 運(yùn)行結(jié)果 2 將第 1 題中的實(shí)驗(yàn)內(nèi)容改為多文件結(jié)構(gòu)實(shí)現(xiàn) 程序 include using namespace std define N 10 class stack static int top int a N public void push int n void pop void die 金陵科技學(xué)院實(shí)驗(yàn)報(bào)告 include int stack top 0 void stack push int n if top N a top n cout 進(jìn)棧數(shù)據(jù) n endl else cout 堆棧已經(jīng)滿了 不能再加數(shù)進(jìn)去了 endl void stack pop if top 0 cout 堆棧已經(jīng)空了 沒有數(shù)據(jù)了 endl else cout 出棧數(shù)據(jù) cout a top endl void stack die 金陵科技學(xué)院實(shí)驗(yàn)報(bào)告 int i for i 0 i N i a i 0 cout 消亡堆棧 endl include head h void main int n m cout n m stack s s push n s push m s pop s pop s pop s die 3 設(shè)計(jì)一個(gè)用于人事管理的 People 人員 類 考慮到通用性 這里只抽象出 所有類型人員都具有的屬性 number 編號(hào) sex 性別 birthday 出生日 期 id 身份證號(hào) 等 其中 出生日期 聲明為一個(gè) 日期 類內(nèi)嵌子對(duì)象 用成員函數(shù)實(shí)現(xiàn)對(duì)人員信息的錄入和顯示 要求包括 構(gòu)造函數(shù)和折構(gòu)函數(shù) 拷貝構(gòu)造函數(shù) 內(nèi)聯(lián)成員函數(shù) 組合類等 金陵科技學(xué)院實(shí)驗(yàn)報(bào)告 程序 include include using namespace std class Date private int year int month int day public Date Date int y int m int d year y month m day d void set cin year month day void display cout year 年 month 月 day 日 金陵科技學(xué)院實(shí)驗(yàn)報(bào)告 class Person private int num char sex Date birthday char ID 18 public Person Person int n int y int m int d char id 18 char s m birthday y m d num n sex s strcpy ID id Person Person sex p sex birthday p birthday strcpy ID p ID void input cout 錄入數(shù)據(jù) endl cout num 金陵科技學(xué)院實(shí)驗(yàn)報(bào)告 cout sex cout 生日 birthday set cout ID ID 18 0 cout endl void output cout 編號(hào) num endl cout 性別 sex endl cout 生日 birthday display cout endl cout 身份證號(hào) ID endl Person cout num 號(hào)人員已經(jīng)錄入 endl int main Person p1 金陵科技學(xué)院實(shí)驗(yàn)報(bào)告 p1 input p1 output return 0 運(yùn)行結(jié)果 4 設(shè)計(jì)一個(gè)計(jì)算薪水的類 Payroll 它的數(shù)據(jù)成員包括 單位小時(shí)的工資 已 經(jīng)工作的小時(shí)數(shù) 本周應(yīng)付工資數(shù) 在主函數(shù)定義一個(gè)具有 10 個(gè)元素的對(duì)象數(shù) 組 代表 10 個(gè)雇員 可以定義普通對(duì)象數(shù)組 也可以定義堆對(duì)象數(shù)組 程序 詢問(wèn)每個(gè)雇員本周已經(jīng)工作的小時(shí)數(shù) 然后顯示應(yīng)得的工資 要求 輸入有效 性檢驗(yàn) 每個(gè)雇員每周工作的小時(shí)數(shù)不能大于 60 同時(shí)也不能為負(fù)數(shù) 程序 include include class Payroll 金陵科技學(xué)院實(shí)驗(yàn)報(bào)告 private double money double total public int time int GetTime do printf input time scanf d while time60 money 100 return 0 int GetTotalMoney return total time money void Print printf total lf n total 金陵科技學(xué)院實(shí)驗(yàn)報(bào)告 main Payroll p 10 p 0 GetTime p 0 GetTotalMoney p 0 Print 運(yùn)行結(jié)果 四 實(shí)驗(yàn)體會(huì) 對(duì)多文件有了更深了解 能夠熟練的掌握多文件的使用方法 學(xué)習(xí)了 C 的構(gòu)造函數(shù) 以及拷貝構(gòu)造函數(shù) 接觸友元組合類等新知識(shí) 需要課后多加練 習(xí) 金陵科技學(xué)院實(shí)驗(yàn)報(bào)告 實(shí)驗(yàn)項(xiàng)目名稱 靜態(tài)成員與友元 實(shí)驗(yàn)學(xué)時(shí) 3 同組學(xué)生姓名 無(wú) 實(shí)驗(yàn)地點(diǎn) A107 實(shí)驗(yàn)日期 10 09 實(shí)驗(yàn)成績(jī) 批改教師 吳剛 批改時(shí)間 金陵科技學(xué)院實(shí)驗(yàn)報(bào)告 一 實(shí)驗(yàn)?zāi)康暮鸵?1 掌握類中靜態(tài)成員的定義的方法 2 掌握靜態(tài)數(shù)據(jù)成員初始化的方法 3 掌握靜態(tài)數(shù)據(jù)成員和數(shù)據(jù)函數(shù)成員的訪問(wèn)和使用方法 4 掌握友元函數(shù)的定義和使用方法 5 了解友元類的使用方法 二 實(shí)驗(yàn)設(shè)備和環(huán)境 1 計(jì)算機(jī)每人一臺(tái) 2 安裝 WindowsXP 或者以上版本操作系統(tǒng) 3 安裝 Visual C 6 0 或者 Visual C 2005 以上版本 三 實(shí)驗(yàn)內(nèi)容及步驟 1 任意輸入 10 個(gè)數(shù) 計(jì)算器總和及平均值 設(shè)計(jì)程序測(cè)試該功能 要求用類 靜態(tài)友員實(shí)現(xiàn) 程序 include include using namespace std class number int No int figure static double sum static int sumpeople 金陵科技學(xué)院實(shí)驗(yàn)報(bào)告 public number int n int ifigure No n figure ifigure sum figure sumpeople static int Sum return sum static double Average return sum sumpeople int number sumpeople 0 double number sum 0 void main int i j cout The ten number is endl for i 1 i j number i j cout The sum is number Sum endl cout The average is number Average endl 運(yùn)行結(jié)果 2 求兩點(diǎn)之間的距離 要求定義點(diǎn) Point 類 并用友員函數(shù)實(shí)現(xiàn) 程序 include include using namespace std class Point double x y public Point double m double n x m y n friend double Distance Point double Distance Point d sqrt px x py x px x py x px y py y px y py y return d void main Point p1 p2 int a1 b1 a2 b2 cin a1 b1 a2 b2 p1 Point a1 b1 p2 Point a2 b2 cout the distance is Distance p1 p2 endl 運(yùn)行結(jié)果 3 定義一個(gè)經(jīng)理類 Manager 其成員數(shù)據(jù)包括編號(hào) id 姓名 name 和年齡 age 均聲明為 private 訪問(wèn)屬性 再定義一個(gè)員工類 Employee 其成員數(shù)據(jù)及訪問(wèn) 屬性與經(jīng)理類相同 將 Manager 類聲明為 Employee 類的友員函數(shù) 并在 Manager 類中定義一個(gè)函數(shù)訪問(wèn) Employee 類的私有數(shù)據(jù)成員并進(jìn)行輸出 程序 include include 金陵科技學(xué)院實(shí)驗(yàn)報(bào)告 using namespace std class Employee friend class Manager private int id char n int age public Employee id 1 n abc age 20 class Manager private int id char name 10 int age public Manager 金陵科技學(xué)院實(shí)驗(yàn)報(bào)告 Employee e void Print Employee cout e n endl cout e age endl void main Employee e Manager m m Print e system pause 運(yùn)行結(jié)果 四 實(shí)驗(yàn)體會(huì) 懂得了靜態(tài)成員的使用 靜態(tài)成員的作用域和使用方法 理解并掌握友元 金陵科技學(xué)院實(shí)驗(yàn)報(bào)告 的使用 金陵科技學(xué)院實(shí)驗(yàn)報(bào)告 實(shí)驗(yàn)項(xiàng)目名稱 繼承與派生 實(shí)驗(yàn)學(xué)時(shí) 3 同組學(xué)生姓名 無(wú) 實(shí)驗(yàn)地點(diǎn) A107 實(shí)驗(yàn)日期 10 16 實(shí)驗(yàn)成績(jī) 批改教師 吳剛 批改時(shí)間 金陵科技學(xué)院實(shí)驗(yàn)報(bào)告 一 實(shí)驗(yàn)?zāi)康暮鸵?1 掌握利用單繼承和多重繼承的方式定義派生類的方法 2 理解在各種繼承方式下構(gòu)造函數(shù)和析構(gòu)函數(shù)的執(zhí)行順序 3 理解和掌握 public protected private 對(duì)基類成員的訪問(wèn)機(jī)制 4 理解虛基類的概念 引入虛基類的目的和作用 5 理解在虛基類時(shí)的構(gòu)造函數(shù)和析構(gòu)函數(shù)的執(zhí)行順序 二 實(shí)驗(yàn)設(shè)備和環(huán)境 1 計(jì)算機(jī)每人一臺(tái) 2 安裝 WindowsXP 或者以上版本操作系統(tǒng) 3 安裝 Visual C 6 0 或者 Visual C 2005 以上版本 三 實(shí)驗(yàn)內(nèi)容及步驟 1 分析以下程序 寫出運(yùn)行結(jié)果 include using namespace std class Base public Base cout 執(zhí)行基類構(gòu)造函數(shù) endl Base cout 執(zhí)行基類折構(gòu)函數(shù) endl class Derive public Base public 金陵科技學(xué)院實(shí)驗(yàn)報(bào)告 Derive cout 執(zhí)行派生類構(gòu)造函數(shù) endl Derive cout 執(zhí)行派生類折構(gòu)函數(shù) endl void main Derive d 運(yùn)行結(jié)果 2 分析以下程序 寫出運(yùn)行結(jié)果 include calss Base public Base cout 基類構(gòu)造函數(shù) endl Base cout 基類析構(gòu)函數(shù) endl class Derive public Base public 金陵科技學(xué)院實(shí)驗(yàn)報(bào)告 Derive cout 派生類構(gòu)造函數(shù) endl Derive cout 派生類析構(gòu)函數(shù) endl void main Derive p new Derive Delete p 運(yùn)行結(jié)果 3 求一個(gè)三角形物體的面積 同時(shí)求一個(gè)圓形物體的面積 要求使用繼承 include include using namespace std class Object public void getData cout x y z 金陵科技學(xué)院實(shí)驗(yàn)報(bào)告 protected int x y z class Triangle public Object public void getData cout triangle Object getData double Area double d x y z 2 double s sqrt d d x d y d z return s class Circle public Object public void getData cout circle only radius x endl Object getData 金陵科技學(xué)院實(shí)驗(yàn)報(bào)告 double Area double s x x 3 1415 return s void main Triangle t t getData cout The results t Area endl Circle c c getData cout The results c Area endl 運(yùn)行結(jié)果 4 一個(gè)三口之家 大家知道父親會(huì)開車 母親會(huì)唱歌 但其父親還會(huì)修電視機(jī) 只有家里人知道 小孩既會(huì)開車又會(huì)唱歌 甚至也會(huì)修電視機(jī) 母親瞞著任何 人在外面做小工以補(bǔ)貼家用 此外小孩還會(huì)打乒乓球 編寫程序輸出者三口之家一天從事的活動(dòng) 先是父親出去開車 然后母親出去 工作 唱歌 母親下班后去做兩個(gè)小時(shí)的小工 小孩在俱樂部打球 在父親回 金陵科技學(xué)院實(shí)驗(yàn)報(bào)告 家后 開車玩 后又高興地唱歌 晚上 小孩和父親一起修電視機(jī) 程序 include using namespace std class father protected void repairTV cout Repairing TV endl public void drive cout Father is driving endl friend main class mother void dootherJob cout Mother is doing other job public virtual void sing cout Mother is singing songs endl friend main class child public father public mother public void drive cout Child is driving endl void sing cout Child is singing endl void repair cout Child is repairing tv endl 金陵科技學(xué)院實(shí)驗(yàn)報(bào)告 void playingPingPang cout Child is playing pingpang int main cout main endl father f mother m child c f drive m sing m dootherJob c playingPingPang c drive c sing f repairTV c repair return 0 運(yùn)行結(jié)果 金陵科技學(xué)院實(shí)驗(yàn)報(bào)告 5 設(shè)計(jì)定義一個(gè)哺乳動(dòng)物類 Mammal 再由此派生出狗類 Dog 和豬類 Pig 從狗 類 Dog 和豬類 Pig 又派生出 PigDog 類 定義一個(gè) PigDog 類的對(duì)象 觀察基類 與各派生類的構(gòu)造函數(shù)和析構(gòu)函數(shù)的調(diào)用順序 程序 include using namespace std class Mammal public Mammal cout 調(diào)用 mammal 構(gòu)造函數(shù) endl Mammal cout 調(diào)用 mammal 析構(gòu)函數(shù) endl class Dog public Mammal public Dog cout 調(diào)用 dog 構(gòu)造函數(shù) endl Dog cout 調(diào)用 dog 析構(gòu)函數(shù) endl class Pig public Mammal public Pig cout 調(diào)用 pig 構(gòu)造函數(shù) endl Pig cout 調(diào)用 pig 析構(gòu)函數(shù) endl class PigDog public Dog public Pig 金陵科技學(xué)院實(shí)驗(yàn)報(bào)告 public PigDog cout 調(diào)用 pigdog 構(gòu)造函數(shù) endl PigDog cout 調(diào)用 pigdog 析構(gòu)函數(shù) endl void main Mammal m Dog d Pig p PigDog pd 運(yùn)行結(jié)果 金陵科技學(xué)院實(shí)驗(yàn)報(bào)告 四 實(shí)驗(yàn)體會(huì) 本次實(shí)驗(yàn)學(xué)習(xí)了繼承和派生 對(duì)于其使用以及理解有點(diǎn)困難 金陵科技學(xué)院實(shí)驗(yàn)報(bào)告 實(shí)驗(yàn)項(xiàng)目名稱 多態(tài)性 實(shí)驗(yàn)學(xué)時(shí) 3 同組學(xué)生姓名 無(wú) 實(shí)驗(yàn)地點(diǎn) A107 實(shí)驗(yàn)日期 10 23 實(shí)驗(yàn)成績(jī) 批改教師 吳剛 批改時(shí)間 金陵科技學(xué)院實(shí)驗(yàn)報(bào)告 一 實(shí)驗(yàn)?zāi)康暮鸵?1 加深理解繼承和多繼承的概念 應(yīng)用等 2 掌握虛函數(shù)的定義方法 以及在實(shí)現(xiàn)多態(tài)性中的作用 理解掌握實(shí)現(xiàn)動(dòng)態(tài)多 態(tài)性的前提條件 理解靜態(tài)多態(tài)性和動(dòng)態(tài)多態(tài)性的區(qū)別 3 理解運(yùn)算符重載的概念和實(shí)質(zhì) 掌握預(yù)案算重載函數(shù)的定義方法 掌握運(yùn)算 符重載為類的成員函數(shù)和友元函數(shù)的方法 掌握幾種常用運(yùn)算符的重載 用來(lái) 解決函數(shù) 二 實(shí)驗(yàn)設(shè)備和環(huán)境 1 計(jì)算機(jī)每人一臺(tái) 2 安裝 WindowsXP 或者以上版本操作系統(tǒng) 3 安裝 Visual C 6 0 或者 Visual C 2005 以上版本 三 實(shí)驗(yàn)內(nèi)容及步驟 1 利用虛函數(shù)實(shí)現(xiàn)的多態(tài)性來(lái)求四種幾何圖形的面積 這四種幾何圖形是 三 角形 矩形 正方形和圓 程序 include define PI 3 1415926 using namespace std class Area double x y public Area double x double y int z x x y y if z 0 金陵科技學(xué)院實(shí)驗(yàn)報(bào)告 cout 三角形的面積為 x y 2 endl else if z 1 cout 矩形面積為 x y endl Area double x int z x x if z 0 cout 正方形的面積為 x x endl else if z 1 cout 圓的面積為 PI x x endl void main Area a 3 4 0 Area b 3 4 1 Area c 5 0 Area d 5 1 運(yùn)行結(jié)果 2 聲明 Point 類 有坐標(biāo) x y 兩個(gè)成員變量 對(duì) Point 類重載 自增 自減 運(yùn)算符 實(shí)現(xiàn)對(duì)坐標(biāo)值的改變 金陵科技學(xué)院實(shí)驗(yàn)報(bào)告 程序 include using namespace std class Point double x y public Point Point y point y Point double x double y x x y y void operator cout 原來(lái)的值為 x endl x x 2 cout 改過(guò)后的值為 x endl double getx return x double gety return y void main double x y 金陵科技學(xué)院實(shí)驗(yàn)報(bào)告 Point p 1 2 p operator 運(yùn)行結(jié)果 3 定義一個(gè)復(fù)數(shù)類 通過(guò)重載運(yùn)算符 直接實(shí)現(xiàn)兩個(gè)復(fù)數(shù)之間的乘除運(yùn) 算 編寫一個(gè)完整的程序 測(cè)試重載運(yùn)算符的正確性 要求乘法 用友元函 數(shù)實(shí)現(xiàn)重載 除法 用成員函數(shù)實(shí)現(xiàn)重載 程序 include using namespace std class Complex double r v public Complex Complex v c v Complex double r 0 double v 0 r r v v void operator Complex c void show 金陵科技學(xué)院實(shí)驗(yàn)報(bào)告 cout r 0 v i endl friend Complex operator Complex a Complex b friend Complex operator Complex a double r Complex operator Complex a double getr return r double fetv return v void Complex operator Complex c r c r v c v Complex operator Complex double av a fetv double br b getr double bv b fetv Complex c ar br av bv av bv return c Complex operator Complex a double r double ar a getr 金陵科技學(xué)院實(shí)驗(yàn)報(bào)告 double av a fetv Complex c ar r av cout 的結(jié)果為 return c Complex Complex operator Complex a Complex c a r r a v v a r a r a v a v a v a r a r a v a v cout 的結(jié)果為 return c void main Complex a 2 2 b 3 4 test test a b test show test a b test show 運(yùn)行結(jié)果 4 在第 3 題基礎(chǔ)上 增加重載函數(shù)的加法和減法運(yùn)算符的功能 實(shí)現(xiàn)兩個(gè)復(fù)數(shù) 的加法 一個(gè)復(fù)數(shù)和一個(gè)實(shí)數(shù)的加法 兩個(gè)復(fù)數(shù)的減法 一個(gè)復(fù)數(shù)與一個(gè)實(shí)數(shù) 金陵科技學(xué)院實(shí)驗(yàn)報(bào)告 的減法 用成員函數(shù)實(shí)現(xiàn)加法運(yùn)算符的重載 用友元函數(shù)實(shí)現(xiàn)減法運(yùn)算符的重 載 要求 自己設(shè)計(jì)主函數(shù) 完成程序的調(diào)試工作 程序 include using namespace std class Complex double r v public Complex Complex v c v Complex double r 0 double v 0 r r v v void operator Complex c void show cout r 0 v i endl friend Complex operator Complex a Complex b friend Complex operator Complex a Complex b friend Complex operator Complex a double r Complex operator Complex a 金陵科技學(xué)院實(shí)驗(yàn)報(bào)告 Complex operator Complex a Complex operator double a double getr return r double fetv return v void Complex operator Complex c r c r v c v Complex operator Complex a Complex b double ar a getr double av a fetv double br b getr double bv b fetv Complex c ar br av bv av bv cout 友元函數(shù)實(shí)現(xiàn)與復(fù)數(shù)的乘法 return c Complex Complex operator Complex a Complex c a r r a v v a r a r a v a v a v v a r a r a v a v cout 成員函數(shù)實(shí)現(xiàn)與復(fù)數(shù)的除法 金陵科技學(xué)院實(shí)驗(yàn)報(bào)告 return c Complex Complex operator Complex a Complex c a r r a v v cout 成員函數(shù)實(shí)現(xiàn)與復(fù)數(shù)的加法 return c Complex Complex operator double a Complex c r a v cout 成員函數(shù)實(shí)現(xiàn)與實(shí)數(shù)的加法 return c Complex operator Complex a Complex b Complex c a r b r a v b v cout 友元函數(shù)實(shí)現(xiàn)與復(fù)數(shù)的減法 return c Complex operator Complex a double r Complex c a r r a v cout 友元函數(shù)實(shí)現(xiàn)與實(shí)數(shù)的減法 return c 金陵科技學(xué)院實(shí)驗(yàn)報(bào)告 void main Complex a 2 2 b 3 4 test test a b test show test a b test show test a b test show test a 5 test show test a b test show test a 5 test show 運(yùn)行結(jié)果 四 實(shí)驗(yàn)體會(huì) 本次學(xué)習(xí)了多態(tài)性 增加了函數(shù)的復(fù)用性 很大程度的減少了代碼的重復(fù) 金陵科技學(xué)院實(shí)驗(yàn)報(bào)告 性 金陵科技學(xué)院實(shí)驗(yàn)報(bào)告 實(shí)驗(yàn)項(xiàng)目名稱 異常處理 實(shí)驗(yàn)學(xué)時(shí) 3 同組學(xué)生姓名 無(wú) 實(shí)驗(yàn)地點(diǎn) A107 實(shí)驗(yàn)日期 11 20 實(shí)驗(yàn)成績(jī) 批改教師 吳剛 批改時(shí)間 金陵科技學(xué)院實(shí)驗(yàn)報(bào)告 一 實(shí)驗(yàn)?zāi)康暮鸵?1 正確理解 C 的異常處理機(jī)制 2 學(xué)習(xí)異常處理的聲明和執(zhí)行過(guò)程 二 實(shí)驗(yàn)設(shè)備和環(huán)境 1 計(jì)算機(jī)每人一臺(tái) 2 安裝 WindowsXP 或者以上版本操作系統(tǒng) 3 安裝 Visual C 6 0 或者 Visual C 2005 以上版本 三 實(shí)驗(yàn)內(nèi)容及步驟 1 聲明一個(gè)異常類 Cexception 有成員函數(shù) Reason 用來(lái)顯示異常的類型 在子函數(shù)中觸發(fā)異常 在主程序中處理異常 觀察程序的執(zhí)行流程 程序 include using namespace std int Div int x int y void main Try cout 5 2 Div 5 2 endl cout 8 0 Div 8 0 endl cout 7 1 Div 7 1 endl catch int 金陵科技學(xué)院實(shí)驗(yàn)報(bào)告 cout except of deviding zero n cout this is ok n int Div int x int y if y 0 throw y return x y 運(yùn)行結(jié)果 2 設(shè)計(jì)一個(gè)異常抽象類 Exception 在此基礎(chǔ)上派生一個(gè) OutOfMemory 類響應(yīng) 內(nèi)存不足 一個(gè) RangeError 類響應(yīng)輸入的數(shù)不在指定范圍內(nèi) 實(shí)現(xiàn)并測(cè)試這幾 個(gè)類 程序 include using namespace std void MyFunc void class Expt public 金陵科技學(xué)院實(shí)驗(yàn)報(bào)告 Expt Expt const char ShowReason const return Expt 類異常 class Demo public Demo Demo Demo Demo cout 析構(gòu) Demo endl Demo Demo cout 構(gòu)造 Demo endl void MyFunc Demo d cout 在 MyFunc 中拋擲 Expt 類異常 endl 金陵科技學(xué)院實(shí)驗(yàn)報(bào)告 throw Expt int main cout 在 main 函數(shù)中 endl try cout 在 try 塊中 調(diào)用 MyFunc endl MyFunc catch Expt e cout 在 catch 中 異常處理程序中 endl cout 捕獲到 Expt 類異常 cout e ShowReason endl catch char str cout 捕獲到其他異常 str endl cout 回到 main 函數(shù) 從這里恢復(fù)執(zhí)行 endl return 0 運(yùn)行結(jié)果 金陵科技學(xué)院實(shí)驗(yàn)報(bào)告 四 實(shí)驗(yàn)體會(huì) 本次的異常學(xué)習(xí)熟悉了 C 的異常處理 是對(duì)知識(shí)的拓寬- 1.請(qǐng)仔細(xì)閱讀文檔,確保文檔完整性,對(duì)于不預(yù)覽、不比對(duì)內(nèi)容而直接下載帶來(lái)的問(wèn)題本站不予受理。
- 2.下載的文檔,不會(huì)出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請(qǐng)點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
15 積分
下載 |
- 配套講稿:
如PPT文件的首頁(yè)顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國(guó)旗、國(guó)徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對(duì)作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 面向?qū)ο蟪绦蛟O(shè)計(jì) 面向 對(duì)象 程序設(shè)計(jì) 實(shí)驗(yàn)
鏈接地址:http://kudomayuko.com/p-9956841.html