第14章-綜合實(shí)踐_第1頁
第14章-綜合實(shí)踐_第2頁
第14章-綜合實(shí)踐_第3頁
第14章-綜合實(shí)踐_第4頁
第14章-綜合實(shí)踐_第5頁
已閱讀5頁,還剩18頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

人民郵電出版社14綜合實(shí)踐Java程序設(shè)計(jì)第章導(dǎo)讀Introduction學(xué)習(xí)Java的語法規(guī)則,學(xué)習(xí)Java的實(shí)用類,目的是為了用Java編程序。本章給出幾個(gè)典型程序設(shè)計(jì)問題,作為課程實(shí)踐題目,可以利用前面各章所學(xué),分析問題,解決問題。14.2談?wù)勚貥?gòu)14.3實(shí)踐題目14.4小結(jié)14.1談?wù)勗O(shè)計(jì)C目錄ONTENTS做任何工作都要講究方法。軟件開發(fā)工作也如此。軟件開發(fā)不是直接的寫程序,在寫程序之前需要為程序勾畫藍(lán)圖,就是進(jìn)行設(shè)計(jì)。UML就是用圖形表達(dá)設(shè)計(jì)的工具。在設(shè)計(jì)過程中,明確軟件的需求、軟件的功能、軟件的結(jié)構(gòu)、采用的算法等內(nèi)容,然后才由程序員按照設(shè)計(jì)寫程序。(大家習(xí)慣說寫代碼)14.1.1設(shè)計(jì)與方法按照McCall的軟件質(zhì)量模型,用以下指標(biāo)判定一個(gè)設(shè)計(jì)好不好:正確定、可靠性、效率、完整性、可用性、可維護(hù)性、可測試性、靈活性、可移植性、可復(fù)用性。在設(shè)計(jì)中堅(jiān)持這些指標(biāo),體現(xiàn)在采用好的設(shè)計(jì)模式(相當(dāng)于工作方法),還要通過重構(gòu)改善設(shè)計(jì),這需要一系列技術(shù)和方法。14.1.2好的設(shè)計(jì)14.2談?wù)勚貥?gòu)14.3實(shí)踐題目14.4小結(jié)14.1談?wù)勗O(shè)計(jì)C目錄ONTENTS14.2重構(gòu)的基本概念1、城市中各種管道的敷設(shè)工程的重構(gòu)對(duì)比軟件工程的許多術(shù)語來自于建筑工程。我們可以從城市基礎(chǔ)設(shè)施的案例了解軟件工程中重構(gòu)這一術(shù)語的含義。初始設(shè)計(jì):挖鑿路面重構(gòu)設(shè)計(jì):地下管廊

14.2重構(gòu)的基本概念

2、軟件的重構(gòu)軟件重構(gòu)(refactoring)就是在不改變軟件系統(tǒng)外部行為的前提下,改善它的內(nèi)部結(jié)構(gòu)。重構(gòu)的目的是使軟件有更好的性能,更好地體現(xiàn)好軟件的標(biāo)準(zhǔn)。重構(gòu)就是軟件設(shè)計(jì)和代碼的持續(xù)改進(jìn)。重構(gòu)的技術(shù)很多,從標(biāo)識(shí)符命名到程序結(jié)構(gòu)的調(diào)整都是重構(gòu)所覆蓋的。重要的是,重構(gòu)的時(shí)候可以導(dǎo)入設(shè)計(jì)模式。14.2談?wù)勚貥?gòu)14.3實(shí)踐題目14.4小結(jié)14.1談?wù)勗O(shè)計(jì)C目錄ONTENTSPracticemakesperfect.學(xué)語言應(yīng)該重視實(shí)踐,這是個(gè)共識(shí)。問題是如何做到循序漸進(jìn)?大量的編程訓(xùn)練是需要的,但是,還需要不斷走出個(gè)人的“舒適區(qū)”。要研究更具復(fù)雜度綜合性的問題,要在程序設(shè)計(jì)中運(yùn)用更多的語言知識(shí)、更難的算法、更復(fù)雜的結(jié)構(gòu)。14.3實(shí)踐題目1、題目說明教師對(duì)學(xué)生成績進(jìn)行處理,包括成績錄入、成績統(tǒng)計(jì)、成績排序、成績查詢、輸出成績單等。輸入成績一般包括平時(shí)成績和期末成績,按照預(yù)設(shè)的比例折算為總成績,例如平時(shí)占30%,期末占70%,根據(jù)各科成績計(jì)算的績點(diǎn)作為評(píng)獎(jiǎng)和保送的依據(jù)。14.3.1學(xué)生成績管理軟件2、設(shè)計(jì)要求分別用文件和數(shù)據(jù)庫存儲(chǔ)成績數(shù)據(jù),給出兩種設(shè)計(jì)和實(shí)現(xiàn);14.3.1學(xué)生成績管理軟件從錄入到報(bào)表各項(xiàng)功能均需要設(shè)計(jì)用戶良好界面;功能包括(但不限于)教師、學(xué)生、管理員登錄管理、成績錄入、成績統(tǒng)計(jì)分析、成績分析表生成、成績排序、成績查詢、輸出成績單等。0102程序是用于計(jì)算的,有時(shí)候?qū)τ?jì)算的效率有較高的要求,就需要優(yōu)化算法,提高速度。打個(gè)比方,計(jì)算sin(0.7),可選的方法包括用泰勒公式計(jì)算,也可以查數(shù)學(xué)用表。一般而言,查表的方法更快。本例要求用表格驅(qū)動(dòng)算法計(jì)算CRC(CyclicRedundancyCheck),如果對(duì)此術(shù)語尚不熟悉,則可視其為一個(gè)單純的二進(jìn)制的算術(shù)題。14.3.2表格驅(qū)動(dòng)的計(jì)算1、CRC和長除法CRC是網(wǎng)絡(luò)上傳輸數(shù)據(jù)是否出錯(cuò)的一種驗(yàn)證方法。簡單說就是在傳輸?shù)臄?shù)據(jù)后用若干冗余位,一同傳輸?shù)浇邮斩?。所加的冗余位有不同的?jì)算方法,CRC采用一種二進(jìn)制異或運(yùn)算,用長除法計(jì)算得到冗余位數(shù)據(jù)。具體算法舉例如下。14.3.2表格驅(qū)動(dòng)的計(jì)算

設(shè)要發(fā)送的數(shù)據(jù)為10101011,記為s(x),我們需要一個(gè)g(x),它與網(wǎng)絡(luò)有關(guān),例如g(x)=1001,在s(x)后可加3位冗余數(shù)據(jù)r(x)。r(x)的計(jì)算過程是:14.3.2表格驅(qū)動(dòng)的計(jì)算發(fā)送的數(shù)據(jù)為s(x)~r(x)=101010111002、表格驅(qū)動(dòng)分析長除法過程可以發(fā)現(xiàn),一次觀察原始數(shù)據(jù)(被除數(shù))1位效率低下,可以一次看多位,例如本例中取3位。根據(jù)參與運(yùn)算的3個(gè)數(shù)據(jù)的位模式(bitspattern),可以建立表格,計(jì)算的時(shí)候,根據(jù)數(shù)據(jù)匹配哪個(gè)位模式,可以得出中間結(jié)果直至得到最終的r(x)。14.3.2表格驅(qū)動(dòng)的計(jì)算

14.3.2表格驅(qū)動(dòng)的計(jì)算3、創(chuàng)建表,然后思考如何在程序中利用表驅(qū)動(dòng)計(jì)算求值pq=p^000÷CC×q000000000000001001001101010011010___0110__011___100111100011101110101110110100110___111___111___完成填空即完成見表,關(guān)鍵問題是程序中怎么用這個(gè)表。1、題目說明

單位的辦公樓內(nèi)電梯運(yùn)行有一定的控制邏輯,比如相鄰的2部電梯在靜止?fàn)顟B(tài)可能一個(gè)在頂樓,一個(gè)停在一樓。為了調(diào)試電梯,需要程序模擬電梯運(yùn)行的狀況,在模擬系統(tǒng)中找出安全合理的高效節(jié)電的運(yùn)行模式。14.3.3電梯運(yùn)行模擬14.3.3電梯運(yùn)行模擬2、設(shè)計(jì)要求1234分析設(shè)計(jì)模擬系統(tǒng)所需要的類,給出UML表示的設(shè)計(jì)改進(jìn)初始設(shè)計(jì),觀察對(duì)比改進(jìn)的設(shè)計(jì)與初始設(shè)計(jì)的功能和性能差異描述電梯運(yùn)行的控制邏輯,說明理由按設(shè)計(jì)寫出模擬程序,調(diào)試運(yùn)行5利用多線程知識(shí)、GUI知識(shí)給出不同版本的設(shè)計(jì)14.2談?wù)勚貥?gòu)14.3實(shí)踐題目14.4小結(jié)14.1談?wù)勗O(shè)計(jì)C目錄ONTENTS小結(jié)Summary本節(jié)所介紹的3個(gè)實(shí)踐題目,分別對(duì)應(yīng)于面向?qū)ο蠹夹g(shù)的基本操作、提高計(jì)算效率的算法設(shè)計(jì)、多線程問題中線程之間的通信和同步控制問題。若論難度和綜合性,雖然比各章的例題習(xí)題有所提高,但是,讀者經(jīng)認(rèn)真分析和設(shè)計(jì)是完全可以順利完成的。在此基礎(chǔ)上,應(yīng)主動(dòng)接觸更復(fù)雜一些的問題,逐漸地提高自己的編程能力。人民郵電出版社謝謝觀賞Java程序設(shè)計(jì)海量圖書方便查詢免費(fèi)申請(qǐng)樣書下載配套資源優(yōu)惠購書成為作者更多樣書申請(qǐng)和資源下載需求,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論