![軟件工程第7章編寫(xiě)程序_第1頁(yè)](http://file4.renrendoc.com/view/7f219064d7906b95152c8c4d64ad3ecd/7f219064d7906b95152c8c4d64ad3ecd1.gif)
![軟件工程第7章編寫(xiě)程序_第2頁(yè)](http://file4.renrendoc.com/view/7f219064d7906b95152c8c4d64ad3ecd/7f219064d7906b95152c8c4d64ad3ecd2.gif)
![軟件工程第7章編寫(xiě)程序_第3頁(yè)](http://file4.renrendoc.com/view/7f219064d7906b95152c8c4d64ad3ecd/7f219064d7906b95152c8c4d64ad3ecd3.gif)
![軟件工程第7章編寫(xiě)程序_第4頁(yè)](http://file4.renrendoc.com/view/7f219064d7906b95152c8c4d64ad3ecd/7f219064d7906b95152c8c4d64ad3ecd4.gif)
![軟件工程第7章編寫(xiě)程序_第5頁(yè)](http://file4.renrendoc.com/view/7f219064d7906b95152c8c4d64ad3ecd/7f219064d7906b95152c8c4d64ad3ecd5.gif)
版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 44931-2024納米技術(shù)吸入毒性研究中金屬納米顆粒制備蒸發(fā)-冷凝法
- PB-22-5-Hydroxyquinoline-isomer-生命科學(xué)試劑-MCE-7761
- 1-Boc-4-carboxymethyl-piperazine-生命科學(xué)試劑-MCE-6310
- 2025年度公共停車(chē)場(chǎng)車(chē)位使用權(quán)抵押合同范例
- 二零二五年度離婚后小孩撫養(yǎng)費(fèi)及生活費(fèi)用監(jiān)管協(xié)議
- 二零二五年度早餐車(chē)餐飲合作經(jīng)營(yíng)協(xié)議
- 施工現(xiàn)場(chǎng)施工排水排泥管理制度
- 施工現(xiàn)場(chǎng)施工防地震災(zāi)害制度
- 教育領(lǐng)域中的學(xué)生心理健康研究
- 小學(xué)數(shù)學(xué)新課程教學(xué)法復(fù)習(xí)題課件
- 2024年廣東省公務(wù)員錄用考試《行測(cè)》真題及答案解析
- 小學(xué)數(shù)學(xué)六年級(jí)解方程練習(xí)300題及答案
- 光伏十林業(yè)可行性報(bào)告
- 公路工程安全風(fēng)險(xiǎn)辨識(shí)與防控手冊(cè)
- 骨科手術(shù)糾紛案例分析課件
- 2022年廣西高考英語(yǔ)真題及答案(全國(guó)甲卷)
- 安全生產(chǎn)責(zé)任清單(加油站)
- 動(dòng)物檢疫技術(shù)-動(dòng)物檢疫的程序(動(dòng)物防疫與檢疫技術(shù))
- 煤礦復(fù)工復(fù)產(chǎn)專項(xiàng)安全風(fēng)險(xiǎn)辨識(shí)
- DB42T 1049-2015房產(chǎn)測(cè)繪技術(shù)規(guī)程
- 《民航服務(wù)溝通技巧》教案第8課重要旅客服務(wù)溝通
評(píng)論
0/150
提交評(píng)論