官术网_书友最值得收藏!

1.2 程序設(shè)計(jì)基礎(chǔ)

考點(diǎn)9 程序設(shè)計(jì)方法與風(fēng)格

1.程序設(shè)計(jì)方法

程序設(shè)計(jì)是指設(shè)計(jì)、編制、調(diào)試程序的方法和過程。

程序設(shè)計(jì)方法是研究問題求解如何進(jìn)行系統(tǒng)構(gòu)造的軟件方法學(xué)。常用的程序設(shè)計(jì)方法有結(jié)構(gòu)化程序設(shè)計(jì)方法、軟件工程方法和面向?qū)ο蠓椒ā?/p>

真考鏈接

考核概率為10%,考生需要熟記該考點(diǎn)內(nèi)容,尤其是程序設(shè)計(jì)的4種規(guī)范及注釋的相關(guān)概念。

2.程序設(shè)計(jì)風(fēng)格

程序設(shè)計(jì)風(fēng)格是指編寫程序時(shí)所表現(xiàn)出的特點(diǎn)、習(xí)慣和邏輯思路。良好的程序設(shè)計(jì)風(fēng)格可以使程序結(jié)構(gòu)清晰合理,程序代碼便于維護(hù)。因此,程序設(shè)計(jì)風(fēng)格深深地影響著軟件的質(zhì)量和維護(hù)。要形成良好的程序設(shè)計(jì)風(fēng)格,主要應(yīng)注重和考慮的因素包括以下幾個(gè)方面:

●源程序文檔化;

●數(shù)據(jù)說明方法;

●語(yǔ)句的結(jié)構(gòu);

●輸入和輸出。

真題精選

【例1】在下列敘述中,不屬于良好程序設(shè)計(jì)風(fēng)格要求的是______。

A)程序的效率第一,清晰第二

B)程序的可讀性好

C)程序中要有必要的注釋

D)輸入數(shù)據(jù)前要有提示信息

【答案】A

【解析】著名的“清晰第一,效率第二”的論點(diǎn)已經(jīng)成為主導(dǎo)的程序設(shè)計(jì)風(fēng)格,所以選項(xiàng)A是錯(cuò)誤的,其余選項(xiàng)都是良好程序設(shè)計(jì)風(fēng)格的要求。

【例2】下列選項(xiàng)中不符合良好程序設(shè)計(jì)風(fēng)格的是______。

A)源程序要文檔化

B)數(shù)據(jù)說明的次序要規(guī)范化

C)避免濫用goto語(yǔ)句

D)模塊設(shè)計(jì)要保證高耦合、高內(nèi)聚

【答案】D

【解析】良好的程序設(shè)計(jì)風(fēng)格使程序結(jié)構(gòu)清晰合理,使程序代碼便于維護(hù)。應(yīng)注意和考慮的因素主要有:①源程序要文檔化;②數(shù)據(jù)說明的次序要規(guī)范化;③語(yǔ)句的結(jié)構(gòu)應(yīng)簡(jiǎn)單直接,不應(yīng)該為提高效率而把語(yǔ)句復(fù)雜化,避免濫用goto語(yǔ)句;④模塊設(shè)計(jì)要保證低耦合、高內(nèi)聚。

考點(diǎn)10 結(jié)構(gòu)化程序設(shè)計(jì)

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

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

真考鏈接

考核概率為45%,考生要熟記該考點(diǎn)內(nèi)容,尤其是結(jié)構(gòu)化程序設(shè)計(jì)的3個(gè)原則以及結(jié)構(gòu)化程序的基本結(jié)構(gòu)的3種類型。

●自頂向下:程序設(shè)計(jì)時(shí),應(yīng)先考慮總體,后考慮細(xì)節(jié);先考慮全局目標(biāo),后考慮具體問題。

●逐步求精:將復(fù)雜問題細(xì)化,細(xì)分為逐個(gè)小問題依次求解。

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

●限制使用goto語(yǔ)句。

2.結(jié)構(gòu)化程序設(shè)計(jì)的基本結(jié)構(gòu)

結(jié)構(gòu)化程序設(shè)計(jì)有3種基本結(jié)構(gòu),即順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu),其基本形式如圖1.3所示。

圖1.3

3.結(jié)構(gòu)化程序設(shè)計(jì)的原則和方法的應(yīng)用

結(jié)構(gòu)化程序設(shè)計(jì)是一種面向過程的程序設(shè)計(jì)方法。在結(jié)構(gòu)化程序設(shè)計(jì)的具體實(shí)施中,需要注意以下幾個(gè)問題。

●使用程序設(shè)計(jì)語(yǔ)言的順序、選擇、循環(huán)等有限的控制結(jié)構(gòu)表示程序的控制邏輯。

●選用的控制結(jié)構(gòu)只準(zhǔn)許有一個(gè)入口和一個(gè)出口。

●程序語(yǔ)句組成容易識(shí)別的塊,每塊只有一個(gè)入口和一個(gè)出口。

●復(fù)雜結(jié)構(gòu)應(yīng)該使用嵌套的基本控制結(jié)構(gòu)進(jìn)行組合嵌套來實(shí)現(xiàn)。

●語(yǔ)言中沒有的控制結(jié)構(gòu),應(yīng)該采用前后一致的方法來模擬。

●嚴(yán)格控制goto語(yǔ)句的使用。

真題精選

下列選項(xiàng)中不屬于結(jié)構(gòu)化程序設(shè)計(jì)方法的是______。

A)自頂向下

B)逐步求精

C)模塊化

D)可復(fù)用

【答案】D

【解析】自20世紀(jì)70年代以來,提出了許多軟件設(shè)計(jì)方法,主要包括:①逐步求精,對(duì)復(fù)雜的問題,應(yīng)設(shè)計(jì)一些子目標(biāo)作過渡,逐步細(xì)化。②自頂向下,程序設(shè)計(jì)時(shí),應(yīng)先考慮總體,后考慮細(xì)節(jié);先考慮全局目標(biāo),后考慮局部目標(biāo)。一開始不要過多追求細(xì)節(jié),先從最上層總目標(biāo)開始設(shè)計(jì),逐步使問題具體化。③模塊化,一個(gè)復(fù)雜問題肯定是由若干相對(duì)簡(jiǎn)單的問題構(gòu)成。模塊化是把程序要解決的總目標(biāo)分解為分目標(biāo),再進(jìn)一步分解為具體的小目標(biāo),把每個(gè)小目標(biāo)稱為一個(gè)模塊。而可復(fù)用是面向?qū)ο蟪绦蛟O(shè)計(jì)的一個(gè)優(yōu)點(diǎn),不是結(jié)構(gòu)化程序設(shè)計(jì)方法。

考點(diǎn)11 面向?qū)ο蟮某绦蛟O(shè)計(jì)

1.面向?qū)ο蠓椒ǖ谋举|(zhì)

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

真考鏈接

考核概率為65%,考生要熟記該考點(diǎn)內(nèi)容,尤其是對(duì)象、類、實(shí)例、消息、繼承、多態(tài)性的概念。

2.面向?qū)ο蠓椒ǖ膬?yōu)點(diǎn)

面向?qū)ο蠓椒ㄓ幸韵轮饕獌?yōu)點(diǎn):

●與人類習(xí)慣的思維方法一致;

●穩(wěn)定性好;

●可重用性好;

●易于開發(fā)大型軟件產(chǎn)品;

●可維護(hù)性好。

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

(1)對(duì)象。

對(duì)象是面向?qū)ο蠓椒ㄖ凶罨镜母拍睢?duì)象可以用來表示客觀世界中任何實(shí)體,它既可以是具體的物理實(shí)體的抽象,也可以是人為概念,或者是任何有明確邊界和意義的東西。

(2)類。

類是具有共同屬性、共同方法的對(duì)象的集合,是關(guān)于對(duì)象的抽象描述,反映屬于該對(duì)象類型的所有對(duì)象的性質(zhì)。

(3)實(shí)例。

實(shí)例是指一個(gè)具體對(duì)象則是其對(duì)應(yīng)類的一個(gè)實(shí)例。

(4)消息。

消息是一個(gè)實(shí)例與另一個(gè)實(shí)例之間傳遞的信息,它請(qǐng)求對(duì)象執(zhí)行某一處理或回答某一要求的信息,它統(tǒng)一了數(shù)據(jù)流和控制流。

(5)繼承。

繼承是使用已有的類定義作為基礎(chǔ)建立新類的定義技術(shù)。在面向?qū)ο蠹夹g(shù)中,類組成為具有層次結(jié)構(gòu)的系統(tǒng):一個(gè)類的上層可有父類,下層可有子類;一個(gè)類直接繼承其父類的描述(數(shù)據(jù)和操作)或特性,子類自動(dòng)地共享基類中定義的數(shù)據(jù)和方法。

(6)多態(tài)性。

對(duì)象根據(jù)所接受的信息而做出動(dòng)作,同樣的消息被不同的對(duì)象接受時(shí)可以有完全不同的行動(dòng),該現(xiàn)象稱為多態(tài)性。

小提示

當(dāng)使用“對(duì)象”這個(gè)術(shù)語(yǔ)時(shí),既可以指一個(gè)具體的對(duì)象,也可以泛指一般的對(duì)象,但是當(dāng)使用“實(shí)例”這個(gè)術(shù)語(yǔ)時(shí),必須是指一個(gè)具體的對(duì)象。

真題精選

在面向?qū)ο蠓椒ㄖ校瑢?shí)現(xiàn)信息隱蔽是依靠______。

A)對(duì)象的繼承

B)對(duì)象的多態(tài)

C)對(duì)象的封裝

D)對(duì)象的分類

【答案】C

【解析】對(duì)象是由數(shù)據(jù)和操作組成的封裝體,與客觀實(shí)體有直接的對(duì)應(yīng)關(guān)系。對(duì)象之間通過傳遞消息互相聯(lián)系,以模擬現(xiàn)實(shí)世界中不同事物彼此之間的關(guān)系。面向?qū)ο蠹夹g(shù)的3個(gè)重要特性為封裝性、繼承性和多態(tài)性。

常見問題

對(duì)象是面向?qū)ο笞罨镜母拍睿?qǐng)問對(duì)象有哪些特點(diǎn)?

①標(biāo)識(shí)唯一性,指對(duì)象是可區(qū)分的,并且由對(duì)象的內(nèi)在本質(zhì)來區(qū)分;②分類性,指可以將具體相同屬性和操作的對(duì)象抽象成類;③多態(tài)性,指同一個(gè)操作可以是不同對(duì)象的行為;④封裝性,指從外面不能直接使用對(duì)象的處理能力,也不能直接修改其內(nèi)部狀態(tài),對(duì)象的內(nèi)部狀態(tài)只能由其自身改變;⑤模塊的獨(dú)立性好。

主站蜘蛛池模板: 岗巴县| 武宁县| 大埔县| 襄垣县| 监利县| 柏乡县| 张家界市| 祁东县| 吴桥县| 古浪县| 灵石县| 马鞍山市| 金寨县| 格尔木市| 巫山县| 南平市| 红桥区| 柞水县| 洪湖市| 武安市| 德州市| 昂仁县| 临猗县| 高州市| 襄城县| 山西省| 陇川县| 巴林左旗| 崇文区| 碌曲县| 盘山县| 鄱阳县| 察雅县| 西华县| 丹棱县| 湟源县| 临泽县| 尚志市| 江源县| 抚顺县| 隆尧县|