




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、 第第2章章 程序設(shè)計基礎(chǔ)程序設(shè)計基礎(chǔ) 2.1 程序設(shè)計方法與風格程序設(shè)計方法與風格 為了測試和維護程序,往往還要閱讀為了測試和維護程序,往往還要閱讀和跟蹤程序,因此程序設(shè)計的風格總和跟蹤程序,因此程序設(shè)計的風格總體而言應該強調(diào)簡單和清晰,程序必體而言應該強調(diào)簡單和清晰,程序必須是可以理解的。可以認為,著名的須是可以理解的。可以認為,著名的“清晰第一,效率第二清晰第一,效率第二”的論點己成的論點己成為當今主導的程序設(shè)計風格。為當今主導的程序設(shè)計風格。 要形成良好的程序設(shè)計風格,主要形成良好的程序設(shè)計風格,主要應注重和考慮下述一些因素。要應注重和考慮下述一些因素。 1源程序文檔化源程序文檔化 源
2、程序文檔化應考慮如下幾點:源程序文檔化應考慮如下幾點: (1)符號名的命名。)符號名的命名。 (2)程序注釋。)程序注釋。 (3)視覺組織:利用空格、空行、)視覺組織:利用空格、空行、縮進等技巧使程序?qū)哟吻逦???s進等技巧使程序?qū)哟吻逦?2數(shù)據(jù)說明的方法數(shù)據(jù)說明的方法 更易于理解和維護更易于理解和維護3語句的結(jié)構(gòu)語句的結(jié)構(gòu) 程序應該簡單易懂,語句構(gòu)造應該程序應該簡單易懂,語句構(gòu)造應該簡單直接簡單直接4輸入和輸出輸入和輸出 輸入和輸出方式和格式應盡可能方輸入和輸出方式和格式應盡可能方便用戶的使用便用戶的使用 2.2 結(jié)構(gòu)化程序設(shè)計結(jié)構(gòu)化程序設(shè)計 2.2.1結(jié)構(gòu)化程序設(shè)計方法的原則結(jié)構(gòu)化程序設(shè)計方
3、法的原則 結(jié)構(gòu)化程序設(shè)計方法的主要原則可結(jié)構(gòu)化程序設(shè)計方法的主要原則可以概括為以概括為: :自項向下,逐步求精,模塊自項向下,逐步求精,模塊化,限制使用化,限制使用goto語句語句。 2.2.2 結(jié)構(gòu)化程序的基本結(jié)構(gòu)與特點結(jié)構(gòu)化程序的基本結(jié)構(gòu)與特點 程序設(shè)計語言僅僅使用程序設(shè)計語言僅僅使用順序順序、選擇選擇和和循環(huán)循環(huán)三種基本控制結(jié)構(gòu)就足以表達三種基本控制結(jié)構(gòu)就足以表達出各種其他形式結(jié)構(gòu)的程序設(shè)計方法。出各種其他形式結(jié)構(gòu)的程序設(shè)計方法。 1 1順序結(jié)構(gòu)順序結(jié)構(gòu)2 2選擇結(jié)構(gòu)選擇結(jié)構(gòu)( (又稱為分支結(jié)構(gòu)又稱為分支結(jié)構(gòu)) ) 3循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu) ( (又稱為重復結(jié)構(gòu)又稱為重復結(jié)構(gòu)) ) 2.2.3
4、結(jié)構(gòu)化程序設(shè)計原則和方法的應用結(jié)構(gòu)化程序設(shè)計原則和方法的應用 基于對結(jié)構(gòu)化程序設(shè)計原則、方法以及結(jié)構(gòu)化程序基本基于對結(jié)構(gòu)化程序設(shè)計原則、方法以及結(jié)構(gòu)化程序基本構(gòu)成結(jié)構(gòu)的掌握和了解,在結(jié)構(gòu)化程序設(shè)計的具體實施中,構(gòu)成結(jié)構(gòu)的掌握和了解,在結(jié)構(gòu)化程序設(shè)計的具體實施中,要注意把握如下要素:要注意把握如下要素:1 1使用程序設(shè)計語言中的使用程序設(shè)計語言中的順序、選擇、循環(huán)順序、選擇、循環(huán)等有限的控等有限的控制結(jié)構(gòu)表示程序的控制邏輯;制結(jié)構(gòu)表示程序的控制邏輯;2 2選用的控制結(jié)構(gòu)只準許有一個入口和一個出口;選用的控制結(jié)構(gòu)只準許有一個入口和一個出口;3 3程序語句組成容易識別的塊,每塊只有一個入口和一程序語
5、句組成容易識別的塊,每塊只有一個入口和一個出口;個出口;4 4復雜結(jié)構(gòu)應該用嵌套的基本控制結(jié)構(gòu)進行組合復雜結(jié)構(gòu)應該用嵌套的基本控制結(jié)構(gòu)進行組合嵌套嵌套來來實現(xiàn);實現(xiàn);5 5語言中所沒有的控制結(jié)構(gòu),應該采用前后一致的方法語言中所沒有的控制結(jié)構(gòu),應該采用前后一致的方法來模擬;來模擬;6 6嚴格控制嚴格控制GOTOGOTO語句的使用。語句的使用。 2.3 面向?qū)ο蟮某绦蛟O(shè)計面向?qū)ο蟮某绦蛟O(shè)計 2.3.1面向?qū)ο蠓椒嫦驅(qū)ο蠓椒ǎ╫bject oriented) 本質(zhì)上主張從客觀世界固有的事物出本質(zhì)上主張從客觀世界固有的事物出發(fā)來構(gòu)造系統(tǒng),提倡用人類在現(xiàn)實生發(fā)來構(gòu)造系統(tǒng),提倡用人類在現(xiàn)實生活中常用的思
6、維方法來認識、理解和活中常用的思維方法來認識、理解和描述客觀事物。描述客觀事物。 優(yōu)點優(yōu)點:1 1與人類習慣的思維方法一致與人類習慣的思維方法一致2 2穩(wěn)定性好穩(wěn)定性好 3 3可重用性好可重用性好傳統(tǒng)的軟件重用技術(shù)是利用標準函數(shù)庫。傳統(tǒng)的軟件重用技術(shù)是利用標準函數(shù)庫。 對象所固有的封裝性,使得對象的內(nèi)部實現(xiàn)與外界對象所固有的封裝性,使得對象的內(nèi)部實現(xiàn)與外界隔離,具有較強的獨立性。繼承性機制使得子類不僅隔離,具有較強的獨立性。繼承性機制使得子類不僅可以重用其父類的數(shù)據(jù)結(jié)構(gòu)和程序代碼,而且可以在可以重用其父類的數(shù)據(jù)結(jié)構(gòu)和程序代碼,而且可以在父類代碼的基礎(chǔ)上方便地修改和擴充,這種修改并不父類代碼的基
7、礎(chǔ)上方便地修改和擴充,這種修改并不影響對原有類的使用。影響對原有類的使用。 4 4易于開發(fā)大型軟件產(chǎn)品易于開發(fā)大型軟件產(chǎn)品 5 5可維護性好可維護性好 2.3.2 面向?qū)ο蠓椒ǖ幕靖拍蠲嫦驅(qū)ο蠓椒ǖ幕靖拍?1、對象(、對象(object) 應用領(lǐng)域中有意義的、與所要解決應用領(lǐng)域中有意義的、與所要解決的問題有關(guān)系的任何事物都可以作為的問題有關(guān)系的任何事物都可以作為對象。對象。 面向?qū)ο蟮某绦蛟O(shè)計方法中涉及的面向?qū)ο蟮某绦蛟O(shè)計方法中涉及的對象是系統(tǒng)中用來描述客觀事物的一對象是系統(tǒng)中用來描述客觀事物的一個實體,是構(gòu)成系統(tǒng)的一個基本單位,個實體,是構(gòu)成系統(tǒng)的一個基本單位,它由一組表示其靜態(tài)特征的屬
8、性和它它由一組表示其靜態(tài)特征的屬性和它可執(zhí)行的一組操作組成。可執(zhí)行的一組操作組成。 屬性:屬性: 對象所包含的信息,它在設(shè)計對象時對象所包含的信息,它在設(shè)計對象時確定,一般只能通過執(zhí)行對象的操作確定,一般只能通過執(zhí)行對象的操作來改變。來改變。 操作:操作: 描述了對象執(zhí)行的功能,若通過消息描述了對象執(zhí)行的功能,若通過消息傳遞,還可以為其他對象使用。這個傳遞,還可以為其他對象使用。這個過程已經(jīng)封裝在對象中,用戶也看不過程已經(jīng)封裝在對象中,用戶也看不到。對象的這一特性,即是對象的封到。對象的這一特性,即是對象的封裝性。裝性。 對象有如下一些基本特點:對象有如下一些基本特點:(1)標識惟一性。)標識
9、惟一性。(2)分類性。)分類性。(3)多態(tài)性。)多態(tài)性。(4)封裝性。)封裝性。(5)模塊獨立性好。)模塊獨立性好。 2類(類(Class)和實例(和實例(Instance) 類是具有共同屬性、共同方法的對類是具有共同屬性、共同方法的對象的集合。象的集合。 所以,所以,類是對象的抽象類是對象的抽象,它描述了,它描述了屬于該對象類型的所有對象的性質(zhì),而屬于該對象類型的所有對象的性質(zhì),而一個對象則是其對應類的一個實例。一個對象則是其對應類的一個實例。 3消息消息 對象間的這種相互合作需要一個機制協(xié)對象間的這種相互合作需要一個機制協(xié)助進行,這樣的機制稱為助進行,這樣的機制稱為“消息消息”。消息是一個
10、實例與另一個實例之間傳消息是一個實例與另一個實例之間傳遞的信息。遞的信息。 消息中只包含傳遞者的要求,它告訴接受消息中只包含傳遞者的要求,它告訴接受者需要做哪些處理,但并不指示接受者應者需要做哪些處理,但并不指示接受者應該怎樣完成這些處理。該怎樣完成這些處理。 一個對象能夠接受不同形式、不同內(nèi)容的一個對象能夠接受不同形式、不同內(nèi)容的多個消息;相同形式的消息可以送往不同多個消息;相同形式的消息可以送往不同的對象,不同的對象對于形式相同的消息的對象,不同的對象對于形式相同的消息可以有不同的解釋,能夠做出不同的反映??梢杂胁煌慕忉?,能夠做出不同的反映。一個對象可以同時往多個對象傳遞信息,一個對象可
11、以同時往多個對象傳遞信息,兩個對象也可以同時向某個對象傳遞消息。兩個對象也可以同時向某個對象傳遞消息。 4繼承(繼承(Inheritance) 繼承是使用己有的類定義作為基礎(chǔ)建繼承是使用己有的類定義作為基礎(chǔ)建立新類的定義技術(shù)。立新類的定義技術(shù)。 廣義地說,繼承是指能夠直接獲得已廣義地說,繼承是指能夠直接獲得已有的性質(zhì)和特征,而不必重復定義它有的性質(zhì)和特征,而不必重復定義它們。們。 一個類直接繼承其父類的描述(數(shù)一個類直接繼承其父類的描述(數(shù)據(jù)和操作)或特性,子類自動地共享據(jù)和操作)或特性,子類自動地共享基類中定義的數(shù)據(jù)和方法?;愔卸x的數(shù)據(jù)和方法。 交通工具 飛行器 汽車 船 轎車 貨車 繼
12、承具有傳遞性。繼承具有傳遞性。 繼承分為單繼承與多重繼承。繼承分為單繼承與多重繼承。 單繼承單繼承: : 一個類只允許有一個父類,即類等級為樹形一個類只允許有一個父類,即類等級為樹形結(jié)構(gòu)。結(jié)構(gòu)。 多重繼承多重繼承: : 一個類允許有多個父類。多重繼承的類可以一個類允許有多個父類。多重繼承的類可以組合多個父類的性質(zhì)構(gòu)成所需要的性質(zhì)。因組合多個父類的性質(zhì)構(gòu)成所需要的性質(zhì)。因此,功能更強,使用更方便。此,功能更強,使用更方便。 但是,使用多重繼承時要注意避免二義性。但是,使用多重繼承時要注意避免二義性。繼承性的優(yōu)點:繼承性的優(yōu)點:相似的對象可以共享程序代碼和數(shù)據(jù)相似的對象可以共享程序代碼和數(shù)據(jù)結(jié)構(gòu),
13、從而大大減少了程序中的冗余結(jié)構(gòu),從而大大減少了程序中的冗余信息。信息。 水上交通工具 陸上交通工具 水陸兩用交通工具 圖圖 多重繼承多重繼承 5多態(tài)性(多態(tài)性(Polymphism) 對象根據(jù)所接受的消息而做出動作,對象根據(jù)所接受的消息而做出動作,同樣的消息被不同的對象接受時可導致同樣的消息被不同的對象接受時可導致完全不同的行動,該現(xiàn)象稱為多態(tài)性。完全不同的行動,該現(xiàn)象稱為多態(tài)性。 多態(tài)性機制不僅增加了面向?qū)ο筌浂鄳B(tài)性機制不僅增加了面向?qū)ο筌浖到y(tǒng)的靈活性,進一步減少了信息冗件系統(tǒng)的靈活性,進一步減少了信息冗余,利用多態(tài)性,用戶能夠發(fā)送一般形余,利用多態(tài)性,用戶能夠發(fā)送一般形式的消息,而將所有
14、的實現(xiàn)細節(jié)都留給式的消息,而將所有的實現(xiàn)細節(jié)都留給接受消息的對象。接受消息的對象。 程序程序與計算機語言與計算機語言 程序 程序是指揮計算機實現(xiàn)某一特定功能的一組命令序列,是指令的有序集合,是由程序計數(shù)器控制的一系列語句和指令程序設(shè)計 程序設(shè)計是指設(shè)計、編制、調(diào)試程序的方法和過程,其內(nèi)容涉及有關(guān)的程序基本概念、編程工具、方法以及方法學等,是目標明確的智力活動。計算機語言 計算機語言指用于人與計算機之間通信的語言,是人與計算機之間傳遞信息的媒介。計算機語言主要分為機器語言、匯編語言和高級語言3種。使用匯編語言和高級語言編寫的程序稱為源程序,而使用機器語言編寫的程序則稱為目標程序。語言處理程序語言
15、處理程序 計算機并不能直接接收和執(zhí)行用匯編語言或高級語言編寫的源程序。源程序在輸入計算機時,必須經(jīng)由語言處理程序“翻譯”成機器語言形式的目標程序,才能被計算機識別和執(zhí)行。匯 編 語 言 源 程 序 匯 編 程 序 進 行 匯 編 機 器 語 言 目 標 程 序 ( a) 匯 編 程 序 高 級 語 言 源 程 序 編 譯 程 序 進 行 編 譯 機 器 語 言 目 標 程 序 ( b) 編 譯 程 序 高 級 語 言 源 程 序 解 釋 程 序 解 釋 執(zhí) 行 ( c) 解 釋 程 序 運 行 結(jié) 果 計算機語言計算機語言 機器語言 機器語言是二進制編碼形式的機器指令及其使用規(guī)則的集合。它是目
16、前計算機硬件唯一可以直接識別和執(zhí)行的語言。匯編語言 匯編語言是一種符號語言。每一種處理器都會有自己專屬的匯編語言語法規(guī)則和編譯器。即使是同一種類型的處理器,也可能擁有不同的匯編語言編譯器。低級語言包括機器語言和匯編語言,這兩種語言都是面向機器的語言高級語言 高級語言接近人們?nèi)粘J煜さ淖匀徽Z言和數(shù)學語言,可讀性強,編程方便。目前絕大部分的程序員編寫程序時多使用高級語言。高級語言有許多種,使用比較普遍的有C、C+、Pascal、C#、Visual Basic、Delphi、Java、Python、Lisp和Prolog等。程序設(shè)計程序設(shè)計方法方法 程序設(shè)計的過程就是分析要解決的實際問題,得出解決問
17、題的具體方法和步驟,并且用某種計算機語言編寫成可執(zhí)行程序的過程。數(shù)據(jù)結(jié)構(gòu)算法程序設(shè)計程序設(shè)計方法兩大類程序設(shè)計方法兩大類 面向過程 在解決問題時采用功能分解方法,即將一個系統(tǒng)看作一些功能塊的組合,這些功能塊可以被進一步分解,直到參與設(shè)計和編程的人員可以理解的步驟和過程為止。 面向過程的程序設(shè)計方法只允許全部程序均由順序、分支和循環(huán)3類基本結(jié)構(gòu)構(gòu)成。 常用的面向過程程序設(shè)計的高級語言主要有C語言、Basic語言、Pascal語言、Fortran語言、COBOL語言、Ada語言等。面向?qū)ο?通過面向?qū)ο蟮姆绞剑瑢F(xiàn)實世界的事物抽象成對象,現(xiàn)實世界中的關(guān)系抽象成類、繼承,幫助人們實現(xiàn)對現(xiàn)實世界的抽象
18、與數(shù)字建模。 更有利于采用人能理解的方式對復雜系統(tǒng)進行分析、設(shè)計與編程。系統(tǒng)可以像搭積木一樣被快速開發(fā)出來。 常用面向?qū)ο蟪绦蛟O(shè)計的高級語言主要有Java、C+、C# 、Visual Basic、Delphi等。兩種程序設(shè)計方法對比兩種程序設(shè)計方法對比 面向過程 程序的可重用性差 通訊機制幾乎空白 數(shù)據(jù)處理范圍較小 程序的數(shù)據(jù)與操作相分離面向?qū)ο?程序不易理解 初學者入門有困難 程序的依賴性分析有難度一、選擇題一、選擇題1結(jié)構(gòu)化程序設(shè)計主要強調(diào)的是結(jié)構(gòu)化程序設(shè)計主要強調(diào)的是( ) A)程序的規(guī)模程序的規(guī)模 B)程序的易讀性程序的易讀性 C)程序的執(zhí)行效率程序的執(zhí)行效率 D)程序的可移植性程序的可移植性 B習習 題題2對建立良好的程序設(shè)計風格,下面對建立良好的程序設(shè)計風格,下面描述正確的是描述正確的是 ( ) A)程序應簡單、清晰、可讀性好程序應簡單、清晰、可讀性好 B)符號名的命名只要符合語法符號名的命名只要符合語法 C)充分考慮程序的執(zhí)行效率充分考慮程序的執(zhí)行效率 D)程序的注釋可有可無程序的注釋可有可無 A
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年數(shù)控超精密磨床項目申請報告
- 2025年炔烴項目立項申請報告
- 教育行業(yè)教學經(jīng)歷證明書(6篇)
- 品牌宣傳推廣合同協(xié)議
- 巧克力包裝機設(shè)計-課程設(shè)計
- 食品加工工藝與設(shè)備案例分析題
- 2025年電商數(shù)據(jù)分析與電商運營管理專業(yè)電子商務師(初級)職業(yè)技能鑒定試卷
- 快樂讀書讀后感作文5篇
- 個人實習證明書標題實習經(jīng)歷證明書(8篇)
- 2025年初中化學九年級上冊期中測試卷:化學與環(huán)境問題探究試題
- 放射科疑難病例分析討論記錄
- 2024年《軍事理論》考試題庫附答案(含各題型)
- 廣東省中山市2022-2023學年高二下學期期末數(shù)學試題(學生版+解析)
- 設(shè)備運輸投標方案(技術(shù)方案)
- 2024年國家開放大學《統(tǒng)計學原理》形成性考核1-4題目及答案
- 《無衣》教學設(shè)計 統(tǒng)編版高中語文選擇性必修上冊
- 合肥市住宅小區(qū)物業(yè)服務等級標準
- 創(chuàng)造心智與創(chuàng)新訓練智慧樹知到期末考試答案2024年
- 食品廠員工衛(wèi)生培訓方案
- 反恐組織機構(gòu)管理制度
- 危房改造工程投標方案(技術(shù)標)
評論
0/150
提交評論