C++程序設計基礎 安志遠ppt第1章 C++語言概述.ppt

(99頁)

'C++程序設計基礎 安志遠ppt第1章 C++語言概述.ppt'
程序設計基礎 -面向對象及C++實現北華航天工業學院 1第一章 C++語言概述2目標 理解程序設計的概念掌握C++程序的開發過程掌握C++的運算符和表達式掌握C++的數據類型,包括基本數據類型和構造數據類型熟練掌握基本控制語句的使用:if、switch、while、do~while、for掌握轉向語句:break、contiune語句的使用熟練掌握函數的使用31.1 面向對象程序設計入門1.1.1 程序設計與程序設計語言1.1.2 簡單的C++程序1.1.3 創建和運行C++程序 1.1.4 VC++集成開發環境41.1.1 程序設計與程序設計語言程序設計也是一門工程設計,它是根據要解決的問題,使用某種程序設計語言,設計出能夠完成這一任務的計算機指令序列。程序設計語言是人與計算機進行交流的一種形式語言,是人利用計算機分析文問題、解決問題的一個基本工具。 51.1.2 簡單的C++程序/* 源文件名:Ch1_01.cpp 功能:給出矩形的寬和高,計算矩形的周長和面積,使用結構化方法實現*/# include void main(){ int width,height,girth,area; cout<> width>>height; //輸入兩個數據 girth= (width+height)*2; //計算矩形周長 area= width*height; //計算矩形面積 cout<<"矩形:寬="<< width<<" 高="<< height<<endl; //輸出數據 cout<<"周長="<< girth<<endl; cout<<"面積="<<area<<endl;} 61.1.2 簡單的C++程序程序運行后,屏幕顯示:請輸入矩形的寬和高:20 15 (用戶輸入)矩形:寬=20 高=15周長=70面積=30071.1.2 簡單的C++程序程序結構分析:(1)“/*……*/” 是程序的注釋部分,注釋內容是為增加程序的可讀性,系統不編譯注釋內容,自動忽略從“/*”到“*/”之間的內容。 C++中以“//”開頭直到本行結束的部分也是注釋。與“/*……*/”的區別在于只能注釋一行,不能跨行,這種注釋也稱為行注釋,“/*……*/”注釋可以跨行,稱為塊注釋。 81.1.2 簡單的C++程序(2)#include 是一條編譯預處理命令,聲明該程序要使用iostream.h文件中的內容,iostream.h文件中包含了輸入cin和輸出cout 的定義。編譯時系統將頭文件iostream.h中的內容嵌入到程序中該命令位置。 91.1.2 簡單的C++程序(3)程序中定義了一個主函數main(),其中main是函數名,void表示該函數返回值類型。程序執行從主函數開始。(4)函數體中聲明變量的語句是: “int width,height,girth,area;” ,通知系統為變量分配存儲空間。 (5)函數體中的其他語句用于完成相應功能,是函數體的重要組成部分。 101.1.2 簡單的C++程序書寫格式,盡量遵循以下基本原則:(1)一般情況下一行只寫一條語句。短語句可以一行寫多條,長語句可以分成多行來寫。分行原則是不能將一個單詞分開,用雙引號括起來的字符串最好也不要分開。(2)C++程序書寫時要盡量提高可讀性。為此,采用適當地縮進格式書寫程序是非常必要的,表示同一類內容或同一層次的語句要對齊。(3)C++程序中大括號{}使用較多,其書寫方法也較多,建議用戶要養成使用大括號{}的固定風格。 111.1.3 創建和運行C++程序 C++源程序要經過編輯、編譯、連接、運行4個環節,才能產生輸出結果。 121.1.3 創建和運行C++程序1. 編輯編輯是在一定的環境下進行程序的輸入和修改過程。2. 編譯編輯好的源程序不能被計算機理解,源程序必須經過編譯,生成計算機能夠識別的機器代碼。編譯階段要進行詞法分析和語法分析,又稱源程序分析。 131.1.3 創建和運行C++程序3. 連接編譯后生成的目標代碼還不能直接在計算機上運行,其主要原因是編譯器對每個源程序文件分別進行編譯,如果一個程序有多個源程序文件,編譯后這些源程序文件還分布在不同的地方。 4. 運行一個C++源程序經過編譯和連接后生成了可執行文件后,就可以在Windows環境下直接雙擊該文件運行該程序,也可以在Visual C++ 6.0的集成開發環境下運行。141.1.3 創建和運行C++程序C++程序的上機實現過程:(1)啟動Visual C++ 6.0用戶可以單擊“開始”菜單,在“程序”選項中選擇“Microsoft Visual Studio 6.0”級聯菜單下的“Microsoft Visual C++6.0”,或在桌面上雙擊“Microsoft Visual C++6.0”的快捷方式,就會啟動Visual C++ 6.0。151.1.3 創建和運行C++程序(2)在“文件”菜單下,選擇“新建”命令,將彈出“新建”對話框 選擇“工程”標簽下的“Win32 Console Application”選項,可創建一個基于控制臺應用程序的工程; 在“工程”編輯欄內輸入創建的工程名稱(CH1_01); 在“位置”編輯欄內輸入工程的保存位置(E:\student),確保單選按鈕“R創建新工作區”被選定, 其它選項選擇默認值,單擊“確定”按鈕將彈出“Win32 Console Applition”項目步驟對話框。161.1.3 創建和運行C++程序(3)在項目步驟對話框中,選擇要創建應用程序的類型,共有4個選項: “An empty project.”(一個空工程) “A simple application.”(一個簡單應用程序) “A ”Hello,World“ application.”(一個“世界,你好”應用程序) “An application that support MFC.”(一個支持MFC的應用程序)。 例中選擇第1個選項,創建一個空工程。 171.1.3 創建和運行C++程序(4)單擊“確定”按鈕,創建空工程的工作結束,回到Visual C++ 6.0的集成開發環境。至此,系統為工程CH1_01自動創建了E:\student\CH1_01文件夾,并在其中生成了CH1_01.dsp、CH1_01.dsw、CH1_01.ncb和Debug文件夾。181.1.3 創建和運行C++程序(5)在“文件”菜單下,選擇“新建”命令,在出現的對話框中選擇“文件”標簽,選擇“C++ Source File”選項,創建一個C++源程序。然后在“文件”編輯欄內輸入創建的C++源程序名(如CH1_01);在“目錄”編輯欄內輸入。省略部分。 continue;791.4 函數1.4.1 函數的定義和說明1.4.2 函數的調用1.4.3 函數的參數1.4.4 函數的嵌套調用和遞歸調用1.4.5 作用域和存儲類型1.4.6 內聯函數1.4.7 函數重載1.4.8 字符串處理函數801.4.1 函數的定義和說明函數定義的一般語法格式如下:函數類型 函數名(參數表){ 函數體;} C++最重要的特征之一是函數原型。 函數原型的說明一般語法格式為:類型 函數名(參數列表);811.4.2 函數的調用1. 函數調用的概念函數調用是用一個表達式來表示的。其調用的一般格式為:函數名(實參列表)要求實參與形參的個數相同、類型一致、順序一致。 821.4.2 函數的調用函數的返回值是在被調用函數中,通過返回語句return來實現的。返回語句return有兩個重要的作用:其一是使函數立即返回到其主調程序,其二是返回某個值。 函數有兩種返回情況,一種是無返回值,一種是有返回值。當函數無返回值時,函數類型必須用關鍵字void加以說明。 831.4.3 函數的參數1. 傳值調用這種方法是用參數傳遞數據的最常用的方法。傳值調用是指函數調用時,給形參分配存儲空間,系統計算實參表達式的值,并把實參的值按順序賦給對應的形式參數,即對形參進行初始化,然后執行函數體。 841.4.3 函數的參數2. 傳址調用使用傳址調用方式時,形參是指針變量,實參是地址值,由主調程序向被調用函數傳遞地址。在函數調用時,把實參數地址賦給形式參數,形參和實參都表示同一地址中的值。因此,形參所指向內容的任何改變都會導致實參所指向內容的改變。 851.4.3 函數的參數3. 引用調用引用也是一種特殊類型的變量,它不同于指針。引用是為程序中變量取一個別名,引用作為函數的參數時,形參是實參的引用,則形參和實參指的是同一個變量,在函數調用中對形參的改變實際上就是對實參的改變。 861.4.4 函數的嵌套調用和遞歸調用1. 函數的嵌套調用程序從主函數開始執行,遇到函數調用時,如果函數是有參函數,C++先進行實參對形參的替換,然后執行被調用函數的函數體。如果函數體中還調用其他函數,再轉入執行其他函數體。函數體執行完畢后,返回到主調函數,繼續執行主調函數中的后續程序行。若在一個函數中又調用另一個函數,則稱這樣的調用過程為函數的嵌套調用 871.4.4 函數的嵌套調用和遞歸調用2. 函數的遞歸調用在調用一個函數的過程中出現直接或間接調用該函數本身,稱作函數的遞歸調用。這樣的函數稱為遞歸函數。編寫遞歸函數時,必須有終止遞歸調用的條件。881.4.5 作用域和存儲類型1. 作用域作用域是一個標識符在程序中有效范圍。C++的作用域有函數原型作用域、塊作用域、函數作用域和文件作用域。函數原型參數列表中的標識符具有函數原型作用域。函數原型只需要參數的類型,并不需要參數名。參數名只在函數原型聲明的兩個圓括號內有效。891.4.5 作用域和存儲類型塊作用域又稱局部作用域。在一個復合語句內聲明的標識符具有塊作用域,其作用域是從聲明處開始,一直到復合語句結束的花括號為止。由于函數體在句法上可以看作一個復合語句,所以函數中聲明的標識符具有塊作用域。另外函數的形參也屬于塊作用域。901.4.5 作用域和存儲類型2. 局部變量和全局變量局部變量具有局部作用域。局部變量僅在定義它的函數或類內起作用,在這個范圍之外不能使用這些變量。全局變量是在函數和類外部定義的變量。全局變量的作用域從說明點開始直到文件的結束。這種作用域也稱為文件作用域。911.4.5 作用域和存儲類型提示:好的程序設計方法是用函數交換信息應使用參數和返回值,而不使用全局變量。如果全局變量與函數的局部變量同名,在函數的局部變量的作用域內,同名的全局變量無效。為了在函數體內使用與局部變量同名的全局變量,應在全局變量前面使用作用域作用符“::”。 921.4.5 作用域和存儲類型3. 變量的存儲類型C++把程序運行時所占用的存儲空間分為程序代碼區域、靜態存儲區域和動態存儲區域三部分,動態存儲區域又分為堆棧區域和堆區域。變量主要分配在靜態和動態兩個區域中,另外,有些變量還可以分配在計算機中的寄存器中。在定義變量時不僅要指明變量的數據類型,還要指出變量的存儲類型。 因此,變量的一般定義格式為: 存儲類型 數據類型 變量名[=初值];C++中常用的存儲類型有:auto(自動類型)、register(寄存器類型)、static(靜態類型)、extern(全局類型)。931.4.5 作用域和存儲類型4. 內部函數和外部函數C++中所有函數定義都是獨立的,不能嵌套。 (1)內部函數內部函數又稱為靜態函數,它只能在定義它的源文件中被調用,而不能被其他源文件的函數調用。在定義內部函數時,在函數名和函數類型的前面加static。static 數據類型 函數名(形參表)(2)外部函數在定義函數時,如果前面加關鍵字extern,表示此函數為外部函數。外部函數可以被其他源文件的函數調用,若在定義函數時省略關鍵字extern,則隱含為外部函數。 941.4.6 內聯函數引入內聯函數的目的是為了解決函數調用的效率問題。 使用內聯函數,加快了程序的執行速度,但如果函數體中的語句很多,則會增加程序代碼的長度。由于C++編譯程序必須知道內聯函數的函數體,才能進行內聯替換,因此,內聯函數必須在程序中第一次調用此函數的語句前通知C++編譯程序。 951.4.6 內聯函數除了帶有循環語句、switch語句的函數不能被說明為內聯函數外,都可以被說明為內聯函數。內聯函數的定義形式為:inline 類型 函數名(形式參數列表);961.4.7 函數重載所謂函數重載是指同一個函數名可以對應著多個不同函數的實現。 函數重載要求編譯器能夠唯一地確定調用一個函數時應執行哪個函數代碼。確定函數時,編譯器是通過函數的參數個數、參數類型和參數順序來區分的。 971.4.8 字符串處理函數1. 字符串拷貝函數strcpy() char *strcpy(char *str1,const char *str2);2. 字符串連接函數strcat() char *strcat(char *str1, char *str2);3. 字符串比較函數strcmp() int strcmp(const char *str1, const char *str2); int strncmp(const char *str1, const char *str2,int n);4. 字符串長度函數strlen() int strlen(const char *str);98總結講解了程序設計的概念介紹了C++程序的開發過程介紹了C++的運算符和表達式的使用方法介紹了C++的數據類型,包括基本數據類型和構造數據類型講解了掌握基本控制語句的使用:if、switch、while、do~while、for的使用和基本結構詳細的介紹了函數的使用過程99
關 鍵 詞:
c++ 語言 ppt 程序設計 基礎 概述
 天天文庫所有資源均是用戶自行上傳分享,僅供網友學習交流,未經上傳用戶書面授權,請勿作他用。
關于本文
本文標題:C++程序設計基礎 安志遠ppt第1章 C++語言概述.ppt
鏈接地址: http://www.476824.live/p-51617177.html
關于我們 - 網站聲明 - 網站地圖 - 資源地圖 - 友情鏈接 - 網站客服點擊這里,給天天文庫發消息,QQ:1290478887 - 聯系我們

本站為“文檔C2C交易模式”,即用戶上傳的文檔直接賣給(下載)用戶,本站只是中間服務平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有【成交的100%(原創)】。本站是網絡服務平臺方,若您的權利被侵害,侵權客服QQ:1290478887 歡迎舉報。

[email protected] 2017-2027 http://www.476824.live 網站版權所有

粵ICP備19057495號 

收起
展開
球探网即时蓝球比分 哪个平台有湖南幸运赛车 江苏快3开奖预测 股票,期货配资 体彩排列三南方双彩开机号 金屯在线配资 重庆幸运农场是真的吗 四川金7开奖今天 上港集团明日股票行情 湖北快三预测 股票指数期货外文翻译