![【學習課件】第1章C++的初步知識_第1頁](http://file4.renrendoc.com/view/14bb70bb17db6d25fcabea21784f0b09/14bb70bb17db6d25fcabea21784f0b091.gif)
![【學習課件】第1章C++的初步知識_第2頁](http://file4.renrendoc.com/view/14bb70bb17db6d25fcabea21784f0b09/14bb70bb17db6d25fcabea21784f0b092.gif)
![【學習課件】第1章C++的初步知識_第3頁](http://file4.renrendoc.com/view/14bb70bb17db6d25fcabea21784f0b09/14bb70bb17db6d25fcabea21784f0b093.gif)
![【學習課件】第1章C++的初步知識_第4頁](http://file4.renrendoc.com/view/14bb70bb17db6d25fcabea21784f0b09/14bb70bb17db6d25fcabea21784f0b094.gif)
![【學習課件】第1章C++的初步知識_第5頁](http://file4.renrendoc.com/view/14bb70bb17db6d25fcabea21784f0b09/14bb70bb17db6d25fcabea21784f0b095.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、C+面向對象程序設計1編輯ppt教材C+程序設計譚浩強 清華大學出版社C+面向對象程序設計譚浩強 清華大學出版社2編輯ppt教學內容第1篇 基 本 知 識第1章 C+的初步知識第2章 數據類型與表達式第2篇 面向過程的程序設計第3章 程序設計初步第4章 函數與預處理第5章 數組第6章 指針第7章 自定義數據類型3編輯ppt第3篇 基于對象的程序設計第8章 類和對象第9章 關于類和對象的進一步討論第10章 運算符重載第4篇 面向對象的程序設計第11章 繼承與派生第12章 多態(tài)性與虛函數第13章 輸入輸出流第14章 C+工具4編輯ppt第1章 C+的初步知識第2章 數據類型與表達式第1篇基 本 知
2、 識5編輯ppt第1章 C+的初步知識1.1 從C到C+1.2 最簡單的C+程序1.3 C+程序的構成和書寫形式1.4 C+程序的編寫和實現(xiàn)1.5 關于C+上機實踐6編輯ppt計算機程序(Computer Program)計算機的工作是用程序(Program)來控制的程序是指令(Instruction)的集合指令是計算機可以識別的命令1.1 從C到C+7編輯ppt計算機程序語言的發(fā)展:(1)機器語言:由計算機硬件系統(tǒng)可以識別的二進制指令組成的語言稱為機器語言。計算機發(fā)展的初期,軟件工程師們只能用機器語言來編寫程序。這一階段,在人類的自然語言和計算機編程語言之間存在著巨大的鴻溝。(2)匯編語言:
3、將機器指令映射為一些可以被人讀懂的助記符(Symbol),如ADD、SUB等此時編程語言與人類語言間的鴻溝略有縮小,但仍與人類的思維相差甚遠。因為它的抽象程度太低,程序員需要考慮大量的機器細節(jié)。8編輯ppt(3)高級語言屏蔽了機器的細節(jié),提高了語言的抽象層次,程序中可以采用具有一定涵義的數據命名和容易理解的執(zhí)行語句。這使得在書寫程序時可以聯(lián)系到程序所描述的具體事物。9編輯ppt世界上第一種計算機高級語言誕生于1954年,它是FORTRAN語言。先后出現(xiàn)了多種計算機高級語言。其中使用最廣泛、影響最大的當推BASIC語言和C語言。BASIC語言是1964年在FORTRAN語言的基礎上簡化而成的,它
4、是為初學者設計的小型高級語言。C語言是1972年由美國貝爾實驗室研制成功的。它不是為初學者設計的,是為了編寫UNIX操作系統(tǒng)的。大多數系統(tǒng)軟件和許多應用軟件都是用C語言編寫的。10編輯pptC語言的主要特點是:1、C語言是一種結構化的程序設計語言,語言本身簡潔、使用靈活方便。既適用于設計和編寫大的系統(tǒng)程序,又適用于編寫小的控制程序,也適用科學計算。2、它既有高級語言的特點,又具有匯編語言的特點。運算符豐富,除了提供對數據的算術邏輯運算外,還提供了二進制的位運算。并且也提供了靈活的數據結構。用C語言編寫的程序表述靈活方便,功能強大。用C語言開發(fā)的程序,其結構性好,目標程序質量高,程序執(zhí)行效率高。
5、11編輯ppt3、程序的可移植性好。用C語言在某一種型號的計算機上開發(fā)的程序,基本上可以不作修改,而直接移植到其它型號的計算機上運行。4、程序的語法結構不夠嚴密,程序設計的自由度大。這對于比較精通C語言的程序設計者來說,可以設計出高質量的非常通用的程序。但對于初學者來說,要能比較熟練運用C語言來編寫程序,并不是一件容易的事情。與其它高級語言相比而言,調試程序比較困難。往往是編好程序輸入計算機后,編譯時容易通過,而在執(zhí)行時還會出錯。12編輯ppt隨著C語言應用的推廣,C語言存在的一些缺陷或不足也開始流露出來,并受到大家的關注。如:C語言對數據類型檢查的機制比較弱;缺少支持代碼重用的結構;隨著軟件
6、工程規(guī)模的擴大,難以適應開發(fā)特大型的程度等等(由于C語言等高級語言是面向過程的,最初用于科學計算)。13編輯pptC+是由AT&T Bell(貝爾)實驗室于20世紀80年代初在C語言的基礎上開發(fā)成功的。C+保留了C語言原有的所有優(yōu)點,增加了面向對象的機制。C+是由C發(fā)展而來的,與C兼容。用C語言寫的程序基本上可以不加修改地用于C+。從C+的名字可以看出它是C的超集。C+既可用于面向過程的結構化程序設計,又可用于面向對象的程序設計,是一種功能強大的混合型的程序設計語言。14編輯pptC+對C的“增強”,表現(xiàn)在兩個方面: (1) 在原來面向過程的機制基礎上,對C語言的功能做了不少擴充。(2) 增加
7、了面向對象的機制。面向對象程序設計,是針對開發(fā)較大規(guī)模的程序而提出來的,目的是提高軟件開發(fā)的效率。不要把面向對象和面向過程對立起來,面向對象和面向過程不是矛盾的,而是各有用途、互為補充的。學習C+,既要會利用C+進行面向過程的結構化程序設計,也要會利用C+進行面向對象的程序設計。15編輯ppt例1.1 輸出一行字符: “This is a C+ program.”。程序如下: #include /包含頭文件iostream, /用cout輸出時需要用using namespace std; /使用命名空間stdint main( )coutThis is a C+ program.;/ 上面用
8、C+的方法輸出一行return 0;1.2 最簡單的C+程序主函數(類型int,返回值)函數體預處理命令在運行時會在屏幕上輸出以下一行信息:This is a C+ program.16編輯ppt(1)用main代表“主函數”的名字。每一個C+程序都必須有一個 main 函數。main前面的int的作用是聲明函數的類型為整型。程序第6行的作用是向操作系統(tǒng)返回一個零值。如果程序不能正常執(zhí)行,則會自動向操作系統(tǒng)返回一個非零值,一般為-1。(2)函數體是由大括號 括起來的。本例中主函數內只有一個以cout開頭的語句。注意C+所有語句最后都應當有一個分號。17編輯ppt(3)第1行“#include
9、”,這不是C+的語句,而是C+的一個預處理命令,它以“#”開頭以與C+語句相區(qū)別,行的末尾沒有分號。#include 是一個“包含命令”,它的作用是將文件內容插入到該命令所在的程序文件中,由于iostream這類文件都放在程序單元的開頭,所以稱為“頭文件”(head file)。在程序進行編譯時,先對所有的預處理命令進行處理,將頭文件的具體內容代替 #include命令行,然后再對該程序單元進行整體編譯。18編輯ppt(4)程序的第2行“using namespace std; ” 的意思是“使用命名空間std”C+標準庫中的類和函數是在命名空間std中聲明的,因此程序中如果需要用到C+標準庫
10、就需要用“using namespace std; ”作聲明,表示要用到命名空間std中的內容。19編輯ppt(5)C+程序中可以用/*/做注釋,可以用/做注釋。前者可以做多行注釋,后者只做單行注釋。20編輯ppt例1.2 求a和b兩個數之和??梢詫懗鲆韵鲁绦颍?/ 求兩數之和 (本行是注釋行)#include /預處理命令using namespace std; /使用命名空間stdint main( ) /主函數首部 /函數體開始 int a,b,sum; /定義變量 cinab; /輸入語句 sum=a+b; /賦值語句couta+b=sumendl; /輸出語句return 0; /如
11、程序正常結束,向操作系統(tǒng)返回一個零值 /函數結束21編輯ppt本程序的作用是求兩個整數a和b之和sum。第1行“/求兩數之和”是一個注釋行,C+規(guī)定在一行中如果出現(xiàn)“/”,則從它開始到本行末尾之間的全部內容都作為注釋。如果在運行時從鍵盤輸入 123 456則輸出為a+b=57922編輯ppt例1.3 給兩個數x和y,求兩數中的大者。在本例中包含兩個函數。#include /預處理命令using namespace std;int max(int x,int y) /定義max函數,函數值為整型,形式參數 /x,y為整型 /max函數體開始 int z; /變量聲明,定義本函數中用到的變量/z為
12、整型 if(xy) z=x; /if語句,如果xy,則將x的值賦給zelse z=y; /否則,將y的值賦給z return(z); /將z的值返回,通過max帶回調用處 /max函數結束int main( ) /主函數23編輯ppt /主函數體開始 int a,b,m; /變量聲明 cinab; /輸入變量a和b的值 m=max(a,b); /調用max函數,將得到的值賦給mcoutmax=mn; /輸出大數m的值return 0; /如程序正常結束,向操作系統(tǒng)返回一個零值 /主函數結束本程序包括兩個函數:主函數main和被調用的函數max。程序運行情況如下: 18 25 (輸入18和25給
13、a和b)max=25 (輸出m的值) 注意輸入的兩個數據間用一個或多個空格間隔,不能以逗號或其他符號間隔。24編輯ppt在上面的程序中,max函數出現(xiàn)在main函數之前,因此在main函數中調用max函數時,編譯系統(tǒng)能識別max是已定義的函數名。如果把兩個函數的位置對換一下,即先寫main函數,后寫max函數,這時在編譯main函數遇到max時,編譯系統(tǒng)無法知道m(xù)ax代表什么含義,因而無法編譯,按出錯處理。為了解決這個問題,在主函數中需要對被調用函數作聲明。上面的程序可以改寫如下:#include using namespace std;int main( ) int max(int x,in
14、t y); /對max函數作聲明 int a,b,c; cinab; c=max(a,b); /調用max函數25編輯ppt coutmax=cy) z=x; else z=y; return(z);只要在被調用函數的首部的末尾加一個分號,就成為對該函數的函數聲明。函數聲明的位置應當在函數調用之前。26編輯pptC+程序的結構和書寫格式歸納如下: (1) 一個C+程序可以由一個程序單位或多個程序單位構成。每一個程序單位作為一個文件。在程序編譯時,編譯系統(tǒng)分別對各個文件進行編譯,因此,一個文件是一個編譯單元。(2) 在一個程序單位中,可以包括以下幾個部分: 預處理命令。上節(jié)4個程序中都包括#in
15、clude命令。 全局聲明部分(在函數外的聲明部分)。在這部分中包括對用戶自己定義的數據類型的聲明和程序中所用到的變量的定義。1.3 C+程序的構成和書寫形式27編輯ppt 函數。函數是實現(xiàn)操作的部分,因此函數是程序中必須有的和最基本的組成部分。每一個程序必須包括一個或多個函數,其中必須有一個(而且只能有一個)主函數(main函數)。但是并不要求每一個程序文件都必須具有以上3個部分,可以缺少某些部分(包括函數)。(3) 一個函數由兩部分組成: 函數首部,即函數的第一行。包括函數名、函數類型、函數屬性、函數參數(形參)名、參數類型。一個函數名后面必須跟一對圓括號, 函數參數可以缺省,如int m
16、ain( )。28編輯ppt 函數體,即函數首部下面的大括號內的部分。如果在一個函數中有多個大括號,則最外層的一對 為函數體的范圍。函數體一般包括:局部聲明部分 (在函數內的聲明部分)。包括對本函數中所用到的類型、函數的聲明和變量的定義。對數據的聲明既可以放在函數之外(其作用范圍是全局的),也可以放在函數內(其作用范圍是局部的,只在本函數內有效)。執(zhí)行部分。由若干個執(zhí)行語句組成,用來進行有關的操作,以實現(xiàn)函數的功能。29編輯ppt(4) 語句包括兩類。一類是聲明語句,另一類是執(zhí)行語句。 C+對每一種語句賦予一種特定的功能。語句是實現(xiàn)操作的基本成分,顯然,沒有語句的函數是沒有意義的。C+語句必須
17、以分號結束。(5) 一個C+程序總是從main函數開始執(zhí)行的,而不論main函數在整個程序中的位置如何。30編輯ppt(6)C+程序書寫格式自由,一行內可以寫幾個語句, 一個語句可以分寫在多行上。C+程序沒有行號,也不像FORTRAN或COBOL那樣嚴格規(guī)定書寫格式(語句必須從某一列開始書寫)。(7) 一個好的、有使用價值的源程序都應當加上必要的注釋,以增加程序的可讀性。C+還保留了C語言的注釋形式,可以用“/*/”對C+程序中的任何部分作注釋。在“/*”和“*/”之間的全部內容作為注釋。用“/”作注釋時,有效范圍只有一行,即本行有效,不能跨行。而用“/*/”作注釋時有效范圍為多行。只要在開始
18、處有一個“/*”,在最后一行結束處有一個“*/”即可。因此,一般習慣是: 內容較少的簡單注釋常用“/”,內容較長的常用“/*/ ”。31編輯ppt一個程序從編寫到最后得到運行結果要經歷以下一些步驟。1. 用C+語言編寫程序用高級語言編寫的程序稱為“源程序”(source program)。C+的源程序是以.cpp作為后綴的。2. 對源程序進行編譯為了使計算機能執(zhí)行高級語言源程序,必須先用一種稱為“編譯器(complier)”的軟件(也稱編譯程序或編譯系統(tǒng)),把源程序翻譯成二進制形式的“目標程序(object program)”。1.4 C+程序的編寫和實現(xiàn)32編輯ppt目標程序一般以.obj或.o作為后綴。編譯的作用是對源程序進行詞法檢查和語法檢查。編譯時對文件中的全部內容進行檢查,編譯結束后會顯示出所有的編譯出錯信息。一般編譯系統(tǒng)給出的出錯信息分為兩種,一種是錯誤(error);一種是警告(warning) 。3. 將目標文件連接在改正所有的錯誤并全部通過編譯后,得到一個或多個目標文件。此時要用系統(tǒng)提供的“連接程序(linker)”將一個程序的所有目標程序和系統(tǒng)的庫文件以及系
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 新人教版七年級數學上冊 3.3 《解一元一次方程》聽評課記錄1
- 人教版歷史七年級上冊第14課《溝通中外文明的“絲綢之路”》聽課評課記錄
- 現(xiàn)場電力服務合同(2篇)
- 生活設施租賃協(xié)議書(2篇)
- 新版湘教版秋八年級數學上冊第二章三角形課題已知邊角作三角形聽評課記錄
- 新版華東師大版八年級數學下冊《18.2平行四邊形的判定》聽評課記錄
- 湘教版數學八年級下冊4.3《一次函數的圖象》聽評課記錄1
- 魯人版道德與法治七年級下冊13.3《正視壓力 輕松前行》聽課評課記錄
- 2022年新課標八年級上冊歷史第3課太平天國運動聽課評課記錄
- 人教版九年級數學上冊22.2.1《二次函數與一元二次方程》聽評課記錄
- 裝修工程延期協(xié)議
- 《梅大高速茶陽路段“5·1”塌方災害調查評估報告》專題警示學習
- 2024年09月北京中信銀行北京分行社會招考(917)筆試歷年參考題庫附帶答案詳解
- 《大健康解讀》課件
- 2025年度交通運輸規(guī)劃外聘專家咨詢協(xié)議3篇
- 2024年04月北京中信銀行北京分行社會招考(429)筆試歷年參考題庫附帶答案詳解
- 專項債券培訓課件
- 《會務的組織和管理》課件
- 2024年公司領導在新年動員會上的講話樣本(3篇)
- 《倒虹吸管安全評價導則》
- 2025年中國濕度傳感器行業(yè)深度分析、投資前景、趨勢預測報告(智研咨詢)
評論
0/150
提交評論