版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
軟件工程第12章程序設(shè)計語言和編碼軟件工程第12章程序設(shè)計語言和編碼復旦大學計算機科學技術(shù)學院軟件工程(第二版)編碼階段的任務(wù)是根據(jù)詳細設(shè)計說明書編寫程序程序設(shè)計語言的特性和程序設(shè)計風格會深刻地影響軟件的質(zhì)量和可維護性為了保證程序編碼的質(zhì)量,程序員必須深刻理解、熟練掌握并正確地運用程序設(shè)計語言的特性此外,還要求源程序具有良好的結(jié)構(gòu)性和良好的程序設(shè)計風格2復旦大學計算機科學技術(shù)學院軟件工程(第二版)編碼階段的復旦大學計算機科學技術(shù)學院軟件工程(第二版)內(nèi)容摘要程序設(shè)計語言程序設(shè)計風格3復旦大學計算機科學技術(shù)學院軟件工程(第二版)內(nèi)容摘要程復旦大學計算機科學技術(shù)學院軟件工程(第二版)內(nèi)容摘要程序設(shè)計語言程序設(shè)計風格4復旦大學計算機科學技術(shù)學院軟件工程(第二版)內(nèi)容摘要程復旦大學計算機科學技術(shù)學院軟件工程(第二版)基本概念程序設(shè)計語言是指用于書寫計算機程序的語言,它是一種實現(xiàn)性的軟件語言語法(syntax)表示程序的結(jié)構(gòu)或形式,即表示構(gòu)成語言的各個記號之間的組合規(guī)則,但不涉及這些記號固有的以及和使用情景有關(guān)的含義如C語言中for語句的構(gòu)成規(guī)則是:
for(表達式1;表達式2;表達式3)語句
語法中不涉及這些記號的含義,也不涉及使用情景5復旦大學計算機科學技術(shù)學院軟件工程(第二版)基本概念程復旦大學計算機科學技術(shù)學院軟件工程(第二版)語義(semantic)表示語言成分的固有含義,即表示按照各種方法所表示的各個記號的特定含義,但不涉及到使用者。
如上述for語句中:表達式1表示循環(huán)初值;表達式2表示循環(huán)條件;表達式3表示循環(huán)的增量;語句為循環(huán)體。整個語句的語義是:(1)計算表達式1(2)計算表達式2,若計算結(jié)果為0,則終止循環(huán);否則轉(zhuǎn)(3)(3)執(zhí)行循環(huán)體(4)計算表達式3(5)轉(zhuǎn)向(2)6復旦大學計算機科學技術(shù)學院軟件工程(第二版)語義(se復旦大學計算機科學技術(shù)學院軟件工程(第二版)語用(pragmatic)表示程序與使用情景有關(guān)的含義。語用是語言成分在程序特定執(zhí)行中的實際效用如:語言是否允許遞歸?是否要規(guī)定遞歸層數(shù)的上界?這種上界如何確定?這些都屬于語用上的問題。7復旦大學計算機科學技術(shù)學院軟件工程(第二版)語用(pr復旦大學計算機科學技術(shù)學院軟件工程(第二版)程序設(shè)計語言的基本成分程序設(shè)計語言基本成份可歸納為四種:數(shù)據(jù)成分、運算成分、控制成分、傳輸成分數(shù)據(jù)成分:指明該語言能接受的數(shù)據(jù),用以描述程序中的數(shù)據(jù)。如各種類型的變量、數(shù)組、指針、記錄等。作為程序操作的對象,具有名稱、類型和作用域等特征。使用前要對數(shù)據(jù)的這些特征加以說明。數(shù)據(jù)名稱由用戶通過標識符命名,類型說明數(shù)據(jù)需占用存儲單元的多少和存放形式,作用域說明數(shù)據(jù)可以使用的范圍。8復旦大學計算機科學技術(shù)學院軟件工程(第二版)程序設(shè)計語復旦大學計算機科學技術(shù)學院軟件工程(第二版)以C語言為例,其數(shù)據(jù)構(gòu)造方式可分為基本類型和派生類型
9復旦大學計算機科學技術(shù)學院軟件工程(第二版)以C語言復旦大學計算機科學技術(shù)學院軟件工程(第二版)運算成分:指明該語言允許執(zhí)行的運算,用以描述程序中所包含的運算。如+、-、*、/等??刂瞥煞郑褐该髟撜Z言允許的控制結(jié)構(gòu),用以表達程序中的控制構(gòu)造。基本的控制成分包括:順序結(jié)構(gòu)、條件選擇結(jié)構(gòu)和重復結(jié)構(gòu)。如下頁圖10復旦大學計算機科學技術(shù)學院軟件工程(第二版)運算成分:復旦大學計算機科學技術(shù)學院軟件工程(第二版)基本程序控制結(jié)構(gòu)11復旦大學計算機科學技術(shù)學院軟件工程(第二版)基本程序控復旦大學計算機科學技術(shù)學院軟件工程(第二版)傳輸成分:它指明該語言允許的數(shù)據(jù)傳輸方式,在程序中可用以表達程序中數(shù)據(jù)的傳輸。例如:TurboC語言標準庫提供了兩個控制臺格式化輸入、輸出函數(shù)printf()和scanf(),這兩個函數(shù)可以在標準輸入輸出設(shè)備上以各種不同的格式讀寫數(shù)據(jù)。Printf()函數(shù)用來向標準輸出設(shè)備(屏幕)寫數(shù)據(jù),scanf()函數(shù)用來從標準輸入設(shè)備(鍵盤)上讀數(shù)據(jù)。
12復旦大學計算機科學技術(shù)學院軟件工程(第二版)傳輸成分:復旦大學計算機科學技術(shù)學院軟件工程(第二版)程序設(shè)計語言的特性心理特性從設(shè)計到編碼的轉(zhuǎn)換基本上是人的活動,因此,語言的性能對程序員的心理影響將對轉(zhuǎn)換產(chǎn)生重大影響在維持現(xiàn)有機器的效率、容量和其它硬件限制條件的前提下,程序員總希望選擇簡單易學、使用方便的語言,以減少程序出錯率,提高軟件可靠性,從而提高用戶對軟件質(zhì)量的可信度13復旦大學計算機科學技術(shù)學院軟件工程(第二版)程序設(shè)計語復旦大學計算機科學技術(shù)學院軟件工程(第二版)
在維持現(xiàn)有機器的效率、容量和其它硬件限制條件的前提下,程序員總希望選擇簡單易學、使用方便的語言,以減少程序出錯率,提高軟件可靠性,從而提高用戶對軟件質(zhì)量的可信度。
影響響程序員心理的語言特性有:一致性:指語言采用的標記法(使用的符號)協(xié)調(diào)一致的程度。如,一符多用的標記法容易導致錯誤。14復旦大學計算機科學技術(shù)學院軟件工程(第二版)在維復旦大學計算機科學技術(shù)學院軟件工程(第二版)二義性:對語句不同理解所產(chǎn)生的二義性將導致程序員對程序理解的混亂。如,
ifthenifthenelsex:=a**b**c緊致性(compactness):指程序員必須記憶的與編碼有關(guān)的信息總量。線性:人們所習慣的理解程序的次序,程序中多層的嵌套分支和循環(huán)、隨意的GOTO語句會破壞程序的線性次序。15復旦大學計算機科學技術(shù)學院軟件工程(第二版)二義性:對復旦大學計算機科學技術(shù)學院軟件工程(第二版)工程特性程序設(shè)計語言的特性影響人們思考程序的方式,從而也限制了人們與計算機進行通信的方式。為滿足軟件工程的需要,程序設(shè)計語言還應(yīng)該考慮:將設(shè)計翻譯成代碼的便利程度、編譯器的效率、源代碼的可移植性、配套的開發(fā)工具、軟件的可復用性和可維護性。16復旦大學計算機科學技術(shù)學院軟件工程(第二版)工程特性1復旦大學計算機科學技術(shù)學院軟件工程(第二版)將設(shè)計翻譯成代碼的便利程度:語言若直接支持結(jié)構(gòu)化部件、復雜的數(shù)據(jù)結(jié)構(gòu)、特殊I/O處理、按位操作和OO方法,則便于將設(shè)計轉(zhuǎn)換成代碼。編譯器的效率:編譯器應(yīng)生成效率高的代碼源代碼的可移植性:語言的標準化有助于提高程序代碼的可移植性,源程序中應(yīng)盡量不用標準文本以外的語句。17復旦大學計算機科學技術(shù)學院軟件工程(第二版)將設(shè)計翻譯復旦大學計算機科學技術(shù)學院軟件工程(第二版)配套的開發(fā)工具:CASE工具可減少編碼時間,提高代碼質(zhì)量。盡可能使用工具和程序設(shè)計支撐環(huán)境。可復用性:指編程語言能否提供可復用的軟件成分,復用時需要修改調(diào)整的內(nèi)容多少可維護性:包括可理解性、可測試性、可修改性。源程序的可讀性和文檔化特性是影響可維護性的重要因素。18復旦大學計算機科學技術(shù)學院軟件工程(第二版)配套的開發(fā)復旦大學計算機科學技術(shù)學院軟件工程(第二版)應(yīng)用特性不同的程序設(shè)計語言滿足不同的技術(shù)特性,可以對應(yīng)于不同的應(yīng)用。例如Prolog語言適用于人工智能領(lǐng)域、SQL語言適用于關(guān)系數(shù)據(jù)庫。語言的技術(shù)特性對軟件工程各階段有一定的影響,特別是確定了軟件需求之后,程序設(shè)計語言的特性就很重要了,要根據(jù)不同項目的特性選擇相應(yīng)特性的語言。19復旦大學計算機科學技術(shù)學院軟件工程(第二版)應(yīng)用特性1復旦大學計算機科學技術(shù)學院軟件工程(第二版)程序設(shè)計語言的發(fā)展和分類程序設(shè)計語言的分類按語言級別:低級語言和高級語言;按應(yīng)用范圍:通用語言和專用語言;按用戶要求:過程式語言和非過程式語言;按語言所含的成分:順序語言、并發(fā)語言和分布式語言20復旦大學計算機科學技術(shù)學院軟件工程(第二版)程序設(shè)計語復旦大學計算機科學技術(shù)學院軟件工程(第二版)程序設(shè)計語言的發(fā)展史第一代語言:機器語言和匯編語言第二代語言:早期的高級語言,如BASIC,F(xiàn)ORTRAN,COBOL等第三代語言:具有很強的數(shù)據(jù)結(jié)構(gòu)和過程描述能力,支持結(jié)構(gòu)化編程,如Pascal,Modula,C,Ada等第四代語言(4GL):這類語言出現(xiàn)于七十年代,其目的是為了提高程序開發(fā)速度,以及讓非專業(yè)用戶能直接編制計算機程序21復旦大學計算機科學技術(shù)學院軟件工程(第二版)程序設(shè)計語復旦大學計算機科學技術(shù)學院軟件工程(第二版)第四代語言的特點:對用戶友善,一般用類自然語言、圖形或表格等描述方式,普通用戶很容易掌握多數(shù)與數(shù)據(jù)庫系統(tǒng)相結(jié)合,可直接對數(shù)據(jù)庫進行操作對許多應(yīng)用功能均有默認的假設(shè),用戶不必詳細說明每一件事情的做法程序碼長度及獲得結(jié)果的時間與使用COBOL語言相比約少一個數(shù)量級支持結(jié)構(gòu)化編程,易于理解和維護22復旦大學計算機科學技術(shù)學院軟件工程(第二版)第四代語言復旦大學計算機科學技術(shù)學院軟件工程(第二版)
目前,第四代語言的種類繁多,尚無標準,在語法和能力上有很大差異,其中一些支持非過程式編程,更多的是既含有非過程語句,也含有過程語句。典型的4GL有:數(shù)據(jù)庫查詢語言、報表生成程序、應(yīng)用生成程序、電子表格、圖形語言等。多數(shù)4GL是面向領(lǐng)域的,很少是通用的。23復旦大學計算機科學技術(shù)學院軟件工程(第二版)目前復旦大學計算機科學技術(shù)學院軟件工程(第二版)
自然語言最理想的是可以使用自然語言(如英語、法語或漢語),使計算機能理解并立即執(zhí)行請求。但迄今為止,自然語言理解仍然是計算機科學研究中的一個難點,盡管在實驗室的研究中取得了一定的成果,但在現(xiàn)實中的應(yīng)用仍然是相當有限的。
24復旦大學計算機科學技術(shù)學院軟件工程(第二版)自然語言復旦大學計算機科學技術(shù)學院軟件工程(第二版)程序設(shè)計語言的選擇為一個特定的開發(fā)項目選擇編程語言時,通常要考慮如下因素:應(yīng)用領(lǐng)域算法和計算復雜性軟件運行環(huán)境用戶需求,特別是性能需求數(shù)據(jù)結(jié)構(gòu)的復雜性軟件開發(fā)人員的知識水平可用的編譯器與交叉編譯器25復旦大學計算機科學技術(shù)學院軟件工程(第二版)程序設(shè)計語復旦大學計算機科學技術(shù)學院軟件工程(第二版)項目所屬的應(yīng)用領(lǐng)域常常是首要的標準COBOL適用于商業(yè)領(lǐng)域FORTRAN適用于工程和科學計算領(lǐng)域Prolog、Lisp適用于人工智能領(lǐng)域Smalltalk、C++適用于OO系統(tǒng)的開發(fā)有些語言適用于多個應(yīng)用領(lǐng)域,如C若有多種語言都適合于某項目的開發(fā)時,也可考慮選擇開發(fā)人員比較熟悉的語言26復旦大學計算機科學技術(shù)學院軟件工程(第二版)項目所屬的復旦大學計算機科學技術(shù)學院軟件工程(第二版)選擇高級語言還是低級語言優(yōu)先選擇高級語言開發(fā)和維護高級語言程序比開發(fā)和維護低級語言程序容易得多必要時使用低級語言高級語言程序經(jīng)編譯后所產(chǎn)生的目標程序的功效要比完成相同功能的低級語言程序低得多,所以在有些情況下會部分或全部使用低級語言27復旦大學計算機科學技術(shù)學院軟件工程(第二版)選擇高級語復旦大學計算機科學技術(shù)學院軟件工程(第二版)
使用低級語言的情況:對運行時間和存儲空間有過高要求的項目,如電子筆記本中的軟件在某些不能提供高級語言編譯程序的計算機上開發(fā)程序,如單片機上的軟件大型系統(tǒng)中對系統(tǒng)執(zhí)行時間起關(guān)鍵作用的模塊28復旦大學計算機科學技術(shù)學院軟件工程(第二版)復旦大學計算機科學技術(shù)學院軟件工程(第二版)內(nèi)容摘要程序設(shè)計語言程序設(shè)計風格29復旦大學計算機科學技術(shù)學院軟件工程(第二版)內(nèi)容摘要程復旦大學計算機科學技術(shù)學院軟件工程(第二版)程序設(shè)計風格編程的依據(jù)是詳細設(shè)計的結(jié)果,因此程序的質(zhì)量主要取決于設(shè)計,但編程的質(zhì)量也在很大程度上影響著程序的質(zhì)量編程風格主要包括:源程序中的內(nèi)部文檔數(shù)據(jù)說明語句構(gòu)造輸入/輸出30復旦大學計算機科學技術(shù)學院軟件工程(第二版)程序設(shè)計風復旦大學計算機科學技術(shù)學院軟件工程(第二版)源程序文檔化在源程序中可包含一些內(nèi)部文檔,以幫助閱讀和理解源程序在源程序中的內(nèi)部文檔主要包括:標識符的命名注解程序的視覺組織31復旦大學計算機科學技術(shù)學院軟件工程(第二版)源程序文檔復旦大學計算機科學技術(shù)學院軟件工程(第二版)標識符的命名選擇含義明確的名字,使其能正確提示標識符所代表的實體例如,表示總量的變量名用Total,表示平均值的用Average等名字不要太長,太長會增加打字量,且易出錯。必要時可使用縮寫不用相似的名字,相似的名字容易混淆,不易發(fā)現(xiàn)錯誤如cm,cn,cmn,cnm,cnn,cmm32復旦大學計算機科學技術(shù)學院軟件工程(第二版)標識符的命復旦大學計算機科學技術(shù)學院軟件工程(第二版)不用關(guān)鍵字作標識符同一個名字不要有多個含義名字中避免使用易混淆的字符。如數(shù)字0與字母O;數(shù)字1與字母I或l;數(shù)字2與字母z等33復旦大學計算機科學技術(shù)學院軟件工程(第二版)不用關(guān)鍵字復旦大學計算機科學技術(shù)學院軟件工程(第二版)程序的注釋程序中的注解用來幫助人們理解程序,決不是可有可無的一些正規(guī)的程序文本中,注解行的數(shù)量約占整個源程序的1/3到1/2,甚至更多注解分為序言性注解和功能性注解34復旦大學計算機科學技術(shù)學院軟件工程(第二版)程序的注釋復旦大學計算機科學技術(shù)學院軟件工程(第二版)通常置于每個程序模塊的開頭部分,主要描述:模塊的功能模塊的接口:包括調(diào)用格式、參數(shù)的解釋、該模塊需要調(diào)用的其它子模塊名重要的局部變量:包括用途、約束和限制條件開發(fā)歷史:包括模塊的設(shè)計者、評審者、評審日期、修改日期以及對修改的描述序言性注釋35復旦大學計算機科學技術(shù)學院軟件工程(第二版)通常置于每復旦大學計算機科學技術(shù)學院軟件工程(第二版)通常嵌在源程序體內(nèi),主要描述程序段的功能。書寫功能性注解時應(yīng)注意的問題:注解要正確,錯誤的注解比沒有注解更壞;為程序段作注解,而不是為每一個語句作注解;用縮進和空行,使程序與注釋容易區(qū)分;注解應(yīng)提供一些從程序本身難以得到的信息,而不是語句的重復。功能性注釋36復旦大學計算機科學技術(shù)學院軟件工程(第二版)通常嵌在源復旦大學計算機科學技術(shù)學院軟件工程(第二版)例如,下面的模塊級注釋描述了公共的和私有的過程(在類模塊中稱為“方法”)、屬性及其數(shù)據(jù)類型,以及如何將該類作為對象來使用的有關(guān)信息:公共方法:
MailAddRecipient(strNameAsString,OptionalfTypeAsBoolean)strName://要加入到郵件中的收件人名稱。
fType:OutlookMailItemType//屬性設(shè)置。
SendMail(OptionalblnShowMailFirstAsBoolean)blnShowMailFirst://發(fā)送前是否顯示Outlook郵件信息。如果不能解析收件人的地址,讓代碼將它設(shè)置為True。
私有方法:
InitializeOutlook()CreateMail()
公共屬性:
MailSubject:(Writeonly,String)MailMessage:(Writeonly,String)MailAttachments:(Writeonly,String)37復旦大學計算機科學技術(shù)學院軟件工程(第二版)例如,下面復旦大學計算機科學技術(shù)學院軟件工程(第二版)通過在程序中添加一些空格、空行和縮進等技巧,幫助人們從視覺上看清程序的結(jié)構(gòu)例如,通過縮進技巧可清晰地觀察到程序的嵌套層次,同時還容易發(fā)現(xiàn)諸如“遺漏end”那樣的錯誤視覺組織38復旦大學計算機科學技術(shù)學院軟件工程(第二版)通過在程序復旦大學計算機科學技術(shù)學院軟件工程(第二版)
IF(…)THEN
IF(…)THEN
……
ELSE
……
ENDIF
……
ELSE
……
ENDIF39復旦大學計算機科學技術(shù)學院軟件工程(第二版)IF(復旦大學計算機科學技術(shù)學院軟件工程(第二版)自然的程序段之間可用空行隔開可通過添加空格使語句成分清晰,如
(A<-17)ANDNOT(B<=49)ORC
可寫成
(A<-17)ANDNOT(B<=49)ORC也可以通過添加括號突出運算的優(yōu)先級,避免發(fā)生運算的錯誤,如
a**(b**c)40復旦大學計算機科學技術(shù)學院軟件工程(第二版)自然的程序復旦大學計算機科學技術(shù)學院軟件工程(第二版)放置大括號一般首選的方法是K&R方法:把左括號放在行尾,右括號放在行首。如:if
(X)
{Y}定義函數(shù)時應(yīng)當把左右括號都放在行首,如:int
F(int
x){//}注意,右括號所在的行不應(yīng)當有其它語句,除非跟隨著一個條件判斷。也就是do-while語句中的“while”和if-else語句中的“else”。例如:do
{body
of
do-loop}
while
(condition);if
(x
==
y)
{…
}
else
if
(x
>
y)
{...}
else
{…
}41復旦大學計算機科學技術(shù)學院軟件工程(第二版)放置大括號復旦大學計算機科學技術(shù)學院軟件工程(第二版)數(shù)據(jù)說明為了使程序中數(shù)據(jù)說明更易于理解和維護,可采用以下風格:數(shù)據(jù)說明的次序應(yīng)當規(guī)范化說明語句中變量安排有序化使用注解說明復雜數(shù)據(jù)結(jié)構(gòu)42復旦大學計算機科學技術(shù)學院軟件工程(第二版)數(shù)據(jù)說明為復旦大學計算機科學技術(shù)學院軟件工程(第二版)數(shù)據(jù)說明的次序應(yīng)當規(guī)范化數(shù)據(jù)說明次序規(guī)范化,使數(shù)據(jù)屬性容易查找,也有利于測試,排錯和維護原則上,數(shù)據(jù)說明的次序與語法無關(guān),其次序是任意的。但出于閱讀、理解和維護的需要,最好使其規(guī)范化,使說明的先后次序固定43復旦大學計算機科學技術(shù)學院軟件工程(第二版)數(shù)據(jù)說明的復旦大學計算機科學技術(shù)學院軟件工程(第二版)說明語句中變量安排有序化當多個變量名在一個說明語句中說明時,可以將這些變量按字母的順序排列,以便于查找44復旦大學計算機科學技術(shù)學院軟件工程(第二版)說明語句中復旦大學計算機科學技術(shù)學院軟件工程(第二版)使用注釋說明復雜數(shù)據(jù)結(jié)構(gòu)如果設(shè)計了一個復雜的數(shù)據(jù)結(jié)構(gòu),應(yīng)當使用注釋來說明在程序?qū)崿F(xiàn)時這個數(shù)據(jù)結(jié)構(gòu)的固有特點例如用戶自定義的數(shù)據(jù)類型,應(yīng)當在注釋中做必要的補充說明45復旦大學計算機科學技術(shù)學院軟件工程(第二版)使用注釋說復旦大學計算機科學技術(shù)學院軟件工程(第二版)語句構(gòu)造編碼階段的主要任務(wù)就是書寫程序語句。有關(guān)書寫語句的原則有幾十種,總起來說,希望每條語句盡可能簡單明了,能直截了當?shù)胤从吵绦騿T的意圖,不能為了片面追求效率而使語句復雜化。常用的規(guī)則如下:46復旦大學計算機科學技術(shù)學院軟件工程(第二版)語句構(gòu)造編復旦大學計算機科學技術(shù)學院軟件工程(第二版)1.在一行內(nèi)只寫一條語句在一行內(nèi)只寫一條語句,并且采取適當添加空格的辦法,使程序的邏輯和功能變得更加明確。許多程序設(shè)計語言允許在一行內(nèi)寫多個語句。但這種方式會使程序可讀性變差。因而不可取。47復旦大學計算機科學技術(shù)學院軟件工程(第二版)1.在一復旦大學計算機科學技術(shù)學院軟件工程(第二版)2.程序編寫首先應(yīng)當考慮清晰性程序編寫首先應(yīng)當考慮清晰性,不要刻意追求技巧性,使程序編寫得過于緊湊。例如,有一個用C語句寫出的程序段:
A[I]=A[I]+A[T];
A[T]=A[I]-A[T];
A[I]=A[I]-A[T];48復旦大學計算機科學技術(shù)學院軟件工程(第二版)2.程序編復旦大學計算機科學技術(shù)學院軟件工程(第二版)
此段程序可能不易看懂,有時還需用實際數(shù)據(jù)試驗一下。實際上,這段程序的功能就是交換A[I]和A[T]中的內(nèi)容。目的是為了節(jié)省一個工作單元。如果改一下:
WORK=A[T];
A[T]=A[I];
A[I]=WORK;
就能讓讀者一目了然了。49復旦大學計算機科學技術(shù)學院軟件工程(第二版)復旦大學計算機科學技術(shù)學院軟件工程(第二版)3.程序要能直截了當?shù)卣f明程序員的用意。程序編寫得要簡單,寫清楚,直截了當?shù)卣f明程序員的用意。例如,
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
V[i][j]=(i/j)*(j/i)
除法運算(/)在除數(shù)和被除數(shù)都是整型量時,其結(jié)果只取整數(shù)部分,而得到整型量。50復旦大學計算機科學技術(shù)學院軟件工程(第二版)3.程序要復旦大學計算機科學技術(shù)學院軟件工程(第二版)
當i<j時,i/j=0
當j<i時,j/i=0
得到的數(shù)組當i≠j時
V[i][j]=(i/j)*(j/i)=0當i=j(luò)時
V[i][j]=(i/j)*(j/i)=1這樣得到的結(jié)果V是一個單位矩陣。51復旦大學計算機科學技術(shù)學院軟件工程(第二版)復旦大學計算機科學技術(shù)學院軟件工程(第二版)寫成以下的形式,就能讓讀者直接了解程序編寫者的意圖。
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
if(i==j)
V[i][j]=1.0;
ELSE
V[i][j]=0.0;52復旦大學計算機科學技術(shù)學院軟件工程(第二版)寫成以下的復旦大學計算機科學技術(shù)學院軟件工程(第二版)4.其他常用規(guī)則讓編譯程序做簡單的優(yōu)化。盡可能使用庫函數(shù)避免不必要的轉(zhuǎn)移。盡量只采用三種基本的控制結(jié)構(gòu)來編寫程序。除順序結(jié)構(gòu)外,使用if-then-else來實現(xiàn)選擇結(jié)構(gòu);使用do-until或do-while來實現(xiàn)循環(huán)結(jié)構(gòu)。53復旦大學計算機科學技術(shù)學院軟件工程(第二版)4.其他常復旦大學計算機科學技術(shù)學院軟件工程(第二版)輸入和輸出輸入和輸出信息是與用戶的使用直接相關(guān)的。輸入和輸出的方式和格式應(yīng)當盡可能方便用戶的使用。一定要避免因設(shè)計不當給用戶帶來的麻煩因此,在軟件需求分析階段和設(shè)計階段,就應(yīng)基本確定輸入和輸出的風格。系統(tǒng)能否被用戶接受,有時就取決于輸入和輸出的風格54復旦大學計算機科學技術(shù)學院軟件工程(第二版)輸入和輸出復旦大學計算機科學技術(shù)學院軟件工程(第二版)不論是批處理的輸入/輸出方式,還是交互式的輸入/輸出方式,在設(shè)計和編碼時都應(yīng)考慮下列原則:1.
對所有的輸入數(shù)據(jù)都要進行檢驗,識別錯誤的輸入,以保證每個數(shù)據(jù)的有效性;2.
檢查輸入項的各種重要組合的合理性,必要時報告輸入狀態(tài)信息;3.
使得輸入的步驟和操作盡可能簡單,并保持簡單的輸入格式;55復旦大學計算機科學技術(shù)學院軟件工程(第二版)不論是批處復旦大學計算機科學技術(shù)學院軟件工程(第二版)
4.
輸入數(shù)據(jù)時,應(yīng)允許使用自由格式輸入;
5.
應(yīng)允許缺省值;
6.
輸入一批數(shù)據(jù)時,最好使用輸入結(jié)束標志,而不要由用戶指定輸入數(shù)據(jù)數(shù)目;
7.
在交互式輸入輸入時,要在屏幕上使用提示符明確提示交互輸入的請求,指明可使用選擇項的種類和取值范圍。同時,在數(shù)據(jù)輸入的過程中和輸入結(jié)束時,也要在屏幕上給出狀態(tài)信息;56復旦大學計算機科學技術(shù)學院軟件工程(第二版)4.輸復旦大學計算機科學技術(shù)學院軟件工程(第二版)8.
當程序設(shè)計語言對輸入/輸出格式有嚴格要求時,應(yīng)保持輸入格式與輸入語句的要求的一致性;9.
給所有的輸出加注解,并設(shè)計良好的輸出報表。
輸入/輸出風格還受到許多其它因素的影響。如輸入/輸出設(shè)備(例如終端的類型,圖形設(shè)備,數(shù)字化轉(zhuǎn)換設(shè)備等)、用戶的熟練程度、以及通信環(huán)境等。
57復旦大學計算機科學技術(shù)學院軟件工程(第二版)8.當程軟件工程第12章程序設(shè)計語言和編碼軟件工程第12章程序設(shè)計語言和編碼復旦大學計算機科學技術(shù)學院軟件工程(第二版)編碼階段的任務(wù)是根據(jù)詳細設(shè)計說明書編寫程序程序設(shè)計語言的特性和程序設(shè)計風格會深刻地影響軟件的質(zhì)量和可維護性為了保證程序編碼的質(zhì)量,程序員必須深刻理解、熟練掌握并正確地運用程序設(shè)計語言的特性此外,還要求源程序具有良好的結(jié)構(gòu)性和良好的程序設(shè)計風格59復旦大學計算機科學技術(shù)學院軟件工程(第二版)編碼階段的復旦大學計算機科學技術(shù)學院軟件工程(第二版)內(nèi)容摘要程序設(shè)計語言程序設(shè)計風格60復旦大學計算機科學技術(shù)學院軟件工程(第二版)內(nèi)容摘要程復旦大學計算機科學技術(shù)學院軟件工程(第二版)內(nèi)容摘要程序設(shè)計語言程序設(shè)計風格61復旦大學計算機科學技術(shù)學院軟件工程(第二版)內(nèi)容摘要程復旦大學計算機科學技術(shù)學院軟件工程(第二版)基本概念程序設(shè)計語言是指用于書寫計算機程序的語言,它是一種實現(xiàn)性的軟件語言語法(syntax)表示程序的結(jié)構(gòu)或形式,即表示構(gòu)成語言的各個記號之間的組合規(guī)則,但不涉及這些記號固有的以及和使用情景有關(guān)的含義如C語言中for語句的構(gòu)成規(guī)則是:
for(表達式1;表達式2;表達式3)語句
語法中不涉及這些記號的含義,也不涉及使用情景62復旦大學計算機科學技術(shù)學院軟件工程(第二版)基本概念程復旦大學計算機科學技術(shù)學院軟件工程(第二版)語義(semantic)表示語言成分的固有含義,即表示按照各種方法所表示的各個記號的特定含義,但不涉及到使用者。
如上述for語句中:表達式1表示循環(huán)初值;表達式2表示循環(huán)條件;表達式3表示循環(huán)的增量;語句為循環(huán)體。整個語句的語義是:(1)計算表達式1(2)計算表達式2,若計算結(jié)果為0,則終止循環(huán);否則轉(zhuǎn)(3)(3)執(zhí)行循環(huán)體(4)計算表達式3(5)轉(zhuǎn)向(2)63復旦大學計算機科學技術(shù)學院軟件工程(第二版)語義(se復旦大學計算機科學技術(shù)學院軟件工程(第二版)語用(pragmatic)表示程序與使用情景有關(guān)的含義。語用是語言成分在程序特定執(zhí)行中的實際效用如:語言是否允許遞歸?是否要規(guī)定遞歸層數(shù)的上界?這種上界如何確定?這些都屬于語用上的問題。64復旦大學計算機科學技術(shù)學院軟件工程(第二版)語用(pr復旦大學計算機科學技術(shù)學院軟件工程(第二版)程序設(shè)計語言的基本成分程序設(shè)計語言基本成份可歸納為四種:數(shù)據(jù)成分、運算成分、控制成分、傳輸成分數(shù)據(jù)成分:指明該語言能接受的數(shù)據(jù),用以描述程序中的數(shù)據(jù)。如各種類型的變量、數(shù)組、指針、記錄等。作為程序操作的對象,具有名稱、類型和作用域等特征。使用前要對數(shù)據(jù)的這些特征加以說明。數(shù)據(jù)名稱由用戶通過標識符命名,類型說明數(shù)據(jù)需占用存儲單元的多少和存放形式,作用域說明數(shù)據(jù)可以使用的范圍。65復旦大學計算機科學技術(shù)學院軟件工程(第二版)程序設(shè)計語復旦大學計算機科學技術(shù)學院軟件工程(第二版)以C語言為例,其數(shù)據(jù)構(gòu)造方式可分為基本類型和派生類型
66復旦大學計算機科學技術(shù)學院軟件工程(第二版)以C語言復旦大學計算機科學技術(shù)學院軟件工程(第二版)運算成分:指明該語言允許執(zhí)行的運算,用以描述程序中所包含的運算。如+、-、*、/等??刂瞥煞郑褐该髟撜Z言允許的控制結(jié)構(gòu),用以表達程序中的控制構(gòu)造。基本的控制成分包括:順序結(jié)構(gòu)、條件選擇結(jié)構(gòu)和重復結(jié)構(gòu)。如下頁圖67復旦大學計算機科學技術(shù)學院軟件工程(第二版)運算成分:復旦大學計算機科學技術(shù)學院軟件工程(第二版)基本程序控制結(jié)構(gòu)68復旦大學計算機科學技術(shù)學院軟件工程(第二版)基本程序控復旦大學計算機科學技術(shù)學院軟件工程(第二版)傳輸成分:它指明該語言允許的數(shù)據(jù)傳輸方式,在程序中可用以表達程序中數(shù)據(jù)的傳輸。例如:TurboC語言標準庫提供了兩個控制臺格式化輸入、輸出函數(shù)printf()和scanf(),這兩個函數(shù)可以在標準輸入輸出設(shè)備上以各種不同的格式讀寫數(shù)據(jù)。Printf()函數(shù)用來向標準輸出設(shè)備(屏幕)寫數(shù)據(jù),scanf()函數(shù)用來從標準輸入設(shè)備(鍵盤)上讀數(shù)據(jù)。
69復旦大學計算機科學技術(shù)學院軟件工程(第二版)傳輸成分:復旦大學計算機科學技術(shù)學院軟件工程(第二版)程序設(shè)計語言的特性心理特性從設(shè)計到編碼的轉(zhuǎn)換基本上是人的活動,因此,語言的性能對程序員的心理影響將對轉(zhuǎn)換產(chǎn)生重大影響在維持現(xiàn)有機器的效率、容量和其它硬件限制條件的前提下,程序員總希望選擇簡單易學、使用方便的語言,以減少程序出錯率,提高軟件可靠性,從而提高用戶對軟件質(zhì)量的可信度70復旦大學計算機科學技術(shù)學院軟件工程(第二版)程序設(shè)計語復旦大學計算機科學技術(shù)學院軟件工程(第二版)
在維持現(xiàn)有機器的效率、容量和其它硬件限制條件的前提下,程序員總希望選擇簡單易學、使用方便的語言,以減少程序出錯率,提高軟件可靠性,從而提高用戶對軟件質(zhì)量的可信度。
影響響程序員心理的語言特性有:一致性:指語言采用的標記法(使用的符號)協(xié)調(diào)一致的程度。如,一符多用的標記法容易導致錯誤。71復旦大學計算機科學技術(shù)學院軟件工程(第二版)在維復旦大學計算機科學技術(shù)學院軟件工程(第二版)二義性:對語句不同理解所產(chǎn)生的二義性將導致程序員對程序理解的混亂。如,
ifthenifthenelsex:=a**b**c緊致性(compactness):指程序員必須記憶的與編碼有關(guān)的信息總量。線性:人們所習慣的理解程序的次序,程序中多層的嵌套分支和循環(huán)、隨意的GOTO語句會破壞程序的線性次序。72復旦大學計算機科學技術(shù)學院軟件工程(第二版)二義性:對復旦大學計算機科學技術(shù)學院軟件工程(第二版)工程特性程序設(shè)計語言的特性影響人們思考程序的方式,從而也限制了人們與計算機進行通信的方式。為滿足軟件工程的需要,程序設(shè)計語言還應(yīng)該考慮:將設(shè)計翻譯成代碼的便利程度、編譯器的效率、源代碼的可移植性、配套的開發(fā)工具、軟件的可復用性和可維護性。73復旦大學計算機科學技術(shù)學院軟件工程(第二版)工程特性1復旦大學計算機科學技術(shù)學院軟件工程(第二版)將設(shè)計翻譯成代碼的便利程度:語言若直接支持結(jié)構(gòu)化部件、復雜的數(shù)據(jù)結(jié)構(gòu)、特殊I/O處理、按位操作和OO方法,則便于將設(shè)計轉(zhuǎn)換成代碼。編譯器的效率:編譯器應(yīng)生成效率高的代碼源代碼的可移植性:語言的標準化有助于提高程序代碼的可移植性,源程序中應(yīng)盡量不用標準文本以外的語句。74復旦大學計算機科學技術(shù)學院軟件工程(第二版)將設(shè)計翻譯復旦大學計算機科學技術(shù)學院軟件工程(第二版)配套的開發(fā)工具:CASE工具可減少編碼時間,提高代碼質(zhì)量。盡可能使用工具和程序設(shè)計支撐環(huán)境??蓮陀眯裕褐妇幊陶Z言能否提供可復用的軟件成分,復用時需要修改調(diào)整的內(nèi)容多少可維護性:包括可理解性、可測試性、可修改性。源程序的可讀性和文檔化特性是影響可維護性的重要因素。75復旦大學計算機科學技術(shù)學院軟件工程(第二版)配套的開發(fā)復旦大學計算機科學技術(shù)學院軟件工程(第二版)應(yīng)用特性不同的程序設(shè)計語言滿足不同的技術(shù)特性,可以對應(yīng)于不同的應(yīng)用。例如Prolog語言適用于人工智能領(lǐng)域、SQL語言適用于關(guān)系數(shù)據(jù)庫。語言的技術(shù)特性對軟件工程各階段有一定的影響,特別是確定了軟件需求之后,程序設(shè)計語言的特性就很重要了,要根據(jù)不同項目的特性選擇相應(yīng)特性的語言。76復旦大學計算機科學技術(shù)學院軟件工程(第二版)應(yīng)用特性1復旦大學計算機科學技術(shù)學院軟件工程(第二版)程序設(shè)計語言的發(fā)展和分類程序設(shè)計語言的分類按語言級別:低級語言和高級語言;按應(yīng)用范圍:通用語言和專用語言;按用戶要求:過程式語言和非過程式語言;按語言所含的成分:順序語言、并發(fā)語言和分布式語言77復旦大學計算機科學技術(shù)學院軟件工程(第二版)程序設(shè)計語復旦大學計算機科學技術(shù)學院軟件工程(第二版)程序設(shè)計語言的發(fā)展史第一代語言:機器語言和匯編語言第二代語言:早期的高級語言,如BASIC,F(xiàn)ORTRAN,COBOL等第三代語言:具有很強的數(shù)據(jù)結(jié)構(gòu)和過程描述能力,支持結(jié)構(gòu)化編程,如Pascal,Modula,C,Ada等第四代語言(4GL):這類語言出現(xiàn)于七十年代,其目的是為了提高程序開發(fā)速度,以及讓非專業(yè)用戶能直接編制計算機程序78復旦大學計算機科學技術(shù)學院軟件工程(第二版)程序設(shè)計語復旦大學計算機科學技術(shù)學院軟件工程(第二版)第四代語言的特點:對用戶友善,一般用類自然語言、圖形或表格等描述方式,普通用戶很容易掌握多數(shù)與數(shù)據(jù)庫系統(tǒng)相結(jié)合,可直接對數(shù)據(jù)庫進行操作對許多應(yīng)用功能均有默認的假設(shè),用戶不必詳細說明每一件事情的做法程序碼長度及獲得結(jié)果的時間與使用COBOL語言相比約少一個數(shù)量級支持結(jié)構(gòu)化編程,易于理解和維護79復旦大學計算機科學技術(shù)學院軟件工程(第二版)第四代語言復旦大學計算機科學技術(shù)學院軟件工程(第二版)
目前,第四代語言的種類繁多,尚無標準,在語法和能力上有很大差異,其中一些支持非過程式編程,更多的是既含有非過程語句,也含有過程語句。典型的4GL有:數(shù)據(jù)庫查詢語言、報表生成程序、應(yīng)用生成程序、電子表格、圖形語言等。多數(shù)4GL是面向領(lǐng)域的,很少是通用的。80復旦大學計算機科學技術(shù)學院軟件工程(第二版)目前復旦大學計算機科學技術(shù)學院軟件工程(第二版)
自然語言最理想的是可以使用自然語言(如英語、法語或漢語),使計算機能理解并立即執(zhí)行請求。但迄今為止,自然語言理解仍然是計算機科學研究中的一個難點,盡管在實驗室的研究中取得了一定的成果,但在現(xiàn)實中的應(yīng)用仍然是相當有限的。
81復旦大學計算機科學技術(shù)學院軟件工程(第二版)自然語言復旦大學計算機科學技術(shù)學院軟件工程(第二版)程序設(shè)計語言的選擇為一個特定的開發(fā)項目選擇編程語言時,通常要考慮如下因素:應(yīng)用領(lǐng)域算法和計算復雜性軟件運行環(huán)境用戶需求,特別是性能需求數(shù)據(jù)結(jié)構(gòu)的復雜性軟件開發(fā)人員的知識水平可用的編譯器與交叉編譯器82復旦大學計算機科學技術(shù)學院軟件工程(第二版)程序設(shè)計語復旦大學計算機科學技術(shù)學院軟件工程(第二版)項目所屬的應(yīng)用領(lǐng)域常常是首要的標準COBOL適用于商業(yè)領(lǐng)域FORTRAN適用于工程和科學計算領(lǐng)域Prolog、Lisp適用于人工智能領(lǐng)域Smalltalk、C++適用于OO系統(tǒng)的開發(fā)有些語言適用于多個應(yīng)用領(lǐng)域,如C若有多種語言都適合于某項目的開發(fā)時,也可考慮選擇開發(fā)人員比較熟悉的語言83復旦大學計算機科學技術(shù)學院軟件工程(第二版)項目所屬的復旦大學計算機科學技術(shù)學院軟件工程(第二版)選擇高級語言還是低級語言優(yōu)先選擇高級語言開發(fā)和維護高級語言程序比開發(fā)和維護低級語言程序容易得多必要時使用低級語言高級語言程序經(jīng)編譯后所產(chǎn)生的目標程序的功效要比完成相同功能的低級語言程序低得多,所以在有些情況下會部分或全部使用低級語言84復旦大學計算機科學技術(shù)學院軟件工程(第二版)選擇高級語復旦大學計算機科學技術(shù)學院軟件工程(第二版)
使用低級語言的情況:對運行時間和存儲空間有過高要求的項目,如電子筆記本中的軟件在某些不能提供高級語言編譯程序的計算機上開發(fā)程序,如單片機上的軟件大型系統(tǒng)中對系統(tǒng)執(zhí)行時間起關(guān)鍵作用的模塊85復旦大學計算機科學技術(shù)學院軟件工程(第二版)復旦大學計算機科學技術(shù)學院軟件工程(第二版)內(nèi)容摘要程序設(shè)計語言程序設(shè)計風格86復旦大學計算機科學技術(shù)學院軟件工程(第二版)內(nèi)容摘要程復旦大學計算機科學技術(shù)學院軟件工程(第二版)程序設(shè)計風格編程的依據(jù)是詳細設(shè)計的結(jié)果,因此程序的質(zhì)量主要取決于設(shè)計,但編程的質(zhì)量也在很大程度上影響著程序的質(zhì)量編程風格主要包括:源程序中的內(nèi)部文檔數(shù)據(jù)說明語句構(gòu)造輸入/輸出87復旦大學計算機科學技術(shù)學院軟件工程(第二版)程序設(shè)計風復旦大學計算機科學技術(shù)學院軟件工程(第二版)源程序文檔化在源程序中可包含一些內(nèi)部文檔,以幫助閱讀和理解源程序在源程序中的內(nèi)部文檔主要包括:標識符的命名注解程序的視覺組織88復旦大學計算機科學技術(shù)學院軟件工程(第二版)源程序文檔復旦大學計算機科學技術(shù)學院軟件工程(第二版)標識符的命名選擇含義明確的名字,使其能正確提示標識符所代表的實體例如,表示總量的變量名用Total,表示平均值的用Average等名字不要太長,太長會增加打字量,且易出錯。必要時可使用縮寫不用相似的名字,相似的名字容易混淆,不易發(fā)現(xiàn)錯誤如cm,cn,cmn,cnm,cnn,cmm89復旦大學計算機科學技術(shù)學院軟件工程(第二版)標識符的命復旦大學計算機科學技術(shù)學院軟件工程(第二版)不用關(guān)鍵字作標識符同一個名字不要有多個含義名字中避免使用易混淆的字符。如數(shù)字0與字母O;數(shù)字1與字母I或l;數(shù)字2與字母z等90復旦大學計算機科學技術(shù)學院軟件工程(第二版)不用關(guān)鍵字復旦大學計算機科學技術(shù)學院軟件工程(第二版)程序的注釋程序中的注解用來幫助人們理解程序,決不是可有可無的一些正規(guī)的程序文本中,注解行的數(shù)量約占整個源程序的1/3到1/2,甚至更多注解分為序言性注解和功能性注解91復旦大學計算機科學技術(shù)學院軟件工程(第二版)程序的注釋復旦大學計算機科學技術(shù)學院軟件工程(第二版)通常置于每個程序模塊的開頭部分,主要描述:模塊的功能模塊的接口:包括調(diào)用格式、參數(shù)的解釋、該模塊需要調(diào)用的其它子模塊名重要的局部變量:包括用途、約束和限制條件開發(fā)歷史:包括模塊的設(shè)計者、評審者、評審日期、修改日期以及對修改的描述序言性注釋92復旦大學計算機科學技術(shù)學院軟件工程(第二版)通常置于每復旦大學計算機科學技術(shù)學院軟件工程(第二版)通常嵌在源程序體內(nèi),主要描述程序段的功能。書寫功能性注解時應(yīng)注意的問題:注解要正確,錯誤的注解比沒有注解更壞;為程序段作注解,而不是為每一個語句作注解;用縮進和空行,使程序與注釋容易區(qū)分;注解應(yīng)提供一些從程序本身難以得到的信息,而不是語句的重復。功能性注釋93復旦大學計算機科學技術(shù)學院軟件工程(第二版)通常嵌在源復旦大學計算機科學技術(shù)學院軟件工程(第二版)例如,下面的模塊級注釋描述了公共的和私有的過程(在類模塊中稱為“方法”)、屬性及其數(shù)據(jù)類型,以及如何將該類作為對象來使用的有關(guān)信息:公共方法:
MailAddRecipient(strNameAsString,OptionalfTypeAsBoolean)strName://要加入到郵件中的收件人名稱。
fType:OutlookMailItemType//屬性設(shè)置。
SendMail(OptionalblnShowMailFirstAsBoolean)blnShowMailFirst://發(fā)送前是否顯示Outlook郵件信息。如果不能解析收件人的地址,讓代碼將它設(shè)置為True。
私有方法:
InitializeOutlook()CreateMail()
公共屬性:
MailSubject:(Writeonly,String)MailMessage:(Writeonly,String)MailAttachments:(Writeonly,String)94復旦大學計算機科學技術(shù)學院軟件工程(第二版)例如,下面復旦大學計算機科學技術(shù)學院軟件工程(第二版)通過在程序中添加一些空格、空行和縮進等技巧,幫助人們從視覺上看清程序的結(jié)構(gòu)例如,通過縮進技巧可清晰地觀察到程序的嵌套層次,同時還容易發(fā)現(xiàn)諸如“遺漏end”那樣的錯誤視覺組織95復旦大學計算機科學技術(shù)學院軟件工程(第二版)通過在程序復旦大學計算機科學技術(shù)學院軟件工程(第二版)
IF(…)THEN
IF(…)THEN
……
ELSE
……
ENDIF
……
ELSE
……
ENDIF96復旦大學計算機科學技術(shù)學院軟件工程(第二版)IF(復旦大學計算機科學技術(shù)學院軟件工程(第二版)自然的程序段之間可用空行隔開可通過添加空格使語句成分清晰,如
(A<-17)ANDNOT(B<=49)ORC
可寫成
(A<-17)ANDNOT(B<=49)ORC也可以通過添加括號突出運算的優(yōu)先級,避免發(fā)生運算的錯誤,如
a**(b**c)97復旦大學計算機科學技術(shù)學院軟件工程(第二版)自然的程序復旦大學計算機科學技術(shù)學院軟件工程(第二版)放置大括號一般首選的方法是K&R方法:把左括號放在行尾,右括號放在行首。如:if
(X)
{Y}定義函數(shù)時應(yīng)當把左右括號都放在行首,如:int
F(int
x){//}注意,右括號所在的行不應(yīng)當有其它語句,除非跟隨著一個條件判斷。也就是do-while語句中的“while”和if-else語句中的“else”。例如:do
{body
of
do-loop}
while
(condition);if
(x
==
y)
{…
}
else
if
(x
>
y)
{...}
else
{…
}98復旦大學計算機科學技術(shù)學院軟件工程(第二版)放置大括號復旦大學計算機科學技術(shù)學院軟件工程(第二版)數(shù)據(jù)說明為了使程序中數(shù)據(jù)說明更易于理解和維護,可采用以下風格:數(shù)據(jù)說明的次序應(yīng)當規(guī)范化說明語句中變量安排有序化使用注解說明復雜數(shù)據(jù)結(jié)構(gòu)99復旦大學計算機科學技術(shù)學院軟件工程(第二版)數(shù)據(jù)說明為復旦大學計算機科學技術(shù)學院軟件工程(第二版)數(shù)據(jù)說明的次序應(yīng)當規(guī)范化數(shù)據(jù)說明次序規(guī)范化,使數(shù)據(jù)屬性容易查找,也有利于測試,排錯和維護原則上,數(shù)據(jù)說明的次序與語法無關(guān),其次序是任意的。但出于閱讀、理解和維護的需要,最好使其規(guī)范化,使說明的先后次序固定100復旦大學計算機科學技術(shù)學院軟件工程(第二版)數(shù)據(jù)說明的復旦大學計算機科學技術(shù)學院軟件工程(第二版)說明語句中變量安排有序化當多個變量名在一個說明語句中說明時,可以將這些變量按字母的順序排列,以便于查找101復旦大學計算機科學技術(shù)學院軟件工程(第二版)說明語句中復旦大學計算機科學技術(shù)學院軟件工程(第二版)使用注釋說明復雜數(shù)據(jù)結(jié)構(gòu)如果設(shè)計了一個復雜的數(shù)據(jù)結(jié)構(gòu),應(yīng)當使用注釋來說明在程序?qū)崿F(xiàn)時這個數(shù)據(jù)結(jié)構(gòu)的固有特點例如用戶自定義的數(shù)據(jù)類型,應(yīng)當在注釋中做必要的補充說明102復旦大學計算機科學技術(shù)學院軟件工程(第二版)使用注釋說復旦大學計算機科學技術(shù)學院軟件工程(第二版)語句構(gòu)造編碼階段的主要任務(wù)就是書寫程序語句。有關(guān)書寫語句的原則有幾十種,總起來說,希望每條語句盡可能簡單明了,能直截了當?shù)胤从吵绦騿T的意圖,不能為了片面追求效率而使語句復雜化。常用的規(guī)則如下:103復旦大學計算機科學技術(shù)學院軟件工程(第二版)語句構(gòu)造編復旦大學計算機科學技術(shù)學院軟件工程(第二版)1.在一行內(nèi)只寫一條語句在一行內(nèi)只寫一條語句,并且采取適當添加空格的辦法,使程序的邏輯和功能變得更加明確。許多程序設(shè)計語言允許在一行內(nèi)寫多個語句。但這種方式會使程序可讀性變差。因而不可取。104復旦大學計算機科學技術(shù)學院軟件工程(第二版)1.在一復旦大學計算機科學技術(shù)學院軟件工程(第二版)2.
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年大學中醫(yī)康復技術(shù)(中醫(yī)康復基礎(chǔ))試題及答案
- 2025年高職食品營養(yǎng)與檢測(食品營養(yǎng)成分分析)試題及答案
- 2025年中職第二學年(烹飪工藝與營養(yǎng))湯羹制作工藝試題及答案
- 禁毒宣傳培訓課件
- 國內(nèi)頂尖AI實驗室巡禮
- 團隊伙伴介紹話術(shù)
- 2026廣西壯族自治區(qū)山口紅樹林生態(tài)國家級自然保護區(qū)管理中心招聘1人備考題庫及完整答案詳解
- 2025-2026學年北京市石景山區(qū)高三上學期期末英語試題
- 2026廣東佛山順德區(qū)龍江中學招聘臨聘教師備考題庫及答案詳解(奪冠系列)
- 2026浙江溫州市平陽縣海大海洋產(chǎn)業(yè)創(chuàng)新研究院招聘3人備考題庫附答案詳解
- 統(tǒng)編版語文一年級上冊無紙化考評-趣味樂考 玩轉(zhuǎn)語文 課件
- 2025年新水利安全員b證考試試題及答案
- 高壓氧進修課件
- 2025無人機物流配送網(wǎng)絡(luò)建設(shè)與運營效率提升研究報告
- 鋁錠采購正規(guī)合同范本
- 城市更新能源高效利用方案
- 2025 精神護理人員職業(yè)倦怠預防課件
- 春播行動中藥貼敷培訓
- 水泵維修安全知識培訓課件
- 木材采伐安全生產(chǎn)培訓課件
- DB1301∕T492-2023 電動車停放充電消防安全技術(shù)規(guī)范
評論
0/150
提交評論