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