第一篇:面向?qū)ο蟪绦蛟O(shè)計課程設(shè)計大綱2013級計算機(jī)專業(yè)實驗指導(dǎo)書
《面向?qū)ο蟪绦蛟O(shè)計課程設(shè)計》實驗指導(dǎo)書
一、課程設(shè)計實驗的基本內(nèi)容和要求
1.選題范圍
所選題目必須能夠?qū)崿F(xiàn)一個完整意義上的應(yīng)用系統(tǒng),但題目名稱與具體功能不限,學(xué)生可根據(jù)自身的興趣、特點等進(jìn)行選題或由指導(dǎo)教師提供指導(dǎo)性選題。
2.選題要求
系統(tǒng)功能應(yīng)較為多樣化,具有一定的實用性或趣味性。同時要求所選題目在實現(xiàn)上必須運用以下知識點:菜單、工具欄、多重窗體、文件操作(可選)、圖形操作(可選)、多媒體技術(shù)(可選)、數(shù)據(jù)庫操作(可選)等。題目規(guī)模、難度適當(dāng)。
3.參考選題
(1)設(shè)計一個五子棋游戲。
游戲說明:棋盤分為陰線和陽線,陽線為棋盤上的可見的橫縱直線,陰線為棋盤上無實線相連的隱型斜線。在棋陽線和陰線的任意一條線上形成的有5個或5個以上的同色棋子不間隔地緊緊相連者為勝方。
基本要求:
? 在開始編寫程序以前,要完成對系統(tǒng)的分析,給出系統(tǒng)類和對象模型。? 用C++的OO技術(shù)完成系統(tǒng)程序的設(shè)計,給出類成員的詳細(xì)描述。
? 程序中至少要定義兩個類(例如:坐標(biāo)position類,棋子chess類等),類中要有多個屬性和方法。
? 完成的程序界面要美觀,能夠完成五子棋的基本游戲功能(兩人對戰(zhàn))。創(chuàng)新要求:在基本要求達(dá)到后,進(jìn)行創(chuàng)新設(shè)計,完善與增加游戲的功能,例如悔棋功能。
(2)設(shè)計一個2維圖形繪制程序。
說明:從點類開始構(gòu)建幾種圖源(如直線、折線、圓、三角形、矩形),并能初步實現(xiàn)簡單圖形的組合,如構(gòu)建一個五角星。
基本要求:
? 用C++類的思想來完成程序的設(shè)計。
? 在設(shè)計的過程中,建立清晰的類層次;
創(chuàng)新要求:在基本要求達(dá)到后,進(jìn)行創(chuàng)新設(shè)計,如實現(xiàn)多種圖形的組合。
(3)設(shè)計一個windows附件中所示的計算器。
基本要求:
? 求利用面向?qū)ο蟮姆椒ㄒ约癡C++的編程思想來完成系統(tǒng)的設(shè)計;
? 要求在設(shè)計的過程中,對windows環(huán)境下的編程有一個基本的認(rèn)識。
創(chuàng)新要求:在基本要求達(dá)到后,可進(jìn)行創(chuàng)新設(shè)計,如增加計算器的函數(shù)功能。
(4)公司人事管理系統(tǒng)
基本要求:
? 利用面向?qū)ο蟮木幊趟枷胍约癈++的編程方法完成系統(tǒng)的設(shè)計;
? 完成設(shè)計的具體內(nèi)容:
某小公司,主要有四類人員:經(jīng)理、兼職技術(shù)人員、銷售經(jīng)理和兼職推銷員。需要存儲這些人員的姓名、編號、級別、當(dāng)月薪水,計算月薪總額并顯示全部信息。實現(xiàn):(a)人員編號在生成人員信息時同時生成,每輸入一個人員信息編號順序加1。(b)程序?qū)λ腥藛T有提升級別的功能
(c)月薪的計算方法是:經(jīng)理拿固定月薪,兼職技術(shù)人員按工作小時數(shù)領(lǐng)取月薪,兼職推銷
員的報酬按該推銷員當(dāng)月銷售額提成(d)銷售經(jīng)理既拿固定月薪也領(lǐng)取銷售提成。
(e)能按姓名或者編號尋找、刪除、更新、顯示各類人員的信息
(5)模擬猜?lián)淇伺拼笮∮螒?/p>
基本要求:
? 利用面向?qū)ο蟮木幊趟枷胍约癈++的編程方法完成系統(tǒng)的設(shè)計;
該游戲的玩法和規(guī)則如下:玩法
②洗牌:每盤游戲開始之前,使撲克牌的排列順序充分隨機(jī)。
② 發(fā)牌:每局開始時,從未使用的撲克牌集合中順序發(fā)給玩家5張撲克牌(明牌)。③ 猜點:從未使用的撲克牌集合中按順序取出一張撲克牌(即莊家的暗牌),要求玩家將手中的第一張撲克牌和這張莊家的暗牌進(jìn)行比較,確定哪張牌大?
④ 積分:玩家確定回答后,翻開被猜的撲克牌(暗牌變成明牌),同時根據(jù)玩家回答的正確與否顯示相應(yīng)的提示,并為玩家的游戲成績積分。然后將這兩張已經(jīng)比較過的牌回收到已經(jīng)使用過的撲克牌集合中,玩家手中的下一張撲克牌成為新的一張撲克牌。
⑤ 對玩家手中剩余的撲克牌順序重復(fù)第③和④步操作,直至玩家手中不再有剩余的撲克牌時,一局游戲結(jié)束。
⑥ 如果未使用的撲克牌集合中的撲克牌數(shù)目多余10張,則從第②步自動開始進(jìn)行本盤游戲的下一局。
⑦ 詢問玩家是否繼續(xù)進(jìn)行下一盤游戲,如果繼續(xù),則從第①步開始進(jìn)行新的一盤游戲。規(guī)則
① 積分規(guī)則:
? 猜中1次,積1分;猜錯1次,不積分。
? 1局中連續(xù)猜中3次,除正常積分外獎勵1分;連續(xù)猜錯3次,罰1分。
? 1局全部猜中,除正常積分外獎勵3分;1局全部猜錯,罰3分。
? 玩家的最低積分為0,即不出現(xiàn)負(fù)分。
② 牌面大小比較規(guī)則:每張撲克牌的牌面由花色(梅花Club、方塊Diamond、紅心Heart和黑桃Spade)和牌點(A, 2, 3, 4, 5, 6, 7, 8, 9, 10, J, Q, K)組成。確定兩張撲克牌牌面大小的規(guī)則有兩條:
? 如果兩張牌面的牌點不同,則牌面大小僅與牌點有關(guān),而與牌面的花色無關(guān)。牌點的大小順序為:2 < 3 < 4 < 5 < 6 < 7 < 8 < 9 < 10 < J < Q < K < A。? 如果兩張牌面的牌點相同,則牌面大小僅與牌面的花色有關(guān)?;ㄉ拇笮№?/p>
序為:Club < Diamond < Heart < Spade。
(6)實現(xiàn)vector類和string類
基本要求:
vector和string均為c++標(biāo)準(zhǔn)庫中的重要類,提供多個接口,請實現(xiàn)這些接口,其中vector請實現(xiàn)為模板類,兩個類各自包含的接口如附件“string類vector類接口.doc” 4.課程設(shè)計報告要求
課程設(shè)計報告應(yīng)包含以下八個內(nèi)容。
1. 題目
課程設(shè)計題目。
2. 功能描述
對系統(tǒng)要實現(xiàn)的功能進(jìn)行簡明扼要的描述。
3. 概要設(shè)計
根據(jù)功能描述,建立系統(tǒng)的體系結(jié)構(gòu),即將整個系統(tǒng)分解成若干子功能模塊,并用框圖表示各功能模塊之間的銜接關(guān)系,并簡要說明各模塊的功能。
4. 詳細(xì)設(shè)計
詳細(xì)說明各功能模塊的實現(xiàn)過程,所用到的算法、技巧等。
5. 效果及存在問題
說明系統(tǒng)的運行效果(附上運行界面圖片)、存在哪些不足以及預(yù)期的解決辦法。
6. 心得體會
談?wù)勛约涸谡n程設(shè)計過程中的心得體會。
7. 附錄
附上各功能模塊的主要代碼。
8. 參考文獻(xiàn)
列出各種參考文獻(xiàn),包括參考書目,論文和網(wǎng)址等。
二、課程設(shè)計的考核
根據(jù)系統(tǒng)設(shè)計和報告的質(zhì)量評定成績,系統(tǒng)設(shè)計占60%,報告占40%。優(yōu)秀系統(tǒng)設(shè)計的標(biāo)準(zhǔn)如下:系統(tǒng)設(shè)計合理,有一定的實用性或趣味性,邏輯性強(qiáng),界面友好;優(yōu)秀報告的標(biāo)準(zhǔn)如下:層次清晰,文字流暢,重點突出。
四、其他
參考資料:
1.黃維通 等編著,《Visual c++ 面向?qū)ο笈c可視化程序設(shè)計》,清華大學(xué)出版社,2003.12
2.朱晴婷 等編著,《Visual c++ 程序設(shè)計—基礎(chǔ)與實例分析》,清華大學(xué)出版社,2004.3
3.汪成為 等編著,《面向?qū)ο蠓治觥⒃O(shè)計與應(yīng)用》,國防工業(yè)出版社
4.《面向?qū)ο蟪绦蛟O(shè)計》 劉振安主編 經(jīng)濟(jì)科學(xué)出版社
5.《Visual C++ 6.0實例教程》 門檻創(chuàng)作室 電子工業(yè)出版社
6.《Visual C++簡明教程》 鄧力編著 海洋出版社
7.《Visual C++ 6.0編程實例·技巧》 李國徽等編著 華中理工大學(xué)出版社
8.《深入淺出MFC》 侯俊杰著 電子版
9.http://.cn ── E海航標(biāo)
10.http:// ── 程序家園
11.http://msdn.microsoft.com ── MSDN在線幫助
說明:
1. 根據(jù)各自的情況選擇題目,單人完成。
2. 堅決禁止抄襲和從網(wǎng)上下載源代碼,如有發(fā)現(xiàn),一律不及格
3. 最后1~2周進(jìn)行程序驗收,提交時請將整個項目打包發(fā)給我,可在我機(jī)器上直接運行和查看代碼。每個同學(xué)都需要向我匯報設(shè)計思路和實現(xiàn)方式,請?zhí)崆白龊脺?zhǔn)備,
第二篇:《面向?qū)ο蟪绦蛟O(shè)計》課程設(shè)計教學(xué)大綱
《面向?qū)ο蟪绦蛟O(shè)計》課程設(shè)計教學(xué)大綱
《面向?qū)ο蟪绦蛟O(shè)計》課程設(shè)計教學(xué)大綱
中文名稱:《面向?qū)ο蟪绦蛟O(shè)計》課程設(shè)計
英文名稱:Course Project of Object-Oriented Programming 課程編碼:09003410
設(shè)計周數(shù):1周(18學(xué)時)學(xué)
分:1學(xué)分
開課學(xué)期:第2學(xué)期
開課單位:軟件學(xué)院
一、課程設(shè)計的教學(xué)目的和任務(wù)
通過本課程設(shè)計教學(xué)所要達(dá)到的目的是培養(yǎng)學(xué)生理論聯(lián)系實際的思想,讓學(xué)生綜合運用面向?qū)ο蟪绦蛟O(shè)計課程中的理論知識,特別是面向?qū)ο蟪绦蛟O(shè)計與面向?qū)ο缶幊痰姆椒?,進(jìn)行實際的程序設(shè)計與編程項目實踐。
本課程設(shè)計的任務(wù)是設(shè)計和編寫完成一個簡單的游戲程序。
二、課程設(shè)計的主要內(nèi)容
學(xué)生采用面向?qū)ο蟪绦蛟O(shè)計課程教材《C++ Program Design》中提供的圖形庫ezWindow,參考教材第15章中的程序片段,設(shè)計編寫完成一個游戲程序 ― 終結(jié)者(Terminator)。鼓勵學(xué)生自主創(chuàng)新,脫離教材的內(nèi)容,編寫其它游戲程序。
三、課程設(shè)計的基本教學(xué)要求
該課程設(shè)計需要在安裝了Microsoft Windows 2000操作系統(tǒng)、Microsoft Visual C++ 6.0和ezWindow 庫的計算機(jī)實驗室中進(jìn)行。為了方便學(xué)生撰寫設(shè)計報告,還要求計算機(jī)中安裝Microsoft Office。軟件學(xué)院教學(xué)實驗中心滿足這些條件,因此該課程設(shè)計可在軟件學(xué)院教學(xué)實驗中心進(jìn)行。
四、參考資料
面向?qū)ο蟪绦蛟O(shè)計課程教材《C++ Program Design》。
五、成績評定標(biāo)準(zhǔn)
課程設(shè)計成績分為優(yōu)、良、中、及格和不及格5個等級。分別從以下幾個方面考擦:
1、工作學(xué)習(xí)態(tài)度:
10%;
2、程序設(shè)計與代碼質(zhì)量:40%;
3、設(shè)計報告質(zhì)量:
30%;
4、創(chuàng)新:
20%。
大綱執(zhí)筆人:雷躍明
大綱審定人:陳林
時間:2008年2 月4 日
第三篇:面向?qū)ο蠹夹g(shù)與UML課程設(shè)計實驗指導(dǎo)書
《面向?qū)ο蠹夹g(shù)與UML課程設(shè)計》實驗指導(dǎo)書
實驗一 系統(tǒng)的用例模型
實驗名稱:系統(tǒng)的用例模型
實驗類型: 設(shè)計性實驗 學(xué)
時:一天
一、實驗?zāi)康?/p>
1.熟悉用例圖的基本功能和使用方法。
2.鍛煉結(jié)合給定題目,進(jìn)行有效需求分析的能力。3.掌握如何使用建模工具繪制用例圖的方法。
二、實驗器材
1.計算機(jī)一臺。
2.Rational Rose 工具軟件。
三、實驗內(nèi)容
在理解用例圖的基本功能和使用方法的基礎(chǔ)上,結(jié)合具體問題,完成對系統(tǒng)的需求建模,得到用例模型后,應(yīng)針對每個用例進(jìn)行業(yè)務(wù)分析,說明其具體的業(yè)務(wù)流程。用Rational Rose工具軟件繪制系統(tǒng)的用例圖。
四、實驗步驟
1.結(jié)合實際給定題目,完成系統(tǒng)的需求建模。
2.針對每個用例進(jìn)行業(yè)務(wù)分析。以圖書管理系統(tǒng)中“刪除讀者信息”用例為例來說明實驗具體步驟。
(1)分析:在圖書管理系統(tǒng)中,管理員首先登錄系統(tǒng),系統(tǒng)驗證通過后,管理方可向系統(tǒng)查詢數(shù)據(jù),在查詢后,系統(tǒng)會給出提示,有沒有找到相關(guān)的數(shù)據(jù),管理員根據(jù)系統(tǒng)查詢的返回結(jié)果,進(jìn)行下一步的操作,就是刪除讀者,在刪除的過程中,系統(tǒng)會對查詢得到的結(jié)果判斷該記錄是否可以刪除,若可以刪除,則給刪除提示,若不能刪除,也給相關(guān)的提示信息。
(2)根據(jù)分析結(jié)果,書寫業(yè)務(wù)流程,一般包含以下信息:
①管理員在錄入界面,輸入待刪除的讀者名;
②“業(yè)務(wù)邏輯”組件在數(shù)據(jù)庫中,查找待刪除的讀者名; ③如果不存在,則顯示出錯信息,返回步驟①,如果存在則繼續(xù); ④“業(yè)務(wù)邏輯”組件判斷“待刪除的讀者”是否可以刪除; ⑤如果不可以,則顯示出錯信息,返回步驟⑧,如果可以則繼續(xù); ⑥在數(shù)據(jù)庫中,刪除相關(guān)信息; ⑦顯示刪除成功信息; ⑧結(jié)束。
3.根據(jù)分析結(jié)果,繪制用例圖。以圖書管理系統(tǒng)中“刪除讀者信息”用例為例說明具體繪圖步驟:(1)在用例圖上雙擊main,出現(xiàn)如圖1.1所示,為繪制用例圖做好準(zhǔn)備。
圖1.1(2)在圖中的工具欄選取Actor圖標(biāo),在右邊的圖中添加一個Actor,并輸入名稱:administrator,如圖1.2所示。
(3)在左邊的工具欄中,選取用例的圖標(biāo),在右邊的圖中畫出一個用例,并輸入用例的名稱:login。
圖1.2(4)按照步驟(3),繪制出如圖1.4和圖1.5的兩個用例。
圖1.3
圖1.4
圖1.5(5)在繪出了用例后,接下來的是繪制參與者與用例實現(xiàn),如圖1.6所示。
圖1.6
(6)根據(jù)步驟(5),同時完成如圖1.7和圖1.8。此時,刪除讀者用例圖就到此完成。其系統(tǒng)查詢讀者信息等其他的功能會在時序圖和活動圖中描繪。
(7)根據(jù)分析情況,進(jìn)一步添加或細(xì)化用例圖。
圖1.7
圖1.8
五、實驗報告要求
1. 說明系統(tǒng)的需求建模結(jié)果,對主要用例整理用例圖。2. 小結(jié)實驗心得體會。
實驗二 系統(tǒng)的類模型
實驗名稱:系統(tǒng)的類模型
實驗類型: 設(shè)計性實驗 學(xué)
時:一天
一、實驗?zāi)康?/p>
1.理解類的基本概念。
2.掌握如何從需求分析中抽象出類的方法。3.掌握在Rational Rose中繪制類的操作方法。
二、實驗器材
1.計算機(jī)一臺。
2.Rational Rose 工具軟件。
三、實驗內(nèi)容
完成實驗一后,對給定題目的系統(tǒng)的需求的初步分析,得出系統(tǒng)的用例圖,通過對用例的業(yè)務(wù)流程的分析,我們可以初步了解系統(tǒng)的業(yè)務(wù)處理流程。本實驗需要對系統(tǒng)進(jìn)行靜態(tài)建模,這就需要從系統(tǒng)的用例圖去尋找和發(fā)現(xiàn)類。用Rational Rose工具軟件繪制系統(tǒng)的類圖。
四、實驗步驟
1.分析:由前面試驗對需求的分析抽象出類。2.繪制類圖的步驟:
(1)打開前面初步構(gòu)建的UML模型文件;(2)打開Rose中的邏輯視圖(Logical View),選擇分析模型(analysis model)目錄。并在其下創(chuàng)建一個子目錄并命名為:“圖書館業(yè)務(wù)功能”。
(3)用鼠標(biāo)右擊“圖書館業(yè)務(wù)功能”在彈出來的菜單中選擇“New→Class diagram”項,創(chuàng)建類圖,如圖2.1所示。
(4)雙擊新建的類圖,并點右邊控件集中選中的類的圖標(biāo),并用鼠標(biāo)在圖中分別拖出一個類圖,并命名為Book,如圖2.2所示。
圖2.1
圖2.2(5)接下來的一步為設(shè)置類的屬性,在新的類中雙擊該類,在打開屬性面板中,可以看到在此可以設(shè)置類的屬性和方法等其他的信息,圖2.3所示;后撞擊Attributes這個欄目,此欄目為設(shè)置類的屬性的選項,在圖中間的單擊右鍵,可以看到有一個“Insert”的選項,選中這個選項,圖2.4所示,后在出現(xiàn)的對話框中輸入相關(guān)信息如圖2.5所示;如書本的ISBN號,在Type這個方框內(nèi)輸入此屬性的類型值,同時可以看到一欄可以設(shè)置此屬性的訪問權(quán)限,一般這些屬性都設(shè)置Private這個權(quán)限,如圖2.6所示。這個類的其他屬性也可以按照以上的做法設(shè)置,最后得到的結(jié)果是圖2.7所示。
圖2.3 圖2.4
圖2.5 圖2.6(6)設(shè)置好類的屬性,現(xiàn)在來設(shè)置類的方法(也是操作),雙擊類后在彈出的菜單上選operations這個選項,可以看到圖2.8所示,在圖中的空白地方,單擊右鍵,在彈出的菜單中選insert這個選項,也就只有這個選項可用,見圖2.9,接著輸入方法名,同時可以設(shè)置該方法的返回類型,也可以在Documentations的方框內(nèi)填寫一些相關(guān)的方法說明,如圖2.12所示,設(shè)置好該方法的訪問權(quán)限,見圖2.13。類的其他方法也可以按上面來設(shè)置好,最后,得到該類的其他方法見類2.14。
圖2.7 圖2.8
圖2.9
圖2.11
圖2.10
圖2.12
圖2.13 圖2.14(7)至此,類的方法和屬性都設(shè)置好了,如圖2.15所示。
圖2.15(8)按照上面的步驟設(shè)置好所有類的屬性和方法。
(9)為各個類添加關(guān)系,由關(guān)聯(lián)、泛化、依賴等關(guān)系來靜態(tài)描述業(yè)務(wù)。
五、實驗報告要求
1.整理實驗結(jié)果。2.小結(jié)實驗心得體會。
實驗三 系統(tǒng)的狀態(tài)建模
實驗名稱:系統(tǒng)的狀態(tài)建模
實驗類型: 設(shè)計性實驗 學(xué)
時:一天
一、實驗?zāi)康?/p>
1.熟悉狀態(tài)圖的基本功能和使用方法。2.掌握如何使用建模工具繪制狀態(tài)圖方法。
二、實驗器材
1.計算機(jī)一臺。
2.Rational Rose 工具軟件。
三、實驗內(nèi)容
完成實驗一后,對給定題目的系統(tǒng)的需求的初步分析,得出系統(tǒng)的用例圖,通過對用例的業(yè)務(wù)流程的分析,我們可以初步了解系統(tǒng)的業(yè)務(wù)處理流程,但對業(yè)務(wù)處理過程的處理狀態(tài)間轉(zhuǎn)換了解仍不夠,這不利于設(shè)計人員對系統(tǒng)業(yè)務(wù)的進(jìn)一步理解,而狀態(tài)圖能從對象的動態(tài)行為的角度去描述系統(tǒng)的業(yè)務(wù)活動。因此,在本實驗主要完成用例的狀態(tài)圖。
四、實驗步驟
1.業(yè)務(wù)分析:由前面實驗對用例的描述和分析得到業(yè)務(wù)動態(tài)行為的狀態(tài)分析。以用例“還書”為例,還書業(yè)務(wù)的動態(tài)行為是由:空閑(idle)、圖書查找(finding)、還書(reversion)、失敗(Failure)、歸還成功(Success)5種狀態(tài)及激活相互轉(zhuǎn)換的事件。
2.繪制狀態(tài)圖。
還書的狀態(tài)圖,還書的主要業(yè)務(wù)都是由管理員來完成,首先管理員必須先登錄系統(tǒng),并通過驗證后,便可以進(jìn)行下一步的操作,查找該書的相關(guān)信息,如存在,則進(jìn)行還書操作,如不存在該信息,則給出提示信息;
繪圖步驟:
(1)在用例圖中的還書(revesion)用例,單擊右鍵,如圖3.1所示,新建一個狀態(tài)圖,命名為revesion狀態(tài)圖,圖3.2所示。
圖3.1
圖3.2(2)雙擊“receivesion”狀態(tài)圖,展開后,在左邊的工具欄上選取一個實心圓點,此結(jié)點為開始結(jié)點,圖3.3所示;當(dāng)還書的時候,操作者先要詢問系統(tǒng)的狀態(tài),如果系統(tǒng)忙,操作者則必需等待,因此,得到系統(tǒng)的兩種狀態(tài),如圖3.5所示。
圖3.3
圖3.4
圖3.5(3)操作者在詢問系統(tǒng)和狀態(tài)后,得到的圖3.6所示兩種狀態(tài),如果系統(tǒng)忙,操作者必需要等待、結(jié)束,如圖3.7和圖3.8所示,重返步驟(1)。
圖3.6
圖3.7
圖3.8(4)如系統(tǒng)空閑,則進(jìn)行對還書的信息進(jìn)行查詢操作,圖3.9所示;查詢也有兩種結(jié)果,一是查詢得到該書的相關(guān)信息,二查詢不到該書的相關(guān)信息;則此時有兩種狀態(tài),需要建立兩種狀態(tài),如圖3.10所示。
圖3.9
圖3.10(5)最后,操作者進(jìn)行了操作后,系統(tǒng)會給出操作的結(jié)果給操作者;操作成功或失敗,都會有提示信息給出。整個的還書的過程便完成;圖3.11所示。
(7)根據(jù)分析設(shè)計情況,進(jìn)一步添加或細(xì)化狀態(tài)圖。
圖3.11
五、實驗報告要求
1.整理實驗結(jié)果。2.小結(jié)實驗心得體會。
實驗四 活動圖
實驗名稱:活動圖
實驗類型: 設(shè)計性實驗 學(xué)
時:一天
一、實驗?zāi)康?/p>
1.熟悉活動圖的基本功能和使用方法。2.掌握如何使用建模工具繪制活動圖方法。
二、實驗器材
1.計算機(jī)一臺。
2.Rational Rose 工具軟件。
三、實驗內(nèi)容
完成實驗一后,對給定題目的系統(tǒng)的需求的初步分析,得出系統(tǒng)的用例圖,通過對用例的業(yè)務(wù)流程的分析,我們可以初步了解系統(tǒng)的業(yè)務(wù)處理流程。本實驗在前面基礎(chǔ)上繪制活動圖,說明用例具體的業(yè)務(wù)流程。
四、實驗步驟
(1)通過對用例的分析,得到用例執(zhí)行的具體步驟。以用例“刪除讀者信息”為例,經(jīng)過分析,一般按照以下步驟進(jìn)行:
①管理員在錄入界面,輸入待刪除的讀者名;
②“業(yè)務(wù)邏輯”組件在數(shù)據(jù)庫中,查找待刪除的讀者名;
③如果不存在,則顯示出錯信息,返回步驟(1),如果存在則繼續(xù); ④“業(yè)務(wù)邏輯”組件判斷“待刪除的讀者”是否可以刪除; ⑤如果不可以,則顯示出錯信息,返回步驟(8),如果可以則繼續(xù); ⑥在數(shù)據(jù)庫中,刪除相關(guān)信息; ⑦顯示刪除成功信息; ⑧結(jié)束。
(2)繪制活動圖,以用例“刪除讀者信息為例”繪圖步驟如下:
①在用例圖中,找到刪除的用例,如圖4.1所示,在刪除用例上單擊右鍵,在彈出的快捷菜單中選“New”,Rose工具也會彈出一個菜單,選”Activity Diagram”,選中后單擊,便可以新建好一個活動圖。如圖4.2所示。
圖 4.1
圖4.2 ②新建好活動圖后,雙擊刪除的活動圖,得到如圖4.3所示,然后把在左邊的工具欄內(nèi)點擊“Swinlane“,在右邊的圖添加一個泳道,如圖4.4所示,并命名為administrator.按照此步驟,再添加另一個泳道,并命名為SystemTool,得到圖4.5。
圖4.3 ③接著在左邊的工具上選取開始點,并在administrator的泳道上添加,如圖4.6所示;添加完開始結(jié)點后,再來為此活動圖添加活動,圖4.7所示,在左邊的工具欄上選中Activity這個圖標(biāo),在administrator這邊的泳道上添加一個活動,命名為登錄(login),再在開始結(jié)點和活動登錄(login)之間添加活動關(guān)系,如圖4.8所示。
圖4.4
圖4.5
圖4.6
圖4.7
圖4.8
④完成步驟②后,登錄輸入需要對輸入的信息進(jìn)行驗證,則在圖中添加一個驗證框,如圖4.9所示:添加驗證框后,驗證的內(nèi)容,如果通過,則允許管理員進(jìn)行查詢操作,如圖4.10所示;如不能通過,則結(jié)束,如圖4.11所示。
圖4.9
圖4.10
圖4.11
⑤驗證后,下一步的操作是查詢需要刪除的記錄,添加一個活動,命名為delete,如圖4.12和圖4.13所示。
圖4.12
圖4.13 ⑥最后,在刪除后,系統(tǒng)會返回操作結(jié)果給操作者,圖4.14所示;刪除成功或刪除失敗系統(tǒng)都會有信息返回給操作者。
五、實驗報告要求
1. 整理實驗結(jié)果。2. 小結(jié)實驗心得體會。
實驗五 順序圖
實驗名稱:順序圖
實驗類型: 設(shè)計性實驗 學(xué)
時:一天
一、實驗?zāi)康?/p>
1.理解順序圖的基本概念。
2.掌握在Rational Rose中繪制交互圖的操作方法。
二、實驗器材
1.計算機(jī)一臺。
2.Rational Rose 工具軟件。
三、實驗內(nèi)容
通過對教學(xué)內(nèi)容的學(xué)習(xí),我們完成了系統(tǒng)的需求分析,并從業(yè)務(wù)對象中抽象出了類。現(xiàn)在需要對前面所給出的用例進(jìn)行實現(xiàn),而用例的實現(xiàn)主要由順序圖來指定和描述系統(tǒng)的動態(tài)特性。本實驗主要在前面實驗基礎(chǔ)上對用例進(jìn)行動態(tài)建模。
四、實驗步驟
1.通過前面實驗,分析系統(tǒng)中存在的主要交互操作。
2.為每一個交互操作繪制順序圖。以“增加圖書”為例說明繪圖步驟:
(1)在Rose軟件的左邊欄目上的Logicl View單擊右鍵,新建一個時序圖,順序圖可以用時序來表示,如圖5.1;圖中的直線箭頭是發(fā)送消息;虛線箭頭是返回消息;曲折線是對象自己給自己發(fā)送消息并調(diào)用。
(2)接下來的是添加類,系統(tǒng)中的類是其他的方法的邊界,在上面做好的類找到可以直接拖拉來圖中,見圖5.2 和圖5.3所示。
圖5.1
圖5.2
圖5.3(3)添加類后,便可以添加方法了,開始是必需是外面的實體向系統(tǒng)發(fā)送消息,如圖5.4所示,是管理員登錄時向系統(tǒng)發(fā)送的消息;
圖5.4(5)可以按上一步的方法來完成其他的方法,如viladate(驗證),返回驗證結(jié)果,當(dāng)用戶收到結(jié)果后,可以正常登錄后便能進(jìn)行增加圖書見圖5.5到圖5.9。最后得到的時序圖如圖5.10所示。
圖5.5 : administrator1: login : ActionFormSystem2: login3: validate
圖5.6 : administrator1: login : ActionFormSystem2: login3: validate4: result5: result
圖5.7 : administrator1: login : ActionFormSystem2: login3: validate4: result5: result6: add7: add
圖5.8 : administrator1: login : ActionFormSystem2: login3: validate4: result5: result6: add7: add8: addbook
圖5.9
: administrator1: login : ActionFormSystem2: login3: validate4: result5: result6: add7: add8: addbook9: addruselt10: addresult
圖5.10
五、實驗報告要求
1.整理實驗結(jié)果。2.小結(jié)實驗心得體會。
第四篇:《面向?qū)ο蟪绦蛟O(shè)計方法》實驗教學(xué)大綱
《面向?qū)ο蟪绦蛟O(shè)計方法》實驗教學(xué)大綱
(計算機(jī)科學(xué)與技術(shù)本科專業(yè)使用)
一、教學(xué)目標(biāo)
通過該實驗課,學(xué)生應(yīng)在熟練掌握過程化程序設(shè)計方法的基礎(chǔ)上,領(lǐng)會面向?qū)ο蟪绦蛟O(shè)計及類的封裝、數(shù)據(jù)隱藏、繼承及多態(tài)等特性,逐步掌握面向?qū)ο蟪绦蛟O(shè)計方法,培養(yǎng)一定的程序設(shè)計能力,為以后各專業(yè)課程的學(xué)習(xí)打下良好的程序設(shè)計基礎(chǔ)。
二、實驗教學(xué)時數(shù)
三、實驗內(nèi)容
實驗一 圖形打印
1、實驗?zāi)康模壕毩?xí)for循環(huán)
2、實驗技能培訓(xùn)內(nèi)容:打印幾種特殊圖形,如菱形和Z字形
3、主要儀器:計算機(jī)
4、實驗方法:上機(jī)編程
實驗二 判素數(shù)
1、實驗?zāi)康模壕毩?xí)函數(shù)
2、實驗技能培訓(xùn)內(nèi)容:判斷101-200之間有多少個素數(shù),并輸出所有素數(shù)。
3、主要儀器:計算機(jī)
4、實驗方法:上機(jī)編程
實驗三 遞歸函數(shù)練習(xí)
1、實驗?zāi)康模壕毩?xí)遞歸函數(shù)
2、實驗技能培訓(xùn)內(nèi)容:有一對兔子,從出生后第3個月起每個月都生一對兔子,小兔子長到第三個月后每個月又生一對兔子,假如兔子都不死,問每個月的兔子總數(shù)為多少? 兔子的規(guī)律為數(shù)列1,1,2,3,5,8,13,21....3、主要儀器:計算機(jī)
4、實驗方法:上機(jī)編程
實驗四 數(shù)列排序
1、實驗?zāi)康模壕毩?xí)數(shù)組及幾種基本排序方法
2、實驗技能培訓(xùn)內(nèi)容:用選擇、插入、冒泡、快速等幾種基本的排序方法對數(shù)列進(jìn)行排序。
3、主要儀器:計算機(jī)
4、實驗方法:上機(jī)編程
實驗五 矩陣乘積
1、實驗?zāi)康模壕毩?xí)數(shù)組
20學(xué)時
2、實驗技能培訓(xùn)內(nèi)容:用數(shù)組存儲兩個矩陣,求兩個矩陣的乘積。
3、主要儀器:計算機(jī)
4、實驗方法:上機(jī)編程
實驗六 設(shè)計時間日期類
1、實驗?zāi)康模赫莆蘸唵晤惖脑O(shè)計方法
2、實驗技能培訓(xùn)內(nèi)容:構(gòu)造一個TimeDate類,類中包含一個成員函數(shù),用來在屏幕上顯示時間與日期(采用建立在標(biāo)準(zhǔn)庫time.h中的標(biāo)準(zhǔn)時間與日期來尋找與顯示日期)。
3、主要儀器:計算機(jī)
4、實驗方法:上機(jī)編程
實驗七 設(shè)計計時類
1、實驗?zāi)康模赫莆蘸唵晤惖脑O(shè)計方法
2、實驗技能培訓(xùn)內(nèi)容:建立Watch類,用來仿效秒表跟蹤消逝的時間。用構(gòu)造函數(shù)將消逝時間的初值置為零。提供兩個成員函數(shù)Start()與Stop(),分別打開與關(guān)閉計時器。
3、主要儀器:計算機(jī)
4、實驗方法:上機(jī)編程
實驗八 設(shè)計字符棧類
1、實驗?zāi)康模赫莆蘸唵晤惖脑O(shè)計方法
2、實驗技能培訓(xùn)內(nèi)容:用Stack類,寫一個函數(shù)LoadStack(),用來返回已經(jīng)將字母表(a-z)入棧的堆棧。在調(diào)用函數(shù)中,將這個堆棧賦值給另一個對象,并證明它包含字母表。可以改變堆棧的尺寸,以便它大得足以支持字母表。
3、主要儀器:計算機(jī)
4、實驗方法:上機(jī)編程
實驗九 友元的使用方法
1、實驗?zāi)康模赫莆沼言氖褂梅椒?/p>
2、實驗技能培訓(xùn)內(nèi)容:求兩數(shù)的平方差(友元函數(shù)說明)
3、主要儀器:計算機(jī)
4、實驗方法:上機(jī)編程
實驗十 訪問權(quán)限
1、實驗?zāi)康模赫莆疹惓蓡T的各種訪問權(quán)限
2、實驗技能培訓(xùn)內(nèi)容:類成員的各種訪問權(quán)限
3、主要儀器:計算機(jī)
4、實驗方法:上機(jī)編程
實驗十一 類的派生
1、實驗?zāi)康模?掌握類的派生
2、實驗技能培訓(xùn)內(nèi)容:給出基類AreaClass(形狀類),建立兩個派生類Box(方形類)與Isosceles(等腰三角形類),讓每個派生類包含一個函數(shù)Area(),分別用來返回方形與等腰三角形的面積。
3、主要儀器:計算機(jī)
4、實驗方法:上機(jī)編程
實驗十二 用類方法求解一元二次方程
1、實驗?zāi)康模?掌握類的派生
2、實驗技能培訓(xùn)內(nèi)容:實現(xiàn)一個Complex類和一個Real類。將Real類定義為Complex類的子類。然后設(shè)計一個求解一元二次實系數(shù)方程的根的類Root。
3、主要儀器:計算機(jī)
4、實驗方法:上機(jī)編程
實驗十三 類繼承中的構(gòu)造
1、實驗?zāi)康模?掌握類繼承中的構(gòu)造
2、實驗技能培訓(xùn)內(nèi)容:類繼承中的構(gòu)造方法
3、主要儀器:計算機(jī)
4、實驗方法:上機(jī)編程
實驗十四 類繼承中的構(gòu)造
1、實驗?zāi)康模?掌握類繼承中的構(gòu)造
2、實驗技能培訓(xùn)內(nèi)容:類繼承中的構(gòu)造方法
3、主要儀器:計算機(jī)
4、實驗方法:上機(jī)編程
實驗十五 大學(xué)生類
1、實驗?zāi)康模?掌握虛函數(shù)的使用
2、實驗技能培訓(xùn)內(nèi)容:設(shè)計一個大學(xué)的類系統(tǒng),包括Student(學(xué)生),Professor(教師),Staff(職員)。另有一個類既作為學(xué)生又兼作助教的可作為派生類StudentStaff,它是由Student類和Staff類派生而來,另外定義一個父類DataRec作為上述類(子類)的基類。
3、主要儀器:計算機(jī)
4、實驗方法:上機(jī)編程
責(zé)任撰寫人:陳桂芬
第五篇:面向?qū)ο蟪绦蛟O(shè)計實驗教學(xué)大綱
《面向?qū)ο蟪绦蛟O(shè)計》
實驗指導(dǎo)書
《面向?qū)ο蟪绦蛟O(shè)計實驗》課程組
目錄
實驗預(yù)備 實驗環(huán)境和工具使用,多文件應(yīng)用程序的開發(fā)過程 實驗一 類與對象
實驗二 實驗三 實驗四 實驗五 實驗六 實驗七 I/O實驗八
構(gòu)造函數(shù)、析構(gòu)函數(shù) 繼承-單繼承 繼承-多繼承
多態(tài)-運算符重載
多態(tài)-虛函數(shù) 流與文件 模板
實驗預(yù)備 實驗環(huán)境和工具使用 多文件應(yīng)用程序的開發(fā)過程
一、實驗?zāi)康呐c要求
Visual C++提供了一個集源程序編輯、代碼編譯與調(diào)試于一體的開發(fā)環(huán)境,這個環(huán)境稱為集成開發(fā)環(huán)境,對于集成開發(fā)環(huán)境的熟悉程度直接影響程序設(shè)計的效率,本實驗通過學(xué)習(xí)Visual C++ 6.0界面的常用組成情況,并學(xué)習(xí)各種常用的窗口、菜單、按鈕的意義和功能,并通過一些簡單的程序設(shè)計,目的是使學(xué)生對用戶界面、菜單和工具欄有一個全面的了解并掌握主要菜單命令。
? 了解Visual C++集成開發(fā)環(huán)境的界面組成; ? 理解菜單命令的含義 ? 掌握“New:”菜單命令、“Breakpoints”菜單命令、“Build”菜單命令、“Source Brower”菜單命令、工具欄的定制和修改、聯(lián)機(jī)幫助。? 簡單的程序設(shè)計
二、實驗設(shè)備與平臺
實驗設(shè)備要求每個學(xué)生一臺電腦,其中運行環(huán)境為VC++ 6.0系統(tǒng)。
三、實驗內(nèi)容及步驟 1.上機(jī)實驗內(nèi)容
? ? ? ? ? ? ? ? Visual C++集成開發(fā)環(huán)境的用戶界面識別; 新文件、新工程項目、工作區(qū)的創(chuàng)建; 設(shè)置、查看和刪除斷點; 編譯和運行程序; 瀏覽資源信息;
工具欄的定制和修改; 聯(lián)機(jī)幫助的使用;
熟悉Visual C++編寫控制臺模式程序的方法; 上機(jī)輸入例題,調(diào)試并運行,并觀察結(jié)果; ? 上機(jī)編寫一個程序
實驗1調(diào)試并編譯程序。
在Visual C++下,編寫控制臺模式的程序和在DOS下編寫程序相似,具有簡單方便的特點,一般用于后臺程序的編寫??刂婆_模式下程序的編寫有兩種方法,一是創(chuàng)建一個C++源程序文件,二是創(chuàng)建一個控制臺模式的工程。
⑴ 創(chuàng)建一個C++源程序文件
① 啟動Visual C++,單擊“File”菜單下的“New”菜單命令,出現(xiàn)“New”對話框。然后選擇“Files”選項卡,在此選項卡的左側(cè),單擊“C++ Source Files”:在選項卡的右側(cè),選擇源程序存放的位置(location)以及源程序文件名(File),然后單擊【OK】按鈕。注意C++源程序文件的擴(kuò)展名為.cpp。
② 在編輯區(qū)輸入源程序,程序內(nèi)容如下:
#include
(Build)按鈕或者選擇“Build”菜單命令,系統(tǒng)提示是否創(chuàng)建一個默認(rèn)的工程工作區(qū),單擊【是】按鈕即可。④ 系統(tǒng)開始編譯源程序并鏈接相應(yīng)的文件,如果沒有錯誤則在集成開發(fā)環(huán)境下方的狀態(tài)欄中出現(xiàn)下列提示“0error(s),0warning(s)”,此時可以按
① 啟動Visual C++,單擊“File”菜單下的“New”菜單命令,出現(xiàn)“New”對話框。然后選擇“Projects”選項卡,在此選項卡的左側(cè),單擊“Win32 Console Application”;在選項卡的右側(cè),選擇工程文件存放的位置(location)以及工程文件名(Project Name)。然后單擊【OK】按鈕。
② 在“Win32 Console Application-Step 1 of 1”對話框中選擇應(yīng)用程序的類型“An empty project”,單擊【Finish】按鈕。③ 在集成開發(fā)環(huán)境的左側(cè)單擊“File View”屬性頁,右鍵單擊“Source Files”,選擇“Add Files to Folder?”。在“文件名”中填入文件名,此時也可以選擇存在的文件。
④ 此時在“Source Files”左側(cè)出現(xiàn)一個加號,單擊加號,出現(xiàn)新的源程序文件“1_1.cpp”,雙擊此文件,在集成開發(fā)環(huán)境的右側(cè)輸入例1_1.⑤ 按照創(chuàng)建一個C++源程序文件的第④個步驟編譯和運行程序。
圖1-1 向工程中添加源程序文件
圖1-2 選擇添加的源程序文件的文件名與類型
實驗一 類與對象
一、實驗?zāi)康呐c要求
(1)掌握類和對象的概念、定義和使用方法。(2)掌握不同特性對象成員的訪問方法
二、實驗設(shè)備與平臺
實驗設(shè)備要求每個學(xué)生一臺電腦,其中運行環(huán)境為VC++ 6.0系統(tǒng)。
三、實驗內(nèi)容及步驟
(1)定義一個描述學(xué)生類,數(shù)據(jù)成員包括:姓名、性別、年齡;成員函數(shù)包括:輸出各個數(shù)據(jù)成員的值,設(shè)置各個數(shù)據(jù)成員的值。
(2)求點到直線的距離。定義一個點類Point,數(shù)據(jù)成員包括:坐標(biāo)點。成員函數(shù)包括:設(shè)置各個數(shù)據(jù)成員的值的構(gòu)造函數(shù)Point(), 取得坐標(biāo)值的函數(shù)Getx(),Gety(),設(shè)計一直線類Line,數(shù)據(jù)成員包括:直線系數(shù)a,b,c;成員函數(shù)包括:取得系數(shù)的函數(shù)Geta(),Getb(),Getc();構(gòu)造函數(shù)Line();
? 說明:
? d=|a*x0+b*y0+c|/sqrt(a*a+b*b)
實驗二 構(gòu)造函數(shù)與析構(gòu)函數(shù)
一、實驗?zāi)康呐c要求
1.掌握構(gòu)造函數(shù)和析構(gòu)函數(shù)的使用方法。2.掌握靜態(tài)成員的使用方法。3.掌握友員的使用方法。
二、實驗設(shè)備與平臺
實驗設(shè)備要求每個學(xué)生一臺電腦,其中運行環(huán)境為VC++ 6.0系統(tǒng)。
三、實驗內(nèi)容及步驟
(1)寫出下列程序的執(zhí)行結(jié)果,然后上機(jī)進(jìn)行驗證。用VC6的Debug的功能跟蹤構(gòu)造函數(shù)、析構(gòu)函數(shù)和成員函數(shù)的執(zhí)行順序。#include
x = 2;y = 50;z = 9;} TEST(int a,int b,int c){
cout << “調(diào)用重載構(gòu)造函數(shù)”<< endl;
x = a;y = b;z = c;} void display(){
cout << “x=” << x << 't' << “y=” << y <<'t' << “z=” << z << endl;} int max(int a,int b){
if(a>b)return a;else return b;} ~TEST(){
cout << “調(diào)用析構(gòu)函數(shù)” << endl;
cout << x << “,” << y <<“和” << z << “最大值是:” << max(max(x,y),z)<< endl;} private: int x,y,z;};
void main(){ TEST obj1;obj1.display();TEST obj2(33, 20, 80);obj2.display();}(3)靜態(tài)成員練習(xí):書例子 class tc {
(4)友元練習(xí):書例子
實驗三 繼承-單繼承
一、實驗?zāi)康募耙?/p>
1、掌握繼承、基類和派生類的概念。
2、掌握初始化基類成員的方法。
3、掌握派生類對基類的繼承。
二、實驗設(shè)備與平臺
1、硬件環(huán)境:微型計算機(jī),2、軟件環(huán)境:Visual C++ 6.0;
三、實驗內(nèi)容及步驟
? 要求:設(shè)計點類、圓類和圓柱類,其中,圓類繼承點類,圓柱類繼承圓類。求:圓面積。圓柱表面積、體積。? 圓的面積:S=PI*R*R ? 周長:C= 2*PI*R ? 圓柱表面積:A=2*PI*R*H+2*PI*R*R ? =C*H+2*S ? 圓柱體積: V=PI*R*R*H =S*H
? class Point //點類 ? { ? protected: ? double x,y;? public: ? Point(double x0,double y0); double Area();
? };? class Circle:public Point { //圓類 ? protected: ? double r;//半徑 ? public: ? Circle(double x0,double y0,double radius)? double Area()//計算圓的面積 ?
? };? class Cylinder: public Circle { //圓柱體類 ? double h;//高度 ? public: ? Cylinder(double x0=0,double y0=0,double height=0){ ?
? double Area()//計算圓柱體的表面積 ?
? double Volume()//計算圓柱體的體積 ? } ? };
思考:點,矩形,立方體?
radius=0, double
實驗四 繼承-多繼承
一、實驗?zāi)康募耙?/p>
1、掌握繼承、基類和派生類的概念。
2、掌握初始化基類成員的方法。
4、掌握派生類對基類的繼承。
二、實驗設(shè)備與平臺
1、硬件環(huán)境:微型計算機(jī),2、軟件環(huán)境:Visual C++ 6.0;
三、實驗內(nèi)容及步驟
1閱讀程序,寫出實驗結(jié)果。
#include “stdafx.h” #include “iostream.h” class BASE1 {public: void show_i(){ cout<
j=y;} };int main(int argc, char* argv[]){ DERIVED obj;obj.set(5,7);obj.show_i();obj.show_j();return 0;} 2 書上作業(yè)。Student,worker,s_w.?
實驗五 運算符重載
一、實驗?zāi)康募耙?/p>
1、掌握用成員函數(shù)重載運算符的方法。
2、掌握用友元函數(shù)重載運算符的方法。
二、實驗設(shè)備與平臺
1、硬件環(huán)境:微型計算機(jī),2、軟件環(huán)境:Visual C++ 6.0;
三、實驗內(nèi)容及步驟
1、定義一個復(fù)數(shù)類,通過重載運算符:“ *”,“/”,直接實現(xiàn)二個復(fù)數(shù)之間的乘除運算。編寫一個完整的程序,測試重載運算符的正確性。要求乘法“*”用友元函數(shù)實現(xiàn)重載,除法“/”用成員函數(shù)實現(xiàn)重載。
分析:兩復(fù)數(shù)相乘的計算公式為:(a+b i)*(c+d i)=(ac-bd)+(ad+bc)i 兩復(fù)數(shù)相除的計算公式為:(a+b i)/(c+d i)=(ac+bd)/(c*c+d*d)+(bc-ad)/(c*c+d*d)i
2、定義一個分?jǐn)?shù)類,通過重載運算符:“ *”,“/”,直接實現(xiàn)二個分?jǐn)?shù)之間的乘除運算。編寫一個完整的程序,測試重載運算符的正確性。要求乘法“*”用友元函數(shù)實現(xiàn)重載,除法“/”用成員函數(shù)實現(xiàn)重載。
實驗六 多態(tài)性-虛函數(shù)
一、實驗?zāi)康募耙?/p>
5、學(xué)習(xí)虛函數(shù)和純虛函數(shù)的定義與使用方式。
6、理解抽象類的概念,學(xué)習(xí)如何用指針指向其他的派生類,實現(xiàn)多態(tài)性。
7、掌握抽象類的定義與使用方式,并注意指針的用法。
7、學(xué)習(xí)如何使用虛函數(shù)、純虛函數(shù)、抽象類和實現(xiàn)類的多態(tài)性。
二、實驗設(shè)備與平臺
1、硬件環(huán)境:微型計算機(jī),2、軟件環(huán)境:Visual C++ 6.0;
三、實驗內(nèi)容及步驟
1、虛函數(shù)的簡單使用。
# include
class subclass: public base { public: virtual void fn(){ cout ? “In subclass n ”;} };
void test(base &b){ b.fn();} void main(){ base be;subclass sc;cout? “ Calling test(bc)n ”;test(bc);cout? “Calling test(sc)n ”;test(sc);}
2、定義一個從正方形、球體和圓柱體的各種運算中抽象出一個公共基 container類,在其中定義表面積和體積的純虛函數(shù),分析:
定義一個派生于container類的正方體類cube,在類中都具有求表面積的和體積的重定義的成員函數(shù)。定義一個派生于container類的球體類sphere,在類中都具有求表面積和體積的重定義的成員函數(shù)。
定義一個派生于container類的圓柱體類cylinder,在類中都具有求表面積和體積的重定義的成員函數(shù)。
實驗八 模板
一、實驗?zāi)康募耙?/p>
1.了解函數(shù)模板、類模板與模板函數(shù)、模板類的關(guān)系; 2.熟悉函數(shù)模板、類模板的聲明與實例化過程; 3.掌握應(yīng)用模板進(jìn)行的程序設(shè)計
二、實驗設(shè)備與平臺
實驗設(shè)備要求每個學(xué)生一臺電腦,其中運行C程序環(huán)境為VC 6.0系統(tǒng)。
三、實驗內(nèi)容及步驟
模板的概念:
若一個程序的功能是對某種特定的數(shù)據(jù)類型進(jìn)行處理,則將所處理的數(shù)據(jù)類型說明為參數(shù),就可把這個程序改寫為模板。模板可以讓程序?qū)θ魏纹渌麛?shù)據(jù)類型進(jìn)行同樣方式的處理。
C++程序由類和函數(shù)組成,模板也分為函數(shù)模板(function template)和類模板(class template)。因此,可以使用一個帶有多種不同數(shù)據(jù)類型的函數(shù)和類,而不必顯式記憶針對不同的數(shù)據(jù)類型的各種具體版本。
函數(shù)模板的一般定義形式是: template <類型形式參數(shù)表> 返回類型 FunctionName(形式參數(shù)表){ //函數(shù)定義體 } 其中的類型形式參數(shù)表可以包含基本數(shù)據(jù)類型,也可以包含類類型。如果是類類型,則須在前面加上 calss。
這樣的函數(shù)模板定義,不是一個實實在在的函數(shù),編譯系統(tǒng)不為其產(chǎn)生任何執(zhí)行代碼。該定義只是對函數(shù)的描述,表示它每次能單獨處理在類型形式參數(shù)表中說明的數(shù)據(jù)類型。當(dāng)編譯系統(tǒng)發(fā)現(xiàn)有一個函數(shù)調(diào)用: FunctionName(實在參數(shù)表);將根據(jù)實在參數(shù)表中的類型,確認(rèn)是否匹配函數(shù)模板中對應(yīng)的形式參數(shù)表,然后生成一個重載函數(shù)。該重載函數(shù)的定義體與函數(shù)模板的函數(shù)定義體相同,而形式參數(shù)表的類型則以實在參數(shù)表的實際類型為依據(jù)。該重載函數(shù)稱為模板函數(shù)(template function)。
注意:函數(shù)模板與模板函數(shù)的區(qū)別在于,函數(shù)模板是模板的定義,定義中用到通用類型參數(shù)。模板函數(shù)是實實在在的函數(shù)定義,它由編譯系統(tǒng)在碰見具體的函數(shù)調(diào)用時所生成,具有程序代碼。
實驗1:用函數(shù)模板方法編寫程序,對給各種不同類型的三個數(shù)分別求最大數(shù)。要求:編程序上機(jī)通過,寫出運行結(jié)果。
實驗2: 用函數(shù)模板方法編寫程序,對給各種不同類型的兩個數(shù)的和。
要求:編程序上機(jī)通過,寫出運行結(jié)果。
實驗七 I/O流與文件
一、實驗?zāi)康呐c要求
(1)掌握流的概念。
(2)掌握文本文件和二進(jìn)制文件的使用方法。
二、實驗設(shè)備與平臺
1、硬件環(huán)境:微型計算機(jī),2、軟件環(huán)境:Visual C++ 6.0;
三、實驗內(nèi)容與步驟:
(1)#include
cout< (3)建立一個文本文件“textfile.txt”(內(nèi)容由讀者選定),然后顯示該文件,(4)建立若干個結(jié)構(gòu)體類型的學(xué)生數(shù)據(jù)。要求 (1)鍵盤輸入學(xué)生的信息,學(xué)生的屬性包括學(xué)號、姓名和成績,(2)用文件流中write函數(shù)將學(xué)生的信息寫入文件D:student.dat(3)將student.dat中所有的數(shù)據(jù)讀到內(nèi)存中并顯示輸出在屏幕上。(10分)編寫程序上機(jī)完成如下工作: Struct student { Int num;Char name[20];Float score;}stu[10];Main(){ //用鍵盤輸入 For(int i=0;i<10;i++)Cin>>。。。。//寫入文件中 Ifstream ifile(“d:student.dat”,ios::binary);//建立文件,并打開 if(!ifile.fail())//異常處理 { cerr<<“not open!” return 0;} For(int i=0;i<10;i++)Ifile.write(??..);//寫入 Ifile.close();//關(guān)閉 //讀文件 Ofstream ofile(“d:student.dat”,ios::binary);For(int i=0;i<10;i++){Ofile.read(?..)//讀出文件 Cout< 實驗六 綜合應(yīng)用程序一 一、實驗?zāi)康?/p> 本實驗是對前面所學(xué)知識的總結(jié),通過一個比較完整的應(yīng)用程序的設(shè)計,將學(xué)過的知識連貫起來,掌握開發(fā)一個實際應(yīng)用程序的步驟,同時學(xué)會使用開發(fā)工具實現(xiàn)界面友好的應(yīng)用程序。并通過本實驗,掌握如何運用面向?qū)ο蠹夹g(shù)對具體的應(yīng)用系統(tǒng)進(jìn)行分析和設(shè)計。 二、基本知識點 1、類和對象的定義、對象的初始化和使用 2、面向?qū)ο蟮睦^承機(jī)制 3、虛函數(shù)與多態(tài)性 4、運算符重載 5、文件的使用 6、算法的使用 三、基本要求 1、理解面向?qū)ο蟮奶匦?/p> 2、掌握面向?qū)ο蟪绦蛟O(shè)計的開發(fā)方法 3、有一定的分析問題和解決問題的能力 4、根據(jù)學(xué)過的知識點,充分利用已有的開發(fā)工具和素材,使程序編寫具有更高的效率,能真正地解決實際問題。 四、實驗內(nèi)容: 可以在多個題目中選擇一個: 1、編寫一本通信錄 2、模擬簡單計算器 3、簡單的管理系統(tǒng)的設(shè)計:如人事、工資、學(xué)生成績等。(要求部分功能實現(xiàn))。 五、學(xué)生實驗報告要求 1、實驗步驟 1)設(shè)計確定類的結(jié)構(gòu)及各類之間的關(guān)系,注意成員變量和函數(shù)的性質(zhì)(共有、私有或保護(hù)),哪些函數(shù)需要動態(tài)(定義為虛擬函數(shù))。 2)創(chuàng)建系統(tǒng)項目(解決方案, Project)。 3)按上述結(jié)構(gòu)定義各類,在構(gòu)造函數(shù)中對成員變量進(jìn)行初始化。4)定義各類中的成員函數(shù) 5)對用到的算法進(jìn)行描述 2、完成編寫相關(guān)實驗代碼 3、對實驗結(jié)果進(jìn)行分析 4、對本次實驗要有總結(jié) 注意:要求在系統(tǒng)設(shè)計階段對數(shù)據(jù)結(jié)構(gòu)(主要是類的結(jié)構(gòu)及類之間的聯(lián)系)進(jìn)行分析研究,充分利用面向?qū)ο蟮奶匦?,使類結(jié)構(gòu)盡可能合理和高效。