版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
C++面向?qū)ο蟪绦蛟O(shè)計(jì)要求課前做好預(yù)習(xí)保持課堂安靜,頭腦清醒,思維活躍認(rèn)真、獨(dú)立、按時(shí)完成并提交作業(yè)重視上機(jī)實(shí)踐,有效利用寶貴的上機(jī)時(shí)間不遲到早退,不曠課,保證學(xué)習(xí)的連續(xù)性第2章引入面向?qū)ο蠓椒ㄓ?jì)算機(jī)程序設(shè)計(jì)語言的發(fā)展面向?qū)ο蟮姆椒嫦驅(qū)ο蟮能浖_發(fā)程序的開發(fā)過程計(jì)算機(jī)的工作是用程序來控制的程序是指令的集合。指令是計(jì)算機(jī)可以識(shí)別的命令。計(jì)算機(jī)程序2.1程序設(shè)計(jì)基礎(chǔ)
機(jī)器語言匯編語言高級(jí)語言面向過程面向?qū)ο驝PU指令系統(tǒng),由0、1序列構(gòu)成的指令碼組成如:10000000加
10010000減用助記符號(hào)描述的指令系統(tǒng)如ADDA,B直接對(duì)硬件進(jìn)行操作程序設(shè)計(jì)是功能的分解并逐步求精,把程序看作是處理數(shù)據(jù)的一系列過程,數(shù)據(jù)與過程分開存儲(chǔ)客觀世界是由對(duì)象組成的,把形形色色的對(duì)象進(jìn)行了分類,對(duì)象是類的實(shí)例程序設(shè)計(jì)的關(guān)鍵是類的劃分與確定,這是軟件開發(fā)的基礎(chǔ),劃分的好壞直接影響軟件開發(fā)的后繼工作和軟件產(chǎn)品的質(zhì)量程序設(shè)計(jì)基礎(chǔ)
機(jī)器語言由計(jì)算機(jī)硬件系統(tǒng)可以識(shí)別的二進(jìn)制指令組成的語言稱為機(jī)器語言。計(jì)算機(jī)發(fā)展的初期,軟件工程師們只能用機(jī)器語言來編寫程序。這一階段,在人類的自然語言和計(jì)算機(jī)編程語言之間存在著巨大的鴻溝。例如101111111101
缺點(diǎn):難懂,不易修改,移植性差程序設(shè)計(jì)基礎(chǔ)
匯編語言匯編語言將機(jī)器指令映射為一些可以被人讀懂的助記符,如ADD、SUB等。此時(shí)編程語言與人類自然語言間的鴻溝略有縮小,但仍與人類的思維相差甚遠(yuǎn)。因?yàn)樗某橄髮哟翁停绦騿T需要考慮大量的機(jī)器細(xì)節(jié)。例如ADDCX,DX
將DX的內(nèi)容加進(jìn)CX。不能立即執(zhí)行,需要匯編,變成目標(biāo)程序。程序設(shè)計(jì)基礎(chǔ)
高級(jí)語言高級(jí)語言屏蔽了機(jī)器的細(xì)節(jié),提高了語言的抽象層次,程序中可以采用具有一定涵義的數(shù)據(jù)命名和容易理解的執(zhí)行語句。這使得在書寫程序時(shí)可以聯(lián)系到程序所描述的具體事物。例如ify<3z=x+y;類似英語和數(shù)學(xué)表達(dá)式程序設(shè)計(jì)基礎(chǔ)
高級(jí)語言分成解釋方式與編譯方式
源程序解釋程序運(yùn)行結(jié)果初始數(shù)據(jù)目標(biāo)程序初始數(shù)據(jù)運(yùn)行結(jié)果程序設(shè)計(jì)基礎(chǔ)
編譯程序源程序目標(biāo)程序高級(jí)語言發(fā)展:
第一代語言是對(duì)數(shù)學(xué)表達(dá)式有很強(qiáng)的運(yùn)算處理能力 代表是Fortran和Algol60
第二代語言的重點(diǎn)如何有效地表達(dá)算法 代表是Pascal和C
第三代語言引入抽象數(shù)據(jù)類型的程序設(shè)計(jì)語言 代表是Ada被認(rèn)為是基于對(duì)象的語言 第四代面向?qū)ο蟪绦蛟O(shè)計(jì)語言 代表是Smalltalk、Eiffel、c++、Java程序設(shè)計(jì)基礎(chǔ)
面向?qū)ο蟮恼Z言出發(fā)點(diǎn):更直接地描述客觀世界中存在的事物(對(duì)象)以及它們之間的關(guān)系。特點(diǎn):是高級(jí)語言。將客觀事物看作具有屬性和行為的對(duì)象。通過抽象找出同一類對(duì)象的共同屬性和行為,形成類。通過類的繼承與多態(tài)實(shí)現(xiàn)代碼重用程序設(shè)計(jì)基礎(chǔ)
優(yōu)點(diǎn):使程序能夠比較直接地反問題域的本來面目,軟件開發(fā)人員能夠利用人類認(rèn)識(shí)事物所采用的一般思維方法來進(jìn)行軟件開發(fā)。程序設(shè)計(jì)基礎(chǔ)
語言的鴻溝客觀世界(問題域)計(jì)算機(jī)自然語言語言的鴻溝面向?qū)ο蟮恼Z言非面向?qū)ο蟮恼Z言匯編語言機(jī)器語言對(duì)問題域的認(rèn)識(shí)(人〕編程(人〕程序的理解和執(zhí)行(機(jī)器〕程序的目的:用于數(shù)學(xué)計(jì)算主要工作:設(shè)計(jì)求解問題的過程缺點(diǎn):對(duì)于龐大、復(fù)雜的程序難以開發(fā)和維護(hù)1.2面向?qū)ο笤O(shè)計(jì)1.2.1面向?qū)ο蠓椒ǖ挠蓙?一、程序設(shè)計(jì)方法的發(fā)展歷程
——面向過程的程序設(shè)計(jì)方法面向過程的結(jié)構(gòu)化程序設(shè)計(jì)方法設(shè)計(jì)思路自頂向下、逐步求精。采用模塊分解與功能抽象,自頂向下、分而治之。程序結(jié)構(gòu):按功能劃分為若干個(gè)基本模塊,形成一個(gè)樹狀結(jié)構(gòu)。各模塊間的關(guān)系盡可能簡單,功能上相對(duì)獨(dú)立;每一模塊內(nèi)部均是由順序、選擇和循環(huán)三種基本結(jié)構(gòu)組成。其模塊化實(shí)現(xiàn)的具體方法是使用子程序。1.2面向?qū)ο笤O(shè)計(jì)
Main()Func1()Func2()Func3()Func4()Func5()1.2面向?qū)ο蟪绦蛟O(shè)計(jì)優(yōu)點(diǎn):有效地將一個(gè)較復(fù)雜的程序系統(tǒng)設(shè)計(jì)任務(wù)分解成許多易于控制和處理的子任務(wù),便于開發(fā)和維護(hù)。1.2面向?qū)ο蟪绦蛟O(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ì)于老問題的新方法都要帶來額外的開銷。圖形用戶界面的應(yīng)用,很難用過程來描述和實(shí)現(xiàn),開發(fā)和維護(hù)都很困難。1.2面向?qū)ο蟪绦蛟O(shè)計(jì)1.2.2程序設(shè)計(jì)方法的發(fā)展歷程
——面向?qū)ο蟮姆椒?.2面向?qū)ο蟪绦蛟O(shè)計(jì)在面向?qū)ο蟮某绦蛟O(shè)計(jì)方法中,對(duì)象是描述其狀態(tài)或?qū)傩缘臄?shù)據(jù)以及對(duì)這些數(shù)據(jù)施加的一組操作封裝在一起構(gòu)成的統(tǒng)一體。簡單地說,對(duì)象就是數(shù)據(jù)和操作的封裝體。在C++語言中,屬性被稱為數(shù)據(jù)成員,而操作被稱為成員函數(shù)對(duì)象優(yōu)點(diǎn):程序模塊間的關(guān)系更為簡單,程序模塊的獨(dú)立性、數(shù)據(jù)的安全性就有了良好的保障。通過繼承與多態(tài)性,可以大大提高程序的可重用性,使得軟件的開發(fā)和維護(hù)都更為方便。1.2面向?qū)ο蟪绦蛟O(shè)計(jì)1.2.3面向?qū)ο蟮幕靖拍?/p>
——對(duì)象一般意義上的對(duì)象:是現(xiàn)實(shí)世界中一個(gè)實(shí)際存在的事物??梢允褂行蔚模ū热缫惠v汽車),也可以是無形的(比如一項(xiàng)計(jì)劃)。是構(gòu)成世界的一個(gè)獨(dú)立單位,具有:靜態(tài)特征:可以用某種數(shù)據(jù)來描述動(dòng)態(tài)特征:對(duì)象所表現(xiàn)的行為或具有的功能1.2面向?qū)ο蟪绦蛟O(shè)計(jì)面向?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)特征的操作序列。1.2面向?qū)ο蟪绦蛟O(shè)計(jì)1.2.2面向?qū)ο蟮幕靖拍?/p>
——類分類——人類通常的思維方法分類所依據(jù)的原則——抽象忽略事物的非本質(zhì)特征,只注意那些與當(dāng)前目標(biāo)有關(guān)的本質(zhì)特征,從而找出事物的共性,把具有共同性質(zhì)的事物劃分為一類,得出一個(gè)抽象的概念。例如,石頭、樹木、汽車、房屋等都是人們?cè)陂L期的生產(chǎn)和生活實(shí)踐中抽象出的概念。1.2面向?qū)ο蟪绦蛟O(shè)計(jì)面向?qū)ο蠓椒ㄖ械?類"具有相同屬性和服務(wù)的一組對(duì)象的集合為屬于該類的全部對(duì)象提供了抽象的描述,包括屬性和行為兩個(gè)主要部分。類與對(duì)象的關(guān)系:
猶如模具與鑄件之間的關(guān)系,一個(gè)屬于某類的對(duì)象稱為該類的一個(gè)實(shí)例。集合——成員抽象描述——具體實(shí)例集合——成員抽象描述——具體實(shí)例面向?qū)ο蟮幕靖拍?/p>
——封裝把對(duì)象的屬性和服務(wù)結(jié)合成一個(gè)獨(dú)立的系統(tǒng)單位。盡可能隱蔽對(duì)象的內(nèi)部細(xì)節(jié)。對(duì)外形成一個(gè)邊界(或者說一道屏障),只保留有限的對(duì)外接口使之與外部發(fā)生聯(lián)系。封裝售報(bào)亭屬性報(bào)刊A價(jià)格報(bào)刊B價(jià)格
…錢箱服務(wù)報(bào)刊零售款貨清點(diǎn)顧客面向?qū)ο蟮幕靖拍?/p>
——繼承繼承對(duì)于軟件復(fù)用有著重要意義,是面向?qū)ο蠹夹g(shù)能夠提高軟件開發(fā)效率的重要原因之一。定義:特殊類的對(duì)象擁有其一般類的全部屬性與服務(wù),稱作特殊類對(duì)一般類的繼承。例如:將輪船作為一個(gè)一般類,客輪便是一個(gè)特殊類。
哺乳動(dòng)物熱血、有毛發(fā)、用奶哺育幼仔狗有犬牙、食肉、特定的骨骼結(jié)構(gòu)、群居柯利狗尖鼻子、身體顏色紅白相間、適合放牧面向?qū)ο蟮幕靖拍?/p>
——多態(tài)性多態(tài)是指在一般類中定義的屬性或行為,被特殊類繼承之后,可以具有不同的數(shù)據(jù)類型或表現(xiàn)出不同的行為。這使得同一個(gè)屬性或行為在一般類及其各個(gè)特殊類中具有不同的語義。例如:數(shù)的加法->實(shí)數(shù)的加法
->復(fù)數(shù)的加法例動(dòng)物叫結(jié)構(gòu)化程序設(shè)計(jì)(了解)程序設(shè)計(jì)基礎(chǔ)
面向?qū)ο蟪绦蛟O(shè)計(jì)對(duì)象:現(xiàn)實(shí)世界中所有的事物都是對(duì)象現(xiàn)實(shí)世界中對(duì)象的特征:有一個(gè)名字用來惟一標(biāo)識(shí)該對(duì)象;用一組狀態(tài)來描述對(duì)象的某些特征或?qū)傩?;用一組操作來實(shí)現(xiàn)其功能。例:學(xué)生王小五程序設(shè)計(jì)基礎(chǔ)
在面向?qū)ο蟮某绦蛟O(shè)計(jì)方法中,對(duì)象是描述其狀態(tài)或?qū)傩缘臄?shù)據(jù)以及對(duì)這些數(shù)據(jù)施加的一組操作封裝在一起構(gòu)成的統(tǒng)一體。簡單地說,對(duì)象就是數(shù)據(jù)和操作的封裝體。在C++語言中,屬性被稱為數(shù)據(jù)成員,而操作被稱為成員函數(shù)程序設(shè)計(jì)基礎(chǔ)
對(duì)象類:是對(duì)一組相似對(duì)象的抽象描述。把眾多的事物歸納、劃分成一些類,是人類在認(rèn)識(shí)客觀世界時(shí)經(jīng)常采用的思維方法。分類所依據(jù)的原則就是抽象,即忽略事物的非本質(zhì)特征,找出事物的共性,把具有共同性質(zhì)的事物劃分為一類。例如:樹木、汽車、房屋都是抽象出來的概念。例如:從學(xué)生對(duì)象張小三、李小四、王小五、……,等抽象出學(xué)生類程序設(shè)計(jì)基礎(chǔ)
類與對(duì)象的關(guān)系程序設(shè)計(jì)基礎(chǔ)
在編程時(shí),總是先聲明類,再由類生成其對(duì)象。因?yàn)轭愂墙?duì)象的“模板”,按照這個(gè)模板建立一個(gè)個(gè)具體的對(duì)象或?qū)嵗?。消息(了解)面向?qū)ο蟪绦蛟O(shè)計(jì)的基本特征(了解)抽象封裝繼承多態(tài)性面向?qū)ο蟪绦蛟O(shè)計(jì)的優(yōu)點(diǎn)(了解)程序設(shè)計(jì)基礎(chǔ)
2.2C++的產(chǎn)生和特點(diǎn)C++語言的產(chǎn)生
C++語言是一種高級(jí)語言,是對(duì)C語言的擴(kuò)展1969-1973年間,在美國貝爾實(shí)驗(yàn)室開發(fā)了C語言20世紀(jì)80年代初,貝爾實(shí)驗(yàn)室設(shè)計(jì)并實(shí)現(xiàn)了C語言的擴(kuò)充、改進(jìn)版本,稱為“帶類的C”1983年正式取名為C++,支持面向?qū)ο蟮某绦蛟O(shè)計(jì)C++的編譯系統(tǒng):Microsoft公司的VisualC++6.0和Borland公司的BorlandC++5.02等C++的特點(diǎn)(了解)
2.2C++的產(chǎn)生和特點(diǎn)2.3C++程序中的類和對(duì)象一個(gè)簡單的C++類示例
#include<iostream.h>classCar//類的聲明部分{private: charcolor[10];//類Car中的數(shù)據(jù)成員public: voidhonk()//類Car中的成員函數(shù)
{ //語句
cout<<"BEEPBEEP!"; }};說明class關(guān)鍵字用來聲明一個(gè)類,大括號(hào)用來指明類體的開始和結(jié)束。分號(hào)用來結(jié)束類聲明。class關(guān)鍵字之后為類的名字,Car是類名。命名規(guī)則包括:類名由字母、數(shù)字、下劃線組成,其中數(shù)字不能打頭。關(guān)鍵字不可用作類名等。命名慣例包括:類名應(yīng)是有意義的;最好是名詞;如果類名包含一個(gè)以上的單詞,則類名中每個(gè)單詞的第一個(gè)字母應(yīng)是大寫。例如,描述職工家屬的類名可以為EmployeeDependent。2.3C++程序中的類和對(duì)象類的成員數(shù)據(jù)成員成員函數(shù)語句編譯預(yù)處理輸入輸出2.3C++程序中的類和對(duì)象類的使用voidmain(){ //類的使用
Carc1;//由類生成對(duì)象c1 c1.honk();//向?qū)ο骳1發(fā)送消息,調(diào)用成員函數(shù)honk()}2.3C++程序中的類和對(duì)象說明main()表示主函數(shù),每一個(gè)C++程序必須有一個(gè)main()函數(shù)。main()是作為程序的入口。main前面的void表示該main()函數(shù)沒有返回值。函數(shù)體用花括號(hào){}括起來。需注意main()是在類Car的外面定義的,不是類Car的成員函數(shù)。Carc1;的功能是由類Car生成對(duì)象c1。c1.honk();則是向?qū)ο骳1發(fā)送消息,調(diào)用成員函數(shù)honk()完成對(duì)該消息的響應(yīng)。2.3C++程序中的類和對(duì)象面向過程的C++程序C++是一種即支持面向?qū)ο笥种С置嫦蜻^程的程序設(shè)計(jì)語言,作為一種面向過程的程序設(shè)計(jì)語言,在進(jìn)行程序設(shè)計(jì)時(shí),可以不定義類。舉例:沒有定義的類的C++程序。面向過程的C++程序#include<iostream.h>voidmain(){
int
x,y;//定義變量
cout<<“輸入變量x和y:”;//顯示提示信息
cin>>x>>y;//輸入變量的值
if(x>y)
cout<<“最大值:”<<x<<endl;//輸出結(jié)果
else
cout<<“最大值:”<<y<<endl;//輸出結(jié)果}C++程序的書寫格式
每一條語句必須以分號(hào)“;”結(jié)束。一行內(nèi)可以寫多條語句,一條語句也可以分成幾行來寫;為了提高程序的可讀性,程序中語句的書寫應(yīng)符合以下基本規(guī)則:同層次語句必須從同一列開始書寫,同層次的花括號(hào)必須與對(duì)應(yīng)的閉括號(hào)在同一列上。屬于內(nèi)一層次的語句
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年航空質(zhì)量審計(jì)合同
- 2025年城市綜合體開發(fā)建設(shè)可行性研究報(bào)告
- 2025年生態(tài)旅游開發(fā)與品牌塑造項(xiàng)目可行性研究報(bào)告
- 2025年電子商務(wù)全渠道戰(zhàn)略項(xiàng)目可行性研究報(bào)告
- 2025年智能機(jī)器人產(chǎn)業(yè)化發(fā)展可行性研究報(bào)告
- 使用石料協(xié)議書
- 中僑實(shí)業(yè)協(xié)議書
- 2025年農(nóng)業(yè)生產(chǎn)資料供應(yīng)鏈可行性研究報(bào)告
- 中美協(xié)議書范本
- 高考全國二卷政治考試題庫及答案
- DB31/T 1205-2020醫(yī)務(wù)社會(huì)工作基本服務(wù)規(guī)范
- 酒店供貨框架協(xié)議書
- 紡織品的物理化學(xué)性質(zhì)試題及答案
- 高處安裝維護(hù)拆除作業(yè)培訓(xùn)
- 長鑫存儲(chǔ)在線測評(píng)
- 2025年小學(xué)生科普知識(shí)競賽練習(xí)題庫及答案(200題)
- (完整版)保密工作獎(jiǎng)懲制度
- 西氣東輸二線管道工程靈臺(tái)壓氣站施工組織設(shè)計(jì)
- 雞舍鋼結(jié)構(gòu)廠房施工組織設(shè)計(jì)方案
- 2025年上海寶山區(qū)高三期末一模高考英語試卷(含答案詳解)
- 互聯(lián)網(wǎng)金融(同濟(jì)大學(xué))知到智慧樹章節(jié)測試課后答案2024年秋同濟(jì)大學(xué)
評(píng)論
0/150
提交評(píng)論