軟件工程第12章-程序設(shè)計語言和編碼ppt課件_第1頁
軟件工程第12章-程序設(shè)計語言和編碼ppt課件_第2頁
軟件工程第12章-程序設(shè)計語言和編碼ppt課件_第3頁
軟件工程第12章-程序設(shè)計語言和編碼ppt課件_第4頁
軟件工程第12章-程序設(shè)計語言和編碼ppt課件_第5頁
已閱讀5頁,還剩52頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 編碼階段的義務(wù)是根據(jù)詳細設(shè)計闡明書編碼階段的義務(wù)是根據(jù)詳細設(shè)計闡明書編寫程序編寫程序 程序設(shè)計言語的特性和程序設(shè)計風(fēng)格會程序設(shè)計言語的特性和程序設(shè)計風(fēng)格會深化地影響軟件的質(zhì)量和可維護性深化地影響軟件的質(zhì)量和可維護性 為了保證程序編碼的質(zhì)量,程序員必需為了保證程序編碼的質(zhì)量,程序員必需深化了解、熟練掌握并正確地運用程序深化了解、熟練掌握并正確地運用程序設(shè)計言語的特性設(shè)計言語的特性 此外,還要求源程序具有良好的構(gòu)造性此外,還要求源程序具有良好的構(gòu)造性和良好的程序設(shè)計風(fēng)格和良好的程序設(shè)計風(fēng)格程序設(shè)計言語程序設(shè)計言語程序設(shè)計風(fēng)格程序設(shè)計風(fēng)格 程序設(shè)計言語是指用于書寫計算機程序的程序設(shè)計言語是指用于書

2、寫計算機程序的言語,它是一種實現(xiàn)性的軟件言語言語,它是一種實現(xiàn)性的軟件言語 語法語法syntax用來表示構(gòu)成言語的各用來表示構(gòu)成言語的各個記號之間的組合規(guī)那么,它是構(gòu)成言語個記號之間的組合規(guī)那么,它是構(gòu)成言語構(gòu)造正確成分所需遵照的規(guī)那么集合構(gòu)造正確成分所需遵照的規(guī)那么集合 如如C言語中言語中for語句的構(gòu)成規(guī)那么是:語句的構(gòu)成規(guī)那么是:for表達式表達式1;表達式;表達式2;表達式;表達式3語語句句語法中不涉及到這些記號的含義,也不涉語法中不涉及到這些記號的含義,也不涉及運用者及運用者 語義語義semantic用來表示按照各種表示方式所表用來表示按照各種表示方式所表示的各個記號的特定含義,但它

3、不涉及到運用者。示的各個記號的特定含義,但它不涉及到運用者。 如上述如上述for語句中:表達式語句中:表達式1表示循環(huán)初值;表表示循環(huán)初值;表達式達式2表示循環(huán)條件;表達式表示循環(huán)條件;表達式3表示循環(huán)的增量;表示循環(huán)的增量;語句為循環(huán)體。整個語句的語義是:語句為循環(huán)體。整個語句的語義是: 1計算表達式計算表達式1 2計算表達式計算表達式2,假設(shè)計算結(jié)果為,假設(shè)計算結(jié)果為0,那么終止,那么終止循環(huán);否那么轉(zhuǎn)循環(huán);否那么轉(zhuǎn)3 3執(zhí)行循環(huán)體執(zhí)行循環(huán)體 4計算表達式計算表達式3 5轉(zhuǎn)向轉(zhuǎn)向2 語用語用pragmatic用來表示構(gòu)成言語的各用來表示構(gòu)成言語的各個記號和運用者的關(guān)系。個記號和運用者的關(guān)系

4、。 如:言語能否允許遞歸?能否要規(guī)定遞如:言語能否允許遞歸?能否要規(guī)定遞歸層數(shù)的上界?這種上界如何確定?這些都歸層數(shù)的上界?這種上界如何確定?這些都屬于語用上的問題。屬于語用上的問題。 程序設(shè)計言語根本成份可歸納為四種:數(shù)程序設(shè)計言語根本成份可歸納為四種:數(shù)據(jù)成分、運算成分、控制成分、傳輸成分據(jù)成分、運算成分、控制成分、傳輸成分 數(shù)據(jù)成分:它指明該言語能接受的數(shù)據(jù),數(shù)據(jù)成分:它指明該言語能接受的數(shù)據(jù),用來描畫程序中的數(shù)據(jù)。如各種類型的變用來描畫程序中的數(shù)據(jù)。如各種類型的變量、數(shù)組、指針、記錄等。作為程序操作量、數(shù)組、指針、記錄等。作為程序操作的對象,具有稱號、類型和作用域等特征。的對象,具有稱

5、號、類型和作用域等特征。運用前要對數(shù)據(jù)的這些特征加以闡明。數(shù)運用前要對數(shù)據(jù)的這些特征加以闡明。數(shù)據(jù)稱號由用戶經(jīng)過標識符命名,類型闡明據(jù)稱號由用戶經(jīng)過標識符命名,類型闡明數(shù)據(jù)需占用存儲單元的多少和存放方式,數(shù)據(jù)需占用存儲單元的多少和存放方式,作用域闡明數(shù)據(jù)可以運用的范圍。作用域闡明數(shù)據(jù)可以運用的范圍。 以以 C言語為例,其數(shù)據(jù)構(gòu)造方式可分為根言語為例,其數(shù)據(jù)構(gòu)造方式可分為根本類型和派生類型本類型和派生類型 運算成分:它指明該言語允許執(zhí)行的運算成分:它指明該言語允許執(zhí)行的運算,用來描畫程序中所需進展的運運算,用來描畫程序中所需進展的運算。如算。如 + 、- 、* 、/ 等。等。 控制成分:它指明該

6、言語允許的控制控制成分:它指明該言語允許的控制構(gòu)造,人們可利用這些控制成分來構(gòu)構(gòu)造,人們可利用這些控制成分來構(gòu)造程序中的控制邏輯。根本的控制成造程序中的控制邏輯。根本的控制成分包括:順序構(gòu)造、條件選擇構(gòu)造和分包括:順序構(gòu)造、條件選擇構(gòu)造和反復(fù)構(gòu)造。如下頁圖反復(fù)構(gòu)造。如下頁圖根本程序控制構(gòu)造根本程序控制構(gòu)造 傳輸成分:它指明該言語允許的數(shù)據(jù)傳傳輸成分:它指明該言語允許的數(shù)據(jù)傳輸方式,在程序中可用它進展數(shù)據(jù)傳輸。輸方式,在程序中可用它進展數(shù)據(jù)傳輸。 例如:例如:Turbo C言語規(guī)范庫提供了兩言語規(guī)范庫提供了兩個控制臺格式化輸入、輸出函數(shù)個控制臺格式化輸入、輸出函數(shù)printf ( )和和scan

7、f ( ),這兩個函數(shù)可以在規(guī)范,這兩個函數(shù)可以在規(guī)范輸入輸出設(shè)備上以各種不同的格式讀寫輸入輸出設(shè)備上以各種不同的格式讀寫數(shù)據(jù)。數(shù)據(jù)。 Printf ( )函數(shù)用來向規(guī)范輸出函數(shù)用來向規(guī)范輸出設(shè)備設(shè)備(屏幕屏幕)寫數(shù)據(jù)寫數(shù)據(jù) ,scanf ( ) 函數(shù)用函數(shù)用來從規(guī)范輸入設(shè)備來從規(guī)范輸入設(shè)備(鍵盤鍵盤)上讀數(shù)據(jù)。上讀數(shù)據(jù)。 心思特性心思特性 從設(shè)計到編碼的轉(zhuǎn)換根本上是人的活動,從設(shè)計到編碼的轉(zhuǎn)換根本上是人的活動,因此,言語的性能對程序員的心思影響將因此,言語的性能對程序員的心思影響將對轉(zhuǎn)換產(chǎn)生艱苦影響對轉(zhuǎn)換產(chǎn)生艱苦影響 在維持現(xiàn)有機器的效率、容量和其它硬件在維持現(xiàn)有機器的效率、容量和其它硬件限

8、制條件的前提下,程序員總希望選擇簡限制條件的前提下,程序員總希望選擇簡單易學(xué)、運用方便的言語,以減少程序出單易學(xué)、運用方便的言語,以減少程序出錯率,提高軟件可靠性,從而提高用戶對錯率,提高軟件可靠性,從而提高用戶對軟件質(zhì)量的可信度軟件質(zhì)量的可信度 在維持現(xiàn)有機器的效率、容量和其它在維持現(xiàn)有機器的效率、容量和其它硬件限制條件的前提下,程序員總希望硬件限制條件的前提下,程序員總希望選擇簡單易學(xué)、運用方便的言語,以減選擇簡單易學(xué)、運用方便的言語,以減少程序出錯率,提高軟件可靠性,從而少程序出錯率,提高軟件可靠性,從而提高用戶對軟件質(zhì)量的可信度。提高用戶對軟件質(zhì)量的可信度。 影響響程序員心思的言語特性

9、有:影響響程序員心思的言語特性有:一致性:指言語采用的標志法運用的符一致性:指言語采用的標志法運用的符號協(xié)調(diào)一致的程度。如,一符多用的號協(xié)調(diào)一致的程度。如,一符多用的標志法容易導(dǎo)致錯誤。標志法容易導(dǎo)致錯誤。 二義性:對語句不同了解所產(chǎn)生的二義性二義性:對語句不同了解所產(chǎn)生的二義性將導(dǎo)致程序員對程序了解的混亂。如,將導(dǎo)致程序員對程序了解的混亂。如, if then if then else x := a * b * c 緊致性緊致性compactness:指程序員必需:指程序員必需記憶的與編碼有關(guān)的信息總量。記憶的與編碼有關(guān)的信息總量。 線性:人們所習(xí)慣的了解程序的次序,程線性:人們所習(xí)慣的了解

10、程序的次序,程序中多層的嵌套分支和循環(huán)、隨意的序中多層的嵌套分支和循環(huán)、隨意的GOTO語句會破壞程序的線性次序。語句會破壞程序的線性次序。 工程特性工程特性 程序設(shè)計言語的特性影響人們思索程序程序設(shè)計言語的特性影響人們思索程序的方式,從而也限制了人們與計算機進的方式,從而也限制了人們與計算機進展通訊的方式。為滿足軟件工程的需求,展通訊的方式。為滿足軟件工程的需求,程序設(shè)計言語還應(yīng)該思索:將設(shè)計翻譯程序設(shè)計言語還應(yīng)該思索:將設(shè)計翻譯成代碼的便利程度、編譯器的效率、源成代碼的便利程度、編譯器的效率、源代碼的可移植性、配套的開發(fā)工具、軟代碼的可移植性、配套的開發(fā)工具、軟件的可復(fù)用性和可維護性。件的可

11、復(fù)用性和可維護性。 將設(shè)計翻譯成代碼的便利程度:言語假設(shè)將設(shè)計翻譯成代碼的便利程度:言語假設(shè)直接支持構(gòu)造化部件、復(fù)雜的數(shù)據(jù)構(gòu)造、直接支持構(gòu)造化部件、復(fù)雜的數(shù)據(jù)構(gòu)造、特殊特殊I/O處置、按位操作和處置、按位操作和OO方法,那么方法,那么便于將設(shè)計轉(zhuǎn)換成代碼。便于將設(shè)計轉(zhuǎn)換成代碼。 編譯器的效率:編譯器應(yīng)生效果率高的代編譯器的效率:編譯器應(yīng)生效果率高的代碼碼 源代碼的可移植性:言語的規(guī)范化有助于源代碼的可移植性:言語的規(guī)范化有助于提高程序代碼的可移植性,源程序中應(yīng)盡提高程序代碼的可移植性,源程序中應(yīng)盡量不用規(guī)范文本以外的語句。量不用規(guī)范文本以外的語句。 配套的開發(fā)工具:配套的開發(fā)工具:CASE工具

12、可減少編碼工具可減少編碼時間,提高代碼質(zhì)量。盡能夠運用工具和時間,提高代碼質(zhì)量。盡能夠運用工具和程序設(shè)計支撐環(huán)境。程序設(shè)計支撐環(huán)境。 可復(fù)用性:指編程言語能否提供可復(fù)用的可復(fù)用性:指編程言語能否提供可復(fù)用的軟件成分,復(fù)用時需求修正調(diào)整的內(nèi)容多軟件成分,復(fù)用時需求修正調(diào)整的內(nèi)容多少少 可維護性:包括可了解性、可測試性、可可維護性:包括可了解性、可測試性、可修正性。源程序的可讀性和文檔化特性是修正性。源程序的可讀性和文檔化特性是影響可維護性的重要要素。影響可維護性的重要要素。 運用特性運用特性 不同的程序設(shè)計言語滿足不同的技術(shù)特不同的程序設(shè)計言語滿足不同的技術(shù)特性,可以對應(yīng)于不同的運用。例如性,可

13、以對應(yīng)于不同的運用。例如Prolog言語適用于人工智能領(lǐng)域、言語適用于人工智能領(lǐng)域、SQL言語適用于關(guān)系數(shù)據(jù)庫。言語的技術(shù)特言語適用于關(guān)系數(shù)據(jù)庫。言語的技術(shù)特性對軟件工程各階段有一定的影響,特性對軟件工程各階段有一定的影響,特別是確定了軟件需求之后,程序設(shè)計言別是確定了軟件需求之后,程序設(shè)計言語的特性就很重要了,要根據(jù)不同工程語的特性就很重要了,要根據(jù)不同工程的特性選擇相應(yīng)特性的言語。的特性選擇相應(yīng)特性的言語。 程序設(shè)計言語的分類程序設(shè)計言語的分類 按言語級別:低級言語和高級言語;按言語級別:低級言語和高級言語; 按運用范圍:通用言語和公用言語;按運用范圍:通用言語和公用言語; 按用戶要求:過

14、程式言語和非過程式言按用戶要求:過程式言語和非過程式言語;語; 按言語所含的成分:順序文語、并發(fā)言按言語所含的成分:順序文語、并發(fā)言語和分布式言語語和分布式言語 程序設(shè)計言語的開展史程序設(shè)計言語的開展史 第一代言語:機器言語和匯編言語第一代言語:機器言語和匯編言語 第二代言語:早期的高級言語,如第二代言語:早期的高級言語,如BASIC,F(xiàn)ORTRAN,COBOL等等 第三代言語:具有很強的數(shù)據(jù)構(gòu)造和過第三代言語:具有很強的數(shù)據(jù)構(gòu)造和過程描畫才干,支持構(gòu)造化編程,如程描畫才干,支持構(gòu)造化編程,如Pascal,Modula,C,Ada等等 第四代言語第四代言語4GL:這類言語出現(xiàn)于:這類言語出現(xiàn)于

15、七十年代,其目的是為了提高程序開發(fā)七十年代,其目的是為了提高程序開發(fā)速度,以及讓非專業(yè)用戶能直接編制計速度,以及讓非專業(yè)用戶能直接編制計算機程序算機程序第四代言語的特點:第四代言語的特點:對用戶友善,普通用類自然言語、圖形或表對用戶友善,普通用類自然言語、圖形或表格等描畫方式,普通用戶很容易掌握格等描畫方式,普通用戶很容易掌握多數(shù)與數(shù)據(jù)庫系統(tǒng)相結(jié)合,可直接對數(shù)據(jù)庫多數(shù)與數(shù)據(jù)庫系統(tǒng)相結(jié)合,可直接對數(shù)據(jù)庫進展操作進展操作對許多運用功能均有默許的假設(shè),用戶不用對許多運用功能均有默許的假設(shè),用戶不用詳細闡明每一件事情的做法詳細闡明每一件事情的做法程序碼長度及獲得結(jié)果的時間與運用程序碼長度及獲得結(jié)果的時

16、間與運用COBOL言語相比約少一個數(shù)量級言語相比約少一個數(shù)量級支持構(gòu)造化編程,易于了解和維護支持構(gòu)造化編程,易于了解和維護 目前,第四代言語的種類繁多,尚無規(guī)范,目前,第四代言語的種類繁多,尚無規(guī)范,在語法和才干上有很大差別,其中一些支在語法和才干上有很大差別,其中一些支持非過程式編程,更多的是既含有非過程持非過程式編程,更多的是既含有非過程語句,也含有過程語句。語句,也含有過程語句。 典型的典型的4GL有:數(shù)據(jù)庫查詢言語、報表生有:數(shù)據(jù)庫查詢言語、報表生成程序、運用生成程序、電子表格、圖形成程序、運用生成程序、電子表格、圖形言語等。言語等。 多數(shù)多數(shù)4GL是面向領(lǐng)域的,很少是通用的。是面向領(lǐng)

17、域的,很少是通用的。 自然言語自然言語 最理想的是可以運用自然言語如英語、最理想的是可以運用自然言語如英語、法語或漢語,使計算機能了解并立刻法語或漢語,使計算機能了解并立刻執(zhí)行懇求。但迄今為止,自然言語了解執(zhí)行懇求。但迄今為止,自然言語了解依然是計算機科學(xué)研討中的一個難點,依然是計算機科學(xué)研討中的一個難點,雖然在實驗室的研討中獲得了一定的成雖然在實驗室的研討中獲得了一定的成果,但在現(xiàn)實中的運用依然是相當有限果,但在現(xiàn)實中的運用依然是相當有限的。的。 為一個特定的開發(fā)工程選擇編程言語時,為一個特定的開發(fā)工程選擇編程言語時,通常要思索如下要素:通常要思索如下要素: 運用領(lǐng)域運用領(lǐng)域 算法和計算復(fù)雜

18、性算法和計算復(fù)雜性 軟件運轉(zhuǎn)環(huán)境軟件運轉(zhuǎn)環(huán)境 用戶需求,特別是性能需求用戶需求,特別是性能需求 數(shù)據(jù)構(gòu)造的復(fù)雜性數(shù)據(jù)構(gòu)造的復(fù)雜性 軟件開發(fā)人員的知識程度軟件開發(fā)人員的知識程度 可用的編譯器與交叉編譯器可用的編譯器與交叉編譯器 工程所屬的運用領(lǐng)域經(jīng)常是首要的規(guī)范工程所屬的運用領(lǐng)域經(jīng)常是首要的規(guī)范 COBOL適用于商業(yè)領(lǐng)域適用于商業(yè)領(lǐng)域 FORTRAN適用于工程和科學(xué)計算領(lǐng)域適用于工程和科學(xué)計算領(lǐng)域 Prolog、Lisp適用于人工智能領(lǐng)域適用于人工智能領(lǐng)域 Smalltalk、C+適用于適用于OO系統(tǒng)的開發(fā)系統(tǒng)的開發(fā) 有些言語適用于多個運用領(lǐng)域,如有些言語適用于多個運用領(lǐng)域,如C 假設(shè)有多種言語

19、都適宜于某工程的開發(fā)假設(shè)有多種言語都適宜于某工程的開發(fā)時,也可思索選擇開發(fā)人員比較熟習(xí)的時,也可思索選擇開發(fā)人員比較熟習(xí)的言語言語 選擇高級言語還是低級言語選擇高級言語還是低級言語 優(yōu)先選擇高級言語優(yōu)先選擇高級言語 開發(fā)和維護高級言語程序比開發(fā)和維開發(fā)和維護高級言語程序比開發(fā)和維護低級言語程序容易得多護低級言語程序容易得多 必要時運用低級言語必要時運用低級言語 高級言語程序經(jīng)編譯后所產(chǎn)生的目的高級言語程序經(jīng)編譯后所產(chǎn)生的目的程序的效果要比完成一樣功能的低級言程序的效果要比完成一樣功能的低級言語程序低得多,所以在有些情況下會部語程序低得多,所以在有些情況下會部分或全部運用低級言語分或全部運用低級

20、言語 運用低級言語的情況:運用低級言語的情況:對運轉(zhuǎn)時間和存儲空間有過高要求的工程,對運轉(zhuǎn)時間和存儲空間有過高要求的工程,如電子筆記本中的軟件如電子筆記本中的軟件在某些不能提供高級言語編譯程序的計算在某些不能提供高級言語編譯程序的計算機上開發(fā)程序,如單片機上的軟件機上開發(fā)程序,如單片機上的軟件大型系統(tǒng)中對系統(tǒng)執(zhí)行時間起關(guān)鍵作用的大型系統(tǒng)中對系統(tǒng)執(zhí)行時間起關(guān)鍵作用的模塊模塊程序設(shè)計言語程序設(shè)計言語程序設(shè)計風(fēng)格程序設(shè)計風(fēng)格 編程的根據(jù)是詳細設(shè)計的結(jié)果,因此程序編程的根據(jù)是詳細設(shè)計的結(jié)果,因此程序的質(zhì)量主要取決于設(shè)計,但編程的質(zhì)量也的質(zhì)量主要取決于設(shè)計,但編程的質(zhì)量也在很大程度上影響著程序的質(zhì)量在很

21、大程度上影響著程序的質(zhì)量 編程風(fēng)格主要包括:編程風(fēng)格主要包括: 源程序中的內(nèi)部文檔源程序中的內(nèi)部文檔 數(shù)聽闡明數(shù)聽闡明 語句構(gòu)造語句構(gòu)造 輸入輸出輸入輸出 在源程序中可包含一些內(nèi)部文檔,在源程序中可包含一些內(nèi)部文檔,以協(xié)助閱讀和了解源程序以協(xié)助閱讀和了解源程序 在源程序中的內(nèi)部文檔主要包括:在源程序中的內(nèi)部文檔主要包括: 標識符的命名標識符的命名 注解注解 程序的視覺組織程序的視覺組織 選擇含義明確的名字,使其能正確提示標選擇含義明確的名字,使其能正確提示標識符所代表的實體識符所代表的實體 例如,表示總量的變量名用例如,表示總量的變量名用Total,表示,表示平均值的用平均值的用Average

22、等等 名字不要太長,太長會添加打字量,且易名字不要太長,太長會添加打字量,且易出錯。必要時可運用縮寫出錯。必要時可運用縮寫 不用類似的名字,類似的名字容易混淆,不用類似的名字,類似的名字容易混淆,不易發(fā)現(xiàn)錯誤不易發(fā)現(xiàn)錯誤 如如cm,cn,cmn,cnm,cnn,cmm 不用關(guān)鍵字作標識符不用關(guān)鍵字作標識符 同一個名字不要有多個含義同一個名字不要有多個含義 名字中防止運用易混淆的字符。名字中防止運用易混淆的字符。如數(shù)字如數(shù)字0與字母與字母O; 數(shù)字數(shù)字1與字母與字母I或或l; 數(shù)字數(shù)字2與字母與字母z等等 程序中的注解用來協(xié)助人們了解程序,程序中的注解用來協(xié)助人們了解程序,決不是可有可無的決不是

23、可有可無的 一些正規(guī)的程序文本中,注解行的數(shù)一些正規(guī)的程序文本中,注解行的數(shù)量約占整個源程序的量約占整個源程序的13到到12,甚至更多甚至更多 注解分為序文性注解和功能性注解注解分為序文性注解和功能性注解 通常置于每個程序模塊的開頭部分,通常置于每個程序模塊的開頭部分,主要描畫:主要描畫: 模塊的功能模塊的功能 模塊的接口:包括調(diào)用格式、參數(shù)的模塊的接口:包括調(diào)用格式、參數(shù)的解釋、該模塊需求調(diào)用的其它子模塊解釋、該模塊需求調(diào)用的其它子模塊名名 重要的部分變量:包括用途、約束和重要的部分變量:包括用途、約束和限制條件限制條件 開發(fā)歷史:包括模塊的設(shè)計者、評審開發(fā)歷史:包括模塊的設(shè)計者、評審者、評

24、審日期、修正日期以及對修正者、評審日期、修正日期以及對修正的描畫的描畫 通常嵌在源程序體內(nèi),主要描畫程序通常嵌在源程序體內(nèi),主要描畫程序段的功能。段的功能。 書寫功能性注解時應(yīng)留意的問題:書寫功能性注解時應(yīng)留意的問題: 注解要正確,錯誤的注解比沒有注解注解要正確,錯誤的注解比沒有注解更壞;更壞; 為程序段作注解,而不是為每一個語為程序段作注解,而不是為每一個語句作注解;句作注解; 用縮進和空行,使程序與注釋容易區(qū)用縮進和空行,使程序與注釋容易區(qū)分;分; 注解應(yīng)提供一些從程序本身難以得到注解應(yīng)提供一些從程序本身難以得到的信息,而不是語句的反復(fù)。的信息,而不是語句的反復(fù)。例如,下面的模塊級注釋描畫

25、了公共的和私有的過程在類模塊中稱為例如,下面的模塊級注釋描畫了公共的和私有的過程在類模塊中稱為“方法、方法、屬性及其數(shù)據(jù)類型,以及如何將該類作為對象來運用的有關(guān)信息:屬性及其數(shù)據(jù)類型,以及如何將該類作為對象來運用的有關(guān)信息:公共方法:公共方法: MailAddRecipient(strName As String, Optional fType As Boolean) strName: /要參與到郵件中的收件人稱號。要參與到郵件中的收件人稱號。 fType: Outlook MailItem Type /屬性設(shè)置。屬性設(shè)置。 SendMail(Optional blnShowMailFirst

26、 As Boolean) blnShowMailFirst: /發(fā)送前能否顯示發(fā)送前能否顯示 Outlook郵件信息。假設(shè)不能解析郵件信息。假設(shè)不能解析收件人的地址,讓代碼將它設(shè)置為收件人的地址,讓代碼將它設(shè)置為 True。私有方法:私有方法: InitializeOutlook() CreateMail() 公共屬性:公共屬性: MailSubject:(Write only, String) MailMessage:(Write only, String) MailAttachments:(Write only, String) 經(jīng)過在程序中添加一些空格、空經(jīng)過在程序中添加一些空格、空行和

27、縮進等技巧,協(xié)助人們從視行和縮進等技巧,協(xié)助人們從視覺上看清程序的構(gòu)造覺上看清程序的構(gòu)造 例如,經(jīng)過縮進技巧可明晰地察例如,經(jīng)過縮進技巧可明晰地察看到程序的嵌套層次,同時還容看到程序的嵌套層次,同時還容易發(fā)現(xiàn)諸如易發(fā)現(xiàn)諸如“脫漏脫漏end那樣的錯那樣的錯誤誤 IF THEN IF THEN ELSE ENDIF ELSE ENDIF 自然的程序段之間可用空行隔開自然的程序段之間可用空行隔開 可經(jīng)過添加空格使語句成分明晰,如可經(jīng)過添加空格使語句成分明晰,如(A17)ANDNOT(B49)ORC可寫成可寫成(A17) AND NOT (B49) OR C 也可以經(jīng)過添加括號突出運算的優(yōu)先級,也可以

28、經(jīng)過添加括號突出運算的優(yōu)先級,防止發(fā)生運算的錯誤,如防止發(fā)生運算的錯誤,如 a*( b*c )放置大括號放置大括號普通首選的方法是普通首選的方法是K&RK&R方法:把左括號放在行尾,右括號方法:把左括號放在行尾,右括號放在行首。如:放在行首。如:if (X) if (X) Y Y 定義函數(shù)時該當把左右括號都放在行首,如:定義函數(shù)時該當把左右括號都放在行首,如: int F(int x) int F(int x) / 留意,右括號所在的行不該當有其它語句,除非跟隨著留意,右括號所在的行不該當有其它語句,除非跟隨著一個條件判別。也就是一個條件判別。也就是do-whiledo-whi

29、le語句中的語句中的“whilewhile和和if-elseif-else語句中的語句中的“elseelse。例如:。例如: do do body of do-loop body of do-loop while (condition); while (condition);if (x = y) if (x = y) else if (x y) else if (x y) . . else else 為了使程序中數(shù)聽闡明更易于了解和維護,可采用以下風(fēng)格: 數(shù)聽闡明的次序該當規(guī)范化 闡明語句中變量安排有序化 運用注講解明復(fù)雜數(shù)據(jù)構(gòu)造 數(shù)聽闡明次序規(guī)范化,使數(shù)據(jù)屬性容數(shù)聽闡明次序規(guī)范化,使數(shù)據(jù)屬性

30、容易查找,也有利于測試,排錯和維護易查找,也有利于測試,排錯和維護 原那么上,數(shù)聽闡明的次序與語法無原那么上,數(shù)聽闡明的次序與語法無關(guān),其次序是恣意的。但出于閱讀、關(guān),其次序是恣意的。但出于閱讀、了解和維護的需求,最好使其規(guī)范化,了解和維護的需求,最好使其規(guī)范化,使闡明的先后次序固定使闡明的先后次序固定 當多個變量名在一個闡明語句中闡明當多個變量名在一個闡明語句中闡明時,可以將這些變量按字母的順序陳時,可以將這些變量按字母的順序陳列,以便于查找列,以便于查找 假設(shè)設(shè)計了一個復(fù)雜的數(shù)據(jù)構(gòu)造,該假設(shè)設(shè)計了一個復(fù)雜的數(shù)據(jù)構(gòu)造,該當運用注釋來闡明在程序?qū)崿F(xiàn)時這個當運用注釋來闡明在程序?qū)崿F(xiàn)時這個數(shù)據(jù)構(gòu)造

31、的固有特點數(shù)據(jù)構(gòu)造的固有特點 例如用戶自定義的數(shù)據(jù)類型,該當在例如用戶自定義的數(shù)據(jù)類型,該當在注釋中做必要的補充闡明注釋中做必要的補充闡明 編碼階段的主要義務(wù)就是書寫程序語句。編碼階段的主要義務(wù)就是書寫程序語句。有關(guān)書寫語句的原那么有幾十種,總起有關(guān)書寫語句的原那么有幾十種,總起來說,希望每條語句盡能夠簡單明了,來說,希望每條語句盡能夠簡單明了,能直截了當?shù)胤从吵绦騿T的意圖,不能能直截了當?shù)胤从吵绦騿T的意圖,不能為了片面追求效率而使語句復(fù)雜化。為了片面追求效率而使語句復(fù)雜化。 常用的規(guī)那么如下:常用的規(guī)那么如下: 在一行內(nèi)只寫一條語句,并且采在一行內(nèi)只寫一條語句,并且采取適當添加空格的方法,使

32、程序取適當添加空格的方法,使程序的邏輯和功能變得更加明確。的邏輯和功能變得更加明確。 許多程序設(shè)計言語允許在一行內(nèi)許多程序設(shè)計言語允許在一行內(nèi)寫多個語句。但這種方式會使程寫多個語句。但這種方式會使程序可讀性變差。因此不可取。序可讀性變差。因此不可取。 程序編寫首先該當思索明晰性,程序編寫首先該當思索明晰性,不要刻意追求技巧性,使程序編不要刻意追求技巧性,使程序編寫得過于緊湊。寫得過于緊湊。 例如,有一個用例如,有一個用 C 語句寫出的語句寫出的程序段:程序段: AI = AIAT; AT = AIAT; AI = AIAT; 此段程序能夠不易看懂,有時還需此段程序能夠不易看懂,有時還需用實踐數(shù)

33、據(jù)實驗一下。用實踐數(shù)據(jù)實驗一下。 實踐上,這段程序的功能就是交換實踐上,這段程序的功能就是交換AI和和AT中的內(nèi)容。目的是為了中的內(nèi)容。目的是為了節(jié)省一個任務(wù)單元。假設(shè)改一下:節(jié)省一個任務(wù)單元。假設(shè)改一下: WORK = AT; AT = AI; AI = WORK;就能讓讀者一目了然了。就能讓讀者一目了然了。 程序編寫得要簡單,寫清楚,直截了當程序編寫得要簡單,寫清楚,直截了當?shù)仃U明程序員的意圖。例如,地闡明程序員的意圖。例如, for ( i = 1; i = n; i+ ) for ( j = 1; j = n; j+ ) Vij ( ij ) * ( ji )除法運算在除數(shù)和被除數(shù)都是整除法運算在除數(shù)和被除數(shù)都是整型量時,其結(jié)果只取整數(shù)部分,而得到型量時,其結(jié)果只取整數(shù)部分,而得到整型量。整型量。 當當 ij 時時, i / j = 0 當當 ji 時時, j / i = 0 得到的數(shù)組得到的數(shù)組 當當ij時時 Vij = ( ij ) * ( ji ) = 0當當ij時時 Vij = ( ij ) * ( ji ) = 1這樣得到的結(jié)果這樣得到的結(jié)果 V 是一個單位矩陣。是一個單位矩陣。 寫成以下的方式,就能讓讀者直寫成以下的方式,就能讓讀者直接了解程序編寫者的意圖。接了解程序編寫者的意圖。fo

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論