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