2019-02-22 計算機二級公共基礎(chǔ)知識之程序設(shè)計基礎(chǔ)

參考資料:高教版《全國計算機等級考試二級教程——C語言程序設(shè)計》

程序設(shè)計方法與風(fēng)格

就程序設(shè)計方法和技術(shù)的發(fā)展而言,主要經(jīng)過了結(jié)構(gòu)化程序設(shè)計面向?qū)ο蟪绦蛟O(shè)計階段。

一般來講,程序設(shè)計風(fēng)格是指編寫程序時所表現(xiàn)出的特點習(xí)慣邏輯思路。程序設(shè)計風(fēng)格是很重要的,因為程序設(shè)計風(fēng)格會深刻地影響軟件的質(zhì)量和可維護(hù)性。可以認(rèn)為,著名的“清晰第一,效率第二”的論點已成為當(dāng)今主導(dǎo)的程序設(shè)計風(fēng)格。

要形成良好的程序設(shè)計風(fēng)格,主要應(yīng)注重考慮以下因素:

源程序文檔化

  • 符號的命名:符號的命名應(yīng)具有一定的實際含義。
  • 程序注釋:正確的注釋能夠幫助讀者理解程序。注釋一般分為序言性注釋功能性注釋。
  • 視覺組織:為了使程序結(jié)構(gòu)一目了然,可以在程序中使用空格、空行、縮進(jìn)等技巧使程序?qū)哟吻逦?/li>

數(shù)據(jù)說明的方法

  • 數(shù)據(jù)說明的次序規(guī)范化:鑒于程序理解、閱讀和維護(hù)的需要,使數(shù)據(jù)說明次序固定,可以使數(shù)據(jù)的屬性容易查找,也有利于測試、排錯和維護(hù)。
  • 說明語句中變量安排有序化:當(dāng)一個語句說明多個變量時,變量按照字母順序排序為好。
  • 使用注釋來說明復(fù)雜的數(shù)據(jù)結(jié)構(gòu)。

語句的結(jié)構(gòu)

  • 在一行內(nèi)只寫一條語句。
  • 程序編寫應(yīng)優(yōu)先考慮清晰性。
  • 除非對效率有特殊要求,程序編寫要做到清晰第一,效率第二。
  • 首先要保證程序正確,然后才要求提高速度。
  • 避免使用臨時變量而使程序的可讀性下降。
  • 避免不必要的轉(zhuǎn)移。
  • 盡可能使用庫函數(shù)。
  • 避免采用復(fù)雜的條件語句。
  • 盡量減少使用“否定”條件的語句。
  • 數(shù)據(jù)結(jié)構(gòu)要有利于程序的簡化。
  • 要模塊化,使模塊功能盡可能單一化。
  • 利用信息隱蔽,確保每一個模塊的獨立性。
  • 從數(shù)據(jù)出發(fā)去構(gòu)造程序。
  • 不要修補不好的程序,要重新編寫。

輸入和輸出

輸入和輸出方式和格式應(yīng)盡可能方便用戶的使用。

  • 對所有的輸入數(shù)據(jù)都要檢驗數(shù)據(jù)的合法性。
  • 檢查輸入項的各種重要組合的合理性。
  • 輸入格式要簡單,以使得輸入的步驟和操作盡可能簡單。
  • 輸入數(shù)據(jù)時,應(yīng)允許使用自由格式。
  • 應(yīng)允許缺省值。
  • 輸入一批數(shù)據(jù)時,最好使用輸入結(jié)束標(biāo)志。
  • 在以交互式輸入/輸出方式進(jìn)行輸入時,要在屏幕上使用提示符明確提示輸入的請求,同時在數(shù)據(jù)輸入過程中和輸入結(jié)束時,應(yīng)在屏幕上給出狀態(tài)信息。
  • 當(dāng)程序設(shè)計語言對輸入格式有嚴(yán)格要求時,應(yīng)保持輸入格式與輸入語句的一致性;給所有的輸出加注釋,并設(shè)計輸出報表格式。

結(jié)構(gòu)化程序設(shè)計

結(jié)構(gòu)化程序設(shè)計的原則

結(jié)構(gòu)化程序設(shè)計方法的主要原則可以概括為自頂向下,逐步求精模塊化,限制使用goto語句。

自頂向下

程序設(shè)計時,應(yīng)先考慮總體,后考慮細(xì)節(jié);先考慮全局目標(biāo),后考慮局部目標(biāo)。

逐步求精

對復(fù)雜的問題,應(yīng)設(shè)計一些子目標(biāo)作過渡,逐步細(xì)化。

模塊化

把程序要解決的總目標(biāo)分解為分目標(biāo),再進(jìn)一步分解為具體的小目標(biāo),把每一個小目標(biāo)稱為一個模塊。

限制使用goto語句

結(jié)構(gòu)化程序的基本結(jié)構(gòu)與特點

  • 順序結(jié)構(gòu)
  • 選擇結(jié)構(gòu)
  • 循環(huán)結(jié)構(gòu)

按結(jié)構(gòu)化程序設(shè)計方法設(shè)計出來的程序基友明顯的優(yōu)點:

  1. 程序易于理解、使用和維護(hù)。
  2. 提高了編程工作的效率。

結(jié)構(gòu)化程序設(shè)計原則和方法使用

  • 使用程序設(shè)計語言中的順序、選擇、循環(huán)等有限的控制結(jié)構(gòu)表示程序的控制邏輯。
  • 選用的控制結(jié)構(gòu)只準(zhǔn)許有一個入口和一個出口。
  • 程序語句組成容易識別的塊,每塊只有一個入口和一個出口。
  • 復(fù)雜結(jié)構(gòu)應(yīng)該用嵌套的基本控制結(jié)構(gòu)進(jìn)行組合嵌套來實現(xiàn)。
  • 語言中所沒有的控制結(jié)構(gòu),應(yīng)該采用前后一致的方法來模擬。
  • 嚴(yán)格控制goto語句的使用。

面向?qū)ο蟮某绦蛟O(shè)計

關(guān)于面向?qū)ο蠓椒?/h2>

面向?qū)ο蠓椒ǖ谋举|(zhì),就是主張從客觀世界固有的事物出發(fā)來構(gòu)造系統(tǒng),提倡人類在現(xiàn)實生活中常用的思維方法來認(rèn)認(rèn)識、理解和描述客觀事物,強調(diào)最終建立的系統(tǒng)能夠映射問題域。

面向?qū)ο蠓椒ㄖ饕幸韵聝?yōu)點:

  • 與人類習(xí)慣思維方法一致。
  • 穩(wěn)定性好。
  • 可重用性好。
  • 易于開發(fā)大型軟件產(chǎn)品。
  • 可維護(hù)性好。

面向?qū)ο蠓椒ǖ幕靖拍?/h2>

對象

對象是面向?qū)ο蠓椒ㄖ凶罨镜母拍睢?/p>

對象可以用來表示客觀世界中的任何實體,也就是說,應(yīng)用領(lǐng)域中有意義的、與所要解決的問題有關(guān)系的任何事物都可以作為對象,它既可以是具體的物理實體的抽象,也可以是人為的概念,或者是任何有明確邊界和意義的東西。

總之,對象是對問題域中某個實體的抽象,是構(gòu)成系統(tǒng)的一個基本單位,它由一組表示其靜態(tài)特征的屬性和它可執(zhí)行的一組操作組成。

對象可以做的操作表示它的動態(tài)行為,在面向?qū)ο蠓治龊兔嫦驅(qū)ο笤O(shè)計中,通常把對象的操作也稱為方法服務(wù)。

屬性即對象所包含的信息,它在設(shè)計對象時確定,一般只能通過執(zhí)行對象的操作來改變。

操作描述了對象執(zhí)行的功能,若通過消息傳遞,還可以為其他對象使用。

對象有如下一些基本特點:

  1. 標(biāo)識唯一性:對象是可區(qū)分的,并且由對象的內(nèi)在本質(zhì)來區(qū)分。
  2. 分類性:可以將具有相同屬性的對象抽象成類。
  3. 多態(tài)性:同一個操作可以是不同對象的行為。
  4. 封裝性:從外面看只能看到對象的外部特征,對象的內(nèi)部狀態(tài)只能由其自身改變。
  5. 模塊獨立性好:對象內(nèi)部各種元素彼此結(jié)合得很緊密,內(nèi)聚性強。

類和實例

將屬性、操作相似的對象歸為。類是對象的抽象,它描述了屬于該對象類型的所有對象的性質(zhì),而一個對象則是其對應(yīng)類的一個實例。

類是關(guān)于對象性質(zhì)的描述,它同對象一樣,包括一組數(shù)據(jù)屬性和在數(shù)據(jù)上的一組合法操作。

消息

對象間的相互合作需要一個機制協(xié)助進(jìn)行,這樣的機制稱為消息

消息是一個實例與另一個實例之間傳遞的信息,它請求對象執(zhí)行某一處理或回答某一要求的信息,它同意了數(shù)據(jù)流和控制流。

通常,一個消息由三部分組成:

  1. 接受消息的對象的名稱;
  2. 消息標(biāo)識符(也稱消息名);
  3. 零個或多個參數(shù)。

繼承

繼承是使用已有的類定義作為基礎(chǔ)建立新類的定義技術(shù)。已有的類可當(dāng)作基類來引用,則新類相應(yīng)地可當(dāng)作派生類來引用。

廣義地說,繼承是指能夠直接獲得已有的性質(zhì)和特征,而不必重復(fù)定義它們。

面向?qū)ο筌浖夹g(shù)的許多強有力的功能和突出的優(yōu)點,都來源于把類組成一個層次結(jié)構(gòu)的系統(tǒng):一個類的上層可以有父類,下層可以有子類。這種層次結(jié)構(gòu)系統(tǒng)的一個重要性質(zhì)是繼承性,一個類直接繼承其父類的描述(數(shù)據(jù)和操作)或特性,子類自動地共享基類中定義的數(shù)據(jù)和方法。

繼承分為單重繼承多重繼承。單重繼承是指一個類只允許有一個父類,多重繼承是指一個類允許有多個父類。

多態(tài)性

對象根據(jù)所接收的消息而做出動作,同樣的消息被不同的對象接收時可導(dǎo)致完全不同的行為,該現(xiàn)象稱為多態(tài)性。

在面向?qū)ο蟮能浖夹g(shù)中,多態(tài)性是指子類對象可以像父類對象那樣使用,同樣的消息既可以發(fā)送給父類對象也可以發(fā)送給子類對象。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1、算法的概念 (1)概念:是指解題方案的準(zhǔn)確而完整的描述。 【考題1】在計算機中,算法是指() A查詢方法B加工...
    成都小菜閱讀 1,905評論 0 15
  • 算法 算法基本特征 算法:指解題方案的準(zhǔn)確而完整的描述(≠程序 ≠計算方法) 算法四個特點:可行性 確定性 有窮性...
    arima閱讀 9,018評論 3 32
  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴(yán)謹(jǐn) 對...
    cosWriter閱讀 11,689評論 1 32
  • 一、基礎(chǔ)知識:1、JVM、JRE和JDK的區(qū)別:JVM(Java Virtual Machine):java虛擬機...
    殺小賊閱讀 2,576評論 0 4
  • 他問我這些數(shù)據(jù)是從哪里得來的,我說都是公開的,我們只是將其匯總,并從一個獨特的角度進(jìn)行了審視。 這里提到公開的數(shù)據(jù)...
    Ipencil_49fd閱讀 327評論 0 0

友情鏈接更多精彩內(nèi)容