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

下載本文檔

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

文檔簡(jiǎn)介

面向?qū)ο蟪绦蛟O(shè)計(jì)開篇導(dǎo)學(xué)培養(yǎng)目標(biāo)專業(yè)培養(yǎng)要求人才培養(yǎng)目標(biāo)應(yīng)用型人才知識(shí)要求能力要求素質(zhì)要求課程地位本課程是計(jì)算機(jī)專業(yè)的學(xué)科基礎(chǔ)課,它主要講授一種面向?qū)ο蟪绦蛟O(shè)計(jì)語言——C++。先修課程:要求學(xué)習(xí)者具備一定的C程序設(shè)計(jì)基礎(chǔ)和離散數(shù)學(xué),因此最好先修《C程序設(shè)計(jì)》和《離散數(shù)學(xué)》課程。課程目示學(xué)習(xí)面向?qū)ο蟪绦蛟O(shè)計(jì)的基本概念C++語言基礎(chǔ)、類和對(duì)象的概念學(xué)習(xí)類的三大特性封裝、繼承、多態(tài)學(xué)習(xí)C++語言特性模板、輸入輸出、異常處理最終建立面向?qū)ο蟪绦蛟O(shè)計(jì)思想課程特點(diǎn)&學(xué)習(xí)方法課程特點(diǎn)細(xì)節(jié)內(nèi)容繁多,部分知識(shí)有難度既包含過程化編程,又包含面向?qū)ο缶幊讨R(shí)理論性不強(qiáng),重在實(shí)踐學(xué)習(xí)方法認(rèn)真聽講,做好筆記勤思考,多動(dòng)手,重視實(shí)驗(yàn)環(huán)節(jié)堅(jiān)持自學(xué)課程內(nèi)容面向?qū)ο蟪绦蛟O(shè)計(jì)概述C++語言基礎(chǔ)函數(shù)擴(kuò)展類與對(duì)象繼承與派生多態(tài)與虛函數(shù)模板輸入輸出異常處理第1章~第3章第4章~第6章第7章~第9章推薦教材C++Primer中文版(第5版)王剛譯

C++面向?qū)ο蟪绦蛟O(shè)計(jì)(第二版)李蘭張艷任鳳華著

參考書教材書關(guān)于開發(fā)平臺(tái)VisualC++6.0VS2017等主流C++開發(fā)平臺(tái)。CodeBlockWin-TCDev-C++Eclipse看一看DialogGameManagementInformationSystem(MIS)想知道學(xué)完C++都能做些啥?結(jié)合VisualC++可視化編程,可以做出如下幾類程序;我們本次課程還是以控制臺(tái)應(yīng)用程序設(shè)計(jì)為主。大家課余可以自學(xué)VC可視化編程。(下面的例子是往屆同學(xué)進(jìn)行課程設(shè)計(jì)時(shí)完成的。)看一看這是學(xué)生學(xué)完后提效的作業(yè)看一看這是學(xué)生學(xué)完后提效的作業(yè)看一看這是學(xué)生學(xué)完后提效的作業(yè)看一看這是學(xué)生學(xué)完后提效的作業(yè)看一看這是學(xué)生學(xué)完后提效的作業(yè)你好夏天編程控制云臺(tái)第1章C++語言概述主要內(nèi)容●1.1程序設(shè)計(jì)語言發(fā)展●1.2面向過程VS面向?qū)ο蟆?/p>

1.3面向?qū)ο蟮奶攸c(diǎn)●1.4C++應(yīng)用●

1.5簡(jiǎn)單C++程序的結(jié)構(gòu)1.1程序設(shè)計(jì)語言發(fā)展教學(xué)目標(biāo)難點(diǎn)

了解程序設(shè)計(jì)方法的發(fā)展重點(diǎn)

熟記面向?qū)ο蟪绦蛟O(shè)計(jì)的特點(diǎn)掌握C++的編程環(huán)境面向?qū)ο蟪绦蛟O(shè)計(jì)思想繼承、封裝和多態(tài)特性1.1計(jì)算機(jī)程序設(shè)計(jì)語言的發(fā)展123高級(jí)語言匯編語言機(jī)器語言由二進(jìn)制0、1代碼指令構(gòu)成,用機(jī)器指令編寫的程序通常稱為機(jī)器代碼。優(yōu)點(diǎn):機(jī)器語言程序的效率高,占用存儲(chǔ)空間小。缺點(diǎn):機(jī)器語言程序難編寫、難修改、難維護(hù)和難調(diào)試,匯編語言是機(jī)器指令的符號(hào)化,它用一個(gè)有意義的英文縮寫代替機(jī)器指令,編寫和調(diào)試相對(duì)容易。優(yōu)點(diǎn):可直接訪問系統(tǒng)接口。缺點(diǎn):存在著容易出錯(cuò)、維護(hù)困難等。高級(jí)語言編寫程序時(shí),編程者不需要考慮具體的計(jì)算機(jī)硬件系統(tǒng)的內(nèi)部結(jié)構(gòu),采用具有一定含義的命名符號(hào)和容易理解的程序語句進(jìn)行程序設(shè)計(jì),至于用什么機(jī)器指令去完成,不需要編程者考慮。大大降低了程序設(shè)計(jì)的難度,使程序易被人們理解。高級(jí)語言程序的通用性和可移植性更高低級(jí)語言高級(jí)語言1.1計(jì)算機(jī)程序設(shè)計(jì)語言的發(fā)展圖1編譯、連接過程生成可執(zhí)行程序——可執(zhí)行程序可以在計(jì)算機(jī)中運(yùn)行。高級(jí)語言容易學(xué)習(xí),便于表達(dá),但計(jì)算機(jī)不認(rèn)識(shí),無法在計(jì)算機(jī)中直接運(yùn)行,怎么辦?由“連接程序”——將目標(biāo)程序與系統(tǒng)提供的標(biāo)準(zhǔn)函數(shù)的庫程序連接,生成可執(zhí)行程序。翻譯程序——將它翻譯成機(jī)器語言目標(biāo)程序,這個(gè)翻譯的過程稱為編譯,編譯是由“編譯程序”(也稱為“編譯器”)完成的。1.2面向過程與面向?qū)ο?/p>

程序設(shè)計(jì)1.2面向過程與面向?qū)ο蟪绦蛟O(shè)計(jì)1面向過程程序設(shè)計(jì)采用自頂向下、逐步求精及模塊化、語句結(jié)構(gòu)化的程序。加動(dòng)畫設(shè)計(jì)方法:程序結(jié)構(gòu):程序=(算法)+(數(shù)據(jù)結(jié)構(gòu))各模塊功能上相對(duì)獨(dú)立順序、選擇和循環(huán)程序=數(shù)據(jù)結(jié)構(gòu)+算法數(shù)據(jù)結(jié)構(gòu)算法算法1算法2描述問題解決問題算法優(yōu)點(diǎn):將較復(fù)雜的程序分解成許多易于控制和處理的子函數(shù)缺點(diǎn):可重用性差、數(shù)據(jù)安全性差、模塊化相互調(diào)用出現(xiàn)的復(fù)雜性,難以開發(fā)大型軟件和圖形界面的應(yīng)用軟件,不利于程序的維護(hù)和擴(kuò)展的1.2面向過程與面向?qū)ο蟪绦蛟O(shè)計(jì)2面向?qū)ο蟪绦蛟O(shè)計(jì)數(shù)據(jù)和將要進(jìn)行的操作看成一個(gè)整體,而不是把他們作為兩個(gè)獨(dú)立的實(shí)體。數(shù)據(jù)本身不能被外部程序和過程直接存取,數(shù)據(jù)更加安全。加動(dòng)畫將客觀事物看作具有屬性和行為的對(duì)象;構(gòu)成問題事務(wù)分解成各個(gè)對(duì)象,通過抽象找出同一類對(duì)象的共同屬性和行為以形成類,通過類的繼承與多態(tài)實(shí)現(xiàn)代碼重用;對(duì)象與對(duì)象之間通過消息進(jìn)行通信

對(duì)象=(數(shù)據(jù)結(jié)構(gòu)+算法),程序=對(duì)象+消息面向?qū)ο蟪绦虻幕驹厥菍?duì)象程序的操作是通過向?qū)ο蟀l(fā)送消息來實(shí)現(xiàn)1.2面向過程與面向?qū)ο蟪绦蛟O(shè)計(jì)2面向?qū)ο蟪绦蛟O(shè)計(jì)程序=對(duì)象1+對(duì)象2+…數(shù)據(jù)2對(duì)象2算法1算法2描述問題解決問題數(shù)據(jù)1對(duì)象1classA{數(shù)據(jù)+方法…}classB{數(shù)據(jù)+方法…}intmain(){對(duì)象+消息…}1.2面向過程與面向?qū)ο蟪绦蛟O(shè)計(jì)程序設(shè)計(jì)方法對(duì)照?qǐng)D一種數(shù)學(xué)思維或計(jì)算機(jī)思維方法,與人們認(rèn)識(shí)世界的方法不同以不穩(wěn)定的、多變的“調(diào)用”和“函數(shù)”為中心構(gòu)造系統(tǒng)可重用性較差建立在認(rèn)識(shí)方法學(xué)基礎(chǔ)上的一項(xiàng)技術(shù)科學(xué),比較自然地模擬了人類認(rèn)識(shí)客觀世界的方式;以相對(duì)穩(wěn)定的“對(duì)象”和“數(shù)據(jù)結(jié)構(gòu)”為中心構(gòu)造系統(tǒng)可重用性較好面向過程面向?qū)ο竺嫦驅(qū)ο骎S面向過程的1.3面向?qū)ο蟪绦蛟O(shè)計(jì)

語言的特點(diǎn)1.3面向?qū)ο蟪绦蛟O(shè)計(jì)的特點(diǎn)1.類抽象人的共同屬性和行為抽象出來就可以構(gòu)成---人類類是一個(gè)抽象的概念,而對(duì)象是類的具體實(shí)例,

人類,動(dòng)物類,植物類,魚類……汽車類,橋梁類,建筑類……1.3面向?qū)ο蟪绦蛟O(shè)計(jì)的特點(diǎn)對(duì)象的標(biāo)識(shí)每一個(gè)對(duì)象必須要有一個(gè)名字以區(qū)別于其他對(duì)象在計(jì)算機(jī)中,使用“標(biāo)識(shí)符”來完成這項(xiàng)工作對(duì)象的狀態(tài)用狀態(tài)(或叫屬性)來描述對(duì)象的某些特征在計(jì)算機(jī)中,使用“數(shù)據(jù)類型”(可簡(jiǎn)單或復(fù)雜)來完成這項(xiàng)工作對(duì)象的行為由一組操作組成,每一個(gè)操作決定對(duì)象的一種行為在計(jì)算機(jī)中,使用“函數(shù)”來完成這項(xiàng)工作2.對(duì)象具體的“人”就是一個(gè)對(duì)象,是客觀存在的實(shí)體。對(duì)象之間通過傳遞消息相互影響。描述人類:靜態(tài)屬性:有姓名、年齡、性別、身高和體重等描述人類:行為屬性:有學(xué)習(xí)、思考、走路、說話和吃飯等。1.3面向?qū)ο蟪绦蛟O(shè)計(jì)的特點(diǎn)3.消息消息消息(Message):是描述事件發(fā)生的信息,是一個(gè)對(duì)象向另一個(gè)對(duì)象發(fā)出的請(qǐng)求。消息傳遞:面向?qū)ο蟪绦蛟O(shè)計(jì)技術(shù)所提供的一種允許一個(gè)對(duì)象與另一個(gè)對(duì)象交互的機(jī)制。組成1.接受消息的對(duì)象;2.消息名;3.零個(gè)或若干個(gè)參數(shù)。數(shù)據(jù)數(shù)據(jù)數(shù)據(jù)對(duì)象1對(duì)象2對(duì)象3消息消息消息函數(shù)函數(shù)函數(shù)1.3面向?qū)ο蟪绦蛟O(shè)計(jì)的特點(diǎn)4.抽象-類抽象(abstract)是指有意忽略問題的某些細(xì)節(jié)和與當(dāng)前目標(biāo)無關(guān)的方面,以便把問題的本質(zhì)表達(dá)得更清楚。畫一幅中國(guó)地圖抽取特征隱藏細(xì)節(jié)把握本質(zhì)抽象成屬性狀態(tài)數(shù)據(jù)抽象代碼抽象例如:計(jì)算矩形面積(RectangleArea);數(shù)據(jù)抽象:floatlength,width,area;代碼抽象:voidSetData(floatL,floatW);floatCompueterArea();voidOutputArea();//加動(dòng)畫1.3面向?qū)ο蟪绦蛟O(shè)計(jì)的特點(diǎn)5.封裝性接口將數(shù)據(jù)和操作封裝在一個(gè)對(duì)象中,形成一個(gè)基本單位,各對(duì)象之間相互獨(dú)立,互不干擾將對(duì)象中某些部分對(duì)外隱藏,即隱藏其內(nèi)部細(xì)節(jié),只留下少量接口,以便與外界聯(lián)系,接受外界的消息C++中的函數(shù)名就是對(duì)外接口,在類外不能直接訪問它們,而只能通過}象的公有執(zhí)行代碼接口來間接訪問對(duì)象內(nèi)部的數(shù)據(jù)。外界可以通過函數(shù)名調(diào)用這些函數(shù)來實(shí)現(xiàn)某些行為。使用者關(guān)心:

功能

使用方式不關(guān)心:

電視機(jī)內(nèi)部結(jié)構(gòu)設(shè)計(jì)者:提供功能說明;給出使用接口;封裝內(nèi)部結(jié)構(gòu);1.3面向?qū)ο蟪绦蛟O(shè)計(jì)的特點(diǎn)

消息(message)是面向?qū)ο蟪绦蛟O(shè)計(jì)用來描述對(duì)象之間通信的機(jī)制。一個(gè)消息就是一個(gè)對(duì)象要求另一個(gè)對(duì)象實(shí)施某種操作的一個(gè)請(qǐng)求?!敖涌凇币?guī)定了能向某一對(duì)象發(fā)出什么請(qǐng)求。也就是說,類對(duì)每個(gè)可能的請(qǐng)求都定義了一個(gè)相關(guān)的函數(shù),當(dāng)向?qū)ο蟀l(fā)出請(qǐng)求時(shí),就調(diào)用這個(gè)函數(shù)。這個(gè)過程通常概括為向?qū)ο蟆鞍l(fā)送消息”(提出請(qǐng)求),對(duì)象根據(jù)這個(gè)消息決定做什么(執(zhí)行函數(shù)代碼)。6.消息1.3面向?qū)ο蟪绦蛟O(shè)計(jì)的特點(diǎn)7.繼承性繼承性是從已有的對(duì)象類型出發(fā)建立一種新的對(duì)象類型,使它繼承原對(duì)象的特點(diǎn)和功能。

繼承是一個(gè)對(duì)象可以獲得另一個(gè)對(duì)象的特性的機(jī)制,它支持層次類這一概念。通過繼承,低層的類只須定義特定于它的特征,而共享高層類中的特征。加動(dòng)畫單繼承多繼承水果香蕉蘋果橘子菠蘿香蕉蘋果富士蘋果國(guó)光蘋果金帥蘋果輪船客輪油輪繼承討論的是:類與類的層次關(guān)系1.3面向?qū)ο蟪绦蛟O(shè)計(jì)的特點(diǎn)6.多態(tài)性函數(shù)模板類模板虛函數(shù)靜態(tài)多態(tài)運(yùn)算符重載函數(shù)重載動(dòng)態(tài)多態(tài)多態(tài)含義:一個(gè)消息被不同的對(duì)象接收,會(huì)產(chǎn)生不同的響應(yīng)效果。多態(tài)討論:層次關(guān)系中成員函數(shù)之間的關(guān)系問題。一個(gè)名字,多種語義;或相同界面,多種實(shí)現(xiàn)。“雙擊”教練“開始!”上課鈴聲加動(dòng)畫1.3面向?qū)ο蟪绦蛟O(shè)計(jì)的特點(diǎn)誕生之初到1995年:傳統(tǒng)的面向?qū)ο蟪绦蛟O(shè)計(jì)語言。1995年到2000年:引入泛型編程思想,增加了STL庫。2000年至今:Loki、MPL等程序庫為代表的產(chǎn)生式編程和模板元編程的出現(xiàn),又將C++提升到了新的高度。1.C++發(fā)展歷程起源1979年,C++之父BjarneStroustrup為了分析Unix內(nèi)核,編寫了一個(gè)可以運(yùn)行的預(yù)處理系統(tǒng),在C的基礎(chǔ)上仿照Simula語言增加了類機(jī)制,并開始著手研發(fā)新語言誕生C++語言在1982年誕生,最初它被稱為newC,1983年12月正式更名為C++。三個(gè)發(fā)展階段1.3面向?qū)ο蟪绦蛟O(shè)計(jì)的特點(diǎn)

2.C++特點(diǎn)(1)保持與C兼容(2)支持面向?qū)ο蟮臋C(jī)制(3)可重用性、可擴(kuò)充性、可靠性和可維護(hù)性(4)代碼性能高(5)豐富的運(yùn)算符和數(shù)據(jù)類型(6)多種風(fēng)格設(shè)計(jì)1.4C++語言的應(yīng)用1.4C++語言的應(yīng)用應(yīng)用程序平臺(tái)系統(tǒng)級(jí)框架機(jī)器人及工業(yè)控制系統(tǒng)高性能實(shí)時(shí)計(jì)算

手機(jī)智能設(shè)備

多媒體游戲航空航天系統(tǒng)工業(yè)控制計(jì)算C++編程1.5簡(jiǎn)單C++程序的結(jié)構(gòu)

1.5簡(jiǎn)單C++程序的結(jié)構(gòu)/*ch01-1.cpp*/#include<iostream>usingnamespacestd;voidmain(){intx,y,z;cout<<"pleaseinputtwointnumber:";cin>>x>>y;z=x+y;cout<<“x+y=”<<z<<endl;}/*ch01-2.cpp*/#include<iostream>usingnamespacestd;intadd(inta,intb);intmain(){intx,y,sum;cout<<“Entertwonumber:”;cin>>x>>y;sum=add(x,y);cout<<“x+y=”<<sum<<“\n”;return0;}intadd(inta,intb){intc;c=a+b;returnc;}簡(jiǎn)單的C++程序C++的函數(shù)相似于C語言的函數(shù)函數(shù)需要先聲明后使用。如果函數(shù)定義在函數(shù)調(diào)用之后,則必須在前面聲明函數(shù)原型1.5簡(jiǎn)單C++程序的結(jié)構(gòu)1.編譯預(yù)處理命令C++提供了三類預(yù)處理命令:文件包含命令、宏定義命令和條件編譯命令。(1)文件包含命令

#include<文件名>

#include"文件名"(2)宏定義命令#define#undef(3)條件編譯命令2.針對(duì)命名空間的指令usingnamespacestd所有的標(biāo)準(zhǔn)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)論