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