版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、5.1 程序設(shè)計語言5.1.1 程序設(shè)計語言的分類,1.機器語言-----第一代語言 2.匯編語言-----第二代語言 3.高級語言-----第三代語言 4.第四代語言,5.1 程序設(shè)計語言5.1.2 程序設(shè)計語言的選擇,對高級語言選擇需綜合考慮以下幾個方面的因素來決定。(1)系統(tǒng)的應(yīng)用領(lǐng)域(2)軟件執(zhí)行環(huán)境 (3)用戶要求 (4)程序編寫人員目前具備的知識,5.2 程序設(shè)計風(fēng)格5.2.1 程序內(nèi)部的文檔,1.標
2、識符 標識符的選擇不僅要滿足各種程序設(shè)計語言的語法限制,更重要的是名字要有鮮明的含義,使它能正確的表達它所代表的程序?qū)ο蟮膶嶋H意義,以便于閱讀者理解程序。,5.2 程序設(shè)計風(fēng)格5.2.1 程序內(nèi)部的文檔,2.注釋 一類是出現(xiàn)在模塊首部的序言性注釋,它簡要描述了模塊的全名、模塊的功能和性能、主要算法、接口特點、重要的數(shù)據(jù)、調(diào)用格式、開發(fā)歷史。另一類注釋是插在整個程序的中間,在每個具有獨立功能的程序段之前的功能性注釋,它是
3、用以描述下面的這段程序的功能,也就是解釋下面所要做的工作是什么,或是執(zhí)行了下面語句后會產(chǎn)生怎樣的結(jié)果。,5.2 程序設(shè)計風(fēng)格5.2.1 程序內(nèi)部的文檔,3.視覺組織 (1)利用空行將自然的程序段分開(2)利用縮進形成階梯式層次結(jié)構(gòu),5.2 程序設(shè)計風(fēng)格5.2.2 數(shù)據(jù)說明,(1)數(shù)據(jù)說明次序標準化。數(shù)據(jù)說明語句應(yīng)集中放在每個程序或模塊的可執(zhí)行部分之前,而且為了數(shù)據(jù)屬性更容易尋找,有利于測試、糾錯和維護,應(yīng)將數(shù)據(jù)說明的次序固定下來
4、。(2)當多個變量名在同一個語句中說明時,應(yīng)該按字母順序排列這些變量。(3)對于一個復(fù)雜的數(shù)據(jù)結(jié)構(gòu),則應(yīng)加注釋,以說明用程序設(shè)計語言實現(xiàn)時的方法和特點;對容易混淆又不方便改變的變量名,也應(yīng)加注釋,說明變量名的作用以示區(qū)別。,5.2 程序設(shè)計風(fēng)格5.2.3 語句構(gòu)造,(1)不要為了節(jié)省空間而把多個語句寫在一行上。(2)避免使用否定的邏輯條件。(3)使用括號使邏輯表達式或算術(shù)表達式的運算次序更清晰。(4)避免使用臨時變量而使可讀
5、性下降。(5)充分利用庫函數(shù)。,5.2 程序設(shè)計風(fēng)格5.2.3 語句構(gòu)造,(6)避免大量使用循環(huán)嵌套和條件嵌套。(7)避免不必要的轉(zhuǎn)移和使用GOTO語句。(8)盡量用公用過程或子程序去代替重復(fù)的功 能代碼段。(9)按照初始化、數(shù)據(jù)處理、結(jié)果輸出順序安 排程序。,5.2 程序設(shè)計風(fēng)格5.2.4 輸入和輸出,1.輸入方面 (1)采用統(tǒng)一的輸入格式,力求輸入格式簡單。 (2)對所有的輸入
6、數(shù)據(jù)進行有效性檢驗,從而識 別錯誤的輸入。 (3)檢查輸入項重要組合的合法性。 (4)使用數(shù)據(jù)結(jié)束標志或文件結(jié)束標志終止一批 數(shù)據(jù)的輸入。 (5)用統(tǒng)一方式對待文件結(jié)束條件。,5.2 程序設(shè)計風(fēng)格5.2.4 輸入和輸出,(6)輸入數(shù)據(jù)時允許使用自由格式輸入,也允許 使用默認值。 (7)設(shè)計交互式輸入方式時,應(yīng)明確提示輸入請 求,詳細說
7、明可選擇數(shù)值類型和范圍等有關(guān) 信息。 (8)當程序設(shè)計語言對輸入格式有嚴格的要求 時,就保持輸入格式與輸入語句的一致性。2.輸出方面 (1)給所有輸出數(shù)據(jù)加標志,并加以必要的說明。 (2)設(shè)計具有良好格式的輸出報表。,5.2 程序設(shè)計風(fēng)格5.2.5 面向?qū)ο蟪绦蛟O(shè)計風(fēng)格,1.提高可復(fù)用性(1)提高方法的內(nèi)聚度,降低耦合度。(2)控制方法的規(guī)模。(3)保持方法的一致性。2
8、.提高可擴充性(1)封裝實現(xiàn)策略(2)慎用公有方法(3)控制方法的規(guī)模,5.2 程序設(shè)計風(fēng)格5.2.5 面向?qū)ο蟪绦蛟O(shè)計風(fēng)格,3.提高健壯性(1)預(yù)防用戶的操作錯誤(2)檢查參數(shù)的合法性(3)使用動態(tài)內(nèi)存分配機制(4)先測試后優(yōu)化,5.3 程序的效率5.3.1 程序運行時間,(1)編碼前先化簡算術(shù)表達式和邏輯表達式; (2)仔細檢查算法中嵌套的循環(huán),以確定是否 有語句可以從內(nèi)層向外移;
9、 (3)盡量不使用多維數(shù)組; (4)盡量不使用指針和復(fù)雜的表;,5.3 程序的效率5.3.1 程序運行時間,(5)使用執(zhí)行時間短的算術(shù)運算; (6)在表達式中盡量避免出現(xiàn)不同的數(shù)據(jù)類型; (7)盡量使用整數(shù)算術(shù)表達式和布爾表達式; (8)選用等效的高效率算法。,5.3 程序的效率5.3.2 存儲器效率,要選用有緊縮存儲器特性的編譯程序,生成較短目標代碼,在必要時可以使用匯編語言。 在大中
10、型計算機系統(tǒng)中,一般來說,使用能保持功能域結(jié)構(gòu)化的控制結(jié)構(gòu),以減少頁面調(diào)度,減少內(nèi)外存之間的交換,是提高效率的好方法。 提高程序執(zhí)行效率的技術(shù)也能提高存儲器效率。提高存儲器效率的關(guān)鍵在于程序的簡單性。,5.3 程序的效率5.3.3 輸入/輸出的效率,(1)輸入/輸出的請求易于理解; (2)為減少通信的額外開銷,所有輸入/輸出都應(yīng)有適當?shù)木彌_; (3)對輔存(如磁盤)的訪問應(yīng)選擇盡可能簡單的方式; (4)對
11、輔存的輸入/輸出應(yīng)以塊為單位進行;,5.3 程序的效率5.3.3 輸入/輸出的效率,(5)任何不易理解的“超高效”的輸入/輸 出,則不能采用; (6)應(yīng)考慮輸入輸出設(shè)備(如終端或打印 機等)的特性,盡量改善其輸入/輸出 質(zhì)量和速度; (7)好的輸入/輸出設(shè)計風(fēng)格對提高輸入/ 輸出效率會有明顯的效果。,5.4 程序復(fù)
12、雜性度量5.4.1 McCabe度量法,McCabe 度量法需要畫出程序圖。用這種度量方法得出的結(jié)果稱為程序的環(huán)路復(fù)雜度。具體數(shù)值可由以下公式計算出: V(G)= m - n + p 其中V(G)是有向圖G中的環(huán)數(shù); m是有向圖G中的有向弧數(shù)(包括強連通的輔助虛?。?;,5.4 程序復(fù)雜性度量5.4.1 McCabe度量法,- n是有向圖G中的節(jié)點數(shù); p是有向圖G中分離部分的數(shù)
13、目,對一個正常程序而言,在程序圖中從入口點可達任何一個節(jié)點,因此程序圖總是連通的,則p=1。 McCabe度量法是對程序控制流復(fù)雜性的度量,而不考慮數(shù)據(jù)流。,5.4 程序復(fù)雜性度量5.4.2 Halstead方法,Halstead方法可根據(jù)其中的運算符和操作數(shù)的總數(shù)來度量程序的復(fù)雜程度。設(shè)N1為程序中運算符出現(xiàn)的總次數(shù),N2為操作數(shù)出現(xiàn)的總次數(shù),則程序長度N為: N = N1 + N2
14、 設(shè)n1為程序中出現(xiàn)的不同操作符的個數(shù),n2為程序中出現(xiàn)的不同操作數(shù)的個數(shù),很顯然,n1,n2將隨著程序規(guī)模增大而增大,Halstead給出預(yù)測程序長度H的公式: H =n1log2 n1 + n2log2 n2,5.4 程序復(fù)雜性度量5.4.2 Halstead方法,H =n1log2 n1 + n2log2 n2 經(jīng)過多次實驗證明,預(yù)測長度H與實際長度N非常接近。Halstead
15、還給出了預(yù)測程序中包含錯誤個數(shù)E的公式: E = Nlog2(n1+n2)/3000Halstead度量法只考慮程序的數(shù)據(jù)流而不考慮程序的控制流。,5.5 用戶手冊和操作手冊5.5.1用戶手冊編寫,1 引言:編寫目的,背景,定義,參考資料2 用途:功能,性能,安全保密3 運行環(huán)境:硬設(shè)備,支持軟件,數(shù)據(jù)結(jié)構(gòu) 4 使用過程:安裝與初始化,輸入,輸出,文卷查詢,出錯處理和恢復(fù),終端操作,5.5 用
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《程序設(shè)計語言c》
- 知識點1程序設(shè)計語言
- 程序設(shè)計語言c實驗
- 邏輯式程序設(shè)計語言
- 如何學(xué)習(xí)程序設(shè)計語言
- 程序設(shè)計語言基礎(chǔ)答案
- 程序設(shè)計語言的層次體系
- 程序設(shè)計語言(c)復(fù)習(xí)題-
- r程序設(shè)計語言考試試卷
- 《程序設(shè)計語言(c++)》課程設(shè)計
- 程序設(shè)計語言模型的設(shè)計與實現(xiàn).pdf
- 《c#程序設(shè)計語言》課程標準
- 第10章面向?qū)ο蟪绦蛟O(shè)計語言
- 《程序設(shè)計語言(vfp)》課程教學(xué)大綱
- 程序設(shè)計語言基本概念與試題
- 《程序設(shè)計語言(fortran)》課程教學(xué)大綱
- 《程序設(shè)計語言(c)》課程教學(xué)大綱
- 第2章vb程序設(shè)計語言基礎(chǔ)
- 《程序設(shè)計語言(vb)》課程教學(xué)大綱
- 關(guān)于“程序設(shè)計語言”課程考試通知
評論
0/150
提交評論