資源描述:
《c++語言程序設(shè)計_清華大學(xué)_鄭莉》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、第一章緒論清華大學(xué)鄭莉C++語言程序設(shè)計本章主要內(nèi)容計算機(jī)程序設(shè)計語言的發(fā)展面向?qū)ο蟮姆椒嫦驅(qū)ο蟮能浖_發(fā)信息的表示與存儲程序的開發(fā)過程2計算機(jī)程序計算機(jī)的工作是用程序來控制的程序是指令的集合。指令是計算機(jī)可以識別的命令。計算機(jī)語言的發(fā)展3機(jī)器語言與匯編語言由計算機(jī)硬件系統(tǒng)可以識別的二進(jìn)制指令組成的語言稱為機(jī)器語言。計算機(jī)發(fā)展的初期,軟件工程師們只能用機(jī)器語言來編寫程序。這一階段,在人類的自然語言和計算機(jī)編程語言之間存在著巨大的鴻溝。匯編語言將機(jī)器指令映射為一些可以被人讀懂的助記符,如ADD、SUB等。此時
2、編程語言與人類自然語言間的鴻溝略有縮小,但仍與人類的思維相差甚遠(yuǎn)。因為它的抽象層次太低,程序員需要考慮大量的機(jī)器細(xì)節(jié)。計算機(jī)語言的發(fā)展4高級語言高級語言屏蔽了機(jī)器的細(xì)節(jié),提高了語言的抽象層次,程序中可以采用具有一定涵義的數(shù)據(jù)命名和容易理解的執(zhí)行語句。這使得在書寫程序時可以聯(lián)系到程序所描述的具體事物。計算機(jī)語言的發(fā)展5面向?qū)ο蟮恼Z言出發(fā)點:更直接地描述客觀世界中存在的事物(對象)以及它們之間的關(guān)系。特點:是高級語言。將客觀事物看作具有屬性和行為的對象。通過抽象找出同一類對象的共同屬性和行為,形成類。通過類的繼承
3、與多態(tài)實現(xiàn)代碼重用計算機(jī)語言的發(fā)展6面向?qū)ο蟮恼Z言優(yōu)點:使程序能夠比較直接地反問題域的本來面目,軟件開發(fā)人員能夠利用人類認(rèn)識事物所采用的一般思維方法來進(jìn)行軟件開發(fā)。計算機(jī)語言的發(fā)展7程序設(shè)計方法的發(fā)展歷程——面向過程的程序設(shè)計方法程序的目的:用于數(shù)學(xué)計算主要工作:設(shè)計求解問題的過程缺點:對于龐大、復(fù)雜的程序難以開發(fā)和維護(hù)面向?qū)ο蟮姆椒?程序設(shè)計方法的發(fā)展歷程——面向過程的結(jié)構(gòu)化程序設(shè)計方法設(shè)計思路自頂向下、逐步求精。采用模塊分解與功能抽象,自頂向下、分而治之。程序結(jié)構(gòu):按功能劃分為若干個基本模塊,形成一個樹狀
4、結(jié)構(gòu)。各模塊間的關(guān)系盡可能簡單,功能上相對獨立;每一模塊內(nèi)部均是由順序、選擇和循環(huán)三種基本結(jié)構(gòu)組成。其模塊化實現(xiàn)的具體方法是使用子程序。面向?qū)ο蟮姆椒?程序設(shè)計方法的發(fā)展歷程——面向過程的結(jié)構(gòu)化程序設(shè)計方法優(yōu)點:有效地將一個較復(fù)雜的程序系統(tǒng)設(shè)計任務(wù)分解成許多易于控制和處理的子任務(wù),便于開發(fā)和維護(hù)。面向?qū)ο蟮姆椒?0程序設(shè)計方法的發(fā)展歷程——面向過程的結(jié)構(gòu)化程序設(shè)計方法缺點:可重用性差、數(shù)據(jù)安全性差、難以開發(fā)大型軟件和圖形界面的應(yīng)用軟件把數(shù)據(jù)和處理數(shù)據(jù)的過程分離為相互獨立的實體。當(dāng)數(shù)據(jù)結(jié)構(gòu)改變時,所有相關(guān)的處理
5、過程都要進(jìn)行相應(yīng)的修改。每一種相對于老問題的新方法都要帶來額外的開銷。圖形用戶界面的應(yīng)用程序,很難用過程來描述和實現(xiàn),開發(fā)和維護(hù)也都很困難。面向?qū)ο蟮姆椒?1程序設(shè)計方法的發(fā)展歷程——面向?qū)ο蟮姆椒▽?shù)據(jù)及對數(shù)據(jù)的操作方法封裝在一起,作為一個相互依存、不可分離的整體——對象。對同類型對象抽象出其共性,形成類。類通過一個簡單的外部接口,與外界發(fā)生關(guān)系。對象與對象之間通過消息進(jìn)行通訊。面向?qū)ο蟮姆椒?2程序設(shè)計方法的發(fā)展歷程——面向?qū)ο蟮姆椒▋?yōu)點:程序模塊間的關(guān)系更為簡單,程序模塊的獨立性、數(shù)據(jù)的安全性就有了良好
6、的保障。通過繼承與多態(tài)性,可以大大提高程序的可重用性,使得軟件的開發(fā)和維護(hù)都更為方便。面向?qū)ο蟮姆椒?3面向?qū)ο蟮幕靖拍睢獙ο笠话阋饬x上的對象:是現(xiàn)實世界中一個實際存在的事物。可以是有形的(比如一輛汽車),也可以是無形的(比如一項計劃)。是構(gòu)成世界的一個獨立單位,具有:靜態(tài)特征:可以用某種數(shù)據(jù)來描述動態(tài)特征:對象所表現(xiàn)的行為或具有的功能面向?qū)ο蟮姆椒?4面向?qū)ο蟮幕靖拍睢獙ο竺嫦驅(qū)ο蠓椒ㄖ械膶ο螅菏窍到y(tǒng)中用來描述客觀事物的一個實體,它是用來構(gòu)成系統(tǒng)的一個基本單位。對象由一組屬性和一組行為構(gòu)成。屬性:用
7、來描述對象靜態(tài)特征的數(shù)據(jù)項。行為:用來描述對象動態(tài)特征的操作序列。面向?qū)ο蟮姆椒?5面向?qū)ο蟮幕靖拍睢惙诸悺祟愅ǔ5乃季S方法分類所依據(jù)的原則——抽象忽略事物的非本質(zhì)特征,只注意那些與當(dāng)前目標(biāo)有關(guān)的本質(zhì)特征,從而找出事物的共性,把具有共同性質(zhì)的事物劃分為一類,得出一個抽象的概念。例如,石頭、樹木、汽車、房屋等都是人們在長期的生產(chǎn)和生活實踐中抽象出的概念。面向?qū)ο蟮姆椒?6面向?qū)ο蟮幕靖拍睢惷嫦驅(qū)ο蠓椒ㄖ械?類"具有相同屬性和服務(wù)的一組對象的集合為屬于該類的全部對象提供了抽象的描述,包括屬性和行為
8、兩個主要部分。類與對象的關(guān)系:猶如模具與鑄件之間的關(guān)系,一個屬于某類的對象稱為該類的一個實例。面向?qū)ο蟮姆椒?7面向?qū)ο蟮幕靖拍睢庋b把對象的屬性和服務(wù)結(jié)合成一個獨立的系統(tǒng)單元。盡可能隱蔽對象的內(nèi)部細(xì)節(jié)。對外形成一個邊界(或者說一道屏障),只保留有限的對外接口使之與外部發(fā)生聯(lián)系。面向?qū)ο蟮姆椒?8面向?qū)ο蟮幕靖拍睢^承繼承對于軟件復(fù)用有著重要意義,是面向?qū)ο蠹夹g(shù)能夠提高軟件開發(fā)效率的重要原