第一篇:Java面向?qū)ο蟪绦蛟O(shè)計語言課程設(shè)計指導(dǎo)書
山東建筑大學(xué)商學(xué)院電子商務(wù)專業(yè)
《Java面向?qū)ο蟪绦蛟O(shè)計語言》課程設(shè)計(實驗)指導(dǎo)書
一、對學(xué)生的基本要求:
1、理論聯(lián)系實際、嚴肅認真、實事求是的科學(xué)態(tài)度和勇于探索的創(chuàng)新精神。
2、運用所學(xué)基礎(chǔ)理論與專業(yè)知識分析和解決實際問題,培養(yǎng)獨立思考完成任務(wù)的能力。
3、運用Java面向?qū)ο蟪绦蛟O(shè)計方法、標準與規(guī)范開發(fā)小型應(yīng)用軟件系統(tǒng)。
二、設(shè)計的要求及內(nèi)容及要求:
應(yīng)用Java面向?qū)ο蟪绦蛟O(shè)計語言開發(fā)小型應(yīng)用軟件系統(tǒng)。可以從給定的選題中選擇一個課題或自擬課題(自擬課題需經(jīng)指導(dǎo)教師批準),完成系統(tǒng)分析、設(shè)計和開發(fā)。
具體要求如下:
(1)針對你所選擇的系統(tǒng)進行需求分析,寫出系統(tǒng)的功能要求,設(shè)計的應(yīng)用程序應(yīng)具有的功能要素。
(2)程序代碼應(yīng)符合教學(xué)中應(yīng)該具有的規(guī)范要求,類名、方法名,屬性名稱應(yīng)與設(shè)計中實際的應(yīng)用含義相符,程序中具有相應(yīng)的注釋。(3)程序的界面要合理、美觀。
(4)每人最終提交一個可行的應(yīng)用軟件程序和規(guī)范的課程設(shè)計說明書。說明書應(yīng)嚴格按照說明書的要求,格式清晰、規(guī)整。并提交所設(shè)計程序的電子文檔。
三、設(shè)計進度: 1、17周周一~周二:選題,系統(tǒng)的需求分析。分析并規(guī)劃你所設(shè)計的系統(tǒng)應(yīng)達到的功能,滿足什么樣的要求。2、17周周二~周四:系統(tǒng)設(shè)計。分析要達到你所要求的功能需要編寫什么類,規(guī)劃類的層次結(jié)構(gòu),設(shè)定好類明、方法名、屬性名;規(guī)劃你所設(shè)計的系統(tǒng)應(yīng)具有什么樣的界面布局。查閱資料幫助自己規(guī)劃好你的系統(tǒng)。3、17周周五~18周周二:程序設(shè)計。根據(jù)自己所規(guī)劃的程序進行具體代碼設(shè)計,代碼設(shè)計要符合程序設(shè)計的規(guī)范要求,注意程序的編寫格式。4、18周周三:程序測試。對自己所規(guī)劃的程序進行測試,看是否有異常及程序Bug出現(xiàn),并進行調(diào)試修正程序代碼。5、18周周三:編寫課程設(shè)計說明書。按照本指導(dǎo)書要求格式編寫程序設(shè)計報告(見附件)。6、18周周四上午交所設(shè)計程序的電子文檔,和課程設(shè)計說明書的電子文檔。7、18周周四~周五:成績評定。等待指導(dǎo)老師提問答辯。
四、選題
根據(jù)自己的愛好從以下題目中選擇一個題目進行設(shè)計。
1、設(shè)計題目:學(xué)籍管理系統(tǒng)
設(shè)計目的:設(shè)計一個學(xué)籍管理系統(tǒng),保存所有學(xué)生信息。
第1頁 設(shè)計要求:學(xué)籍管理系統(tǒng)一般包括學(xué)生的基本信息,如,學(xué)號、姓名、班級、籍貫、聯(lián)系電話、學(xué)生成績等;能夠添加、查找、刪除學(xué)生信息等功能;程序執(zhí)行時候,需要從文件中導(dǎo)入數(shù)據(jù),程序推出后再將數(shù)據(jù)保存到文件中。
2、設(shè)計題目:出版物管理
設(shè)計目的:對出版物書籍、CD或者磁帶進行管理。
設(shè)計要求:使用圖形界面的方式,對書籍、CD或者磁帶的基本信息進行管理。
書籍界面包括:書籍的名稱、書籍的價格、書籍的出版社、書籍的作者、書籍的ISBN、及書籍的出版日期等;可以通過選擇菜單來進行書籍信息的添加、修改和刪除等,所有的書籍信息會顯示在一個列表組件中,當某本書籍的信息改變時,列表中會相應(yīng)的進行改變。CD界面包括:CD的名稱、CD的價格、CD的出版社、CD的演唱者、CD的發(fā)行者、CD的ISRC等;可以通過選擇菜單進行CD信息的添加、修改和刪除,所有CD信息會顯示在一個列表組件中,當某張CD的信息改變時,列表中會相應(yīng)的進行改變。
磁帶界面包括:磁帶的名稱、磁帶的價格、磁帶的出版社、磁帶的演唱者、磁帶的ISRC等;可以通過選擇菜單進行磁帶信息的添加、修改和刪除,所有磁帶信息會顯示在一個列表組件中,某張磁帶的信息改變時,列表中信息會相應(yīng)的進行改變。
3、設(shè)計題目:Java程序編輯器
設(shè)計目的:設(shè)計一個Java程序編輯器,能夠進行簡單的文字處理。
設(shè)計要求:類似一個Windows系統(tǒng)的記事本,能夠?qū)崿F(xiàn)打開、保存文件;查找、替換字符串;定時自動更新文件,并創(chuàng)建備份文件;將Java的關(guān)鍵字以不同顏色或不同字體顯示。
4、設(shè)計題目:設(shè)置日期時間屬性
設(shè)計目的:設(shè)計類似Windows系統(tǒng)中“設(shè)置日期時間屬性”的窗口及功能,綜合運用各種組件、日期類、日歷類、線程等內(nèi)容。
設(shè)計要求:設(shè)計類似Windows系統(tǒng)中“設(shè)置日期時間屬性”的窗口及功能,設(shè)計相似界面,實現(xiàn)日期和時間的多種運算和顯示,保證運算正確性。
5、設(shè)計題目:交通信號燈的線程設(shè)計
設(shè)計目的:使用多線程設(shè)計,同步機制設(shè)計一個交通信號燈。
設(shè)計要求:設(shè)計線程;設(shè)計路口信號燈示意圖界面;進一步將兩個方向的信號燈分成3種車道燈:左轉(zhuǎn)、直行和右轉(zhuǎn);根據(jù)車流量進行時間的模糊控制。
6、設(shè)計題目:聊天程序
設(shè)計目的:圖形界面與Socket通信及輸入/輸出流的綜合運用。
設(shè)計要求:設(shè)計一個圖形界面,以Socket通信機制實現(xiàn)類似QQ的網(wǎng)絡(luò)聊天程序,該聊天程序最少可以達到兩個人聊天,并可以保存聊天的內(nèi)容。
7、銀行貸款多種還款方式的計算
設(shè)計目的:圖形界面與算法設(shè)計。
設(shè)計要求:設(shè)計一個圖形界面,在界面上能夠?qū)崿F(xiàn)的實際貸款和還款的一般規(guī)則(參照教材P409)。
第2頁
8、日歷組件
設(shè)計目的:圖形界面與算法設(shè)計。
設(shè)計要求:自定義一個日歷組件:顯示當月日歷、當前日期、上/下日歷等,界面樣子參照教材P409。
9、地址薄管理器
設(shè)計目的:圖形界面與輸入/輸出流和文件操作。
設(shè)計要求:設(shè)計一個存儲朋友電子郵件地址及電話號碼的地址薄應(yīng)用程序,界面自行設(shè)計(也可參照教材P411)。
(1)設(shè)計一個人員類,成員變量包括類別、姓名、電話號碼和郵件地址等,成員方法包括插入、移動、刪除、更改類別等。所有人員信息保存在以對象為單位的記錄文件中,以對象流實現(xiàn)數(shù)據(jù)讀取和保存功能。
(2)設(shè)計圖形用戶界面,在此界面上可實現(xiàn)針對朋友電子郵件和電話號碼的各種操作(可參照教材P411)。
(3)添加主菜單和快捷菜單,實現(xiàn)插入、刪除、移動等功能,快捷菜單會根據(jù)當前組件自動執(zhí)行不同對象的插入、刪除、移動等操作。
10、搜索文件
設(shè)計目的:圖形界面與輸入/輸出流和文件操作。
設(shè)計要求:參照Window的資源管理器,給特定搜索文件名的部分字符,在制定的范圍內(nèi)搜索文件,顯示搜索結(jié)果的文件名列表、文件路徑及文件屬性。
其他選題,需征求指導(dǎo)教師同意,由指導(dǎo)教師根據(jù)擬定的題目難度給予相應(yīng)的評分標準。
五、考核內(nèi)容及分值分配
1、課程設(shè)計說明書。(30分)1)正文:(手寫課程設(shè)計報告4頁以上)(20分)(1)、概述
包括項目背景、編寫目的、軟件定義、開發(fā)環(huán)境、所用的知識等內(nèi)容。
(2)、功能說明
問題陳述、需完成的功能。
(3)、程序類說明
定義的類、接口等的名稱,并將其在程序中起到的作用進行簡要說明,并根據(jù)面向?qū)ο蟪绦蛟O(shè)計的原則畫出類的層次關(guān)系圖。(4)、軟件系統(tǒng)測試說明
對你所設(shè)計的軟件進行使用測試,列舉該軟件出現(xiàn)的問題和不完善的地方。
(5)、用戶使用說明
將所設(shè)計的軟件能夠達到的功能進行描述。2)結(jié)束語:(5分)
第3頁 寫出完成本課程設(shè)計的心得,有哪些收獲。軟件還需要哪些改進。3)參考文獻:按照要求格式寫出你所參考的文獻資料。(5分)
2、開發(fā)的應(yīng)用軟件系統(tǒng)(60分)1)程序代碼的格式(10分)
代碼格式是否規(guī)范,是否有相應(yīng)的注視,程序類名、方法名、屬性名是否具有可讀性。2)程序界面設(shè)計(10分)
界面設(shè)計布局是否合理美觀,操作是否簡單方便。3)程序功能(40分)
程序功能是否達到了你所選系統(tǒng)的要求?;緷M足可得24~28分;完全滿足可得28~32分;完全滿足并能夠進行相應(yīng)的異常處理可得32~40分;如果在此基礎(chǔ)上還能進行相應(yīng)創(chuàng)新可根據(jù)創(chuàng)新的程度進行適當加分。
3、答辯及課程設(shè)計說明書資料歸檔規(guī)范性(10分)
注:每個學(xué)生都要獨立完成一個題目,如發(fā)現(xiàn)雷同者,對所有雷同學(xué)生按照不及格處理。
附件:說明書(論文)格式(可以參照論文范例)2.說明書(或論文)結(jié)構(gòu)及要求
(1)封面(由商學(xué)院統(tǒng)一發(fā)課程設(shè)計封面紙)(2)任務(wù)書(由指導(dǎo)教師填寫)(3)目錄
以上內(nèi)容由指導(dǎo)教師統(tǒng)一下發(fā)。(4)正文:(4頁課程設(shè)計報告紙以上)1)、概述
2)、功能說明 3)、程序類說明
4)、軟件系統(tǒng)測試說明 5)、用戶使用說明(5)結(jié)束語
(6)參考文獻(資料)
參考文獻必須是學(xué)生在課程設(shè)計中真正閱讀過和運用過的,文獻按照在正文中的出現(xiàn)順序排列。各類文獻的書寫格式如下: a.圖書類的參考文獻
序號 作者名·書名·(版次)·出版單位,出版年:引用部分起止頁碼。b.翻譯圖書類的參考文獻
序號 作者名·書名·譯者·(版次)出版單位,出版年:引用部分起止頁碼。c.期刊類的參考文獻
序號 作者名·文集名·期刊名·年,卷(期):引用部分起止頁碼。
第4頁
(7)附件
可以根據(jù)說明需要將設(shè)計界面及相關(guān)其他材料附在此處,也可以沒有。
第5頁
第二篇:面向?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é)合給定題目,進行有效需求分析的能力。3.掌握如何使用建模工具繪制用例圖的方法。
二、實驗器材
1.計算機一臺。
2.Rational Rose 工具軟件。
三、實驗內(nèi)容
在理解用例圖的基本功能和使用方法的基礎(chǔ)上,結(jié)合具體問題,完成對系統(tǒng)的需求建模,得到用例模型后,應(yīng)針對每個用例進行業(yè)務(wù)分析,說明其具體的業(yè)務(wù)流程。用Rational Rose工具軟件繪制系統(tǒng)的用例圖。
四、實驗步驟
1.結(jié)合實際給定題目,完成系統(tǒng)的需求建模。
2.針對每個用例進行業(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é)果,進行下一步的操作,就是刪除讀者,在刪除的過程中,系統(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所示,為繪制用例圖做好準備。
圖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)在繪出了用例后,接下來的是繪制參與者與用例實現(xiàn),如圖1.6所示。
圖1.6
(6)根據(jù)步驟(5),同時完成如圖1.7和圖1.8。此時,刪除讀者用例圖就到此完成。其系統(tǒng)查詢讀者信息等其他的功能會在時序圖和活動圖中描繪。
(7)根據(jù)分析情況,進一步添加或細化用例圖。
圖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.計算機一臺。
2.Rational Rose 工具軟件。
三、實驗內(nèi)容
完成實驗一后,對給定題目的系統(tǒng)的需求的初步分析,得出系統(tǒng)的用例圖,通過對用例的業(yè)務(wù)流程的分析,我們可以初步了解系統(tǒng)的業(yè)務(wù)處理流程。本實驗需要對系統(tǒng)進行靜態(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)用鼠標右擊“圖書館業(yè)務(wù)功能”在彈出來的菜單中選擇“New→Class diagram”項,創(chuàng)建類圖,如圖2.1所示。
(4)雙擊新建的類圖,并點右邊控件集中選中的類的圖標,并用鼠標在圖中分別拖出一個類圖,并命名為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.計算機一臺。
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ù)的進一步理解,而狀態(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)、失?。‵ailure)、歸還成功(Success)5種狀態(tài)及激活相互轉(zhuǎn)換的事件。
2.繪制狀態(tài)圖。
還書的狀態(tài)圖,還書的主要業(yè)務(wù)都是由管理員來完成,首先管理員必須先登錄系統(tǒng),并通過驗證后,便可以進行下一步的操作,查找該書的相關(guān)信息,如存在,則進行還書操作,如不存在該信息,則給出提示信息;
繪圖步驟:
(1)在用例圖中的還書(revesion)用例,單擊右鍵,如圖3.1所示,新建一個狀態(tài)圖,命名為revesion狀態(tài)圖,圖3.2所示。
圖3.1
圖3.2(2)雙擊“receivesion”狀態(tài)圖,展開后,在左邊的工具欄上選取一個實心圓點,此結(jié)點為開始結(jié)點,圖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)忙,操作者必需要等待、結(jié)束,如圖3.7和圖3.8所示,重返步驟(1)。
圖3.6
圖3.7
圖3.8(4)如系統(tǒng)空閑,則進行對還書的信息進行查詢操作,圖3.9所示;查詢也有兩種結(jié)果,一是查詢得到該書的相關(guān)信息,二查詢不到該書的相關(guān)信息;則此時有兩種狀態(tài),需要建立兩種狀態(tài),如圖3.10所示。
圖3.9
圖3.10(5)最后,操作者進行了操作后,系統(tǒng)會給出操作的結(jié)果給操作者;操作成功或失敗,都會有提示信息給出。整個的還書的過程便完成;圖3.11所示。
(7)根據(jù)分析設(shè)計情況,進一步添加或細化狀態(tài)圖。
圖3.11
五、實驗報告要求
1.整理實驗結(jié)果。2.小結(jié)實驗心得體會。
實驗四 活動圖
實驗名稱:活動圖
實驗類型: 設(shè)計性實驗 學(xué)
時:一天
一、實驗?zāi)康?/p>
1.熟悉活動圖的基本功能和使用方法。2.掌握如何使用建模工具繪制活動圖方法。
二、實驗器材
1.計算機一臺。
2.Rational Rose 工具軟件。
三、實驗內(nèi)容
完成實驗一后,對給定題目的系統(tǒng)的需求的初步分析,得出系統(tǒng)的用例圖,通過對用例的業(yè)務(wù)流程的分析,我們可以初步了解系統(tǒng)的業(yè)務(wù)處理流程。本實驗在前面基礎(chǔ)上繪制活動圖,說明用例具體的業(yè)務(wù)流程。
四、實驗步驟
(1)通過對用例的分析,得到用例執(zhí)行的具體步驟。以用例“刪除讀者信息”為例,經(jīng)過分析,一般按照以下步驟進行:
①管理員在錄入界面,輸入待刪除的讀者名;
②“業(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這個圖標,在administrator這邊的泳道上添加一個活動,命名為登錄(login),再在開始結(jié)點和活動登錄(login)之間添加活動關(guān)系,如圖4.8所示。
圖4.4
圖4.5
圖4.6
圖4.7
圖4.8
④完成步驟②后,登錄輸入需要對輸入的信息進行驗證,則在圖中添加一個驗證框,如圖4.9所示:添加驗證框后,驗證的內(nèi)容,如果通過,則允許管理員進行查詢操作,如圖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.計算機一臺。
2.Rational Rose 工具軟件。
三、實驗內(nèi)容
通過對教學(xué)內(nèi)容的學(xué)習(xí),我們完成了系統(tǒng)的需求分析,并從業(yè)務(wù)對象中抽象出了類?,F(xiàn)在需要對前面所給出的用例進行實現(xiàn),而用例的實現(xiàn)主要由順序圖來指定和描述系統(tǒng)的動態(tài)特性。本實驗主要在前面實驗基礎(chǔ)上對用例進行動態(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é)果,當用戶收到結(jié)果后,可以正常登錄后便能進行增加圖書見圖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é)實驗心得體會。
第三篇:java面向?qū)ο蟮膶W(xué)習(xí)心得
Java面向?qū)ο蟮膶W(xué)習(xí)心得
大三的時候?qū)W校組織我們?nèi)ヌK州NIIT參加四個月的java實訓(xùn),我開始系統(tǒng)的學(xué)習(xí)期java,之前大學(xué)的時候?qū)W的比較寬泛,沒有專門的正對java的學(xué)習(xí)。
首先我是從學(xué)習(xí)Java編程開始接觸OOP(面向?qū)ο缶幊?,剛開始使用Java編寫程序的時候感覺很別扭,因為我早以習(xí)慣用C來編寫程序,很欣賞C的簡潔性和高效性,喜歡C簡練而表達能力豐富的風格,特別忍受不了Java運行起來慢吞吞的速度,相對冗長的代碼,而且一個很簡單的事情,要寫好多類,一個類調(diào)用一個類,心里的抵觸情緒很強。
我對Java的面向?qū)ο蟮奶匦宰聊チ季茫哉J為有所領(lǐng)悟,也開始有意識的運用OOP風格來寫程序,然而還是經(jīng)常會覺得不知道應(yīng)該怎樣提煉類,面對一個具體的問題的時候,會覺得腦子里千頭萬緒的,不知道怎么下手,一不小心,又會回到原來的思路上去。
舉個例子,要發(fā)廣告郵件,廣告郵件列表存在數(shù)據(jù)庫里面。倘若用C來寫的話,一般會這樣思考,先把郵件內(nèi)容讀入,然后連接數(shù)據(jù)庫,循環(huán)取郵件地址,調(diào)用本機的qmail的sendmail命令發(fā)送。
然后考慮用Java來實現(xiàn),既然是OOP,就不能什么代碼都塞到main過程里面,于是就設(shè)計了三個類:
一個類是負責讀取數(shù)據(jù)庫,取郵件地址,調(diào)用qmail的sendmail命令發(fā)送; 一個類是讀郵件內(nèi)容,MIME編碼成HTML格式的,再加上郵件頭;
一個主類負責從命令讀參數(shù),處理命令行參數(shù),調(diào)用發(fā)email的類。
把一件工作按照功能劃分為3個模塊分別處理,每個類完成一件模塊任務(wù)。
仔細的分析一下,就會發(fā)現(xiàn)這樣的設(shè)計完全是從程序員實現(xiàn)程序功能的角度來設(shè)計的,或者說,設(shè)計類的時候,是自低向上的,從機器的角度到現(xiàn)實世界的角度來分析問題的。因此在設(shè)計的時候,就已經(jīng)把程序編程實現(xiàn)的細節(jié)都考慮進去了,企圖從底層實現(xiàn)程序這樣的出發(fā)點來達到滿足現(xiàn)實世界的軟件需求的目標。
這樣的分析方法其實是不適用于Java這樣面向?qū)ο蟮木幊陶Z言,因為,如果改用C語言,封裝兩個C函數(shù),都會比Java實現(xiàn)起來輕松的多,邏輯上也清楚的多。
我覺得面向?qū)ο蟮木柙谟诳紤]問題的思路是從現(xiàn)實世界的人類思維習(xí)慣出發(fā)的,只要領(lǐng)會了這一點,就領(lǐng)會了面向?qū)ο蟮乃季S方法。
舉一個非常簡單的例子:假使現(xiàn)在需要寫一個網(wǎng)頁計數(shù)器,客戶訪問一次頁面,網(wǎng)頁計數(shù)器加1,計數(shù)器是這樣來訪問的后臺有一個數(shù)據(jù)庫表,保存每個id(一個id對應(yīng)一個被統(tǒng)計訪問次數(shù)的頁面)的計數(shù)器當前值,請求頁面一次,對應(yīng)id的計數(shù)器的字段加1(這里我們忽略并發(fā)更新數(shù)據(jù)庫
表,出現(xiàn)的表鎖定的問題)。
如果按照一般從程序?qū)崿F(xiàn)的角度來分析,我們會這樣考慮:首先是從HTTP GET請求取到id,然后按照id查數(shù)據(jù)庫表,獲得某id對應(yīng)的訪問計數(shù)值,然后加1,更新數(shù)據(jù)庫,最后向頁面顯示訪問計數(shù)。
現(xiàn)在假設(shè)一個沒有程序設(shè)計經(jīng)驗的人,他會怎樣來思考這個問題的呢?他會提出什么樣的需求呢?他很可能會這樣想:
我需要有一個計數(shù)器,這個計數(shù)器應(yīng)該有這樣的功能,刷新一次頁面,訪問量就會加1,另外最好還有一個計數(shù)器清0的功能,當然計數(shù)器如果有一個可以設(shè)為任意值的功能的話,我就可以作弊了。
做為一個沒有程序設(shè)計經(jīng)驗的人來說,他完全不會想到對數(shù)據(jù)庫應(yīng)該如何操作,對于HTTP變量該如何傳遞,他考慮問題的角度就是我有什么需求,我的業(yè)務(wù)邏輯是什么,軟件應(yīng)該有什么功能。
按照這樣的思路(請注意,他的思路其實就是我們平時在生活中習(xí)慣的思維方式),我們知道需要有一個計數(shù)器類 Counter,有一個必須的和兩個可選的方法:
getCount()// 取計數(shù)器值方法
resetCounter()// 計數(shù)器清0方法
setCount()// 設(shè)計數(shù)器為相應(yīng)的值方法
把Counter類完整的定義如下:
public class Counter {
public int getCount(int id){}
public void resetCounter(int id){}
public void setCount(int id, int currentCount){}
}
解決問題的框架已經(jīng)有了,來看一下如何使用Counter。在count.cgi里面調(diào)用Counter來計數(shù),程序片斷如下:
// 這里從HTTP環(huán)境里面取id值
...Counter myCounter = new Counter();// 獲得計數(shù)器
int currentCount = myCounter.getCount(id);// 從計數(shù)器中取計數(shù)
// 這里向客戶瀏覽器輸出
...程序的框架全都寫好了,剩下的就是實現(xiàn)Counter類方法里面具體的代碼了,此時才去考慮具體的程序語言實現(xiàn)的細節(jié),比如,在getCount()方法里面訪問數(shù)據(jù)庫,更新計數(shù)
值。
從上面的例子中看到,面向?qū)ο蟮乃季S方法其實就是我們在現(xiàn)實生活中習(xí)慣的思維方式,是從人類考慮問題的角度出發(fā),把人類解決問題的思維方式逐步翻譯成程序能夠理解的思維方式的過程,在這個翻譯的過程中,軟件也就逐步被設(shè)計好了。
在運用面向?qū)ο蟮乃季S方法進行軟件設(shè)計的過程中,最容易犯的錯誤就是開始分析的時候,就想到了程序代碼實現(xiàn)的細節(jié),因此封裝的類完全是基于程序?qū)崿F(xiàn)邏輯,而不是基于解決問題的業(yè)務(wù)邏輯。
學(xué)習(xí)JDBC編程的經(jīng)典錯誤問法是:“我怎樣封裝對數(shù)據(jù)庫的select操作?”
面向?qū)ο蟮脑O(shè)計是基于解決業(yè)務(wù)問題的設(shè)計,而不是基于具體編程技術(shù)的設(shè)計。我不會去封裝select語句的,我只封裝解決問題的業(yè)務(wù)邏輯,對數(shù)據(jù)庫的讀取是在業(yè)務(wù)邏輯的編碼實現(xiàn)階段才去考慮的問題。
回過頭看上面那個發(fā)廣告郵件的例子,應(yīng)該如何應(yīng)用面向?qū)ο蟮乃季S方法呢?
對于一個郵件來說,有郵件頭,郵件體,和郵件地址這三個屬性,發(fā)送郵件,需要一個發(fā)送的方法,另外還需要一個能把所有郵件地址列出來的方法。所以應(yīng)該如下設(shè)計:
類JunkMail
屬性:
head
body
address
方法:
sendMail()// 發(fā)送郵件
listAllMail()// 列郵件地址
用Java來表示:
public class JunkMail {
private String head;
private String body;
private String address;
public JunkMain(){ // 默認的類構(gòu)造器
// 從外部配置文件讀郵件頭和郵件體
this.head=...;
this.body=...;
}
public static boolean sendMail(String address){
// 調(diào)用qmail,發(fā)送email
}
public static Collection listAllMail(){
// 訪問數(shù)據(jù)庫,返回一個郵件地址集合}
}
當把JunkMail設(shè)計好了以后,再調(diào)用JunkMail類完成郵件的發(fā)送,將是非常輕松的事情。
如果說傳統(tǒng)的面向過程的編程是符合機器運行指令的流程的話,那么面向?qū)ο蟮乃季S方法就是符合現(xiàn)實生活中人類解決問題的思維過程。
在面向?qū)ο蟮能浖治龊驮O(shè)計的時候,要提醒自己,不要一上來就去想程序代碼的實現(xiàn),應(yīng)該拋開具體編程語言的束縛,集中精力分析我們要實現(xiàn)的軟件的業(yè)務(wù)邏輯,分析軟件的業(yè)務(wù)流程,思考應(yīng)該如何去描述和實現(xiàn)軟件的業(yè)務(wù)。畢竟軟件只是一個載體,業(yè)務(wù)才是我們真正要實現(xiàn)的目標。
但是在設(shè)計過程中,心里卻往往在擔心,如果我完全不去考慮程序代碼的實現(xiàn)的話,那么我怎么知道我的設(shè)計一定合理呢?我怎么知道我設(shè)計的類、接口一定可以實現(xiàn)呢?所以經(jīng)常可以看到的現(xiàn)象就是:
在設(shè)計過程中,雖然知道不能過早考慮代碼實現(xiàn),但是每設(shè)計一個類,一個接口,心里都要不知不覺的用自己熟悉的編程語言大概的評估一下,看看能否編出來,因此,一不小心,就會又回到按照程序功能實現(xiàn)的思路進行設(shè)計的老路上去了。
舉個例子來說明,在做Web程序設(shè)計的時候,經(jīng)常要遇到分頁顯示數(shù)據(jù)的情況。比如說需要把系統(tǒng)中所有的用戶都列出來這樣的功能。假設(shè)使用User類來表示用戶,增加用戶addUser(),刪除用戶deleteUser(),查詢所有用戶listUsers()方法。而數(shù)據(jù)庫中有一個user表,一條記錄是一個用戶的信息。下面考慮一下User類的方法的實現(xiàn):
addUser()和deleteUser()方法都好實現(xiàn),就是對數(shù)據(jù)庫增加記錄和刪除記錄。對于listUsers()方法,其實就是對user表的select,取出一個記錄集。但是該怎么從listUsers()方法中得到所有用戶的列表呢?
一個方法調(diào)用的返回值只有一個,沒有多個,所以很多情況下采用的辦法就是返回值定義為集合類型,比如Vector。這樣就可以在listUsers()方法的具體代碼實現(xiàn)的時候,從數(shù)據(jù)庫依次取出一個個記錄,插入到Vector里面來。在主程序里面,調(diào)用listUsers()方法可以返回一個Vector,然后再對Vector遍歷操作,就可以得到用戶列表了。
public class User {
public static void addUser(...){
// 數(shù)據(jù)庫insert一條記錄
}
public static void deleteUser(...){
// 數(shù)據(jù)庫delete一條記錄
}
public Vector listUsers(...){
// 數(shù)據(jù)庫select結(jié)果放到一個集合里面
}
}
這樣的設(shè)計基本合理,但是仍然有點小問題。因為在設(shè)計的時候,就考慮到了用Java的集合類Vector來實現(xiàn)對不定長數(shù)據(jù)集的存放,因而違反了面向?qū)ο笤O(shè)計的一個原則:在設(shè)計的時候不應(yīng)過早的考慮具體程序語言的實現(xiàn)。所以必須用抽象的方法,和具體實現(xiàn)無關(guān)的方法來表達業(yè)務(wù)邏輯。
我們知道,通常對具有集合特征的數(shù)據(jù)結(jié)構(gòu)進行遍歷通??梢允褂胣ext和hasNext方法,next實現(xiàn)取下一個用戶,hasNext判斷是否還有元素。因此我們定義一個接口Iterator,這個接口中定義兩個方法next和hasNext:
public interface Iterator {
public boolean hasNext(){}
public Object next(){}
}
而User類的listUses方法返回值改為Iterator接口的實現(xiàn)類:
public class User {
...public Iterator listUsers(){
}
...}
這樣就把User類的設(shè)計和具體的實現(xiàn)方法分離開了,因為此時任何實現(xiàn)了next()和hasNext()方法的類都可以做為listUsers的返回值,都可以被用來表達“用戶列表”,而不僅僅可以使用Vector而已。比如,我可以用ArrayList來表達用戶列表,因為ArrayList也實現(xiàn)了Iterator,當然我也可以自己專門寫一個類來存放用戶列表,只要實現(xiàn)next()和hasNext()方法就行了。
這樣在具體的編寫代碼的時候,程序員具有了最大的靈活性,可以根據(jù)具體的情況,采用不同的編程方法來存放用戶列表。特別是降低了程序的耦合度,提高了程序的可移植性。對于上面那個JunkMail的listAllMail()方法也同樣應(yīng)該改為接口類型。
然后,在主程序里面就這樣來使用User類的listUsers方法:
User myUser = new User();
Iterator iterator = myUser.listUsers();
while(iterator.hasNext()){
iterator.next();
}
這樣就可以完全不用考慮程序代碼實現(xiàn)了,從高層次上把功能抽象出來,定義成為接口,同時又可以把系統(tǒng)設(shè)計的很合理,完全根據(jù)業(yè)務(wù)的需求來進行設(shè)計。
結(jié)語
通過上面的幾個例子的設(shè)計說明,使用面向?qū)ο蟮乃季S方法,其實是一個把業(yè)務(wù)邏輯從具體的編程技術(shù)當中抽象出來的過程,而這個抽象的過程是自上而下的,非常符合人類的思維習(xí)慣,也就是先不考慮問題解決的細節(jié),把問題的最主要的方面抽象成為一個簡單的框架,集中精力思考如何解決主要矛盾,然后在解決問題的過程中,再把問題的細節(jié)分割成一個一個小問題,再專門去解決細節(jié)問題。
因而一旦牢牢的抓住了這一點,你就會發(fā)現(xiàn)在軟件設(shè)計和開發(fā)過程中,你自己總是會不知不覺的運用面向?qū)ο蟮乃季S方法來設(shè)計和編寫程序,并且程序的設(shè)計和開發(fā)也變得不再那么枯燥,而一個合理運用面向?qū)ο蠹夹g(shù)進行設(shè)計和架構(gòu)的軟件,更是具備了思維的藝術(shù)美感。
最后,愿面向?qū)ο蟮乃季S方法也能給您的程序設(shè)計之路帶來創(chuàng)作的樂趣。
第四篇:java面向?qū)ο蟪绦蛟O(shè)計教案
武漢大學(xué)珞珈學(xué)院 系/教研室 Java 面 向 對 象 程 序 設(shè) 計 課 教 案
主講教師:熊春秀 編寫時間:2011-4-30
第一章:概述
第 1、2 節(jié):面向?qū)ο蟮幕靖拍?、面向?qū)ο蟪绦蛟O(shè)計概述 授課時間:2011-2-
22、23
計劃學(xué)時數(shù):1 教學(xué)任務(wù)與目的:讓學(xué)生理解面向?qū)ο蟮幕靖拍?教學(xué)重點:掌握面向?qū)ο蟮幕靖拍?教學(xué)難點:理解面向?qū)ο蟪绦蛟O(shè)計的方法 教學(xué)方法:多媒體+板書 參考書目:《面向?qū)ο蟪绦蛟O(shè)計導(dǎo)論》,[美]C.Thomas wu著,電子工業(yè)出版社 專業(yè)詞匯:Java虛擬機、Applet程序 備注
第二章:Java特點及運行環(huán)境
第 1、2、3 節(jié):Java語言特點、Java應(yīng)用程序及運行環(huán)境、Java Applet程序及運行環(huán)境 授課時間:2011-2-
22、23
計劃學(xué)時數(shù):3 教學(xué)任務(wù)與目的:讓學(xué)生學(xué)會JDK的下載、安裝與環(huán)境配置。教學(xué)重點:掌握編譯和執(zhí)行Java程序的基本步驟
教學(xué)難點:理解Java程序的入口并能夠通過命令行傳遞參數(shù) 教學(xué)方法:多媒體+板書 參考書目:《面向?qū)ο蟪绦蛟O(shè)計導(dǎo)論》,[美]C.Thomas wu著,電子工業(yè)出版社 專業(yè)詞匯:JDK、lib、bin 備注 第三章:Java語言基礎(chǔ)
第 1、2 節(jié):Java程序的構(gòu)成、數(shù)據(jù)類型、表達式以及流程控制語句 授課時間:2011-3-
1、2
計劃學(xué)時數(shù):3 教學(xué)任務(wù)與目的:讓學(xué)生學(xué)會Java基本的數(shù)據(jù)類型和表示方法、數(shù)值類型的運算、邏輯運算和比較、條件執(zhí)行語句(包括三種條件語句和switch語句)、循環(huán)控制語句(包括for、while、do while循環(huán)及相應(yīng)的輔助語句)、字符串類String和BufferString以及數(shù)組的聲明及使用。
教學(xué)重點:掌握Java基本的數(shù)據(jù)類型和表示方法
教學(xué)難點:理解Java程序的循環(huán)控制語句(包括for、while、do while循環(huán)及相應(yīng)的輔助語句)
教學(xué)方法:多媒體+板書 參考書目:《Java語言與面向?qū)ο蟪绦蛟O(shè)計》,印旻編著,清華大學(xué)出版社 專業(yè)詞匯:變量、數(shù)據(jù)類型、循環(huán)控制語句 備注 第三章:Java語言基礎(chǔ) 第 3 節(jié):Java與C比較
授課時間:2011-3-
8、9
計劃學(xué)時數(shù):3 教學(xué)任務(wù)與目的:讓學(xué)生在C語言的基本上進一步學(xué)習(xí)Java語言。教學(xué)重點:掌握Java語言與C語言的區(qū)別與聯(lián)系。教學(xué)難點:理解Java語言在C語言上的改進。教學(xué)方法:多媒體+板書 參考書目:《Java2參考大全(第四版)》,[美]Herbert Schildt著,張玉清、吳浦峰、尚勇等譯,清華大學(xué)出版社。專業(yè)詞匯:Java、C 備注 第四章:抽象、封裝與類
第 1 節(jié):抽象、封裝與Java類的概念
授課時間:2011-3-
15、16
計劃學(xué)時數(shù):3 教學(xué)任務(wù)與目的:讓學(xué)生學(xué)會面向?qū)ο蟮幕咎卣?、掌握如何定義一個類以及如何生成對象、深入掌握方法的定義及技巧、深入掌握類的訪問權(quán)限與封裝機制、深入掌握包的定義與包的使用方法。
教學(xué)重點:掌握類的定義與對象的生成。教學(xué)難點:理解類的抽象與封裝機制。教學(xué)方法:多媒體+板書 參考書目:《Java2 實用教程》,耿祥義、張躍平編著,清華大學(xué)出版社。專業(yè)詞匯:抽象、封裝、類 備注 第四章:抽象、封裝與類 第 2 節(jié):系統(tǒng)定義的類
授課時間:2011-3-
22、23
計劃學(xué)時數(shù):3 教學(xué)任務(wù)與目的:讓學(xué)生學(xué)會使用系統(tǒng)定義的類,并掌握與用戶自定義類的區(qū)別。教學(xué)重點:掌握如何定義所需要的類。
教學(xué)難點:熟悉Java平臺定義了哪些經(jīng)常要用到、而且滿足我們需要的類。教學(xué)方法:多媒體+板書 參考書目:《Java2 實用教程》,耿祥義、張躍平編著,清華大學(xué)出版社。專業(yè)詞匯:系統(tǒng)定義的類、用戶自定義類 備注 第四章:抽象、封裝與類
第 3 節(jié):類、域和方法的修飾符
授課時間:2011-3-
29、30
計劃學(xué)時數(shù):3 教學(xué)任務(wù)與目的:讓學(xué)生學(xué)會類的聲明。
教學(xué)重點:掌握如何定義類的修飾和方法的修飾符。教學(xué)難點:熟悉類的變量的定義與使用方法。教學(xué)方法:多媒體+板書 參考書目:《Java2 實用教程》,耿祥義、張躍平編著,清華大學(xué)出版社。專業(yè)詞匯:成員變量、類變量、成員方法、類方法 備注 第五章:繼承與多態(tài)
第 1、2 節(jié):Java的繼承與派生、域的繼承與隱藏 授課時間:2011-4-
5、6
計劃學(xué)時數(shù):3 教學(xué)任務(wù)與目的:讓學(xué)生全面掌握面向?qū)ο蟮幕咎卣鳌⒄莆杖绾问褂美^承性來到達軟件的重用、深入掌握繼承過程中域的隱藏和方法的覆蓋技巧。教學(xué)重點:掌握如何使用繼承性來到達軟件的重用。教學(xué)難點:熟悉繼承過程中域的隱藏和方法的覆蓋技巧。教學(xué)方法:多媒體+板書 參考書目:《Java2 實用教程》,耿祥義、張躍平編著,清華大學(xué)出版社。專業(yè)詞匯:繼承派生、域、隱藏 備注 第五章:繼承與多態(tài)
第 3、4 節(jié):方法的繼承、重載與覆蓋、this與super、構(gòu)造函數(shù)的繼承與重載 授課時間:2011-4-
12、13
計劃學(xué)時數(shù):3 教學(xué)任務(wù)與目的:讓學(xué)生通過繼承可以更有效地組織程序結(jié)構(gòu),明確類之間的關(guān)系,并充分利用已有的類來創(chuàng)建新類,通過繼承可以實現(xiàn)代碼的重用,以完成更復(fù)雜的設(shè)計、開發(fā)。教學(xué)重點:掌握類的重載與覆蓋的區(qū)別與聯(lián)系。教學(xué)難點:熟悉類的重載與覆蓋使用方法。教學(xué)方法:多媒體+板書 參考書目:《Java語言與面向?qū)ο蟪绦蛟O(shè)計》,印旻編著,清華大學(xué)出版社。專業(yè)詞匯:繼承、重載、覆蓋、this、super 備注 第五章:繼承與多態(tài)
第 5、6 節(jié):多態(tài)性的實現(xiàn)、接口聲明與實現(xiàn) 授課時間:2011-4-
19、20
計劃學(xué)時數(shù):3 教學(xué)任務(wù)與目的:讓學(xué)生深入掌握抽象類和抽象方法的定義,掌握多態(tài)通過統(tǒng)一多個相關(guān)類的對外接口,在運行時根據(jù)不同的情況執(zhí)行不同的操作,提高類的抽象度和靈活性,深入掌握接口的定義和使用技巧。
教學(xué)重點:熟悉多態(tài)性實現(xiàn)的兩種方式以及接口的實現(xiàn)。教學(xué)難點:熟悉多態(tài)性與接口的實現(xiàn)方法。教學(xué)方法:多媒體+板書 參考書目:《Java語言與面向?qū)ο蟪绦蛟O(shè)計》,印旻編著,清華大學(xué)出版社。專業(yè)詞匯:多態(tài)性、接口 備注 第六章:工具類與算法
第 1、2 節(jié):語言基礎(chǔ)類庫、Applet類與小程序的基本原理 授課時間:2011-4-
26、27
計劃學(xué)時數(shù):3 教學(xué)任務(wù)與目的:深入了解Applet生命周期的主要方法和特點、熟練掌握Applet程序的編寫方法、深入了解Applet的安全機制及其合理運用。教學(xué)重點:熟練掌握Applet程序的編寫方法。
教學(xué)難點:深入了解Applet的安全機制及其合理運用。教學(xué)方法:多媒體+板書 參考書目:《Java語言與面向?qū)ο蟪绦蛟O(shè)計》,印旻編著,清華大學(xué)出版社。專業(yè)詞匯:Applet、生命周期 備注 第六章:工具類與算法
第 3、4 節(jié):數(shù)組、字符串、常用算法
授課時間:2011-5-
3、4
計劃學(xué)時數(shù):3 教學(xué)任務(wù)與目的:讓學(xué)生學(xué)會字符串類String和BufferString、數(shù)組的聲明及使用。教學(xué)重點:熟練掌握字符串與數(shù)組的使用方法。教學(xué)難點:深入了解數(shù)組的使用方法。教學(xué)方法:多媒體+板書 參考書目:《Java語言與面向?qū)ο蟪绦蛟O(shè)計》,印旻編著,清華大學(xué)出版社。專業(yè)詞匯:數(shù)組、字符串 備注 第七章:用戶圖形界面的設(shè)計
第 1、2 節(jié):用戶自定義成分、事件驅(qū)動設(shè)計 授課時間:2011-5-
10、11
計劃學(xué)時數(shù):3 教學(xué)任務(wù)與目的:讓學(xué)生學(xué)會使用面向?qū)ο蟮某绦蛟O(shè)計方法構(gòu)建圖形用戶界面、深入了解抽象窗口工具包(AWT)、掌握事件處理基本原理和方法。教學(xué)重點:熟練掌握圖形用戶界面的開發(fā)方法。教學(xué)難點:深入了解圖形界面的各種事件。教學(xué)方法:多媒體+板書 參考書目:《Java語言與面向?qū)ο蟪绦蛟O(shè)計》,印旻編著,清華大學(xué)出版社。專業(yè)詞匯:AWT、GUI 備注 第七章:用戶圖形界面的設(shè)計
第 3、4 節(jié):GUI對象,包括:按鈕、文本框、鼠標、鍵盤等事件的處理、布局設(shè)計 授課時間:2011-5-
17、18
計劃學(xué)時數(shù):3 教學(xué)任務(wù)與目的:讓學(xué)生深入了解GUI構(gòu)件及掌握布局控制方法、熟練掌握菜單和對話框、掌握簡單繪圖方法。
教學(xué)重點:熟練使用Java語言提供的布局管理器來管理組件在容器中的布局。教學(xué)難點:深入了解組件在程序中安排中位置和大小使用方法。教學(xué)方法:多媒體+板書 參考書目:《Java語言與面向?qū)ο蟪绦蛟O(shè)計》,印旻編著,清華大學(xué)出版社。專業(yè)詞匯:布局管理器、容器 備注 第八章:Java高級編程
第 1、2、3節(jié):異常處理、多線程機制、Java程序?qū)W(wǎng)上資源的訪問 授課時間:2011-5-
24、25
計劃學(xué)時數(shù):3 教學(xué)任務(wù)與目的:讓學(xué)生深入理解多線程的基本概念、熟練掌握創(chuàng)建線程的兩種基本方法、熟練處理線程的同步問題和死鎖問題、深入理解異常的基本概念、熟悉和掌握Java平臺定義異常類、熟練掌握創(chuàng)建自定義異常類的方法。教學(xué)重點:熟練掌握創(chuàng)建線程的兩種基本方法。教學(xué)難點:深入了解線程的同步問題和死鎖問題。教學(xué)方法:多媒體+板書 參考書目:《Java語言與面向?qū)ο蟪绦蛟O(shè)計》,印旻編著,清華大學(xué)出版社。專業(yè)詞匯:同步、死鎖、多線程、異常
第五篇:Java面向?qū)ο蟪绦蛟O(shè)計教學(xué)大綱
Java面向?qū)ο蟪绦蛟O(shè)計課程教學(xué)大綱
Object-Oriented Programming with Java Syllabus
課程名稱 課程類別 建設(shè)單位/教研室 前后課程 適用專業(yè)、層次 Java面向?qū)ο蟪绦蛟O(shè)課程英文名Object-Oriented Programming with Java 計 稱 專業(yè)必修課 學(xué)分/學(xué)時 4.0/42+42 計算機系/軟件工程教研室 考核方式 考試 C語言程序設(shè)計
軟件工程、計算機科學(xué)與技術(shù)、網(wǎng)絡(luò)工程
Upon completion of this course, students should master the basic knowledge of Java language, understand and grasp the basic object-oriented programming design ideas and skillfully use Java language to write, compile and debug programs.These would lay a good foundation for students on independently finish the work of program development with Java in the future.教學(xué)目的
The emphasis: 1.The origin of Java, Why should we learn Java language, Java cross-platform principle analysis(JVM)and Java Environment variable configuration.2.Data and Expressions: including Character Strings, Variables and Assignment, Primitive Data Types, Expressions, Data Conversion, Interactive Programs.3.Oriented object programming ideas: including Class, Object, Variables, Methods, Encapsulation, Inheritance, Polymorphism, Interface and so on.4.Java statements: including conditionals and loops statements.5.Arrays: Declaring and using one-dimensional arrays and two-dimensional arrays.6.Exceptions: including exception handling, uncaught exceptions, and try-catch statement and so on.7.GUI: including event handling and graphics user interface.The difficulty:
Object-oriented concept and idea, establishing application model and algorithm of description, the algorithm optimization of program and so on.教材和主要參考資料: Text and references Text :
John Lewis “Java程序設(shè)計教程(第六版)英文版” 電子工業(yè)出版社 ISBN-978-7-121-08808-7 References:
1.《Java編程思想(英文版 第3版)》,(美)Bruce Eckel編,機械工業(yè)出版社出版社; 2.Java程序設(shè)計基礎(chǔ)》,(美)Gary J.Bronson編, 趙德奎 林仕平譯,北京大學(xué)出版社。
3.Cay S.Horstmann, Gary Cornell.Java 2核心技術(shù) 卷I:基礎(chǔ)知識.機械工業(yè)出版社, 2001.4.Cay S.Horstmann, Gary Cornell.Java 2核心技術(shù) 卷II:高級特性.機械工業(yè)出版社, 2001.教學(xué)內(nèi)容 學(xué)時 基本要求
按章、節(jié)具體列出
教學(xué)內(nèi)容 Topic 具體列出教學(xué)的基本要求,如了解、理解、掌握及應(yīng)用等。
By the end of chapter ,students should understand Chapter 1 Introduction
Chapter 2 Data and ExpressionsChapter 3 Using Classes and Objects Chapter 4 Writing Classes 3+3 To be able to have a fundamental understanding of software role in a computer system.? To know components of a computer ? To understand how those components interact ? To grasp how computers store and manipulate information ? To know how computers are connected into networks to share information.? To profile programming and programming languages ? To profile an introduction to Java ? To grasp object-oriented concepts 3+6 Explore some of the basic types of data used in a Java program and the use of expressions to perform calculations.? To understand character strings, concatenation, and escape sequences.? To grasp the declaration and use of variables.? To be familiar with Java primitive data types.? To understand expressions and operator precedence.? To grasp the syntax and processing of expressions.? To understand the types of data conversions and the mechanisms for
accomplishing them.? To know how to create interactive programs.? To understand the basic graphic concepts and the techniques for drawing
shapes.? To know the concept of a Java applet.4+4 Use the predefined classes in the Java class library that are provided to us to make the process of writing programs easier.? To grasp the creation of objects and the use of object reference variables.? To be familiar with the services provided by the String class.? To know how the java standard class library is organized into packages.? To be familiar with the services provided by the Random and Math class.? To grasp ways to format output using the NumberFormat and DecimalFormat
classes.? To be familiar with enumerated types.? To understand wrapper classes and the concept of autoboxing.? To understand components and containers used in graphics user interfaces.? To know a label component and the use of images.6+6 We've been using predefined classes.Now we will learn to write our own classes to define objects.? To grasp the structure and content of a class definition.? To understand the concept of object state using instance data.? To know the effect of visibility modifiers on methods and data.? To grasp the structure of a method definition, including parameters and return
values.? To grasp the structure and purpose of a constructor.? To grasp the creation of graphical objects.? To understand the concepts needed to create an interactive graphical user
interface.Chapter 5 Conditionals and Loops
Chapter 6 OBJECT-ORIENTED DESIGN
Chapter 7 Arrays
Chapter 8 Inheritance ? To know some basic GUI components and events.4+4 Now we will examine programming statements that allow us to make decisions and repeat processing steps in a loop.? To know the flow of control through a method.? To understand Boolean expressions that can be used to make decisions.? To grasp to perform basic decision making using if and switch statements.? To understand issues pertaining to the comparison of certain types of data.? To grasp familiarly to execute statements repetitively using while, do, and for
loops.? To understand the concept of an iterator object and use one to read a text file.? To know how to draw with the aid of conditionals and loops.? To know more GUI components and events.4+4 Now we can extend our discussion of the design of classes and objects ? To know key issues related to the design of object-oriented software.? To techniques for identifying the classes and objects needed in a program.? To understand the relationships among classes.? To understand the effect on the static modifier on methods and data.? To grasp the creation of a formal object interface.? Further grasp the definition of enumerated type classes.? To grasp issues related to the design of methods, including method
overloading.? To know issues related to the design of graphics user interface, including
layout managers.6+3 Arrays are objects that help us organize large amounts of information ? Define and use arrays for basic data organization.? To know bounds checking and techniques for managing capacity.? To learn to compare the issues related to arrays as objects and arrays of
objects.? To grasp the use of command-line arguments.? To grasp the syntax and use of variable-length parameter lists.? To be familiar with the creation and use of multidimensional arrays.? To be familiar with the ArrayList class and its generic parameter.? To know more mouse and keyboard events.6+6 Inheritance is a fundamental object-oriented design technique used to create and organize reusable classes.? To know the derivation of new classes from existing ones.? To understand the concept and purpose of method overriding.? To grasp the design of class hierarchies.? To grasp the issue of visibility as it relates to inheritance.? To have the ability to derive on interface from another.? To grasp object-oriented design in the context of inheritance.? To know the inheritance structure for GUI components.? To explore the creation of listeners by extending adaptor classes.Chapter 9 Polymorphism 3+3 Chapter 10 Exceptions 3+3 有關(guān)說明:
擬稿(簽名):謝彥麒 Polymorphism is an object-oriented concept that allows us to create versatile software designs ? To understand polymorphism and explore its benefits.? To understand the concept of dynamic binding.? To grasp to use inheritance relationships to create polymorphic references.? To grasp to use interfaces to create polymorphic references.? To grasp sorting and searching using polymorphic implementations.? To be familiar with object-oriented design in the context of polymorphism.? To know the processing of events as an example of polymorphism.? To know more GUI components.Exception handling is an important aspect of object-oriented design ? To know the purpose of exceptions.? To know exception messages and the call stack trace.?
To be familiar with the usage of the try-catch statement for handling exception.? To understand the concept of exception propagation.?
To be familiar with the exception class hierarchy in the Java standard class library.? To be familiar with I/O exception and the ability to write text files.? To know how to create GUI using mnemonics and tool tips.?
To know additional GUI components and containers.核稿(簽名): 審批(簽名): 年 月 日