面向?qū)ο蟪绦蛟O(shè)計(jì)及C++_第1頁
面向?qū)ο蟪绦蛟O(shè)計(jì)及C++_第2頁
面向?qū)ο蟪绦蛟O(shè)計(jì)及C++_第3頁
面向?qū)ο蟪绦蛟O(shè)計(jì)及C++_第4頁
面向?qū)ο蟪绦蛟O(shè)計(jì)及C++_第5頁
已閱讀5頁,還剩25頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

M

W

關(guān)于本課程的學(xué)習(xí):

?教材和參考書

?課時(shí)計(jì)劃表與學(xué)時(shí)

?教學(xué)要求

?考查形式

參考書:

?秦軍等編著,《C++語言學(xué)習(xí)與實(shí)驗(yàn)指導(dǎo)》,

河海大學(xué)出版社,2006年2月

?鄭莉編著,《C++語言程序設(shè)計(jì)》,清華大學(xué)出版社,

2002年7月

?錢能主編,《C++程序設(shè)計(jì)教程(第2版)》,

清華大學(xué)出版社,2005年9月

?徐春編著,面向?qū)ο蟪绦蛟O(shè)計(jì)習(xí)題與真題解析(本科),

中國(guó)水利水電出版社,2004年1月第一版。

課時(shí)計(jì)劃表總學(xué)時(shí)30+18

章節(jié)課時(shí)

第一章第二章面向?qū)ο蟪绦蛟O(shè)計(jì)技術(shù)1

第三章C++概述2

第四章類與對(duì)象6

第五章派生類與繼承類6

第六章多態(tài)性6

第七章模板3

第八章I/O流3

復(fù)習(xí)(機(jī)動(dòng))3

教學(xué)要求

?課前預(yù)習(xí)、課后復(fù)習(xí)

?大課、上機(jī)輔導(dǎo)課不得缺席

?作業(yè)按時(shí)完成

考查形式

?平時(shí)成績(jī)共占60%。

?期末閉卷考試占40%分。

?課程總成績(jī)?yōu)樯鲜龀煽?jī)之和

學(xué)習(xí)方法

?注重課堂學(xué)習(xí)

?勤于思考,多分析問題

?多上機(jī)實(shí)踐,熟能生巧

?充分利用網(wǎng)絡(luò)資源(校園網(wǎng)和互聯(lián)網(wǎng))

?多分析別人的程序,學(xué)習(xí)其編程的經(jīng)驗(yàn)

?分析C++語言對(duì)C語言的改進(jìn)與增強(qiáng)

?獨(dú)立完成作業(yè)

1/1

我的聯(lián)系方法:

區(qū)email:yandx@mail.usts.edu.cn

Tel:62260800

本章主要內(nèi)容

?計(jì)算機(jī)程序設(shè)計(jì)語言的發(fā)展

?面向?qū)ο蟮姆椒?/p>

程序設(shè)計(jì)方法的發(fā)展歷程

——面向過程的結(jié)構(gòu)化程序設(shè)計(jì)方法

?設(shè)計(jì)思路:

?:?采用模塊分解與功能抽象,自頂向下、分而治之。

?程序結(jié)構(gòu):

?:?按功能劃分為若干個(gè)基本模塊,形成一個(gè)樹狀結(jié)構(gòu)。

?:?各模塊間的關(guān)系盡可能簡(jiǎn)單,功能上相對(duì)獨(dú)立;每

一模塊內(nèi)部均由順序、選擇、循環(huán)三種基本結(jié)構(gòu)組成。

?:?其模塊化實(shí)現(xiàn)的具體方法是使用子程序。

程序設(shè)計(jì)方法的發(fā)展歷程

——面向過程的結(jié)構(gòu)化程序設(shè)計(jì)方法

?優(yōu)點(diǎn):

有效地將一個(gè)較復(fù)雜的程序系統(tǒng)設(shè)計(jì)任務(wù)分解

成許多易于控制和處理的子任務(wù),便于開發(fā)和維護(hù)。

?缺點(diǎn):

可重用性差、數(shù)據(jù)安全性差

。把數(shù)據(jù)和處理數(shù)據(jù)的過程分離為相互獨(dú)

立的實(shí)體,當(dāng)數(shù)據(jù)結(jié)構(gòu)改變時(shí),所有相關(guān)

的處理過程都要進(jìn)行相應(yīng)的修改。

?:?每一種相對(duì)于老問題的新方法都要帶來

額外的開銷。

?:?難以開發(fā)圖形界面的應(yīng)用

。圖形用戶界面的應(yīng)用,很難用過程來描

述和實(shí)現(xiàn),開發(fā)和維護(hù)都很困難。

典型的結(jié)構(gòu)化程序設(shè)計(jì)語言

一C語言

?優(yōu)點(diǎn):

““高效、靈活并能夠?qū)Φ讓硬僮鳌?/p>

?缺點(diǎn):

不具有支持代碼重用的類的機(jī)制(致命缺點(diǎn))

?應(yīng)用場(chǎng)合:

適用于中小型的程序設(shè)計(jì)的編程。

二代碼長(zhǎng)度在1萬行之下

程序設(shè)計(jì)方法的發(fā)展歷程

.用想.——面向?qū)ο蟮某绦蛟O(shè)計(jì)方法

將數(shù)據(jù)及對(duì)數(shù)據(jù)的操作方法封裝在一起,作為一個(gè)相

互依存、不可分離的整體一對(duì)象。

對(duì)同類型對(duì)象抽象出其共性,形成類。

類通過一個(gè)簡(jiǎn)單的外部接口,與外界發(fā)生關(guān)系。

?:?對(duì)象與對(duì)象之間通過消息進(jìn)行通訊。

?優(yōu)點(diǎn):

。程序模塊間的關(guān)系更簡(jiǎn)單,獨(dú)立性、數(shù)據(jù)的安全性有保障。

。通過繼承與多態(tài)性,可大大提高程序的可重用性,使得軟件

的開發(fā)和維護(hù)都更為方便。

面向?qū)ο笫冀寰虲t)」

一般意義上的對(duì)象:

?:?是現(xiàn)實(shí)世界中一個(gè)實(shí)際存在的事物。

?:?有形(一臺(tái)洗衣機(jī))、無形的(一項(xiàng)計(jì)劃)。

?:?是構(gòu)成世界的一個(gè)獨(dú)立單位,具有:

?靜態(tài)特征:對(duì)象的狀態(tài);

如:人的姓名、性別等;代應(yīng)

?動(dòng)態(tài)特征:對(duì)象所表現(xiàn)的行為或具有的功能

如:人的吃飯、跑步等行

面向?qū)ο蟮幕靖庞?/p>

——時(shí)豪(Object)_2

?面向?qū)ο蠓椒ㄖ械膶?duì)象:

?:?是系統(tǒng)中用來描述客觀事物的一個(gè)實(shí)體,

它是用來構(gòu)成系統(tǒng)的一個(gè)基本單位。

?:?對(duì)象由一組屬性和一組行為構(gòu)成。

?屬性:用來描述對(duì)象靜態(tài)特征的數(shù)據(jù)項(xiàng)。

?行為:用來描述對(duì)象動(dòng)態(tài)特征的操作序列。

面向?qū)ο蟮幕靖女?/p>

----簍(Class)」

?分類一人類通常的思維方法

____________________

?:?忽略事物非本質(zhì)特征,而從本質(zhì)特征中找出事物

的共性,把具有共性的事物劃分為一類,得出一

個(gè)抽象的概念。

?:?例如:石頭、樹木、汽車、房屋等都是人們?cè)陂L(zhǎng)

期生產(chǎn)和生活實(shí)踐中抽象出的概念。

面向?qū)ο蟮幕??ass)_2

?面向?qū)ο蠓椒ㄖ械摹邦悺保?/p>

?:?具有相同屬性和服務(wù)的一組對(duì)象的集合

。為屬于該類的全部對(duì)象提供了抽象的描述,

包括屬性和行為兩個(gè)主要部分。

。類與對(duì)象的關(guān)系:

?猶如模具與鑄件之間的關(guān)系(舉例P5,銀行帳戶)

?一個(gè)屬于某類的對(duì)象稱為該類的一個(gè)實(shí)例。

面向?qū)ο蟮幕靖拍?/p>

----封裝(Encapsulation)

?定義:

?把對(duì)象的屬性和服務(wù)結(jié)合成一個(gè)獨(dú)立的系統(tǒng)單位。

?描述:

隱蔽對(duì)象內(nèi)部細(xì)節(jié),對(duì)外形成一道屏障,只保

留有限的對(duì)外接口使之與外部發(fā)生聯(lián)系。

?舉例:

錄音機(jī)。

面向?qū)ο蟮幕靖拍?/p>

----封裝(Encapsulation)

對(duì)象是面向?qū)ο蟪绦蛟O(shè)計(jì)的基石,其特性:

(1)封裝性:

私有元素、操作細(xì)節(jié)隱藏,提供對(duì)外接口,消息激活

(2)模塊獨(dú)立性:

對(duì)象為獨(dú)立模塊,變化不受外界干擾,不影響其它模塊

(3)動(dòng)態(tài)鏈接性:

對(duì)象通過消息傳遞機(jī)制將對(duì)象動(dòng)態(tài)地聯(lián)系在一起

(4)易維護(hù)性

對(duì)象功能被隱蔽,修改完善工作局限于內(nèi)部,易維護(hù)

面向?qū)ο蟮幕靖拍?/p>

----繼承(Inheritance)

?定義:

特殊類的對(duì)象擁有其一般類的全部非私有屬性

與服務(wù),稱作特殊類對(duì)一般類的繼承。

?音W-

對(duì)軟件復(fù)用有著重要意義,能提高軟件開發(fā)效率

?舉例:(一般類和特殊類)。

1、P11哺乳動(dòng)物、狗和柯利狗的關(guān)系

2、輪船和客輪的關(guān)系

面向?qū)ο蟮幕锯?

----多態(tài)性(Polymorphism)

?描述:1、同一名稱,不同的功能實(shí)現(xiàn)方式;

2、不同對(duì)象收到相同消息時(shí)產(chǎn)生不同的行為。

,目的:達(dá)到行為標(biāo)識(shí)統(tǒng)一,減少程序中標(biāo)識(shí)符的個(gè)數(shù)。

?實(shí)現(xiàn):編譯時(shí)多態(tài)一重載函數(shù)、運(yùn)行時(shí)多態(tài)一虛國(guó)數(shù)

?舉例P14:

1、“挪開”的解釋

2、對(duì)“移動(dòng)”消息,“窗口”和“棋子”的不

同行為

典型的幾種OOP語言

?Simula67:

20世紀(jì)60年代開發(fā),鼻祖,主要用于仿真建模

?Smalltalk:

20世紀(jì)70年代開發(fā),最有影響的OOP語言之一

?Eiffel:

理論上最有商業(yè)潛力的最好的。OP語言

?C++:

對(duì)C進(jìn)行面向?qū)ο髷U(kuò)充,支持兩種范型

?Java:

SUN公司20世紀(jì)90年代開發(fā),廣泛用于網(wǎng)絡(luò)編程

典型的OOP語言

-----C++

?產(chǎn)生的時(shí)期:

1980年、貝爾實(shí)驗(yàn)室BjarneStroutStrupG

?主要的特性:

支持面向過程和面向?qū)ο髢煞N程序設(shè)計(jì)方法

?應(yīng)用場(chǎng)合:

適應(yīng)大型復(fù)雜程序開發(fā)與維護(hù)

C++與C語言之比較

?本質(zhì)差別:

/編程方法方面:

OC++一面向?qū)ο?;C語言一面向過程。

/程序結(jié)構(gòu)方面:

+C++—“對(duì)象+消息”模式;C—“數(shù)據(jù)+算法”

模式。

?兼容性:

/保持C的簡(jiǎn)潔、高效和接近匯編語言等特性。

/對(duì)源代碼的支持和對(duì)系統(tǒng)庫的支持。

?改良:

,改進(jìn)了C中一些易產(chǎn)生錯(cuò)誤的語法(見后文)。

■擴(kuò)充:_______

C++語言

新抽象;封裝

溫馨提示

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

評(píng)論

0/150

提交評(píng)論