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