軟件工程第7章編寫(xiě)程序_第1頁(yè)
軟件工程第7章編寫(xiě)程序_第2頁(yè)
軟件工程第7章編寫(xiě)程序_第3頁(yè)
軟件工程第7章編寫(xiě)程序_第4頁(yè)
軟件工程第7章編寫(xiě)程序_第5頁(yè)
已閱讀5頁(yè),還剩20頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第7章編寫(xiě)程序1本章要點(diǎn)27.17.27.37.47.5什么是好程序程序設(shè)計(jì)風(fēng)格程序設(shè)計(jì)指導(dǎo)程序排錯(cuò)程序文檔7.1什么是好程序:質(zhì)量觀3用戶質(zhì)量觀產(chǎn)品質(zhì)量觀生產(chǎn)者質(zhì)量觀經(jīng)濟(jì)價(jià)值質(zhì)量觀理想的質(zhì)量觀7.1

什么是好程序:標(biāo)準(zhǔn)4能夠工作,即能夠滿足用戶的使用要求可靠性高使用方便簡(jiǎn)單、容易理解易于維護(hù)和修改高效率易移植性可重用質(zhì)量不是絕對(duì)的,質(zhì)量因素往往相互矛盾,需要均衡7.2

程序設(shè)計(jì)風(fēng)格5程序設(shè)計(jì)風(fēng)格的作用就是使代碼容易讀風(fēng)格良好的代碼更容易閱讀和理解,其中的錯(cuò)誤也更少KIS(Keep

it

Simple)7.2.1

名字6變量命名匈牙利標(biāo)記法[Prefix]-BaseTag-Name變量名字的兩種觀點(diǎn)所有變量都要起一個(gè)有意義的名字,名字由多個(gè)單詞組成,每個(gè)單詞的首字母應(yīng)該大寫(xiě)全局變量和類的成員變量使用說(shuō)明性的、有意義的名字,而局部變量可以使用短名字示例m_pHandlerg_bInSearchedpszName類名類名一律以C開(kāi)頭,并且緊接著C的第一個(gè)字母要大寫(xiě)示例classCStudentclass

CDlgLogin:CDialog7函數(shù)和過(guò)程名函數(shù)和過(guò)程一般采用具有動(dòng)作性的名字。對(duì)于返回布爾類型值的函數(shù),應(yīng)該從函數(shù)名稱可以清楚地看出其返回值的情況。示例

SetValue()LargeOf()8數(shù)據(jù)庫(kù)表和字段名、消息名和常量名應(yīng)該取一個(gè)有意義的名字在多人協(xié)同開(kāi)發(fā)同一個(gè)程序時(shí),最好全部采用大寫(xiě)單詞加下劃線來(lái)組成97.2.2

表達(dá)式和語(yǔ)句10用縮行顯示程序結(jié)構(gòu)用加括號(hào)的方式排除二義性要清晰清晰的代碼,而非最巧妙的代碼當(dāng)心運(yùn)算符的副作用把數(shù)定義稱常量利用sizeof()計(jì)算對(duì)象的大小例如,有一段排序程序FOR

I:=1

TO

N-1

DO

BEGIN

T:=I;FOR

J:=I+1

TO

N

DO

IF

A[J]<A[T]THEN

T:=J;IF

T≠I(mǎi)

THEN

BEGINWORK:=A[T];A[T]:=A[I];A[I]:=WORK;END

END;由于一行中包括了多個(gè)語(yǔ)句,掩蓋了程序的

循環(huán)結(jié)構(gòu)和條件結(jié)構(gòu),使其可讀性變得很差。11FOR

I:=1

TO N-1

DO //改進(jìn)布局

BEGINT:=I;FOR

J:=I+1

TO

N

DOIF

A[J]<A[T]

THEN

T:=J;IF

T≠I(mǎi)

THENBEGINWORK:=A[T];A[T]:=A[I];A[I]:=WORK;ENDEND;12清晰性13程序編寫(xiě)首先應(yīng)當(dāng)考慮清晰性,不要刻

意追求技巧性,使程序編寫(xiě)得過(guò)于緊湊。例如,有一個(gè)用Pascal語(yǔ)句寫(xiě)出的程序段:A[I]:=A[I]+A[T];A[T]:=A[I]-A[T];A[I]:=A[I]-A[T];實(shí)際上,這段程序的功能就是交換A[I]和A[T]中的內(nèi)容。目的是為了節(jié)省一個(gè)工作單元。如果改一下:WORK:=A[T];A[T]:=A[I];A[I]:=WORK;就能讓讀者一目了然了。14程序編寫(xiě)得要簡(jiǎn)單,寫(xiě)清楚,直截了當(dāng)?shù)卣f(shuō)明程序員的用意。例如,DO

5

I=1,

NDO

5

J=1,

N5 V(I,

J)

(I/J)

*

(J/I)除法運(yùn)算(/)在除數(shù)和被除數(shù)都

是整型量時(shí),其結(jié)果只取整數(shù)部分,而得到整型量。15當(dāng)I<J時(shí),

I/J=016當(dāng)J<I時(shí),

J

/

I=

0得到的數(shù)組當(dāng)I≠J時(shí)V(I,

J)

=

(I/J)*

(J/I)

=0當(dāng)I=J時(shí)V(I,

J)=(I/J)

*(J/I)=

1這樣得到的結(jié)果V是一個(gè)單位矩陣。寫(xiě)成以下的形式,就能讓讀者直接了解程序編寫(xiě)者的意圖。DO

5

I=1,NDO

5

J=1,NIF

(

I

.EQ.

J

)

THENV(

I,

J

)

1.0ELSEV(

I,

J

)

0.0ENDIF5

CONTINUE174.除非對(duì)效率有特殊的要求,程序編寫(xiě)要做到清晰第一,效率第二。不要為了追求效率而喪失了清晰性。事實(shí)上,程序效率的提高主要應(yīng)通過(guò)選擇高效的算法來(lái)實(shí)現(xiàn)。5.首先要保證程序正確,然后才要求提高速度。反過(guò)來(lái)說(shuō),在使程序高速運(yùn)行時(shí),首先要保證它是正確的。187.2.3

程序注釋19首部注釋說(shuō)明程序的名稱、目的、編寫(xiě)者、位置、作用、數(shù)據(jù)結(jié)構(gòu)和算法、修改情況不要大談明顯的東西給函數(shù)和全局?jǐn)?shù)據(jù)加注釋說(shuō)明接口、功能、維護(hù)情況、與其它模塊的關(guān)系不要與代碼相矛盾7.2.4

程序風(fēng)格標(biāo)準(zhǔn)20針對(duì)程序員的標(biāo)準(zhǔn)包括代碼的組織和封裝、程序注釋的內(nèi)容和格式、變量和函數(shù)的命名等針對(duì)他人的標(biāo)準(zhǔn)對(duì)代碼的組織、格式和文檔資料提出要求Microsoft的程序設(shè)計(jì)標(biāo)準(zhǔn)7.3

程序設(shè)計(jì)指導(dǎo)21控制結(jié)構(gòu)限制或避免使用goto語(yǔ)句(P148)模塊化通用性防御性算法與數(shù)據(jù)結(jié)構(gòu)一般性指導(dǎo)保持簡(jiǎn)單:先簡(jiǎn)單再優(yōu)化設(shè)計(jì)和實(shí)現(xiàn)相匹配軟件重用7.4

程序排錯(cuò)22排錯(cuò)系統(tǒng)能夠幫助發(fā)現(xiàn)程序出錯(cuò)的位置和狀態(tài)檢查堆棧軌跡設(shè)置斷點(diǎn)單步執(zhí)行查看和設(shè)置變量的當(dāng)前值可重現(xiàn)錯(cuò)誤的排除分而治之檢查最近的改動(dòng)不要被同一塊石頭絆倒兩次不可重現(xiàn)錯(cuò)誤的排除把錯(cuò)誤弄成可重現(xiàn)的圖示化把錯(cuò)誤解釋給別人聽(tīng)237.5

程序文檔24一個(gè)大的

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論