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