第2章 程序設(shè)計(jì)基礎(chǔ)
2.1 程序設(shè)計(jì)方法與風(fēng)格
就程序設(shè)計(jì)方法和技術(shù)的發(fā)展而言,主要經(jīng)過了結(jié)構(gòu)化程序設(shè)計(jì)和面向?qū)ο蟮某绦蛟O(shè)計(jì)階段。
一般來講。程序設(shè)計(jì)風(fēng)格是指編寫程序時(shí)所表現(xiàn)出的特點(diǎn)、習(xí)慣和邏輯思路。程序是由人來編寫的,為了測(cè)試和維護(hù)程序,往往還要新聞?dòng)浾吆透櫝绦?,因此程序設(shè)計(jì)的風(fēng)格總體而言應(yīng)該強(qiáng)調(diào)得意和清晰,程序必須是可以理解的。
要形成良好的程序設(shè)計(jì)風(fēng)格,主要應(yīng)注重和考慮下述一些因素。
1、源程序文檔化
2、源程序文檔化應(yīng)考慮如下幾點(diǎn):
(1) 符號(hào)名的命名:符號(hào)名的命名應(yīng)具有一定的實(shí)際含義,以便于對(duì)程序功能的理解。
(2) 程序注釋:下克的注釋能夠幫助讀者理解程序。
(3) 禮堂組織:為使程序的結(jié)構(gòu)一目了然,可以在程序中利用空格、空行、縮進(jìn)待技巧使程序?qū)哟吻逦?BR> 2、數(shù)據(jù)說明的方法
在編寫程序時(shí),需要注意數(shù)據(jù)說明的風(fēng)格,以便使程序中的數(shù)據(jù)說明更易于理解和維護(hù)。一般應(yīng)注意如下幾點(diǎn):
(1) 數(shù)據(jù)說明的次序規(guī)范化鑒于程序理解、新聞?dòng)浾吆途S護(hù)的需要,使數(shù)據(jù)說明次序固定,可以使數(shù)據(jù)的發(fā)生容易查找,也有利于測(cè)試、排錯(cuò)和維護(hù)。
(2) 說明語句中變量安排有序化。當(dāng)一個(gè)說明語句說明多個(gè)變量時(shí),變量按照字母順序?yàn)楹谩?BR> (3) 使用注釋來說明復(fù)雜數(shù)據(jù)的結(jié)構(gòu)。
3、 語句的結(jié)構(gòu)
程序應(yīng)該簡(jiǎn)單易懂,語句構(gòu)造應(yīng)該簡(jiǎn)單直接,不應(yīng)該為提高效率而把語句復(fù)雜化。一般應(yīng)注意如下:
(1) 在一行內(nèi)只寫一條語句;
(2) 程序編寫應(yīng)優(yōu)先考慮清晰性;
(3) 除非對(duì)效率有特殊要求,程序編寫要做清晰第一,效率第二;
(4) 首先要保證程序正確,然后才要求提高速度;
(5) 避免使用臨時(shí)變量而使程序的可讀性下降;
(6) 避免不必要的轉(zhuǎn)移;
(7) 盡可能使用庫函數(shù);
(8) 避免采用復(fù)雜的條件語句;
(9) 盡量減少使用“否定”條件的條件語句;
(10) 數(shù)據(jù)結(jié)構(gòu)要有利于程序的簡(jiǎn)化;
(11) 要模塊化,使模塊功能盡可能單一化;
(12) 利用住處隱蔽,確保每一個(gè)模塊的獨(dú)立性;
(13) 從數(shù)據(jù)出發(fā)去構(gòu)造程序;
(14) 不要修補(bǔ)不好的程序,要重新編寫;
4、輸入和輸出
無論是批處理的輸入和輸出方式,還是交互式的輸入和輸出方式,在設(shè)計(jì)和編程時(shí)都應(yīng)該考慮如下原則:
(1) 對(duì)所有的輸入數(shù)據(jù)都要檢驗(yàn)數(shù)據(jù)的合法性;
(2) 檢查輸入項(xiàng)的各種重要組合的合理性;
(3) 輸入格式要簡(jiǎn)單,以使得輸入的步驟和操作盡可能簡(jiǎn)單;
(4) 輸入數(shù)據(jù)時(shí),應(yīng)允許使用自由格式;
(5) 應(yīng)允許缺省值;
(6) 輸入一批數(shù)據(jù)時(shí),使用輸入結(jié)束標(biāo)志;
(7) 在以交互式輸入/輸出方式進(jìn)行輸入時(shí),要在屏幕上使用提示符明確提示輸入的請(qǐng)求,同時(shí)在數(shù)據(jù)輸入過程中的輸入結(jié)束時(shí),應(yīng)在屏幕上給出狀態(tài)信息。
(8) 當(dāng)程序設(shè)計(jì)語言對(duì)輸入格式有嚴(yán)格要求時(shí),應(yīng)保持輸入格式與輸入語句的一致性;給所有的輸入出加注釋,并設(shè)計(jì)輸出報(bào)表格式。
2.2結(jié)構(gòu)化程序設(shè)計(jì)
一、結(jié)構(gòu)化程序設(shè)計(jì)的原則
結(jié)構(gòu)化程序設(shè)計(jì)方法的主要原則可以概括為自頂向下,逐步求精,模塊化,限制使用goto語句。
1、 自頂向下:程序設(shè)計(jì)時(shí),應(yīng)先考慮總體,后考慮細(xì)節(jié);先考慮全局目標(biāo),后考慮局部目標(biāo)。不要一開始就過多追求眾多的細(xì)節(jié),先從最上層總目標(biāo)開始設(shè)計(jì),逐步使問題具體化。
2、 逐步求精:對(duì)復(fù)雜問題,應(yīng)設(shè)計(jì)一些子目標(biāo)作過渡,逐步細(xì)化。
3、 模塊化:一個(gè)復(fù)雜問題,肯定是由若干稍簡(jiǎn)單的問題構(gòu)成。模塊化是把程序要解決的總目標(biāo)分解為分目標(biāo),再進(jìn)一步分解為具體的小目標(biāo),把每個(gè)小目標(biāo)稱為一個(gè)模塊。
2.1 程序設(shè)計(jì)方法與風(fēng)格
就程序設(shè)計(jì)方法和技術(shù)的發(fā)展而言,主要經(jīng)過了結(jié)構(gòu)化程序設(shè)計(jì)和面向?qū)ο蟮某绦蛟O(shè)計(jì)階段。
一般來講。程序設(shè)計(jì)風(fēng)格是指編寫程序時(shí)所表現(xiàn)出的特點(diǎn)、習(xí)慣和邏輯思路。程序是由人來編寫的,為了測(cè)試和維護(hù)程序,往往還要新聞?dòng)浾吆透櫝绦?,因此程序設(shè)計(jì)的風(fēng)格總體而言應(yīng)該強(qiáng)調(diào)得意和清晰,程序必須是可以理解的。
要形成良好的程序設(shè)計(jì)風(fēng)格,主要應(yīng)注重和考慮下述一些因素。
1、源程序文檔化
2、源程序文檔化應(yīng)考慮如下幾點(diǎn):
(1) 符號(hào)名的命名:符號(hào)名的命名應(yīng)具有一定的實(shí)際含義,以便于對(duì)程序功能的理解。
(2) 程序注釋:下克的注釋能夠幫助讀者理解程序。
(3) 禮堂組織:為使程序的結(jié)構(gòu)一目了然,可以在程序中利用空格、空行、縮進(jìn)待技巧使程序?qū)哟吻逦?BR> 2、數(shù)據(jù)說明的方法
在編寫程序時(shí),需要注意數(shù)據(jù)說明的風(fēng)格,以便使程序中的數(shù)據(jù)說明更易于理解和維護(hù)。一般應(yīng)注意如下幾點(diǎn):
(1) 數(shù)據(jù)說明的次序規(guī)范化鑒于程序理解、新聞?dòng)浾吆途S護(hù)的需要,使數(shù)據(jù)說明次序固定,可以使數(shù)據(jù)的發(fā)生容易查找,也有利于測(cè)試、排錯(cuò)和維護(hù)。
(2) 說明語句中變量安排有序化。當(dāng)一個(gè)說明語句說明多個(gè)變量時(shí),變量按照字母順序?yàn)楹谩?BR> (3) 使用注釋來說明復(fù)雜數(shù)據(jù)的結(jié)構(gòu)。
3、 語句的結(jié)構(gòu)
程序應(yīng)該簡(jiǎn)單易懂,語句構(gòu)造應(yīng)該簡(jiǎn)單直接,不應(yīng)該為提高效率而把語句復(fù)雜化。一般應(yīng)注意如下:
(1) 在一行內(nèi)只寫一條語句;
(2) 程序編寫應(yīng)優(yōu)先考慮清晰性;
(3) 除非對(duì)效率有特殊要求,程序編寫要做清晰第一,效率第二;
(4) 首先要保證程序正確,然后才要求提高速度;
(5) 避免使用臨時(shí)變量而使程序的可讀性下降;
(6) 避免不必要的轉(zhuǎn)移;
(7) 盡可能使用庫函數(shù);
(8) 避免采用復(fù)雜的條件語句;
(9) 盡量減少使用“否定”條件的條件語句;
(10) 數(shù)據(jù)結(jié)構(gòu)要有利于程序的簡(jiǎn)化;
(11) 要模塊化,使模塊功能盡可能單一化;
(12) 利用住處隱蔽,確保每一個(gè)模塊的獨(dú)立性;
(13) 從數(shù)據(jù)出發(fā)去構(gòu)造程序;
(14) 不要修補(bǔ)不好的程序,要重新編寫;
4、輸入和輸出
無論是批處理的輸入和輸出方式,還是交互式的輸入和輸出方式,在設(shè)計(jì)和編程時(shí)都應(yīng)該考慮如下原則:
(1) 對(duì)所有的輸入數(shù)據(jù)都要檢驗(yàn)數(shù)據(jù)的合法性;
(2) 檢查輸入項(xiàng)的各種重要組合的合理性;
(3) 輸入格式要簡(jiǎn)單,以使得輸入的步驟和操作盡可能簡(jiǎn)單;
(4) 輸入數(shù)據(jù)時(shí),應(yīng)允許使用自由格式;
(5) 應(yīng)允許缺省值;
(6) 輸入一批數(shù)據(jù)時(shí),使用輸入結(jié)束標(biāo)志;
(7) 在以交互式輸入/輸出方式進(jìn)行輸入時(shí),要在屏幕上使用提示符明確提示輸入的請(qǐng)求,同時(shí)在數(shù)據(jù)輸入過程中的輸入結(jié)束時(shí),應(yīng)在屏幕上給出狀態(tài)信息。
(8) 當(dāng)程序設(shè)計(jì)語言對(duì)輸入格式有嚴(yán)格要求時(shí),應(yīng)保持輸入格式與輸入語句的一致性;給所有的輸入出加注釋,并設(shè)計(jì)輸出報(bào)表格式。
2.2結(jié)構(gòu)化程序設(shè)計(jì)
一、結(jié)構(gòu)化程序設(shè)計(jì)的原則
結(jié)構(gòu)化程序設(shè)計(jì)方法的主要原則可以概括為自頂向下,逐步求精,模塊化,限制使用goto語句。
1、 自頂向下:程序設(shè)計(jì)時(shí),應(yīng)先考慮總體,后考慮細(xì)節(jié);先考慮全局目標(biāo),后考慮局部目標(biāo)。不要一開始就過多追求眾多的細(xì)節(jié),先從最上層總目標(biāo)開始設(shè)計(jì),逐步使問題具體化。
2、 逐步求精:對(duì)復(fù)雜問題,應(yīng)設(shè)計(jì)一些子目標(biāo)作過渡,逐步細(xì)化。
3、 模塊化:一個(gè)復(fù)雜問題,肯定是由若干稍簡(jiǎn)單的問題構(gòu)成。模塊化是把程序要解決的總目標(biāo)分解為分目標(biāo),再進(jìn)一步分解為具體的小目標(biāo),把每個(gè)小目標(biāo)稱為一個(gè)模塊。