版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
第1章C++概述本章學(xué)習(xí)重點掌握內(nèi)容:計算機語言發(fā)展的歷程過程化程序設(shè)計和面向?qū)ο蟮某绦蛟O(shè)計的基本思想和主要特點簡單的C++程序結(jié)構(gòu)C++開發(fā)程序的步驟1第1章C++概述1.1
計算機程序設(shè)計語言的發(fā)展1.2過程化程序設(shè)計1.3面向?qū)ο蟮某绦蛟O(shè)計1.4簡單的C++程序介紹1.5程序開發(fā)的過程1.6C++上機實踐21.1計算機程序設(shè)計語言的發(fā)展
引言:一、什么是計算機語言計算機語言通常是能完整、準(zhǔn)確和規(guī)則地表達人們的意圖,并用以指揮或控制計算機工作的“符號系統(tǒng)”。當(dāng)使用計算機解決問題時,首先將解決問題的方法和步驟按照一定的順序和規(guī)則用計算機語言描述出來,形成指令序列,然后由計算機執(zhí)行指令,完成所需的功能。二、計算機程序設(shè)計語言的發(fā)展
機器語言------匯編語言------高級語言31.1.1機器語言階段
一、什么是機器語言(第一代計算機語言)
機器語言(MachineLanguage)是用二進制代碼表示的、計算機能直接識別和執(zhí)行的一種機器指令的集合。它是面向機器的語言,是計算機唯一可直接識別的語言。用機器語言編寫的程序稱為機器語言程序(又稱目標(biāo)程序)例如,某種計算機的指令為:1011011000000000表示進行一次加法操作1011010100000000表示進行一次減法操作二、機器語言的優(yōu)缺點優(yōu)點:能直接在計算機上運行,運行的速度快,效率高。缺點:機器語言難于記憶也難于操作、代碼編程繁瑣、易錯;而且編寫的程序緊密依賴計算機硬件,程序的可移植性差。41.1.2匯編語言階段一、什么是匯編語言(第二代計算機語言)
匯編語言(AssemblyLanguage)是采用能反映指令功能的助記符來表達計算機語言,克服機器語言的缺點,使語言直觀、便于記憶和理解。匯編語言也是面向機器的程序設(shè)計語言,每條匯編語言的指令對應(yīng)了一條機器語言的指令,不同類型的計算機系統(tǒng)一般有不同的匯編語言。例如,用匯編語言編寫的程序如下:
MOVAL10D//將十進制數(shù)10送往累加器
SUBAL12D//從累加器中減去十進制數(shù)12二、匯編過程三、優(yōu)缺點
比起機器語言在很多方面都有優(yōu)越性,但仍然依賴于計算機的硬件,移植性差。運行匯編程序機器語言程序匯編語言程序51.1.3高級語言階段一、什么是高級語言(第二代計算機語言)高級語言(High-LevelLanguage)是接近于數(shù)學(xué)語言或自然語言,同時又不依賴于計算機的硬件,編出的程序能在所有的計算機上通用。例如,用C++語言編寫的程序片斷如下:
inti,j,k;//定義變量i,j,kcin>>i>>j;//輸入i,j的值
k=i*j;//將變量i,j的值相乘,結(jié)果賦給變量k二、編譯和連接過程注:在上圖中,高級語言經(jīng)過編譯后,得到目標(biāo)程序(.obj),再與庫程序連接生成可執(zhí)行程序(.exe)三、高級語言主要好處編譯連接高級語言源程序目標(biāo)程序可執(zhí)行程序庫程序61.1.4從C到C++一、C語言的發(fā)展
C語言是AT&T貝爾實驗室的DennisRitchie在B語言的基礎(chǔ)上開發(fā)出來的,1972年在一臺DECPDP-11計算機上實現(xiàn)了最初的C語言。C語言最初用作UNIX操作系統(tǒng)的開發(fā)語言。二、C語言具有如下優(yōu)點:(1)語言簡潔、緊湊,使用方便、靈活。(2)運算符豐富,數(shù)據(jù)結(jié)構(gòu)豐富,具有現(xiàn)代化語言的各種數(shù)據(jù)結(jié)構(gòu)。(3)具有結(jié)構(gòu)化的控制語句(4)語法限制不大嚴(yán)格,程序設(shè)計自由度大。(5)C語言允許直接訪問物理地址。(6)生成目標(biāo)代碼質(zhì)量高,程序執(zhí)行效率高。(7)用C語言寫的程序可移植性好。71.1.4從C到C++三、C語言也有它的局限性
C語言數(shù)據(jù)類型檢查機制較弱,這使得程序中的一些錯誤不能在編譯時被自動發(fā)現(xiàn)。當(dāng)程序的規(guī)模大到一定程度時,復(fù)雜性很難控制。四、C到C++C++語言突破C語言的局限性
C++是由C發(fā)展而來的,與C兼容。
C++包含了C的全部特征、屬性和優(yōu)點,是C的超集,
C++添加了面向?qū)ο缶幊痰耐耆С?,是一種功能強大的面向?qū)ο蟪绦蛟O(shè)計語言。81.2過程化程序設(shè)計
一、過程化程序設(shè)計的基本程序結(jié)構(gòu)順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)二、過程化程序設(shè)計方法的主要思想將任務(wù)按功能進行分解,自頂向下、逐步求精。當(dāng)一個任務(wù)十分復(fù)雜以至無法描述時,可按功能劃分為若干個基本模塊,各模塊之間的關(guān)系盡可能簡單,在功能上相對獨立,如果每個模塊的功能實現(xiàn)了,復(fù)雜任務(wù)也就得以解決。
程序=數(shù)據(jù)結(jié)構(gòu)+算法三、實例9按班級輸入按學(xué)號輸入按姓名查詢按學(xué)號查詢按學(xué)號修改按姓名修改按平均成績排序統(tǒng)計不及格按總成績排序?qū)W生成績管理學(xué)生基本信息錄入學(xué)生成績查詢學(xué)生成績修改學(xué)生成績統(tǒng)計學(xué)生成績錄入……101.3面向?qū)ο蟮某绦蛟O(shè)計
面向?qū)ο蟮某绦蛟O(shè)計不僅吸取了結(jié)構(gòu)化程序設(shè)計的優(yōu)點,又考慮現(xiàn)實世界與面向?qū)ο蟮挠成潢P(guān)系而提出的一種新思想,它所追求的目標(biāo)是將現(xiàn)實世界的問題求解盡可能的簡化,使程序設(shè)計更加貼近實現(xiàn)世界,用于開發(fā)較大規(guī)模的程序,以提高程序開發(fā)的效率。面向?qū)ο蟪绦蛟O(shè)計的實現(xiàn)需要數(shù)據(jù)封裝、繼承和多態(tài)技術(shù)。111.3.1基本概念
一、對象對象又稱實例,是客觀世界中一個實際存在的事物。對象一般可以表示為:屬性+行為。例如一個盒子--------------------一個對象盒子的長、寬和高------------屬性求盒子的容量----------------操作二、類在面向?qū)ο蟪绦蛟O(shè)計中,類是具有相同屬性數(shù)據(jù)和操作的對象的集合,它是對一類對象的抽象描述。類是創(chuàng)建對象的模板,包含所創(chuàng)建對象的屬性描述和方法定義。一般先定義類,再由類創(chuàng)建一個個具體的對象。例如:將所有的盒子的共同屬性抽象出來就是盒子類121.3.1基本概念三、面向?qū)ο蟪绦蛟O(shè)計(OOP)面向?qū)ο蟪绦蛟O(shè)計是將數(shù)據(jù)(屬性)及對數(shù)據(jù)的操作算法(行為)封裝在一起,作為一個相互依存、不可分割的整體來處理面向?qū)ο蟪绦蛟O(shè)計的結(jié)構(gòu):
對象=數(shù)據(jù)(屬性)+算法(行為) 程序=對象+對象+……+對象面向?qū)ο蟪绦蛟O(shè)計的優(yōu)點可以解決軟件工程的兩個主要問題——軟件復(fù)雜性控制和軟件生產(chǎn)效率的提高,另外它還符合人類的思維方式,能自然地表現(xiàn)出現(xiàn)實世界的實體和問題。131.3.2面向?qū)ο蟪绦蛟O(shè)計的特點一、封裝性封裝是一種數(shù)據(jù)隱藏技術(shù),在面向?qū)ο蟪绦蛟O(shè)計中可以把數(shù)據(jù)和與數(shù)據(jù)有關(guān)的操作集中在一起形成類,將類的一部分屬性和操作隱藏起來,不讓用戶訪問,另一部分作為類的外部接口,用戶可以訪問。二、繼承性繼承是指新建的類從已有的類那里獲得已有的屬性和操作。已有的類稱為基類或父類,繼承基類而產(chǎn)生的新建類稱為基類的子類或派生類。繼承有效地實現(xiàn)了軟件代碼的重用,增強了系統(tǒng)的可擴充性。同時也提高軟件開發(fā)效率。三、多態(tài)性所謂多態(tài)性是指當(dāng)不同的對象收到相同的消息時,產(chǎn)生不同的動作。其好處是,用戶不必知道某個對象所屬的類就可以執(zhí)行多態(tài)行為,從而為程序設(shè)計帶來更大方便。利用多態(tài)性可以設(shè)計和實現(xiàn)一個易于擴展的系統(tǒng)。
141.4簡單的C++程序介紹
一個簡單C++程序【例1.1】一個簡單的C++程序/*-----------ch1_1.cpp:輸出一行字符:“ThisisaC++program.”----------*/#include<iostream.h>voidmain(){cout<<"ThisisaC++program.";//在屏幕上輸出一行文字}運行結(jié)果:ThisisaC++program.151.4簡單的C++程序介紹說明:上述簡單的C++程序由注釋語句、編譯預(yù)處理命令和主函數(shù)構(gòu)成注釋語句有兩種:行注釋:以“//”開頭,從它開頭到本行末尾之間的內(nèi)容都作為注釋塊注釋:在“/*”與“*/”之間的內(nèi)容,這種形式的注釋可以跨多行書寫編譯預(yù)處理命令以符號“#”開頭的行是編譯預(yù)處理行。主函數(shù)main()main()函數(shù)是一個特殊的用戶定義的函數(shù),程序執(zhí)行的入口點。每個程序都必須有且僅有一個main()函數(shù)。161.4簡單的C++程序介紹【例1.2】求a1和a2兩個數(shù)的積。//求兩個數(shù)的積 //注釋#include<iostream.h> //預(yù)處理命令main() //主函數(shù){ //函數(shù)體開始inta1,a2,result; //定義變量cout<<"pleaseinputtwonumbers:\n"; //輸出提示信息cin>>a1>>a2; //輸入a1,a2result=a*b; //賦值語句cout<<"resultis:"<<result<<endl;//輸出語句}
//函數(shù)體結(jié)束如果程序運行時從鍵盤輸入:5
6↙則輸出為:resultis:30171.4簡單的C++程序介紹【例1.3】給出兩個數(shù)x和y,求兩數(shù)中的大者。#include<iostream.h> //預(yù)處理命令intmax(intx,inty) //max函數(shù)定義{intz;//定義整型變量if(x>y)z=x;//如果x>y,將x的值賦值給zelsez=y;//否則,將y的值賦值給zreturnz;//返回z}//max函數(shù)結(jié)束voidmain()//主函數(shù){inta,b,c;//定義整型變量
cout<<"Inputtwonumbers:\n"; //輸出提示信息
cin>>a>>b;//輸入數(shù)據(jù)c=max(a,b); //函數(shù)的調(diào)用cout<<"maximumnumberis"<<c<<endl; //輸出語句} //主函數(shù)結(jié)束181.5程序開發(fā)的過程
C++程序開發(fā)步驟
編寫源代碼編譯源代碼連接成可執(zhí)行文件運行程序并分析運行結(jié)果無不正確有編輯源程序編譯有錯?開始連接連接有錯?運行結(jié)果正確?結(jié)束無各階段生成的文件源程序:.cpp目標(biāo)程序:.obj可執(zhí)行程序:.exe有
修改錯誤編譯191.6C++上機實踐
1.6.1VisualStudio2013集成開發(fā)環(huán)境
菜單工程及工作區(qū)視圖1.6.2開發(fā)C++程序過程VisualC++的啟動項目(工程)文件的建立CPP文件(C++源程序文件)的建立完成C++程序的編譯、連接和運行201.7使用DevC++創(chuàng)建項目DevC++是一個Windows環(huán)境下的輕量級C/C++集成開發(fā)環(huán)境,支持C++11標(biāo)準(zhǔn),同時兼容C++98標(biāo)準(zhǔn)。開發(fā)環(huán)境包括多頁面窗口、工程編輯器及調(diào)試器等,具有完善的編輯
溫馨提示
- 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)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年對口單招電子試題及答案1套
- 2026年湖南工業(yè)單招職業(yè)測試題附答案
- 2026年廣東理工職業(yè)學(xué)院單招職業(yè)適應(yīng)性考試模擬測試卷及答案1套
- 2026重慶某國企外包員工招聘2人筆試參考題庫及答案解析
- 2026年成都紡織高等??茖W(xué)校單招職業(yè)技能測試題庫附答案
- 2026年浙江師范大學(xué)行知學(xué)院單招職業(yè)技能考試模擬測試卷附答案
- 2026年安康職業(yè)技術(shù)學(xué)院單招綜合素質(zhì)考試題庫及答案1套
- 2026年廣東江門中醫(yī)藥職業(yè)學(xué)院單招職業(yè)傾向性考試模擬測試卷及答案1套
- 2026年吉林省遼源市單招職業(yè)適應(yīng)性測試題庫及答案1套
- 2026年大學(xué)往年單招試題及答案1套
- 電子元器件入廠質(zhì)量檢驗規(guī)范標(biāo)準(zhǔn)
- 中藥炮制的目的及對藥物的影響
- 688高考高頻詞拓展+默寫檢測- 高三英語
- 學(xué)生公寓物業(yè)管理服務(wù)服務(wù)方案投標(biāo)文件(技術(shù)方案)
- 食品檢驗檢測技術(shù)專業(yè)介紹
- 2025年事業(yè)單位筆試-貴州-貴州財務(wù)(醫(yī)療招聘)歷年參考題庫含答案解析(5卷套題【單項選擇100題】)
- 二年級數(shù)學(xué)上冊100道口算題大全(每日一練共12份)
- 空壓機精益設(shè)備管理制度
- 國家開放大學(xué)《公共政策概論》形考任務(wù)1-4答案
- 藥品經(jīng)營與管理專業(yè)職業(yè)生涯規(guī)劃書1400字?jǐn)?shù)
- 正循環(huán)成孔鉆孔灌注樁施工方案
評論
0/150
提交評論