第8講軟件編碼_第1頁(yè)
第8講軟件編碼_第2頁(yè)
第8講軟件編碼_第3頁(yè)
第8講軟件編碼_第4頁(yè)
第8講軟件編碼_第5頁(yè)
已閱讀5頁(yè),還剩18頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、湖南理工學(xué)院-何帆1第第8講講 軟件編碼軟件編碼湖南理工學(xué)院-何帆2n結(jié)構(gòu)化程序設(shè)計(jì)結(jié)構(gòu)化程序設(shè)計(jì)n程序設(shè)計(jì)語(yǔ)言的選擇程序設(shè)計(jì)語(yǔ)言的選擇n程序設(shè)計(jì)風(fēng)格程序設(shè)計(jì)風(fēng)格主要內(nèi)容湖南理工學(xué)院-何帆3 結(jié)構(gòu)化程序設(shè)計(jì)結(jié)構(gòu)化程序設(shè)計(jì)結(jié)構(gòu)化程序設(shè)計(jì)結(jié)構(gòu)化程序設(shè)計(jì)(Structured Programming ,SP)n結(jié)構(gòu)化程序設(shè)計(jì)由迪克斯特拉(E.W.dijkstra)在1969年提出,是以模塊化設(shè)計(jì)為中心,將待開(kāi)發(fā)的軟件系統(tǒng)劃分為若干個(gè)相互獨(dú)立的模塊。n僅采用順序、選擇、重復(fù)三種基本控制結(jié)構(gòu)構(gòu)造程序;每種基本結(jié)構(gòu)只有一個(gè)入口、一個(gè)出口;n將這三種基本控制結(jié)構(gòu)根據(jù)程序的邏輯,嵌套或組合成結(jié)構(gòu)化程序,完成預(yù)

2、定的功能。n結(jié)構(gòu)化程序設(shè)計(jì)的基本思想是采用自頂向下,逐步求精的程序設(shè)計(jì)方法和單入口單出口的控制結(jié)構(gòu)。湖南理工學(xué)院-何帆4結(jié)構(gòu)化程序設(shè)計(jì)結(jié)構(gòu)化程序設(shè)計(jì)的特點(diǎn):結(jié)構(gòu)化程序設(shè)計(jì)的特點(diǎn):n源程序有清晰性,并能較好地適合自頂向下或自底向上的程序設(shè)計(jì)技術(shù)。n在詳細(xì)設(shè)計(jì)階段,使系統(tǒng)結(jié)構(gòu)具有模塊化和清晰性的特性。n在軟件編碼階段,使軟件易于理解、修改,便于重復(fù)使用。湖南理工學(xué)院-何帆5程序設(shè)計(jì)語(yǔ)言的選擇程序設(shè)計(jì)語(yǔ)言的選擇1. 程序設(shè)計(jì)語(yǔ)言的分類(lèi)程序設(shè)計(jì)語(yǔ)言的分類(lèi)(1)面向機(jī)器語(yǔ)言)面向機(jī)器語(yǔ)言 機(jī)器語(yǔ)言和匯編語(yǔ)言。機(jī)器語(yǔ)言和匯編語(yǔ)言。(2)高級(jí)程序設(shè)計(jì)語(yǔ)言)高級(jí)程序設(shè)計(jì)語(yǔ)言 C語(yǔ)言語(yǔ)言 Basic語(yǔ)言語(yǔ)言 C

3、+ JAVA C#等等等等湖南理工學(xué)院-何帆6程序設(shè)計(jì)語(yǔ)言的選擇程序設(shè)計(jì)語(yǔ)言的選擇2. 高級(jí)語(yǔ)言選用的實(shí)用標(biāo)準(zhǔn)高級(jí)語(yǔ)言選用的實(shí)用標(biāo)準(zhǔn)(1)項(xiàng)目的應(yīng)用領(lǐng)域)項(xiàng)目的應(yīng)用領(lǐng)域n科學(xué)計(jì)算:科學(xué)計(jì)算:FORTRAN、Cn數(shù)據(jù)處理和數(shù)據(jù)庫(kù)應(yīng)用:數(shù)據(jù)處理和數(shù)據(jù)庫(kù)應(yīng)用:COBOL、SQLn實(shí)時(shí)處理:匯編、實(shí)時(shí)處理:匯編、Adan人工智能:人工智能:LISP、PROLOGn面向?qū)ο螅好嫦驅(qū)ο螅篊+、Smalltalk、Eiffel、C#、java n第四代語(yǔ)言:第四代語(yǔ)言:Informix-4GL、Ada(2)軟件開(kāi)發(fā)環(huán)境:)軟件開(kāi)發(fā)環(huán)境:VB、VC、Delphi(3)根據(jù)系統(tǒng)用戶(hù)的要求來(lái)選擇)根據(jù)系統(tǒng)用戶(hù)的要

4、求來(lái)選擇(4)軟件開(kāi)發(fā)人員的知識(shí))軟件開(kāi)發(fā)人員的知識(shí)湖南理工學(xué)院-何帆7程序設(shè)計(jì)風(fēng)格程序設(shè)計(jì)風(fēng)格能否在能否在15分鐘內(nèi)看明白下面代碼的意圖?分鐘內(nèi)看明白下面代碼的意圖?int M(int *pV, int L)int iM=pV0;for(int i=1;iL;i+)if(iMpVi)iM=pVi;return iM;湖南理工學(xué)院-何帆8程序設(shè)計(jì)風(fēng)格程序設(shè)計(jì)風(fēng)格程序內(nèi)部文檔書(shū)寫(xiě)規(guī)則程序內(nèi)部文檔書(shū)寫(xiě)規(guī)則n選用含義鮮明的標(biāo)識(shí)符符號(hào)名即標(biāo)識(shí)符,包括模塊名、變量名。常量名、標(biāo)號(hào)名、子程序名等。這些名字應(yīng)能反映它所代表的實(shí)際東西,應(yīng)有一定的實(shí)際意義,使其能夠見(jiàn)名知意,有助于對(duì)程序功能的理解。 例如: 表

5、示次數(shù)的量用times,表示總量用total,表示平均值用average,表示和的量用sum等。湖南理工學(xué)院-何帆9程序設(shè)計(jì)風(fēng)格程序設(shè)計(jì)風(fēng)格例如例如int M(int *pV, int L)int iM=pV0;for(int i=1;iL;i+)if(iMpVi)iM=pVi;return iM;int Max(int *pVector, int Len)int iMax= pVector0;for(int i=1;iLen;i+)if(iMax pVectori)iMax= pVectori;return iMax;湖南理工學(xué)院-何帆10程序設(shè)計(jì)風(fēng)格程序設(shè)計(jì)風(fēng)格注解注解n注釋是程序員與日后

6、的程序讀者之間通信的重要手段。正確的注釋能夠幫助讀者理解程序,可為后續(xù)階段進(jìn)行測(cè)試和維護(hù),提供明確的指導(dǎo)。因此注釋決不是可有可無(wú)的。n一些正規(guī)的程序文本中,注釋行的數(shù)量占到整個(gè)源程序的13到12。n注釋分為序言性注釋和功能性注釋。湖南理工學(xué)院-何帆11序言性注釋序言性注釋通常置于每個(gè)程序模塊的開(kāi)頭部分,它應(yīng)當(dāng)給出程序的整體說(shuō)明,對(duì)于理解程序本身具有引導(dǎo)作用。有些軟件開(kāi)發(fā)部門(mén)對(duì)序言性注釋作了明確而嚴(yán)格的規(guī)定,要求程序編制者逐項(xiàng)列出。有關(guān)項(xiàng)目包括:p程序標(biāo)題;p有關(guān)本模塊功能和目的的說(shuō)明;p主要算法;p接口說(shuō)明:包括調(diào)用形式,參數(shù)描述,子程序清單;p有關(guān)數(shù)據(jù)描述:重要的變量及其用途,約束或限制條件

7、,以及其它有關(guān)信息p模塊位置:在哪一個(gè)源文件中,或隸屬于哪一個(gè)軟件包; 湖南理工學(xué)院-何帆12功能性注釋書(shū)寫(xiě)功能性注釋?zhuān)⒁庖韵聨c(diǎn):n用于描述一段程序,而不是每一個(gè)語(yǔ)句;n用縮進(jìn)和空行,使程序與注釋容易區(qū)別;n注釋要正確。n有合適的,有助于記憶的標(biāo)識(shí)符和恰當(dāng)?shù)淖⑨專(zhuān)湍艿玫奖容^好的源程序內(nèi)部的文檔。有關(guān)設(shè)計(jì)的說(shuō)明,也可作為注釋?zhuān)度朐闯绦蝮w內(nèi)。湖南理工學(xué)院-何帆13程序設(shè)計(jì)風(fēng)格程序設(shè)計(jì)風(fēng)格適當(dāng)?shù)淖⒔膺m當(dāng)?shù)淖⒔?求整數(shù)數(shù)組的最大值/參數(shù)pVector 指向數(shù)組的首地址的指針/參數(shù)Len 數(shù)組的長(zhǎng)度int Max(int *pVector, int Len)int iMax=pVector0;

8、/定義最大值初始為第一個(gè) for(int i=1;iLen;i+) /把最大值和每個(gè)值比較,如果iMax比數(shù)組的值小,則用大的值替換 if(iMaxpVectori) iMax=pVectori;return iMax;/返回最大值湖南理工學(xué)院-何帆14程序階梯式布局n一個(gè)程序如果寫(xiě)得密密麻麻,分不出層次來(lái)常常是很難看懂的。優(yōu)秀的程序員在利用空格、空行和移行的技巧進(jìn)行階梯式的布局??梢允钩绦虻慕Y(jié)構(gòu)清晰,易懂。n在程序的錯(cuò)誤查找中能方面的找出出問(wèn)題的地方。湖南理工學(xué)院-何帆15程序設(shè)計(jì)風(fēng)格程序設(shè)計(jì)風(fēng)格適當(dāng)?shù)淖⒔膺m當(dāng)?shù)淖⒔?求整數(shù)數(shù)組的最大值/參數(shù)pVector 指向數(shù)組的首地址的指針/參數(shù)Len

9、 數(shù)組的長(zhǎng)度int Max(int *pVector, int Len) int iMax=pVector0;/定義最大值初始為第一個(gè) for(int i=1;iLen;i+) /把最大值和每個(gè)值比較,如果iMax比數(shù)組的值小,則用大的值替換 if(iMaxpVectori) iMax=pVectori; return iMax;/返回最大值湖南理工學(xué)院-何帆16程序設(shè)計(jì)風(fēng)格程序設(shè)計(jì)風(fēng)格源程序文檔編寫(xiě)規(guī)則n數(shù)據(jù)說(shuō)明易于理解,便于查閱數(shù)據(jù)說(shuō)明的次序應(yīng)標(biāo)準(zhǔn)化對(duì)多個(gè)變量加以說(shuō)明時(shí),按字母順序排列使用一個(gè)復(fù)雜的數(shù)據(jù)結(jié)構(gòu)時(shí),最好注釋變量說(shuō)明要完整,變量的類(lèi)型、長(zhǎng)度、存儲(chǔ)及初始化要正確湖南理工學(xué)院-何帆1

10、7程序設(shè)計(jì)風(fēng)格程序設(shè)計(jì)風(fēng)格源程序文檔編寫(xiě)規(guī)則n語(yǔ)句構(gòu)造不要為了節(jié)省空間把多個(gè)語(yǔ)句寫(xiě)在同一行盡量避免復(fù)雜的條件測(cè)試盡量減少對(duì)“非”條件的測(cè)試對(duì)于多分支語(yǔ)句,盡量把可能性大的情況放在前面,加快運(yùn)算時(shí)間避免大量使用循環(huán)嵌套和條件嵌套湖南理工學(xué)院-何帆18程序設(shè)計(jì)風(fēng)格程序設(shè)計(jì)風(fēng)格源程序文檔編寫(xiě)規(guī)則n語(yǔ)句構(gòu)造使用括號(hào)使邏輯表達(dá)式或算術(shù)表達(dá)式的運(yùn)算次序清晰循環(huán)要有終止條件,不要出現(xiàn)死循環(huán),也要避免不可能被執(zhí)行的循環(huán)使用括號(hào)清晰地表達(dá)算術(shù)表達(dá)式和邏輯表達(dá)式的運(yùn)算順序。不要刻意追求技巧性或程序執(zhí)行速度,使程序編寫(xiě)得過(guò)于緊湊。湖南理工學(xué)院-何帆19程序設(shè)計(jì)風(fēng)格程序設(shè)計(jì)風(fēng)格源程序文檔編寫(xiě)規(guī)則n輸入輸出語(yǔ)句要合理對(duì)輸入數(shù)據(jù)進(jìn)行校驗(yàn)對(duì)重要的輸入項(xiàng)組合的合法性加檢查語(yǔ)句提示輸入的請(qǐng)求,簡(jiǎn)單說(shuō)明可用的選擇或邊界值輸入格式簡(jiǎn)單、一致使用數(shù)據(jù)輸入結(jié)束標(biāo)志輸出信息要正確、報(bào)表要符合客戶(hù)的要求湖南理工學(xué)院-何帆20程序設(shè)計(jì)風(fēng)格程序設(shè)計(jì)風(fēng)格源程序文檔編寫(xiě)規(guī)則n程序效率滿(mǎn)足用戶(hù)需求在硬件不能滿(mǎn)足需要時(shí),很大程度上會(huì)讓你對(duì)程序進(jìn)行優(yōu)化,提高效率。例如:判斷大的整數(shù)N的是否為素?cái)?shù)?一般思路:依次把N對(duì)2n-1的整數(shù)取模,只要有一個(gè)模為0,則不是素?cái)?shù)。如果沒(méi)有一個(gè)為0,則為素?cái)?shù)。湖南理工學(xué)院-何帆21程序設(shè)計(jì)風(fēng)格程序設(shè)計(jì)風(fēng)格源程序文檔編寫(xiě)規(guī)則n程序效率滿(mǎn)足用戶(hù)需求優(yōu)化方案:

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論