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