二級共公基礎(chǔ)知識教程第2章

字號:

第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)成。模塊化是把程序要解決的總目標分解為分目標,再進一步分解為具體的小目標,把每個小目標稱為一個模塊。