




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第第5 5章章 編碼編碼 主要內容主要內容 1、選擇程序設計語言、選擇程序設計語言 2、程序設計風格、程序設計風格 3、程序復雜性度量、程序復雜性度量 3 編碼編碼 編碼就是把軟件設計結果翻譯成用某種程序設編碼就是把軟件設計結果翻譯成用某種程序設 計語言書寫的程序。計語言書寫的程序。 1 1、選擇程序設計語言選擇程序設計語言 程序設計語言是人和計算機通信的最基本的工程序設計語言是人和計算機通信的最基本的工 具,它的特點必然會影響人的思維和解題方式,會具,它的特點必然會影響人的思維和解題方式,會 影響人和計算機通信的方式和質量,也會影響其他影響人和計算機通信的方式和質量,也會影響其他 人閱讀和理
2、解程序的難易程度。因此,編碼之前的人閱讀和理解程序的難易程度。因此,編碼之前的 一項重要工作就是選擇一種適當?shù)某绦蛟O計語言。一項重要工作就是選擇一種適當?shù)某绦蛟O計語言。 4 5.1 5.1 選擇程序設計語言的主要實用標準選擇程序設計語言的主要實用標準 (1) (1) 系統(tǒng)用戶的要求。系統(tǒng)用戶的要求。 (2) (2) 可以使用的編譯程序??梢允褂玫木幾g程序。 (3) (3) 可以得到的軟件工具??梢缘玫降能浖ぞ?。 (4) (4) 工程規(guī)模。工程規(guī)模。 (5) (5) 程序員的知識。程序員的知識。 (6) (6) 軟件可移植性要求。軟件可移植性要求。 (7) (7) 軟件的應用領域。軟件的應用領
3、域。 功能齊全,能夠達到用戶的使用要求。功能齊全,能夠達到用戶的使用要求。 性能及可靠性高,運行安全高效,各項指標優(yōu)良。性能及可靠性高,運行安全高效,各項指標優(yōu)良。 結構簡單、容易理解和使用。結構簡單、容易理解和使用。 易于維護、修改和擴展升級。易于維護、修改和擴展升級。 界面易于操作,使用便捷。界面易于操作,使用便捷。 易移植性及兼容性好。易移植性及兼容性好。 可重用性強,有利于軟件更新。可重用性強,有利于軟件更新。 公認的好程序具有公認的好程序具有7個特性個特性 6 5.2 5.2 程序設計風格程序設計風格 程序實際上也是一種供人閱讀的文章,有程序實際上也是一種供人閱讀的文章,有 一個一個
4、文章的風格文章的風格問題。應該使程序具有良問題。應該使程序具有良 好的風格。好的風格。 源程序文檔化源程序文檔化 數(shù)據(jù)說明數(shù)據(jù)說明 語句結構語句結構 輸入輸出方法輸入輸出方法 程序效率程序效率 7 源程序文檔化源程序文檔化 8 符號名的命名符號名的命名 符號名即標識符,包括符號名即標識符,包括模塊名、變量名、常量名、模塊名、變量名、常量名、 標號名、子程序名、標號名、子程序名、 、數(shù)據(jù)區(qū)名、數(shù)據(jù)區(qū)名以及以及緩沖區(qū)名緩沖區(qū)名等。等。 這些名字應能反映它所代表的實際東西,這些名字應能反映它所代表的實際東西,應有一定應有一定 實際意義。實際意義。例如,表示次數(shù)的量用例如,表示次數(shù)的量用TimesTi
5、mes,表示總量,表示總量 的用的用TotalTotal,表示平均值的用,表示平均值的用AverageAverage,表示和的量,表示和的量 用用SumSum等。等。 名字不是越長越好名字不是越長越好,應當選擇精煉的意義明確的名,應當選擇精煉的意義明確的名 字。字。必要時可使用縮寫名字必要時可使用縮寫名字,但這時要注意縮寫規(guī),但這時要注意縮寫規(guī) 則要一致,并且要則要一致,并且要給每一個名字加注釋給每一個名字加注釋。同時,在。同時,在 一個程序中,一個變量只應用于一種用途。一個程序中,一個變量只應用于一種用途。 9 程序的注釋程序的注釋 夾在程序中的注釋是程序員與夾在程序中的注釋是程序員與日后日
6、后的程序的程序 讀者之間讀者之間通信的重要手段通信的重要手段。 注釋注釋決不是可有可無決不是可有可無的。的。 一些正規(guī)的程序文本中,注釋行的數(shù)量占一些正規(guī)的程序文本中,注釋行的數(shù)量占 到整個源程序的到整個源程序的1/51/5到到1/31/3,甚至更多。,甚至更多。 注釋分為注釋分為序言性注釋序言性注釋和和功能性注釋功能性注釋。 10 序言性注釋序言性注釋 通常置于每個程序模塊的開頭部分,通常置于每個程序模塊的開頭部分,它應當給出程序的整體它應當給出程序的整體 說明說明,對于理解程序本身具有引導作用。,對于理解程序本身具有引導作用。 序言性注釋包括:序言性注釋包括: 程序標題程序標題; 有關本模
7、塊有關本模塊功能和目的功能和目的的的說明說明; 主要算法主要算法; 接口說明接口說明:包括調用形式,參數(shù)描述,子程序清單;:包括調用形式,參數(shù)描述,子程序清單; 有關數(shù)據(jù)描述有關數(shù)據(jù)描述:重要的變量及其用途,約束或限制條件,:重要的變量及其用途,約束或限制條件, 以及其它有關信息;以及其它有關信息; 模塊位置模塊位置:在哪一個源文件中,或隸屬于哪一個軟件包;:在哪一個源文件中,或隸屬于哪一個軟件包; 開發(fā)簡歷開發(fā)簡歷:模塊設計者,復審者,復審日期,修改日期:模塊設計者,復審者,復審日期,修改日期 及有關說明等。及有關說明等。 11 功能性注釋功能性注釋 功能性注釋嵌在源程序體中,用以描述其后的
8、語句或程序功能性注釋嵌在源程序體中,用以描述其后的語句或程序 段是在做什么工作,或是執(zhí)行了下面的語句會怎么樣,而段是在做什么工作,或是執(zhí)行了下面的語句會怎么樣,而 不要解釋下面怎么做。不要解釋下面怎么做。 例如,例如, / /* * ADD AMOUNT TO TOTAL ADD AMOUNT TO TOTAL * */ / TOTAL = AMOUNT TOTAL = AMOUNTTOTALTOTAL 上面注視不清楚,如果注明把月銷售額計入年度總額,上面注視不清楚,如果注明把月銷售額計入年度總額, 便使讀者理解了下面語句的意圖:便使讀者理解了下面語句的意圖: / /* * ADD MONTH
9、LY-SALES TO ANNUAL-TOTAL ADD MONTHLY-SALES TO ANNUAL-TOTAL * */ / TOTAL = AMOUNT TOTAL = AMOUNTTOTALTOTAL 要點要點 描述一段程序,而不是每一個語句;描述一段程序,而不是每一個語句; 用縮進和空行,使程序與注釋容易區(qū)別;用縮進和空行,使程序與注釋容易區(qū)別; 注釋要正確。注釋要正確。 12 視覺組織視覺組織 空格、空行和移行空格、空行和移行 恰當?shù)乩们‘數(shù)乩每崭窨崭?,可以,可以突出運算的突出運算的 優(yōu)先性優(yōu)先性,避免發(fā)生運算的錯誤。例,避免發(fā)生運算的錯誤。例 如如 ,將表達式,將表達式 (
10、 (A A17)17)ANDNOTANDNOT( (B B49)49)ORCORC 寫成寫成 ( (A A17) 17) AND NOTAND NOT ( (B B49) 49) OR COR C 自然的程序段之間可用自然的程序段之間可用空行空行隔開;隔開; 移行移行也叫做也叫做向右縮格向右縮格。它是指程序。它是指程序 中的各行不必都在左端對齊,都從中的各行不必都在左端對齊,都從 第一格起排列。這樣做使程序完全第一格起排列。這樣做使程序完全 分不清層次關系。分不清層次關系。 對于對于選擇語句選擇語句和和循環(huán)語句循環(huán)語句,把其中,把其中 的程序段語句向右做的程序段語句向右做階梯式移行階梯式移行。
11、 使程序的邏輯結構更加清晰。使程序的邏輯結構更加清晰。 13 (2) (2) 數(shù)據(jù)說明數(shù)據(jù)說明 在設計階段已經(jīng)確定了數(shù)據(jù)結構的組織及其復雜性。在設計階段已經(jīng)確定了數(shù)據(jù)結構的組織及其復雜性。 在編寫程序時,則在編寫程序時,則需要注意數(shù)據(jù)說明的風格需要注意數(shù)據(jù)說明的風格。 14 數(shù)據(jù)說明的次序應該標準化。數(shù)據(jù)說明的次序應該標準化。有次序易查閱,能加速測試、調試和維護有次序易查閱,能加速測試、調試和維護 的過程。的過程。 例如:數(shù)據(jù)說明例如:數(shù)據(jù)說明 數(shù)據(jù)類型說明數(shù)據(jù)類型說明 常量說明常量說明 簡單變量類型說明簡單變量類型說明 數(shù)組說明數(shù)組說明 公用數(shù)據(jù)塊說明公用數(shù)據(jù)塊說明 所有的文件說明所有的文件
12、說明 b b. . 當當多個變量名多個變量名在一個語句中說明時,在一個語句中說明時,應該按字母順序排列應該按字母順序排列這些變量。這些變量。 例如,把例如,把 integer size, length, width, cost, price 寫成寫成 c. c. 如果設計時使用了一個如果設計時使用了一個復雜的數(shù)據(jù)結構復雜的數(shù)據(jù)結構,則,則應該用注解說明應該用注解說明用程序設計用程序設計 語言實現(xiàn)這個數(shù)據(jù)結構的方法和特點。語言實現(xiàn)這個數(shù)據(jù)結構的方法和特點。 整型量說明整型量說明 實型量說明實型量說明 字符量說明字符量說明 邏輯量說明邏輯量說明 數(shù)據(jù)說明數(shù)據(jù)說明 15 (3 3)語句構造)語句構造
13、 構造語句時應該遵循的構造語句時應該遵循的原則原則是,每個是,每個 語句都應該語句都應該簡單而直接簡單而直接,不能為了提高,不能為了提高 效率而使程序變得過分復雜;也效率而使程序變得過分復雜;也 下述規(guī)則有助于使語句簡單明了:下述規(guī)則有助于使語句簡單明了: 不要為了節(jié)省空間而把多個語句寫在同一行;不要為了節(jié)省空間而把多個語句寫在同一行; 盡量避免復雜的條件測試;盡量避免復雜的條件測試; 盡量減少對盡量減少對“非非”條件的測試;條件的測試; if ( !( char0 | char 9 ) ) 改成改成 if ( char = 0 I=1; Total.input=total.valid=0;
14、Sum=0; Do while valueI-999 and total.input=minimum and valueI0 Then averagy=sum/total.valid; Else averagy=-999; Endif End averagy 程序的環(huán)形復雜度取決于程序控制流的復雜程度, 也即是取決于程序結構的復雜程度。 McCabe研究大量程序后發(fā)現(xiàn),環(huán)形復雜度高的程 序往往是最困難、最容易出問題的程序。 模塊規(guī)模以V(G)10為宜,也就是說,V(G)=10是模 塊規(guī)模的一個更科學更精確的上限。 環(huán)形復雜度用途環(huán)形復雜度用途 Halstead方法是另一個著名的方法,它根據(jù) 程
15、序中運算符和操作數(shù)的總數(shù)來度量程序的復 雜程度。 令N1為程序中運算符出現(xiàn)的總次數(shù),N2為操 作數(shù)出現(xiàn)的總次數(shù),程序長度N定義為: N=N1+N2 5.3.2 Halstead方法方法(I) HalsteadHalstead給出預測程序長度的公式如下:給出預測程序長度的公式如下:H=n1 H=n1 loglog2 2 n1+n2 log n1+n2 log2 2 n2 n2 不同運算符不同運算符( (包括關鍵字包括關鍵字) )的個數(shù)的個數(shù)n1n1, 不同操作數(shù)不同操作數(shù)( (變量和常數(shù)變量和常數(shù)) )的個數(shù)的個數(shù)n2n2。 預測程序中包含錯誤的個數(shù)的公式如下:預測程序中包含錯誤的個數(shù)的公式如下
16、:E=N logE=N log2 2 (n1+n2)/3000(n1+n2)/3000 5.3.2 Halstead方法方法(II) 5.3.2 Halstead方法(III) SUBROUTINE SORT ( X, N ) DIMENSION X( N ) IF ( N .LT. 2 ) RETURN DO 20 I=2, N DO 10 J=1, I IF ( X(I) .GE. X(J) ) GO TO 10 SAVE = X(I) X(I) = X(J) X(J) = SAVE 10 CONTINUE 20 CONTINUE RETURN END 5.3.2 Halstead方法方法(IV) 運算符運算符 計數(shù)計數(shù) 運算對象運算對象 計數(shù)計數(shù) 可執(zhí)行語句結束可執(zhí)行語句結束 7 X 6 數(shù)組下標數(shù)組下標 6 I 5 5 J 4 IF( ) 2 N 2 DO 2 2 2 , 2 SAVE 2 程序結束程序結束 1 1 1 .LT. 1 N N17 N222 .GE. 1 GO TO 10 1 n1=10 n228 5.3.2 Halstead方法方法(V) 對于上面的例子,利用n1,N1,n2,N2, 可以計算得 H = 10 log210+7 log27 = 52.87 N = 28+22 = 50 E=N log2 (
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年鉭電容高溫老化臺項目可行性研究報告
- 農業(yè)種植土地托管經(jīng)營合同
- 景區(qū)承包經(jīng)營協(xié)議
- 農村社區(qū)資源共享發(fā)展合同
- 塔吊買賣合同
- 2025年電子式節(jié)電定時器項目可行性研究報告
- 2025年環(huán)氧自流平地坪涂料項目可行性研究報告
- 2025年混凝土超緩凝劑項目可行性研究報告
- 2025年渦輪式金剛石鋸片項目可行性研究報告
- 2025年水泵噴灌設備項目可行性研究報告
- 蔚來銷售培訓
- 艾滋病、梅毒母嬰阻斷干預技術課件
- 中國常規(guī)肺功能檢查基層指南解讀(2024年)解讀課件
- 《IFC工業(yè)基礎類》課件
- 2024年江蘇省腫瘤醫(yī)院高層次衛(wèi)技人才招聘筆試歷年參考題庫頻考點附帶答案
- 2025年山東濱州北海經(jīng)濟開發(fā)區(qū)招聘20人歷年高頻重點提升(共500題)附帶答案詳解
- 《畢業(yè)生就業(yè)協(xié)議書》(空白)原件
- 2024年世界職業(yè)院校技能大賽中職組“養(yǎng)老照護組”賽項參考試題庫(含答案)
- 小學課本劇為中華之崛起而讀書劇本
- 《道德情操論》課件
- CRC如何做好受試者管理
評論
0/150
提交評論