c++緒論(鄭莉課件)_第1頁
c++緒論(鄭莉課件)_第2頁
c++緒論(鄭莉課件)_第3頁
c++緒論(鄭莉課件)_第4頁
c++緒論(鄭莉課件)_第5頁
已閱讀5頁,還剩44頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、C+語言程序設(shè)計(jì)1本章主要內(nèi)容計(jì)算機(jī)程序設(shè)計(jì)語言的發(fā)展高級(jí)語言的分類面向?qū)ο蟮能浖_發(fā)信息的表示與存儲(chǔ)程序的開發(fā)過程2一、計(jì)算機(jī)程序設(shè)計(jì)語言的發(fā)展什么是計(jì)算機(jī)程序設(shè)計(jì)語言它是計(jì)算機(jī)可以識(shí)別的語言,用于描述解決問題的方法,供計(jì)算機(jī)閱讀和執(zhí)行。計(jì)算機(jī)語言的發(fā)展3機(jī)器語言與匯編語言由計(jì)算機(jī)硬件系統(tǒng)可以識(shí)別的二進(jìn)制指令組成的語言,稱為機(jī)器語言。計(jì)算機(jī)發(fā)展的初期,軟件工程師們只能用機(jī)器語言來編寫程序。這一階段,在人類的自然語言和計(jì)算機(jī)編程語言之間存在著巨大的鴻溝。匯編語言將機(jī)器指令映射為一些可以被人讀懂的助記符,如ADD、SUB等。此時(shí)編程語言與人類自然語言間的鴻溝略有縮小,但仍與人類的思維相差甚遠(yuǎn)。因

2、為它的抽象層次太低,程序員需要考慮大量的機(jī)器細(xì)節(jié)。計(jì)算機(jī)語言的發(fā)展4高級(jí)語言高級(jí)語言屏蔽了機(jī)器的細(xì)節(jié),提高了語言的抽象層次,程序中可以采用具有一定含義的數(shù)據(jù)命名和容易理解的執(zhí)行語句。這使得在書寫程序時(shí)可以聯(lián)系到程序所描述的具體事物。計(jì)算機(jī)語言的發(fā)展5二、高級(jí)語言的分類1.2.1 面向過程的語言1.2.2 面向?qū)ο蟮恼Z言61.2.1程序設(shè)計(jì)方法的發(fā)展歷程 面向過程的程序設(shè)計(jì)方法程序的目的:用于數(shù)學(xué)計(jì)算主要工作:設(shè)計(jì)求解問題的過程缺點(diǎn):對(duì)于龐大、復(fù)雜的程序難以開發(fā)和維護(hù)面向過程的方法7程序設(shè)計(jì)方法的發(fā)展歷程面向過程的結(jié)構(gòu)化程序設(shè)計(jì)方法設(shè)計(jì)思路自頂向下、逐步求精。采用模塊分解與功能抽象,自頂向下、分

3、而治之。程序結(jié)構(gòu):按功能劃分為若干個(gè)基本模塊,形成一個(gè)樹狀結(jié)構(gòu)。各模塊間的關(guān)系盡可能簡(jiǎn)單,功能上相對(duì)獨(dú)立;每一模塊內(nèi)部均是由順序、選擇和循環(huán)三種基本結(jié)構(gòu)組成。其模塊化實(shí)現(xiàn)的具體方法是使用子程序。面向過程的方法8程序設(shè)計(jì)方法的發(fā)展歷程面向過程的結(jié)構(gòu)化程序設(shè)計(jì)方法優(yōu)點(diǎn):有效地將一個(gè)較復(fù)雜的程序系統(tǒng)設(shè)計(jì)任務(wù)分解成許多易于控制和處理的子任務(wù),便于開發(fā)和維護(hù)。面向過程的方法9程序設(shè)計(jì)方法的發(fā)展歷程 面向過程的結(jié)構(gòu)化程序設(shè)計(jì)方法缺點(diǎn):可重用性差、數(shù)據(jù)安全性差、難以開發(fā)大型軟件和圖形界面的應(yīng)用軟件把數(shù)據(jù)和處理數(shù)據(jù)的過程分離為相互獨(dú)立的實(shí)體。當(dāng)數(shù)據(jù)結(jié)構(gòu)改變時(shí),所有相關(guān)的處理過程都要進(jìn)行相應(yīng)的修改。每一種相對(duì)于

4、老問題的新方法都要帶來額外的開銷。圖形用戶界面的應(yīng)用程序,很難用過程來描述和實(shí)現(xiàn),開發(fā)和維護(hù)也都很困難。面向過程的方法101.2.2 面向?qū)ο蟮恼Z言出發(fā)點(diǎn):更直接地描述客觀世界中存在的事物(對(duì)象)以及它們之間的關(guān)系。特點(diǎn):將客觀事物看作具有屬性和行為的對(duì)象。深入:將數(shù)據(jù)及對(duì)數(shù)據(jù)的操作方法封裝在一起,作為一個(gè)相互依存、不可分離的整體對(duì)象。通過抽象找出同一類對(duì)象的共同屬性和行為,形成類。類通過一個(gè)簡(jiǎn)單的外部接口,與外界發(fā)生關(guān)系。對(duì)象與對(duì)象之間通過消息進(jìn)行通訊。計(jì)算機(jī)語言的發(fā)展11面向?qū)ο蟮恼Z言優(yōu)點(diǎn):使程序能夠比較直接地反問題域的本來面目,軟件開發(fā)人員能夠利用人類認(rèn)識(shí)事物所采用的一般思維方法來進(jìn)行軟

5、件開發(fā)。程序模塊間的關(guān)系更為簡(jiǎn)單,程序模塊的獨(dú)立性、數(shù)據(jù)的安全性就有了良好的保障。通過繼承與多態(tài)性,可以大大提高程序的可重用性,使得軟件的開發(fā)和維護(hù)都更為方便。計(jì)算機(jī)語言的發(fā)展12面向?qū)ο蟮恼Z言的基本概念1、對(duì)象2、類3、封裝4、繼承5、多態(tài)13面向?qū)ο蟮幕靖拍?對(duì)象一般意義上的對(duì)象:是現(xiàn)實(shí)世界中一個(gè)實(shí)際存在的事物。可以是有形的(比如一輛汽車),也可以是無形的(比如一項(xiàng)計(jì)劃)。是構(gòu)成世界的一個(gè)獨(dú)立單位,具有:靜態(tài)特征:可以用某種數(shù)據(jù)來描述動(dòng)態(tài)特征:對(duì)象所表現(xiàn)的行為或具有的功能面向?qū)ο蟮姆椒?4面向?qū)ο蟮幕靖拍?對(duì)象面向?qū)ο蠓椒ㄖ械膶?duì)象:是系統(tǒng)中用來描述客觀事物的一個(gè)實(shí)體,它是用來構(gòu)成系統(tǒng)的

6、一個(gè)基本單位。對(duì)象由一組屬性和一組行為構(gòu)成。屬性:用來描述對(duì)象靜態(tài)特征的數(shù)據(jù)項(xiàng)。行為:用來描述對(duì)象動(dòng)態(tài)特征的操作序列。面向?qū)ο蟮姆椒?5面向?qū)ο蟮幕靖拍?類分類人類通常的思維方法分類所依據(jù)的原則抽象忽略事物的非本質(zhì)特征,只注意那些與當(dāng)前目標(biāo)有關(guān)的本質(zhì)特征,從而找出事物的共性,把具有共同性質(zhì)的事物劃分為一類,得出一個(gè)抽象的概念。例如,石頭、樹木、汽車、房屋等都是人們?cè)陂L(zhǎng)期的生產(chǎn)和生活實(shí)踐中抽象出的概念。面向?qū)ο蟮姆椒?6面向?qū)ο蟮幕靖拍?類面向?qū)ο蠓椒ㄖ械念惥哂邢嗤瑢傩院头?wù)的一組對(duì)象的集合為屬于該類的全部對(duì)象提供了抽象的描述,包括屬性和行為兩個(gè)主要部分。類與對(duì)象的關(guān)系:猶如模具與鑄件之間的

7、關(guān)系,一個(gè)屬于某類的對(duì)象稱為該類的一個(gè)實(shí)例。面向?qū)ο蟮姆椒?7面向?qū)ο蟮幕靖拍?封裝把對(duì)象的屬性和服務(wù)結(jié)合成一個(gè)獨(dú)立的系統(tǒng)單元。盡可能隱蔽對(duì)象的內(nèi)部細(xì)節(jié)。對(duì)外形成一個(gè)邊界(或者說一道屏障),只保留有限的對(duì)外接口使之與外部發(fā)生聯(lián)系。面向?qū)ο蟮姆椒?8面向?qū)ο蟮幕靖拍?繼承繼承對(duì)于軟件復(fù)用有著重要意義,是面向?qū)ο蠹夹g(shù)能夠提高軟件開發(fā)效率的重要原因之一。定義:特殊類的對(duì)象擁有其一般類的全部屬性與服務(wù),稱作特殊類對(duì)一般類的繼承。例如:將車作為一個(gè)一般類,小汽車便是一個(gè)特殊類。面向?qū)ο蟮姆椒?9面向?qū)ο蟮幕靖拍?多態(tài)性多態(tài)是指在一般類中定義的屬性或行為,被特殊類繼承之后,可以具有不同的數(shù)據(jù)類型或表

8、現(xiàn)出不同的行為。這使得同一個(gè)屬性或行為在一般類及其各個(gè)特殊類中具有不同的語義。例如:數(shù)的加法-實(shí)數(shù)的加法 -復(fù)數(shù)的加法面向?qū)ο蟮姆椒?0三、面向?qū)ο蟮能浖_發(fā)面向?qū)ο蟮能浖こ淌敲嫦驅(qū)ο蠓椒ㄔ谲浖こ填I(lǐng)域的全面應(yīng)用。它包括:面向?qū)ο蟮姆治觯∣OA)面向?qū)ο蟮脑O(shè)計(jì)(OOD)面向?qū)ο蟮木幊蹋∣OP)面向?qū)ο蟮臏y(cè)試(OOT)面向?qū)ο蟮能浖S護(hù)(OOSM)面向?qū)ο蟮能浖_發(fā)21系統(tǒng)分析系統(tǒng)分析階段應(yīng)該扼要精確地抽象出系統(tǒng)必須做什么,但是不關(guān)心如何去實(shí)現(xiàn)。面向?qū)ο蟮南到y(tǒng)分析,直接用問題域中客觀存在的事物建立模型中的對(duì)象,對(duì)單個(gè)事物及事物之間的關(guān)系,都保留他們的原貌,不做轉(zhuǎn)換,也不打破原有界限而重新組合,

9、因此能夠很好地映射客觀事物。面向?qū)ο蟮能浖_發(fā)22設(shè)計(jì)針對(duì)系統(tǒng)的一個(gè)具體實(shí)現(xiàn)運(yùn)用面向?qū)ο蟮姆椒?。其中包括兩方面的工作:把OOA模型直接搬到OOD,作為OOD的一部分針對(duì)具體實(shí)現(xiàn)中的人機(jī)界面、數(shù)據(jù)存儲(chǔ)、任務(wù)管理等因素補(bǔ)充一些與實(shí)現(xiàn)有關(guān)的部分。面向?qū)ο蟮能浖_發(fā)23編程OOP工作就是用一種面向?qū)ο蟮木幊陶Z言把OOD模型中的每個(gè)成分書寫出來,是面向?qū)ο蟮能浖_發(fā)最終落實(shí)的重要階段。面向?qū)ο蟮能浖_發(fā)24測(cè)試測(cè)試的任務(wù)是發(fā)現(xiàn)軟件中的錯(cuò)誤。在面向?qū)ο蟮能浖y(cè)試中繼續(xù)運(yùn)用面向?qū)ο蟮母拍钆c原則來組織測(cè)試,以對(duì)象的類作為基本測(cè)試單位,可以更準(zhǔn)確的發(fā)現(xiàn)程序錯(cuò)誤并提高測(cè)試效率。面向?qū)ο蟮能浖_發(fā)25維護(hù)將軟件交付

10、使用后,工作并沒有完結(jié),還要根據(jù)軟件的運(yùn)行情況和用戶的需求,不斷改進(jìn)系統(tǒng)。使用面向?qū)ο蟮姆椒ㄩ_發(fā)的軟件,其程序與問題域是一致的,因此,在維護(hù)階段運(yùn)用面向?qū)ο蟮姆椒梢源蟠筇岣哕浖S護(hù)的效率。面向?qū)ο蟮能浖_發(fā)26四 信息的表示和存儲(chǔ)信息的分類計(jì)算機(jī)的數(shù)字系統(tǒng)程序設(shè)計(jì)中常用的數(shù)制不同進(jìn)位計(jì)數(shù)制間的轉(zhuǎn)換信息的存儲(chǔ)單位二進(jìn)制數(shù)的編碼表示小數(shù)的表示方法非數(shù)值信息的表示27信息的分類 指令 控制信息 控制字 信息 定點(diǎn)數(shù) 數(shù)值信息 數(shù)據(jù)信息 浮點(diǎn)數(shù) 字符數(shù)據(jù) 非數(shù)值信息 邏輯數(shù)據(jù)信息的表示與存儲(chǔ)28計(jì)算機(jī)的數(shù)字系統(tǒng)計(jì)算機(jī)采用的是二進(jìn)制數(shù)字系統(tǒng)?;痉?hào):0、1進(jìn)位原則:逢二進(jìn)一優(yōu)點(diǎn):易于物理實(shí)現(xiàn)二進(jìn)制數(shù)

11、運(yùn)算簡(jiǎn)單機(jī)器可靠性高通用性強(qiáng)缺點(diǎn):對(duì)人來說可讀性差信息的表示與存儲(chǔ)29程序設(shè)計(jì)中常用的數(shù)制信息的表示與存儲(chǔ)30不同進(jìn)位計(jì)數(shù)制間的轉(zhuǎn)換 R 進(jìn)制十進(jìn)制各位數(shù)字與它的權(quán)相乘,其積相加。例如:(11111111.11)2=1*27 + 1*26 + 1* 25 +1* 24 + 1* 23 + 1* 22 +1* 21+ 1* 20+1*2-1+1*2-2 =(255.75)10(3506.2)8=3*83 + 5*82 + 0*81 + 6*80 +2*8-1=(1862.25)10(0.2A)16=2*16-1 +10*16-2=(0.1640625)10信息的表示與存儲(chǔ)31不同進(jìn)位計(jì)數(shù)制間的轉(zhuǎn)

12、換 十進(jìn)制 R 進(jìn)制十進(jìn)制整數(shù)轉(zhuǎn)換成R進(jìn)制的整數(shù)“除R取余”法,例如:2 68 余 數(shù) 2 34 0 低位 2 17 0 2 8 1 2 4 0 2 2 0 2 1 0 0 1 高位所以 681010001002信息的表示與存儲(chǔ)32不同進(jìn)位計(jì)數(shù)制間的轉(zhuǎn)換 十進(jìn)制 R 進(jìn)制十進(jìn)制小數(shù)轉(zhuǎn)換成R進(jìn)制小數(shù)“乘 R 取整”法,例如: 高位 0.31252 = 0 .625 0.625 2 = 1 .25 0.25 2 = 0 .5 0.5 2 = 1 .0所以 0.312510 = 0.01012 信息的表示與存儲(chǔ)33不同進(jìn)位計(jì)數(shù)制間的轉(zhuǎn)換二、八、十六進(jìn)制的相互轉(zhuǎn)換每位八進(jìn)制數(shù)相當(dāng)于三位二進(jìn)制數(shù)每位十六

13、進(jìn)制數(shù)相當(dāng)于四位二進(jìn)制數(shù)(1011010.10)2=(001 011 010 .100)2=(132.4)8(1011010.10)2=(0101 1010 .1000)2=(5A.8)16(F7)16(1111 0111)2(11110111)2信息的表示與存儲(chǔ)34信息的存儲(chǔ)單位位(bit):度量數(shù)據(jù)的最小單位,表示一位二進(jìn)制信息。字節(jié)(byte):由八位二進(jìn)制數(shù)字組成(1 byte = 8 bit)。K 字節(jié) 1 K = 1024 byteM 字節(jié) 1 M = 1024 KG 字節(jié) 1 G = 1024 M 信息的表示與存儲(chǔ)35二進(jìn)制數(shù)的編碼表示:原碼符號(hào)絕對(duì)值表示的編碼例如:X=+010

14、1011 X原 = 0 0101011X=-0101011 X原 = 1 0101011 符號(hào)位缺點(diǎn):零的表示不唯一:+0原 =000.0 -0原 =100.0進(jìn)行四則運(yùn)算時(shí),符號(hào)位需單獨(dú)處理,且運(yùn)算規(guī)則復(fù)雜。信息的表示與存儲(chǔ)36二進(jìn)制數(shù)的編碼表示:反碼正數(shù)的反碼與原碼表示相同。負(fù)數(shù)的反碼與原碼有如下關(guān)系:符號(hào)位相同(仍用1表示),其余各位取反(0變1,1變0)。例如:X=-1100110 X原 =11100110 X反 =10011001X=+0000000 X原 =00000000 X反 =00000000反碼中零的表示也不唯一X=-0000000 X原 =10000000 X反 =111

15、11111反碼只是求補(bǔ)碼的中間碼信息的表示與存儲(chǔ)37二進(jìn)制數(shù)的編碼表示:補(bǔ)碼模數(shù):n位整數(shù)(包括一位符號(hào)位),則它的模數(shù)為 2n 。 n位小數(shù),小數(shù)點(diǎn)前一位為符號(hào)位,則它的模數(shù)為 2。補(bǔ)數(shù):一個(gè)數(shù)減去另一個(gè)數(shù),或者說一個(gè)數(shù)加上一個(gè)負(fù)數(shù),等于第一個(gè)數(shù)加上第二個(gè)數(shù)的補(bǔ)數(shù)。例:8+(-2)=8+10 ( mod 12 )一個(gè)二進(jìn)制負(fù)數(shù)可用其模數(shù)與真值做加法 (模減去該數(shù)的絕對(duì)值) 求得其補(bǔ)碼。信息的表示與存儲(chǔ)38二進(jìn)制數(shù)的編碼表示:補(bǔ)碼計(jì)算機(jī)中的補(bǔ)碼表示法負(fù)數(shù)的補(bǔ)碼由該數(shù)反碼的末位加 1 求得對(duì)補(bǔ)碼再求補(bǔ)即得到原碼補(bǔ)碼運(yùn)算規(guī)則符號(hào)位可作為數(shù)值參加運(yùn)算減法運(yùn)算可轉(zhuǎn)換為加法運(yùn)算:加上一個(gè)負(fù)數(shù)等于加上該數(shù)

16、的補(bǔ)碼補(bǔ)碼運(yùn)算的結(jié)果仍為補(bǔ)碼運(yùn)算結(jié)果溢出:負(fù)數(shù)之和得正數(shù),或正數(shù)之和得負(fù)數(shù)信息的表示與存儲(chǔ)39例題計(jì)算機(jī)中,如何計(jì)算10-67=?(假設(shè)計(jì)算機(jī)用1個(gè)字節(jié)來存儲(chǔ)一個(gè)數(shù))10+(-67)10的補(bǔ)碼為:00001010-67的補(bǔ)碼為:10111101相加得到:11000111即:-5740小數(shù)的表示方法計(jì)算機(jī)中通常采用浮點(diǎn)方式表示小數(shù)一個(gè)數(shù) N 用浮點(diǎn)形式表示可以寫成: N=MRE E表示R的冪,稱為數(shù)N的階碼。階碼確定了數(shù)N的小數(shù)點(diǎn)的位置,其位數(shù)反映了該浮點(diǎn)數(shù)所表示的數(shù)的范圍。M表示數(shù)N的全部有效數(shù)字,稱為數(shù)N的尾數(shù)。其位數(shù)反映了數(shù)據(jù)的精度。信息的表示與存儲(chǔ)41階符階碼階尾尾碼0010111000

17、000000101101100000000042數(shù)的表示范圍一個(gè)m位整數(shù)(包括一個(gè)符號(hào)位),如果使用原碼或反碼表示,能表達(dá)的最大數(shù)是2m-1-1,能表示的最小的數(shù)是-( 2m-1-1 )。若用補(bǔ)碼表示,能表達(dá)的最大數(shù)是2m-1-1,能表示的最小的數(shù)是-2m-1。M=8,原碼或反碼表示,能表達(dá)的數(shù)的訪問是127,能表示的最小的數(shù)是-127。若用補(bǔ)碼表示,能表達(dá)的最大數(shù)是127,能表示的最小的數(shù)是-128。43非數(shù)值信息的表示西文字符:ASCII碼:用7位二進(jìn)制數(shù)表示一個(gè)字符,最多可以表示27=128個(gè)字符EBCDIC碼:用8位二進(jìn)制數(shù)表示一個(gè)字符,最多可以表示28=256個(gè)字符漢字:應(yīng)用較為廣泛

18、的是國(guó)家標(biāo)準(zhǔn)信息交換用漢字編碼(GB2312-80標(biāo)準(zhǔn)),簡(jiǎn)稱國(guó)標(biāo)碼。是二字節(jié)碼,用二個(gè)七位二進(jìn)制數(shù)編碼表示一個(gè)漢字。信息的表示與存儲(chǔ)44基本術(shù)語源程序:用源語言寫的,有待翻譯的程序目標(biāo)程序:也稱為結(jié)果程序,是源程序通過翻譯程序加工以后所生成的程序。翻譯程序:是指一個(gè)把源程序翻譯成等價(jià)的目標(biāo)程序的程序。程序的開發(fā)過程45基本術(shù)語 三種不同類型的翻譯程序匯編程序:其任務(wù)是把用匯編語言寫成的源程序,翻譯成機(jī)器語言形式的目標(biāo)程序。編譯程序:若源程序是用高級(jí)程序設(shè)計(jì)語言所寫,經(jīng)翻譯程序加工生成目標(biāo)程序,那么,該翻譯程序就稱為編譯程序。程序的開發(fā)過程46基本術(shù)語 三種不同類型的翻譯程序解釋程序:這也是一種翻譯程序,同樣是將高級(jí)語言源程序翻譯成機(jī)器指令。它與編譯程序不同點(diǎn)就在于:它

溫馨提示

  • 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)論