資源描述:
《第27講程序設(shè)計與軟件開發(fā)基礎(chǔ)》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫。
1、第27講程序設(shè)計與軟件開發(fā)基礎(chǔ)(一)教學(xué)目標(biāo)及基本要求掌握逐步求精的結(jié)構(gòu)化程序設(shè)計方法,初步掌握良好的程序設(shè)計風(fēng)格的內(nèi)涵,掌握算法的基本概念,理解面向?qū)ο蟪绦蛟O(shè)計的基本概念。教學(xué)重點逐步求精的結(jié)構(gòu)化程序設(shè)計方法,算法的基本概念。教學(xué)難點面向?qū)ο蟪绦蛟O(shè)計的基本概念,算法的復(fù)雜度。教學(xué)內(nèi)容?程序設(shè)計的風(fēng)格?結(jié)構(gòu)化程序設(shè)計?面向?qū)ο蟪绦蛟O(shè)計?算法的基本概念?算法的復(fù)雜度教學(xué)時間1學(xué)時7.1程序設(shè)計概述7.1.1程序設(shè)計的風(fēng)格1.程序設(shè)計風(fēng)格?程序設(shè)計風(fēng)格是指編寫程序時所表現(xiàn)出的特點、習(xí)慣和邏輯思路。?程序設(shè)計的風(fēng)格總體而言應(yīng)該強調(diào)簡單和
2、清晰,程序必須是可以理解的。?主導(dǎo)的程序設(shè)計風(fēng)格:“清晰第一,效率第二”。2.良好程序設(shè)計風(fēng)格(1)源程序文檔化①符號名的命名?見名知意?名字不宜太長?不要使用相似的名字?不要使用關(guān)鍵字做標(biāo)識符?同一個名字不要有多種含義②程序注釋?序言性注釋:通常位于每個程序的開頭部分,它給出程序的整體說明。主要描述內(nèi)容包括:程序標(biāo)題、程序功能說明、主要算法、接口說明、程序位置、開發(fā)簡歷、程序設(shè)計者、復(fù)審者、復(fù)審日期、修改日期等。?功能性注釋:一般嵌在源程序體之中,主要描述其后的語句或程序做什么。③視覺組織在程序中利用空格、空行、縮進等技巧使程序
3、層次清晰。(2)數(shù)據(jù)說明的方法①數(shù)據(jù)說明的次序規(guī)范化:數(shù)據(jù)說明次序固定,便程序理解、閱讀和維護,可以使數(shù)據(jù)的屬性容易查找,也有利于測試、排錯和維護。②說明語句中變量安排有序化:當(dāng)一個說明語句說明多個變量時,變量按照字母順序排序為好。③使用注釋來說明復(fù)雜數(shù)據(jù)的結(jié)構(gòu)。④顯式地說明一切變量。(3)語句的結(jié)構(gòu)①在一行內(nèi)只寫一條語句。②程序編寫應(yīng)優(yōu)先考慮清晰性,除非對效率有特殊要求,即清晰第一,效率第二。③首先要保證程序正確,然后才要求提高速度。④避免使用臨時變量而使程序的可讀性下降。⑤避免采用復(fù)雜的條件語句和不必要的轉(zhuǎn)移,盡量使用庫函數(shù)。
4、⑥數(shù)據(jù)結(jié)構(gòu)要有利于程序的簡化,程序要模塊化,且要盡量使模塊功能單一化,利用信息隱蔽,確保每一個模塊的獨立性。⑦盡量只采用3種基本控制結(jié)構(gòu)來編寫程序。(4)輸入和輸出①對所有的輸入數(shù)據(jù)都要檢驗數(shù)據(jù)的合法性以及檢查輸入項的各種重要組合的合理性。②輸入格式要簡單,以使輸入的步驟和操作盡可能簡單。③輸入數(shù)據(jù)時,應(yīng)允許使用自由格式和缺省值。④輸入一批數(shù)據(jù)時,最好使用輸入結(jié)束標(biāo)志。⑤以交互式方式輸入、輸出數(shù)據(jù)時,要在屏幕上有明確的提示符,數(shù)據(jù)輸入結(jié)束時,應(yīng)在屏幕上給出狀態(tài)信息。⑥當(dāng)程序設(shè)計語言對輸入格式有嚴(yán)格要求時,應(yīng)保持輸入格式與輸入語句的
5、一致性;給所有的輸出加注釋,并設(shè)計良好的輸出報表格式。7.1.2結(jié)構(gòu)化程序設(shè)計1.結(jié)構(gòu)化程序設(shè)計的原則自頂向下、逐步求精、模塊化、限制使用GOTO語句。(1)自頂向下先總體,后細(xì)節(jié);先全局目標(biāo),后局部目標(biāo)。(2)逐步求精設(shè)計一些子目標(biāo)作為過渡,逐步細(xì)化。(3)模塊化把程序要解決的總目標(biāo)分解為分目標(biāo),再進一步分解為具體的小目標(biāo),把每個小目標(biāo)稱為一個模塊。(4)限制使用GOTO語句使用GOTO語句有時會使程序執(zhí)行效率較高,但也容易造成程序混亂,程序不易理解、不易排錯、不易維護,因而要盡量限制使用GOTO語句。2.結(jié)構(gòu)化程序的基本結(jié)構(gòu)與
6、特點結(jié)構(gòu)化程序的基本結(jié)構(gòu)只有3種:順序、選擇和循環(huán)(1)順序結(jié)構(gòu)如圖7-1所示,順序結(jié)構(gòu)是順序執(zhí)行結(jié)構(gòu)。所謂順序執(zhí)行,就是按照程序語句行的自然順序,一條語句一條語句(A→B→C)地執(zhí)行程序。ABC圖7-1順序結(jié)構(gòu)(2)選擇結(jié)構(gòu)選擇結(jié)構(gòu)又稱為分支結(jié)構(gòu),它包括簡單選擇和多分支選擇結(jié)構(gòu),這種結(jié)構(gòu)可以根據(jù)設(shè)定的條件,判斷應(yīng)該選擇哪一條分支來執(zhí)行相應(yīng)的語句序列。圖7-2列出了包含2個分支的簡單選擇結(jié)構(gòu)。條件TFAB圖7-2選擇結(jié)構(gòu)(3)循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)又稱為重復(fù)結(jié)構(gòu),它根據(jù)給定的條件,判斷是否需要重復(fù)執(zhí)行某一相同的或類似的程序段。分為兩類:
7、?當(dāng)型循環(huán)結(jié)構(gòu):先判斷后執(zhí)行循環(huán)體(圖7-3)?直到型循環(huán)結(jié)構(gòu):先執(zhí)行循環(huán)體后判斷(圖7-4)判斷條件循環(huán)體循環(huán)體判斷條件圖7-3當(dāng)型循環(huán)結(jié)構(gòu)圖7-4直到型循環(huán)結(jié)構(gòu)3.結(jié)構(gòu)化程序設(shè)計原則和方法的運用(1)使用順序、選擇、循環(huán)三種結(jié)構(gòu)表示程序的控制邏輯。(2)選用的控制結(jié)構(gòu)只準(zhǔn)許有一個入口和一個出口。(3)復(fù)雜結(jié)構(gòu)應(yīng)用嵌套的基本控制結(jié)構(gòu)進行組合嵌套來實現(xiàn),語言中所沒有的控制結(jié)構(gòu),應(yīng)該采用前后一致的方法來模擬。(4)嚴(yán)格控制GOTO語句的使用。7.1.3面向?qū)ο蟪绦蛟O(shè)計1.面向?qū)ο蟪绦蛟O(shè)計方法的產(chǎn)生?系統(tǒng)的需求總是處于不斷變化之中,因
8、此,需要設(shè)計對變化有彈性的系統(tǒng)。?利用傳統(tǒng)的結(jié)構(gòu)化程序設(shè)計方法設(shè)計的系統(tǒng)不易擴充。傳統(tǒng)的結(jié)構(gòu)化程序設(shè)計方法主要是面向過程的,也就是在分析設(shè)計時更多地從過程處理的角度進行,系統(tǒng)框架結(jié)構(gòu),系統(tǒng)模塊的劃分、設(shè)計都是基于系統(tǒng)所實現(xiàn)的功能,而功能是系統(tǒng)中最易