C++程序的特點(diǎn)與開發(fā)過程_第1頁
C++程序的特點(diǎn)與開發(fā)過程_第2頁
C++程序的特點(diǎn)與開發(fā)過程_第3頁
C++程序的特點(diǎn)與開發(fā)過程_第4頁
C++程序的特點(diǎn)與開發(fā)過程_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

電子科技大學(xué)計(jì)算機(jī)學(xué)院C++程序設(shè)計(jì)語言黃迪明

1第一章C++入門一、面向?qū)ο蟮姆椒ㄊ窃谟?jì)算機(jī)語言發(fā)展過程中產(chǎn)生的。

早期:機(jī)器語言、匯編語言

50年代中期:FORTRAN語言引進(jìn)了許多現(xiàn)代仍然使用的程序設(shè)計(jì)概念。

50年代后期:ALGOL60提出塊結(jié)構(gòu)的思想。

60年代:SIMULA67首先提出對象和類的概念,并支持類的繼承,是面向?qū)ο笳Z言的鼻祖

70年代:ADA不能全面地支持繼承,稱為基于對象的語言?!?.1面向?qū)ο蟮挠蓙砗桶l(fā)展后來出現(xiàn)的Smalltalk是最有影響的面向?qū)ο蟮恼Z言之一。80年代中后期以后,隨著面向?qū)ο蟮某绦蛟O(shè)計(jì)語言的廣泛應(yīng)用,出現(xiàn)了更多的面向?qū)ο蟮恼Z言。

面向?qū)ο蟮恼Z言可分為以下兩類:1、開發(fā)全新的面向?qū)ο蟮恼Z言O(shè)bject—CEiffelSmalltalk802、對傳統(tǒng)語言進(jìn)行面向?qū)ο蟮臄U(kuò)展,稱為混合型語言,其代表有C++語言。增加面向?qū)ο蟪绦蛟O(shè)計(jì)的支持支持傳統(tǒng)的面向過程的程序設(shè)計(jì)C++CC++語言具有C語言的豐富的應(yīng)用基礎(chǔ)和開發(fā)環(huán)境的支持,對于已經(jīng)掌握C語言的人講,更易學(xué)易普及。二、從C到C++C語言是貝爾實(shí)驗(yàn)室為DEC公司開發(fā)PDP系列計(jì)算機(jī)操作系統(tǒng)時(shí)研制的。C作為UNIX操作系統(tǒng)的開發(fā)語言而廣為應(yīng)用和流行。1989年制定為ANSIC標(biāo)準(zhǔn)。1、語言簡潔、緊湊,使用方便、靈活。2、運(yùn)算符和數(shù)據(jù)類型豐富。3、訪問內(nèi)存地址、寄存器、進(jìn)行位操作,具有匯編語言的功能。4、生成的目標(biāo)代碼質(zhì)量高、程序運(yùn)行效率高。C語言的獨(dú)有特點(diǎn)是:局限:1、對類型的檢查機(jī)制相對較弱、程序中的一些錯誤不能在編譯時(shí)發(fā)現(xiàn);2、無支持代碼重用的語言結(jié)構(gòu);3、當(dāng)程序規(guī)模達(dá)到一定的程度時(shí),難以控制程序的復(fù)雜性;為滿足管理程序復(fù)雜性需要,1980年,貝爾實(shí)驗(yàn)室對C進(jìn)行了改進(jìn)和擴(kuò)充:“帶類的C”C1983年取名為C++,后經(jīng)過三次修訂。1994年制定了ANSIC++標(biāo)準(zhǔn)的草案。1、C++是C的擴(kuò)展,C是C++的子集,C++包括C的全部特征、屬性和優(yōu)點(diǎn)。同時(shí),增加了對面向?qū)ο缶幊痰耐耆С帧?、與C一致,C++程序結(jié)構(gòu)采用函數(shù)驅(qū)動機(jī)制實(shí)現(xiàn)。3、C++實(shí)現(xiàn)了類的封裝,數(shù)據(jù)隱藏、繼承及多態(tài),使其代碼可重用并容易維護(hù)。4、C++是一門高效使用的程序設(shè)計(jì)語言,既可進(jìn)行過程化程序設(shè)計(jì),又可進(jìn)行面向?qū)ο蟪绦蛟O(shè)計(jì)。C++的特點(diǎn)在面向過程的程序設(shè)計(jì)中,程序是處理數(shù)據(jù)的一系列過程。過程(或函數(shù))定義為實(shí)現(xiàn)特定功能的一組指令。其主要設(shè)計(jì)思想是功能分解并逐步求精。數(shù)據(jù)與程序過程分開存儲,編程的主要技巧在于關(guān)注模塊之間的調(diào)用關(guān)系及數(shù)據(jù)的變化?!?.2面向過程的程序設(shè)計(jì)1、當(dāng)數(shù)據(jù)量增大時(shí),數(shù)據(jù)與處理這些數(shù)據(jù)的方法之間的分離使程序變得越來越難以理解。2、相對于老問題的新方法都要帶來額外的開銷,程序的可重用性小。面向過程程序設(shè)計(jì)的主要缺點(diǎn)

面向?qū)ο笙蟪绦蛟O(shè)設(shè)計(jì)OOP(Object-OrientedProgramming)的三要素:對象、類類和繼承承面向?qū)ο笙蟪绦蛟O(shè)設(shè)計(jì)的實(shí)實(shí)現(xiàn)需要要:封裝和數(shù)數(shù)據(jù)隱藏藏技術(shù)繼承和多多態(tài)性技技術(shù)§1.3面面向?qū)ο蟪绦蛐蛟O(shè)計(jì)1、封裝裝和數(shù)據(jù)據(jù)隱藏什么是對對象?概念上::在問題題空間中中,將客客觀世界界的實(shí)體體稱為對對象。對對象可以以是人、、物、事事件、規(guī)規(guī)則、概概念等。。例如:開開發(fā)一個(gè)個(gè)商品銷銷售系統(tǒng)統(tǒng)。實(shí)現(xiàn)上::把數(shù)據(jù)據(jù)和處理理數(shù)據(jù)的的過程((操作或或方法))當(dāng)成一一個(gè)整體體,這個(gè)個(gè)封裝體體就稱為為對象。。數(shù)據(jù)1…….數(shù)據(jù)n操作1…….操作n狀態(tài)(數(shù)據(jù)結(jié)構(gòu)和值)方法對象的模模型結(jié)構(gòu)構(gòu)例如:電電腦裝配配聲卡,,早點(diǎn)銷銷售點(diǎn)無須知道道封裝體體內(nèi)部是是如何工工作就能能使用的的思想稱為為數(shù)據(jù)隱隱藏。對象實(shí)現(xiàn)現(xiàn)了信息息隱藏;;對象與外外部通過過操作接接口聯(lián)系系,操作作接口提提供了對象象的功能能,操作作的具體體實(shí)現(xiàn)外外部是不不可見的。對象之間間是通過過消息傳傳遞信息息。對象是由由特定的的類創(chuàng)造造的,什什么是類類?類是創(chuàng)建建對象的的樣板,,它包含含著所創(chuàng)創(chuàng)建對象象的狀態(tài)描描述和方方法的定定義。由一個(gè)特特定的類類所創(chuàng)建建的的對對象也稱稱為這個(gè)類的的實(shí)例。。一個(gè)類的的所有對對象都有有相同的的數(shù)據(jù)結(jié)結(jié)構(gòu),并且共享享相同的的實(shí)現(xiàn)操操作的代代碼,而而各個(gè)對對象又有具具體的不不同的狀狀態(tài)。類類和對象象類似于于面向過程程語言中中數(shù)據(jù)類類型和變變量。例如:學(xué)學(xué)生類和和某個(gè)學(xué)學(xué)生對象象。2、繼承承和重用用制造一種種新型號號的電視視機(jī)可以以有兩種種選擇::1)從草草圖開始始重新設(shè)設(shè)計(jì)2)對現(xiàn)現(xiàn)有型號號加以改改進(jìn)(繼繼承和重重用)C++采采用繼承承機(jī)制支支持重用用,不僅僅可重用用具有特特定功能能的類,,而且繼繼承可以以由已有有的類創(chuàng)造新的的類。新類共享享已有類類的屬性性,自己己還具有有額外添加的屬屬性,新新類是從從已有類類派生的的,稱為為派生類或子子類,已已有類稱稱為父類類或基類類。在客觀世世界中,,存在著著整體和和部分的的關(guān)系、、一般和特特殊的關(guān)關(guān)系,繼繼承將后后者模型型化。汽車類,,各各類汽車車?yán)ハx類,,各各類昆蟲蟲3、多態(tài)態(tài)性封裝性、、繼承性性、多態(tài)態(tài)性是構(gòu)構(gòu)成面向向?qū)ο蟪绦蛟O(shè)計(jì)計(jì)的三大大特征。。封裝性是是基礎(chǔ)繼承性是是關(guān)鍵多態(tài)性是是補(bǔ)充什么是多多態(tài)性??多態(tài)是指指一個(gè)名名字有多多種語義義,或一一個(gè)相同同界面有有多種實(shí)實(shí)現(xiàn);或是指發(fā)發(fā)出同樣樣的消息息被不同同類型的的對象接受而導(dǎo)導(dǎo)致完全全不同的的行為。。即對象象根據(jù)所所接收到到的消息息做出相相應(yīng)的操操作。例如:在在學(xué)籍管管理系統(tǒng)統(tǒng)中學(xué)生類((基類))計(jì)算成績績的操作作中學(xué)生類類(派生生類)計(jì)算成績績的操作作大學(xué)生類類(派生生類)計(jì)算成績績的操作作又如:在在繪圖系系統(tǒng)中使使用的多多態(tài)性。。函數(shù)重載載和運(yùn)算算符重載載表現(xiàn)了了最簡單單的多態(tài)態(tài)性。函數(shù)重載載:Voidf(int,int,char);Voidf(char,float);Voidf(int,int);Voidf(int,float);運(yùn)算符重重載:為運(yùn)算符符+-*/等等賦以以新的含含義,以以實(shí)現(xiàn)類對對象的運(yùn)運(yùn)算。編譯錯連接編輯編譯運(yùn)行連接錯運(yùn)行錯YYYNNN完成#include文件C++庫文件×××.CPP

源程序×××.obj目標(biāo)程序×××.exe可執(zhí)行程序#include文件§1.4程程序開開發(fā)過程程例1://************************//*******ch1.1.cpp*********//************************#include<iostream.h>voidmain(){cout<<“Iamastudent.\n”;}§1.5最最簡單單的程序序運(yùn)行結(jié)果果為:Iamastudent.例2://**ch1.2.cpp**#include<iostream.h>voidmain(){inta,b,result;cout<<“Pleaseinputtwonumbers:\n””;cin>>a>>b;result=3*a-2*b+1;cout<<“Resultis””<<result<<endl;}運(yùn)行結(jié)果為:C:>ch1.2Pleaseinputtwonumbers:10050Resultis201C++程程序是由由函數(shù)構(gòu)構(gòu)成的,,由一個(gè)個(gè)主函數(shù)數(shù)和若干干個(gè)函數(shù)數(shù)構(gòu)成。。C++程序序是函數(shù)數(shù)驅(qū)動的的。例3://*******ch1.3.cpp*********#include<iostream.h>#include<math.h>doublemax(doublx,doubly);voidmain(){doublea,b,c;cout<<“Inputtwonumbers:\n”;cin>>a>>b;c=max(a,b);cout<<“Thesquartofmaximum=”<<sqrt(c);}§1.6函函數(shù)數(shù)doublema

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(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

提交評論