程序設(shè)計語言與編碼PPT學(xué)習(xí)教案_第1頁
程序設(shè)計語言與編碼PPT學(xué)習(xí)教案_第2頁
程序設(shè)計語言與編碼PPT學(xué)習(xí)教案_第3頁
程序設(shè)計語言與編碼PPT學(xué)習(xí)教案_第4頁
程序設(shè)計語言與編碼PPT學(xué)習(xí)教案_第5頁
已閱讀5頁,還剩85頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、會計學(xué)1程序設(shè)計語言與編碼程序設(shè)計語言與編碼26.1.1 6.1.1 程序設(shè)計語言的分程序設(shè)計語言的分類類大體上,程序設(shè)計語言分為以下幾類大體上,程序設(shè)計語言分為以下幾類:(1 1)機器語言)機器語言(2 2)匯編語言)匯編語言(3 3)高級語言)高級語言(4 4)4GL4GL由于高級語言種類繁多,我們可以從由于高級語言種類繁多,我們可以從應(yīng)用特點、語言內(nèi)在特點和對客觀系統(tǒng)的應(yīng)用特點、語言內(nèi)在特點和對客觀系統(tǒng)的描述三個不同的角度來對高級語言進(jìn)行分描述三個不同的角度來對高級語言進(jìn)行分類。類。第1頁/共90頁3(1 1)基礎(chǔ)語言(例:)基礎(chǔ)語言(例:FORTRANFORTRAN,BASICBASI

2、C,COBOLCOBOL和和ALGOLALGOL)(2 2)結(jié)構(gòu)化語言(例:)結(jié)構(gòu)化語言(例:ALGOLALGOL,PL/1PL/1,PASCALPASCAL,C C,AdaAda)(3 3)專用語言(例:)專用語言(例:APLAPL,LISPLISP,PROLOGPROLOG,BLISSBLISS,F(xiàn)ORTHFORTH)1 1、從應(yīng)用特點的角度來分、從應(yīng)用特點的角度來分第2頁/共90頁4(1 1)系統(tǒng)實現(xiàn)語言(例:)系統(tǒng)實現(xiàn)語言(例:C C語言)語言)(2 2)靜態(tài)高級語言(例:)靜態(tài)高級語言(例:FORTRANFORTRAN、COBOLCOBOL)(3 3)塊結(jié)構(gòu)高級語言(例:)塊結(jié)構(gòu)高級

3、語言(例:PASCALPASCAL,ALGOLALGOL)(4 4)動態(tài)高級語言)動態(tài)高級語言2 2、從語言內(nèi)在特點的角度來分、從語言內(nèi)在特點的角度來分第3頁/共90頁5(2 2)面向?qū)ο笳Z言)面向?qū)ο笳Z言對象對象+ +消息消息(1 1)面向過程語言)面向過程語言數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)+ +算法算法3 3、從描述客觀系統(tǒng)的角度來分、從描述客觀系統(tǒng)的角度來分例:例:DelphiDelphi、Visual Visual BasicBasic、JAVAJAVA、C+C+。第4頁/共90頁6 6.1.2 程序設(shè)計語言的選擇程序設(shè)計語言的選擇 為開發(fā)為開發(fā)一個特定項目一個特定項目選擇程序設(shè)計語言時,必須選擇程

4、序設(shè)計語言時,必須從技術(shù)特性、工程特性和心理特性幾方面考慮。在選從技術(shù)特性、工程特性和心理特性幾方面考慮。在選擇語言時,從問題入手,擇語言時,從問題入手, 確定它的要求是什么,以及確定它的要求是什么,以及這些要求的相對重要性。由于一種語言不可能同時滿這些要求的相對重要性。由于一種語言不可能同時滿足它的各種需求,足它的各種需求, 所以所以要對各種要求進(jìn)行權(quán)衡要對各種要求進(jìn)行權(quán)衡,比較,比較各種可用語言的適用程度,各種可用語言的適用程度, 最后選擇認(rèn)為是最適用的最后選擇認(rèn)為是最適用的語言。語言。 第5頁/共90頁7 1. 項目的應(yīng)用領(lǐng)域項目的應(yīng)用領(lǐng)域 項目應(yīng)用領(lǐng)域是選擇語言的關(guān)鍵因素,項目應(yīng)用領(lǐng)域

5、是選擇語言的關(guān)鍵因素, 有下列幾有下列幾種類型。種類型。 1) 1) 科學(xué)工程計算科學(xué)工程計算 該計算需要大量的標(biāo)準(zhǔn)庫函數(shù),該計算需要大量的標(biāo)準(zhǔn)庫函數(shù), 以便處理復(fù)以便處理復(fù)雜的數(shù)值計算,雜的數(shù)值計算, 可供選用的語言有:可供選用的語言有:第6頁/共90頁8(1) FORTRAN(1) FORTRAN語言:語言: 是世界上第一個被正式推廣應(yīng)是世界上第一個被正式推廣應(yīng)用的計算機語言,產(chǎn)生于用的計算機語言,產(chǎn)生于19541954年,經(jīng)過年,經(jīng)過FORTRAN 0FORTRAN 0到到FORTRAN FORTRAN , 又相繼擴展為又相繼擴展為FORTRAN 77FORTRAN 77,F(xiàn)ORTRAN

6、 FORTRAN 9090,通過幾個版本不斷的更新,使它不僅面向科學(xué),通過幾個版本不斷的更新,使它不僅面向科學(xué)計算,數(shù)據(jù)處理能力也極強。計算,數(shù)據(jù)處理能力也極強。 (2) Pascal(2) Pascal語言:語言: 產(chǎn)生于產(chǎn)生于6060年代末,年代末, 具有很強的具有很強的數(shù)據(jù)和過程結(jié)構(gòu)化的能力,它是第一個體現(xiàn)結(jié)構(gòu)化數(shù)據(jù)和過程結(jié)構(gòu)化的能力,它是第一個體現(xiàn)結(jié)構(gòu)化編程思想的語言,編程思想的語言, 由于它語言簡明、數(shù)據(jù)類型豐富由于它語言簡明、數(shù)據(jù)類型豐富、程序結(jié)構(gòu)嚴(yán)謹(jǐn),許多算法都用類、程序結(jié)構(gòu)嚴(yán)謹(jǐn),許多算法都用類PascalPascal來概括。來概括。用用PascalPascal語言寫程序,也有助

7、于培養(yǎng)良好的編程風(fēng)語言寫程序,也有助于培養(yǎng)良好的編程風(fēng)格。格。 第7頁/共90頁9(3) C(3) C語言:語言:產(chǎn)生于產(chǎn)生于7070年代初,最初用于描述年代初,最初用于描述UNIXUNIX操操作系統(tǒng)及其上層軟件,后來發(fā)展成具有很強功能的作系統(tǒng)及其上層軟件,后來發(fā)展成具有很強功能的語言,支持復(fù)雜的數(shù)據(jù)結(jié)構(gòu),語言,支持復(fù)雜的數(shù)據(jù)結(jié)構(gòu), 可大量運用指針,具可大量運用指針,具有豐富靈活的操作運算符及數(shù)據(jù)處理操作符。此外有豐富靈活的操作運算符及數(shù)據(jù)處理操作符。此外還具有匯編語言的某些特性,使程序運行效率高。還具有匯編語言的某些特性,使程序運行效率高。 (4) PL/1(4) PL/1語言:語言: 是一

8、個適用性非常廣泛的語言,是一個適用性非常廣泛的語言, 能夠適用于多種不同的應(yīng)用領(lǐng)域,但由于太龐大,能夠適用于多種不同的應(yīng)用領(lǐng)域,但由于太龐大,難以推廣使用,目前一些難以推廣使用,目前一些PL/1PL/1的子集被廣泛使用。的子集被廣泛使用。第8頁/共90頁102) 2) 數(shù)據(jù)處理與數(shù)據(jù)庫應(yīng)用數(shù)據(jù)處理與數(shù)據(jù)庫應(yīng)用數(shù)據(jù)處理與數(shù)據(jù)庫應(yīng)用可供選用的語言如下:數(shù)據(jù)處理與數(shù)據(jù)庫應(yīng)用可供選用的語言如下:(1) Cobol(1) Cobol語言:語言: 產(chǎn)生于產(chǎn)生于 50 50 年代末,年代末, 是廣泛用于是廣泛用于商業(yè)數(shù)據(jù)處理的語言,它具有極強的數(shù)據(jù)定義能力商業(yè)數(shù)據(jù)處理的語言,它具有極強的數(shù)據(jù)定義能力,程序說

9、明與硬件環(huán)境說明分開,程序說明與硬件環(huán)境說明分開, 數(shù)據(jù)描述與算法數(shù)據(jù)描述與算法描述分開,結(jié)構(gòu)嚴(yán)謹(jǐn)層次分明,描述分開,結(jié)構(gòu)嚴(yán)謹(jǐn)層次分明, 說明采用類英語的說明采用類英語的語法結(jié)構(gòu),可讀性強。語法結(jié)構(gòu),可讀性強。第9頁/共90頁11(2) SQL(2) SQL語言:語言: 最初是為最初是為IBMIBM公司開發(fā)的數(shù)據(jù)庫查詢公司開發(fā)的數(shù)據(jù)庫查詢語言,語言, 目前不同的軟件開發(fā)公司有了不同的擴充版目前不同的軟件開發(fā)公司有了不同的擴充版本,本, 如如 80 80 年代后期我國引入年代后期我國引入Informix-SQL, Informix-SQL, Microsoft-SQLMicrosoft-SQL可

10、以方便地對數(shù)據(jù)庫進(jìn)行存取管理??梢苑奖愕貙?shù)據(jù)庫進(jìn)行存取管理。 第10頁/共90頁12(3) 4GL(3) 4GL語言:語言: 稱為第稱為第4 4代語言,隨著信息系統(tǒng)的飛代語言,隨著信息系統(tǒng)的飛速發(fā)展,速發(fā)展, 原來的第原來的第2 2代語言代語言( (如如FORTRANFORTRAN,Cobol)Cobol)第第3 3代語言代語言( (如如Pascal, CPascal, C等等) )受硬件和操作系統(tǒng)的局限,受硬件和操作系統(tǒng)的局限,其開發(fā)工具不能滿足新技術(shù)發(fā)展的需求,因此,在其開發(fā)工具不能滿足新技術(shù)發(fā)展的需求,因此,在7070年代末,提出了第年代末,提出了第4 4代語言的概念,代語言的概念,

11、4GL4GL的主要特的主要特征是:征是:第11頁/共90頁13 友好的用戶界面:友好的用戶界面: 指操作簡單,指操作簡單, 使非計算機專業(yè)人員也使非計算機專業(yè)人員也能方便地使用它。能方便地使用它。 兼有過程性和非過程性雙重特性:兼有過程性和非過程性雙重特性:非過程性指語言的抽象非過程性指語言的抽象層次又提高到一個新的高度,只需告訴計算機層次又提高到一個新的高度,只需告訴計算機“做什么做什么”, 而不必描述而不必描述“怎么做怎么做”,“怎么做怎么做”的工作由語言系統(tǒng)運用的工作由語言系統(tǒng)運用它的專門領(lǐng)域的知識來填充過程細(xì)節(jié)。它的專門領(lǐng)域的知識來填充過程細(xì)節(jié)。 高效的程序代碼:高效的程序代碼: 指能

12、縮短開發(fā)周期,指能縮短開發(fā)周期, 并減少維護的代并減少維護的代價。價。 完備的數(shù)據(jù)庫:完備的數(shù)據(jù)庫: 指在指在4GL4GL中實現(xiàn)數(shù)據(jù)庫功能,中實現(xiàn)數(shù)據(jù)庫功能, 不再把不再把DBMS(DBMS(數(shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)庫管理系統(tǒng)) )看成是語言以外的成分??闯墒钦Z言以外的成分。 第12頁/共90頁14 應(yīng)用程序生成器:應(yīng)用程序生成器:能提供一些常用的程序來完成文件維護能提供一些常用的程序來完成文件維護、屏幕管理、報表生成和查詢等任務(wù),、屏幕管理、報表生成和查詢等任務(wù), 從而有效提高軟件生從而有效提高軟件生產(chǎn)率。產(chǎn)率。 目前流行的目前流行的FoxFox公司的公司的FoxProFoxPro, Unifac

13、e, Uniface公司的公司的UnifaceUniface, , PowersoftPowersoft公司的公司的Power BuilderPower Builder, Informix, Informix公司的公司的Informix-Informix-4GL4GL以及各種擴充版本的以及各種擴充版本的SQLSQL等都不同程度地具有上述特征。等都不同程度地具有上述特征。 第13頁/共90頁153) 3) 實時處理實時處理 實時處理軟件一般對性能的要求很高,可選實時處理軟件一般對性能的要求很高,可選用的語言有:用的語言有: (1) (1) 匯編語言:匯編語言:是面向機器的,它可以完成高級語言是面

14、向機器的,它可以完成高級語言無法滿足要求的特殊功能,如與外部設(shè)備之間的一些無法滿足要求的特殊功能,如與外部設(shè)備之間的一些接口操作。接口操作。第14頁/共90頁16(2) Ada(2) Ada語言:語言:是美國國防部出資開發(fā)的,主要用于是美國國防部出資開發(fā)的,主要用于適時、適時、 并發(fā)和嵌入系統(tǒng)的語言。并發(fā)和嵌入系統(tǒng)的語言。AdaAda語言是在語言是在PascalPascal基礎(chǔ)上開發(fā)出來的,但其功能更強、更復(fù)雜基礎(chǔ)上開發(fā)出來的,但其功能更強、更復(fù)雜。它提供了一組豐富的實時特性,。它提供了一組豐富的實時特性, 包括多任務(wù)處理包括多任務(wù)處理、中斷處理、任務(wù)間同步與通信等,、中斷處理、任務(wù)間同步與通

15、信等, 它還提供了許它還提供了許多程序包供程序員選擇。通過修訂,已成為安全、多程序包供程序員選擇。通過修訂,已成為安全、高效和靈活的面向?qū)ο蟮木幊陶Z言。高效和靈活的面向?qū)ο蟮木幊陶Z言。 第15頁/共90頁174) 4) 系統(tǒng)軟件系統(tǒng)軟件 如果編寫操作系統(tǒng)、編譯系統(tǒng)等系統(tǒng)軟件時,可如果編寫操作系統(tǒng)、編譯系統(tǒng)等系統(tǒng)軟件時,可選用匯編語言、選用匯編語言、C C語言、語言、PascalPascal語言和語言和AdaAda語言。語言。5) 5) 人工智能人工智能 如果要完成知識庫系統(tǒng)、專家系統(tǒng)、決策支持系如果要完成知識庫系統(tǒng)、專家系統(tǒng)、決策支持系統(tǒng)、推理工程、語言識別、模式識別、機器人視角統(tǒng)、推理工程、

16、語言識別、模式識別、機器人視角及自然語言處理等人工智能領(lǐng)域內(nèi)的系統(tǒng),及自然語言處理等人工智能領(lǐng)域內(nèi)的系統(tǒng), 應(yīng)選擇應(yīng)選擇的語言如下:的語言如下: 第16頁/共90頁18(1) Lisp:(1) Lisp: 是一種函數(shù)型語言,產(chǎn)生于是一種函數(shù)型語言,產(chǎn)生于6060年代初,它年代初,它特別適用于組合問題中的符號運算和表處理,因此用特別適用于組合問題中的符號運算和表處理,因此用于定理證明、樹的搜索和其他問題的求解。近年來于定理證明、樹的搜索和其他問題的求解。近年來LispLisp廣泛應(yīng)用于專家系統(tǒng)的開發(fā),廣泛應(yīng)用于專家系統(tǒng)的開發(fā), 對于定義知識庫對于定義知識庫系統(tǒng)中的事實、規(guī)則和相應(yīng)的推理相對要容易

17、一些。系統(tǒng)中的事實、規(guī)則和相應(yīng)的推理相對要容易一些。 第17頁/共90頁19(2) Prolog:(2) Prolog: 是一種邏輯型語言,產(chǎn)生于是一種邏輯型語言,產(chǎn)生于7070年代初,年代初,它提供了支持知識表示的特性,每一個程序由一組表它提供了支持知識表示的特性,每一個程序由一組表示事實、規(guī)則和推理的子句組成,示事實、規(guī)則和推理的子句組成, 比較接近于自然比較接近于自然語言,符合人的思維方式。語言,符合人的思維方式。 以上討論的語言,一般適用于相應(yīng)的應(yīng)用領(lǐng)域,以上討論的語言,一般適用于相應(yīng)的應(yīng)用領(lǐng)域, 但要根據(jù)具體情況靈活掌握。有的語言功能強,適用但要根據(jù)具體情況靈活掌握。有的語言功能強,

18、適用的范圍較廣,但比較龐大。的范圍較廣,但比較龐大。第18頁/共90頁202. 2. 軟件開發(fā)的方法軟件開發(fā)的方法 有時編程語言的選擇依賴于開發(fā)的方法,有時編程語言的選擇依賴于開發(fā)的方法,如果要如果要用快速原型模型來開發(fā),要求能快速實現(xiàn)原型,因此用快速原型模型來開發(fā),要求能快速實現(xiàn)原型,因此宜采用宜采用4GL4GL。如果是面向?qū)ο蠓椒?,宜采用面向?qū)ο笕绻敲嫦驅(qū)ο蠓椒?,宜采用面向?qū)ο蟮恼Z言編程的語言編程。近年來,推出了許多面向?qū)ο蟮恼Z言,。近年來,推出了許多面向?qū)ο蟮恼Z言,這里主要介紹以下幾種:這里主要介紹以下幾種:第19頁/共90頁21(1) C+(1) C+:是由美國是由美國AT&TAT&

19、T公司的公司的BellBell實驗室最先設(shè)計實驗室最先設(shè)計和實現(xiàn)的語言,它提供了面向?qū)ο箢惖亩x、繼承、和實現(xiàn)的語言,它提供了面向?qū)ο箢惖亩x、繼承、封裝和消息傳遞等概念實現(xiàn)的手段,又與封裝和消息傳遞等概念實現(xiàn)的手段,又與C C語言兼容語言兼容,保留了,保留了C C語言的許多特性,語言的許多特性, 維護了大量已開發(fā)的維護了大量已開發(fā)的C C庫、庫、C C工具以及工具以及C C源程序的完整性,使編程人員不必放源程序的完整性,使編程人員不必放棄自己熟悉的棄自己熟悉的C C語言,只需補充學(xué)習(xí)語言,只需補充學(xué)習(xí)C+C+提供的那些面提供的那些面向?qū)ο蟮母拍?,因而從向?qū)ο蟮母拍睿蚨鴱腃 C過渡到過渡到C

20、+C+比較容易,加之它比較容易,加之它的運行性能較高,的運行性能較高, 成為當(dāng)今最受歡迎的對象語言之成為當(dāng)今最受歡迎的對象語言之一一。第20頁/共90頁22 目前,目前, 除了常用的除了常用的AT&T C+, Turbo C+, AT&T C+, Turbo C+, Borland C+Borland C+及及Microsoft C+Microsoft C+等版本外,又推出了等版本外,又推出了Microsoft Visual C+, Microsoft Visual C+, 充分發(fā)揮充分發(fā)揮WindowsWindows和和WebWeb的的功能。功能。 第21頁/共90頁23(2) Java:(

21、2) Java: 是由是由SunSun公司開發(fā)的一種面向?qū)ο蟮?、分公司開發(fā)的一種面向?qū)ο蟮?、分布式的、布式的?安全的、安全的、 高效的及易移植的語言,它的高效的及易移植的語言,它的基本功能類似于基本功能類似于C+C+, 但做了重大修改,但做了重大修改, 不再支持不再支持運算符重載、多繼承及許多易于混淆和較少使用的運算符重載、多繼承及許多易于混淆和較少使用的特性,增加了內(nèi)存空間自動垃圾收集的功能,特性,增加了內(nèi)存空間自動垃圾收集的功能, 使程使程序員不必考慮內(nèi)存管理問題。序員不必考慮內(nèi)存管理問題。JavaJava應(yīng)用程序可利用應(yīng)用程序可利用語言提供的例程庫,能夠自由地打開和訪問網(wǎng)絡(luò)上語言提供的

22、例程庫,能夠自由地打開和訪問網(wǎng)絡(luò)上的對象。的對象。第22頁/共90頁243. 3. 軟件執(zhí)行的環(huán)境軟件執(zhí)行的環(huán)境 良好的編程環(huán)境不但有效提高軟件生產(chǎn)率,良好的編程環(huán)境不但有效提高軟件生產(chǎn)率, 同時同時能減少錯誤,有效提高軟件質(zhì)量。近幾年推出了許多能減少錯誤,有效提高軟件質(zhì)量。近幾年推出了許多可視化的軟件開發(fā)環(huán)境,可視化的軟件開發(fā)環(huán)境, 如如Visual BASIC, Visual Visual BASIC, Visual C, Visual FoxProC, Visual FoxPro及及Delphi(Delphi(面向?qū)ο蟮拿嫦驅(qū)ο蟮腜ascal)Pascal)等,等,都提供了強有力的調(diào)試工

23、具,都提供了強有力的調(diào)試工具, 幫助你快速形成高質(zhì)幫助你快速形成高質(zhì)量的軟件。量的軟件。第23頁/共90頁254. 4. 算法和數(shù)據(jù)結(jié)構(gòu)的復(fù)雜性算法和數(shù)據(jù)結(jié)構(gòu)的復(fù)雜性 科學(xué)計算、實時處理和人工智能領(lǐng)域中的問題算科學(xué)計算、實時處理和人工智能領(lǐng)域中的問題算法較復(fù)雜,法較復(fù)雜, 而數(shù)據(jù)處理、數(shù)據(jù)庫應(yīng)用和系統(tǒng)軟件領(lǐng)而數(shù)據(jù)處理、數(shù)據(jù)庫應(yīng)用和系統(tǒng)軟件領(lǐng)域內(nèi)的問題,數(shù)據(jù)結(jié)構(gòu)比較復(fù)雜,因此選擇語言時可域內(nèi)的問題,數(shù)據(jù)結(jié)構(gòu)比較復(fù)雜,因此選擇語言時可考慮是否有完成復(fù)雜算法的能力,考慮是否有完成復(fù)雜算法的能力, 或者有構(gòu)造復(fù)雜或者有構(gòu)造復(fù)雜數(shù)據(jù)結(jié)構(gòu)的能力。數(shù)據(jù)結(jié)構(gòu)的能力。第24頁/共90頁265. 5. 軟件開發(fā)人

24、員的知識軟件開發(fā)人員的知識 有時編程語言的選擇與軟件開發(fā)人員的知識水平有時編程語言的選擇與軟件開發(fā)人員的知識水平及心理因素有關(guān),新的語言雖然有吸引力,但軟件開及心理因素有關(guān),新的語言雖然有吸引力,但軟件開發(fā)人員若熟悉某種語言,發(fā)人員若熟悉某種語言, 而且有類似項目的開發(fā)經(jīng)而且有類似項目的開發(fā)經(jīng)驗,往往愿選擇原有的語言。驗,往往愿選擇原有的語言。 開發(fā)人員應(yīng)仔細(xì)地分開發(fā)人員應(yīng)仔細(xì)地分析軟件項目的類型,析軟件項目的類型, 敢于學(xué)習(xí)新知識,掌握新技術(shù)敢于學(xué)習(xí)新知識,掌握新技術(shù)。 第25頁/共90頁27 隨著計算機技術(shù)的發(fā)展,軟件的規(guī)模增大了,隨著計算機技術(shù)的發(fā)展,軟件的規(guī)模增大了,軟件的復(fù)雜性也增強

25、了。為了保證軟件的質(zhì)量,要軟件的復(fù)雜性也增強了。為了保證軟件的質(zhì)量,要加強軟件測試。加強軟件測試。 為了延長軟件的生存期,就要經(jīng)常為了延長軟件的生存期,就要經(jīng)常進(jìn)行軟件維護。不論測試與維護,進(jìn)行軟件維護。不論測試與維護, 都必須要閱讀程都必須要閱讀程序。因此,讀程序是軟件維護和開發(fā)過程中的一個序。因此,讀程序是軟件維護和開發(fā)過程中的一個重要組成部分。有時讀程序的時間比寫程序的時間重要組成部分。有時讀程序的時間比寫程序的時間還要多。還要多。第26頁/共90頁28 同樣一個題目,為什么有人編的程序容易讀懂同樣一個題目,為什么有人編的程序容易讀懂, 而有人編的程序不易讀懂呢而有人編的程序不易讀懂呢?

26、 ? 這就存在一個程序這就存在一個程序設(shè)計的風(fēng)格問題。程序設(shè)計風(fēng)格指一個人編制程序設(shè)計的風(fēng)格問題。程序設(shè)計風(fēng)格指一個人編制程序時所表現(xiàn)出來的特點、時所表現(xiàn)出來的特點、 習(xí)慣及邏輯思路等。良好的習(xí)慣及邏輯思路等。良好的編程風(fēng)格可以減少編碼的錯誤,編程風(fēng)格可以減少編碼的錯誤, 減少讀程序的時間減少讀程序的時間,從而提高軟件的開發(fā)效率。因此本節(jié)主要討論與,從而提高軟件的開發(fā)效率。因此本節(jié)主要討論與編程風(fēng)格有關(guān)的因素。編程風(fēng)格有關(guān)的因素。第27頁/共90頁291. 1. 源程序文檔化源程序文檔化編寫源程序文檔化的原則為:編寫源程序文檔化的原則為:(1) (1) 標(biāo)識符應(yīng)按意取名。標(biāo)識符應(yīng)按意取名。若是

27、幾個單詞組成的標(biāo)識符若是幾個單詞組成的標(biāo)識符, 每個單詞第一個字母用大寫,或者之間用下劃線每個單詞第一個字母用大寫,或者之間用下劃線分 開 , 這 便 于 理 解 。分 開 , 這 便 于 理 解 。 如 某 個 標(biāo) 識 符 取 名 為如 某 個 標(biāo) 識 符 取 名 為rowofscreen, rowofscreen, 若寫成若寫成RowOfScreenRowOfScreen或或rowrow-of-of- -screenscreen就容易理解了。但名字也不是越長越好,太長就容易理解了。但名字也不是越長越好,太長了,書寫與輸入都易出錯,必要時用縮寫名字,但縮了,書寫與輸入都易出錯,必要時用縮寫名

28、字,但縮寫規(guī)則要一致。寫規(guī)則要一致。 第28頁/共90頁30(2) (2) 程序應(yīng)加注釋。程序應(yīng)加注釋。 注釋是程序員與讀者之間通信注釋是程序員與讀者之間通信的重要工具,用自然語言或偽碼描述。它說明了程序的重要工具,用自然語言或偽碼描述。它說明了程序的功能,特別在維護階段,的功能,特別在維護階段, 對理解程序提供了明確對理解程序提供了明確指導(dǎo)。注釋分序言性注釋和功能性注釋。指導(dǎo)。注釋分序言性注釋和功能性注釋。第29頁/共90頁31序言性注釋應(yīng)置于每個模塊起始部分序言性注釋應(yīng)置于每個模塊起始部分, 主要內(nèi)容有主要內(nèi)容有: 說明每個模塊的用途、說明每個模塊的用途、 功能。功能。 說明模塊的接口即調(diào)

29、用形式、說明模塊的接口即調(diào)用形式、 參數(shù)描述及從屬模參數(shù)描述及從屬模塊的清單。塊的清單。 數(shù)據(jù)描述:數(shù)據(jù)描述: 指重要數(shù)據(jù)的名稱、指重要數(shù)據(jù)的名稱、 用途、用途、 限制、限制、 約束及其他信息。約束及其他信息。 開發(fā)歷史:開發(fā)歷史: 指設(shè)計者、指設(shè)計者、 審閱者姓名及日期,審閱者姓名及日期, 修修改說明及日期。改說明及日期。 第30頁/共90頁32功能性注釋嵌入在源程序內(nèi)部功能性注釋嵌入在源程序內(nèi)部,說明程序段或語句,說明程序段或語句的功能以及數(shù)據(jù)的狀態(tài)。注意以下幾點:的功能以及數(shù)據(jù)的狀態(tài)。注意以下幾點: 注釋用來說明程序段,注釋用來說明程序段, 而不是每一行程序都要而不是每一行程序都要加注釋

30、。加注釋。 使用空行或縮進(jìn)或括號,使用空行或縮進(jìn)或括號, 以便很容易區(qū)分注釋以便很容易區(qū)分注釋和程序。和程序。 修改程序也應(yīng)修改注釋。修改程序也應(yīng)修改注釋。 第31頁/共90頁332. 2. 數(shù)據(jù)說明數(shù)據(jù)說明為了使數(shù)據(jù)定義更易于理解維護,有以下指導(dǎo)原則為了使數(shù)據(jù)定義更易于理解維護,有以下指導(dǎo)原則: (1) (1) 數(shù)據(jù)說明順序應(yīng)規(guī)范,數(shù)據(jù)說明順序應(yīng)規(guī)范,使數(shù)據(jù)的屬使數(shù)據(jù)的屬性更易于查找,性更易于查找, 從而有利于測試、糾錯與維護。例從而有利于測試、糾錯與維護。例如按常量說明、類型說明、如按常量說明、類型說明、 全程量說明及局部量說全程量說明及局部量說明順序。明順序。(2) (2) 一個語句說明

31、多個變量時一個語句說明多個變量時, 各變量名按字典序各變量名按字典序排列。排列。 (3) (3) 對于復(fù)雜的數(shù)據(jù)結(jié)構(gòu),對于復(fù)雜的數(shù)據(jù)結(jié)構(gòu), 要加注釋,要加注釋, 說明在程說明在程序?qū)崿F(xiàn)時的特點。序?qū)崿F(xiàn)時的特點。第32頁/共90頁343. 3. 語句構(gòu)造語句構(gòu)造 語句構(gòu)造的原則為:簡單直接,不能為了追求效語句構(gòu)造的原則為:簡單直接,不能為了追求效率而使代碼復(fù)雜化。為了便于閱讀和理解,不要一行率而使代碼復(fù)雜化。為了便于閱讀和理解,不要一行多個語句。不同層次的語句采用縮進(jìn)形式,使程序的多個語句。不同層次的語句采用縮進(jìn)形式,使程序的邏輯結(jié)構(gòu)和功能特征更加清晰。邏輯結(jié)構(gòu)和功能特征更加清晰。 要避免復(fù)雜的

32、判定條要避免復(fù)雜的判定條件,避免多重的循環(huán)嵌套。表達(dá)式中使用括號以提高件,避免多重的循環(huán)嵌套。表達(dá)式中使用括號以提高運算次序的清晰度等。運算次序的清晰度等。 第33頁/共90頁354. 4. 輸入和輸出輸入和輸出在編寫輸入和輸出程序時考慮以下原則:在編寫輸入和輸出程序時考慮以下原則:(1) (1) 輸入操作步驟和輸入格式盡量簡單。輸入操作步驟和輸入格式盡量簡單。(2) (2) 應(yīng)檢查輸入數(shù)據(jù)的合法性、應(yīng)檢查輸入數(shù)據(jù)的合法性、 有效性,有效性, 報告必要報告必要的輸入狀態(tài)信息及錯誤信息。的輸入狀態(tài)信息及錯誤信息。(3) (3) 輸入一批數(shù)據(jù)時,輸入一批數(shù)據(jù)時, 使用數(shù)據(jù)或文件結(jié)束標(biāo)志,使用數(shù)據(jù)或

33、文件結(jié)束標(biāo)志, 而不要用計數(shù)來控制。而不要用計數(shù)來控制。 (4) (4) 交互式輸入時,交互式輸入時, 提供可用的選擇和邊界值。提供可用的選擇和邊界值。第34頁/共90頁36(5) (5) 當(dāng)程序設(shè)計語言有嚴(yán)格的格式要求時,當(dāng)程序設(shè)計語言有嚴(yán)格的格式要求時, 應(yīng)保持應(yīng)保持輸入格式的一致性。輸入格式的一致性。(6) (6) 輸出數(shù)據(jù)表格化、輸出數(shù)據(jù)表格化、 圖形化。圖形化。 輸入、輸入、 輸出風(fēng)格還受其他因素的影響,輸出風(fēng)格還受其他因素的影響, 如輸如輸入、入、 輸出設(shè)備,用戶經(jīng)驗及通信環(huán)境等。輸出設(shè)備,用戶經(jīng)驗及通信環(huán)境等。第35頁/共90頁375. 5. 效率效率效率指處理機時間和存儲空間的

34、使用,效率指處理機時間和存儲空間的使用, 對效率的追對效率的追求明確以下幾點:求明確以下幾點: (1) 1) 效率是一個性能要求,效率是一個性能要求, 目標(biāo)在需求分析給出目標(biāo)在需求分析給出。 (2) (2) 追求效率建立在不損害程序可讀性或可靠性基追求效率建立在不損害程序可讀性或可靠性基礎(chǔ)之上,礎(chǔ)之上, 要先使程序正確,再提高程序效率;先使要先使程序正確,再提高程序效率;先使程序清晰,再提高程序效率。程序清晰,再提高程序效率。 第36頁/共90頁38(3) (3) 提高程序效率的根本途徑在于選擇良好的設(shè)計提高程序效率的根本途徑在于選擇良好的設(shè)計方法、方法、 良好的數(shù)據(jù)結(jié)構(gòu)與算法,而不是靠編程時

35、對良好的數(shù)據(jù)結(jié)構(gòu)與算法,而不是靠編程時對程序語句做調(diào)整。程序語句做調(diào)整。 總之,在編碼階段,要善于總之,在編碼階段,要善于積累編程經(jīng)驗,培養(yǎng)和學(xué)習(xí)良好的編程風(fēng)格,使編積累編程經(jīng)驗,培養(yǎng)和學(xué)習(xí)良好的編程風(fēng)格,使編出的程序清晰易懂,易于測試與維護,出的程序清晰易懂,易于測試與維護, 從而提高軟從而提高軟件的質(zhì)量。件的質(zhì)量。 第37頁/共90頁39第38頁/共90頁40第39頁/共90頁41第40頁/共90頁42第41頁/共90頁43第42頁/共90頁44第43頁/共90頁45第44頁/共90頁46第45頁/共90頁47第46頁/共90頁48第47頁/共90頁49第48頁/共90頁50第49頁/共90頁51第50頁/共90頁52第51頁/共90頁53第52頁/共90頁54第53頁/共90頁55第54頁/共90頁56第55頁/共90頁57第56頁/共90頁58第57頁/共90頁59第58頁/共90頁60第59頁/共90頁61第60頁/共90頁62第61頁/共90頁63第62頁/共90頁64第63頁/共90頁65第64頁/共90頁66第65頁/共90頁67第66頁/共90頁68第67頁/共90頁69第68頁/共90頁70第69頁/共90頁71第70頁/共90頁72第71頁/共90頁73第72頁/共90頁74第73頁/共90

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論