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

下載本文檔

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

文檔簡介

c++面向?qū)ο蟪绦蛟O(shè)計(jì)

課程簡介:學(xué)習(xí)一門必須熟練掌握的、用來與計(jì)算機(jī)進(jìn)行“溝通”、指揮計(jì)算機(jī)為我們做事情的程序設(shè)計(jì)語言,是其他多門必修課程的前導(dǎo)課程。主要學(xué)習(xí)C++語言面向?qū)ο蟛糠值膬?nèi)容,其中包括類、繼承、重載及其應(yīng)用等。本課程非常重要!一定要下功夫?qū)W好!

1課時(shí)安排

本學(xué)期:每周上課2課時(shí),上機(jī)2課時(shí)。總成績100分=平時(shí)成績+上機(jī)實(shí)踐成績+期末筆試成績。

此外,還有分組游戲加分

2教學(xué)用書及參考書

教學(xué)用書:中國交通出版社,《C++程序設(shè)計(jì)》,劉麗華編著,

3第1章緒論

1.1程序設(shè)計(jì)與程序設(shè)計(jì)語言1.2C++語言概述1.3本書的宗旨和內(nèi)容安排5

1.1程序設(shè)計(jì)與程序設(shè)計(jì)語言

1.1.1計(jì)算機(jī)與程序設(shè)計(jì)語言1.1.2程序設(shè)計(jì)語言1.1.3程序設(shè)計(jì)方法學(xué)的發(fā)展1.1.4程序設(shè)計(jì)范型1.1.5程序設(shè)計(jì)的4個(gè)層次61.1.1計(jì)算機(jī)與程序設(shè)計(jì)語言

計(jì)算機(jī)也許是廿世紀(jì)人類帶給廿一世紀(jì)的最有價(jià)值的禮物,是人類文明歷史上最偉大的發(fā)明之一。

程序(軟件)是計(jì)算機(jī)的必要組成部分。計(jì)算機(jī)首先要求人們不斷地在程序設(shè)計(jì)上付出大量的創(chuàng)造性勞動(dòng),然后才能享受到它的服務(wù)。程序設(shè)計(jì)是一件工作量永無止境,極其困難復(fù)雜而又富有魅力和創(chuàng)造樂趣的工作。7 低級語言:機(jī)器語言與匯編語言計(jì)算機(jī)剛問世時(shí),它的“能耐”還比較小,只能“看懂”或“理解”程序員用原始的機(jī)器指令書寫的所謂機(jī)器語言程序。

匯編語言將機(jī)器指令映射為一些易于看懂、易于記憶的助記符,如ADD,SUB,MOV等。但若要運(yùn)行(執(zhí)行)用匯編語言寫成的源程序時(shí),必須先運(yùn)行一個(gè)叫做匯編程序系統(tǒng)(Assembler)的軟件,由它首先把匯編語言源程序轉(zhuǎn)換為具有相同功能的機(jī)器指令程序,然后再運(yùn)行機(jī)器指令程序,得到所需的結(jié)果。9高級語言之所以稱其為高級語言,是相對于機(jī)器語言與匯編語言來說,編程人員對它們的理解、記憶以及使用都要容易的多。高級語言屏蔽了諸多的機(jī)器細(xì)節(jié)問題,提高了語言的抽象層次,更加接近于人們的思維方式以及自然語言。

應(yīng)用較廣泛的幾種高級語言是:FORTRAN、ALGOL、COBOL、BASIC、PASCAL、C、LISP、PROLOG,C++,C#,Java等。10編譯程序系統(tǒng)(Compiler)的作用

與對待匯編語言源程序相同,用高級語言寫成的源程序也不能被計(jì)算機(jī)去直接執(zhí)行,也必須先運(yùn)行一個(gè)叫做編譯程序系統(tǒng)(Compiler)的軟件,由它首先把高級語言源程序編譯轉(zhuǎn)換為目標(biāo)程序,然后再經(jīng)過連接而成為具有相同功能的可執(zhí)行程序(機(jī)器指令程序),最后再運(yùn)行該可執(zhí)行程序(機(jī)器指令程序),方可得到所需的結(jié)果。111程序設(shè)計(jì)技術(shù)的初級階段

計(jì)算機(jī)誕生,vonNeumann模式形成,低級語言編程是主要開發(fā)形式。第一代高級語言(以FORTRAN和ALGOL60為代表)誕生,從低級語言編程轉(zhuǎn)向高級語言編程,可以說是計(jì)算機(jī)“生產(chǎn)力”的一次解放。這個(gè)時(shí)期的程序設(shè)計(jì)技術(shù)重視程序設(shè)計(jì)技巧,注意節(jié)省內(nèi)存和目標(biāo)代碼的效率。高級語言的出現(xiàn)使得程序設(shè)計(jì)的難度降低,導(dǎo)致了計(jì)算機(jī)應(yīng)用在五六十年代的發(fā)展進(jìn)入新的階段。60年代,以大規(guī)模程序頻頻出錯(cuò)(例如1962年,因軟件出錯(cuò)導(dǎo)致美國金星探測器水手Ⅱ號衛(wèi)星發(fā)射失敗)為特征的“軟件危機(jī)”發(fā)生,引起關(guān)于“Goto語句”的辯論。

132結(jié)構(gòu)程序設(shè)計(jì)階段

以Pascal語言和C語言為代表,強(qiáng)調(diào)數(shù)據(jù)類型、程序結(jié)構(gòu),程序設(shè)計(jì)的目標(biāo)把可靠性、可維護(hù)性的要求放在了比高效率更重要的位置上結(jié)構(gòu)程序設(shè)計(jì)思想的要點(diǎn)是:·注意程序的可讀性·采用自頂向下、逐步求精的設(shè)計(jì)方法盡可能地使程序運(yùn)行的動(dòng)態(tài)結(jié)構(gòu)與程序書寫的靜態(tài)結(jié)構(gòu)相對地比較一致嚴(yán)格區(qū)分?jǐn)?shù)據(jù)類型

面向過程的SP結(jié)構(gòu)化程序設(shè)計(jì)方法存在著一個(gè)主要缺點(diǎn):數(shù)據(jù)和處理數(shù)據(jù)的操作過程(處理函數(shù))是相互獨(dú)立的實(shí)體,當(dāng)數(shù)據(jù)結(jié)構(gòu)改變時(shí),所有相關(guān)的處理過程(函數(shù))都要進(jìn)行相應(yīng)的修改,從而使程序的可重用性明顯變差。143面向?qū)ο蟪绦蛟O(shè)計(jì)階段

80年代,面向?qū)ο蟪绦蛟O(shè)計(jì)逐漸從理論轉(zhuǎn)向?qū)嵺`,以Smalltalk,C++等語言為代表,程序設(shè)計(jì)理論步入成熟期。A.Kay研制了Smalltalk語言,B.Stroustrup則開發(fā)了C++語言.OOP方法在90年代的盛行主要有兩個(gè)基本的原因:其一是OOP方法從思想上與SP方法相比是抓住了軟件開發(fā)的本質(zhì)和規(guī)律;其二就是計(jì)算機(jī)所要解決的問題越來越重要,越來越復(fù)雜。OOP技術(shù)之所以能適應(yīng)今天軟件產(chǎn)業(yè)的需要,是因?yàn)樗容^好地解決了軟件模塊化、信息隱蔽和抽象的目標(biāo)。15OOP程序設(shè)計(jì)方法的特點(diǎn)

面向?qū)ο蟪绦蛟O(shè)計(jì)是要彌補(bǔ)面向過程的SP結(jié)構(gòu)化程序設(shè)計(jì)方法的缺點(diǎn),它將數(shù)據(jù)以及對這些數(shù)據(jù)進(jìn)行操作的方法(處理過程)放在一起,形成一個(gè)相互依存、不可分離的整體--對象。通過對事物的抽象找出同一類對象的共同屬性(靜態(tài)特征)和行為(動(dòng)態(tài)特征),從而形成類。

類是面向?qū)ο蟪绦蛟O(shè)計(jì)方法中的程序主體,即是說,程序結(jié)構(gòu)將劃分為若干類的基本模塊,類中的大多數(shù)數(shù)據(jù)只能用本類的方法進(jìn)行處理,以保障程序模塊的獨(dú)立性以及數(shù)據(jù)的安全性。類通過一個(gè)簡單的公共對外接口與外界發(fā)生聯(lián)系,對象與對象之間通過消息進(jìn)行通訊。

面向?qū)ο蟪绦蛟O(shè)計(jì)的三大特征是:封裝性、繼承性、多態(tài)性。17C++語言對面向?qū)ο蠓椒ǖ闹С?/p>

C++語言是一種面向?qū)ο蟮某绦蛟O(shè)計(jì)語言,它對面向?qū)ο蟮某绦蛟O(shè)計(jì)方法進(jìn)行了較全面的支持。

1.支持?jǐn)?shù)據(jù)封裝

C++語言中的類(class)是支持?jǐn)?shù)據(jù)封裝的工具。通過類(class)類型對所要處理的問題進(jìn)行抽象描述,從而將邏輯上相關(guān)的數(shù)據(jù)與函數(shù)進(jìn)行封裝。18

2.支持繼承性

C++語言允許單繼承和多繼承。所謂多繼承,就是從多個(gè)父類(基類)那兒繼承屬性和行為特征。另外,如有必要,派生類還可以生成它自己的派生類。即是說,根據(jù)需要,類之間可形成多層次的派生以及繼承關(guān)系。

3.支持多態(tài)性

允許對函數(shù)和運(yùn)算符進(jìn)行重載體現(xiàn)出一種多態(tài)性。通過在基類及其派生類間對虛函數(shù)進(jìn)行使用體現(xiàn)出另一種多態(tài)性。19

1.1.5程序設(shè)計(jì)的4個(gè)層次

1算法的設(shè)計(jì)與分析

2程序設(shè)計(jì)方法學(xué)

3程序設(shè)計(jì)語言

4程序設(shè)計(jì)環(huán)境與工具211.2C++語言概述

1.2.1為什么選擇C++語言

1.2.2C++語言簡史

1.2.3C++語言的特點(diǎn)22

1.2.1

為什么選擇C++語言

面向?qū)ο蟪绦蛟O(shè)計(jì)正在逐漸成為主流設(shè)計(jì)技術(shù)。

OOP技術(shù)并不取代SP和一般的程序設(shè)計(jì)的技能技巧。由于各大公司的競相開發(fā),C++語言在各種不同機(jī)型上都有優(yōu)秀的編譯系統(tǒng)和相關(guān)的環(huán)境與工具。C++語言最可能取代C而成為主流的軟件開發(fā)語言之一。C++語言已成為計(jì)算機(jī)專業(yè)主要的教學(xué)語言。23

1.2.3C++語言特點(diǎn)(1)C++語言是支持面向?qū)ο蟪绦蛟O(shè)計(jì)的最主要的代表語言之一。封裝和信息隱藏;抽象數(shù)據(jù)類型;繼承和派生;函數(shù)與運(yùn)算符的重載;模板(2)C++語言是程序員和軟件開發(fā)者在實(shí)踐中的創(chuàng)造,無論是語言的各個(gè)特征還是整個(gè)研制過程,時(shí)時(shí)處處體現(xiàn)了面向?qū)嵱?,面向軟件開發(fā)者的思想。(3)C++語言是C語言的超集。

25

1.3本書的宗旨及內(nèi)容安排1.3.1講授C++語言的困難1.3.2本書的指導(dǎo)思想1.3.3本書的內(nèi)容安排26

1.3.3本書的內(nèi)容安排可分為四部分:

第一部分由第一章緒論組成,由遠(yuǎn)及近地分別介紹程

溫馨提示

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

評論

0/150

提交評論