官术网_书友最值得收藏!

1.1 C++程序結構

C++是在20世紀80年代初期由貝爾實驗室設計的一種在C語言的基礎上增加了對面向對象程序設計支持的語言,它是目前應用得最為廣泛的編程語言。

1.1.1 C++概述

C++(C Plus Plus)是在C語言基礎上研制出來的一種通用的程序設計語言,它是在1980年由貝爾實驗室的Bjarne Stroustrup創建的。研制C++的一個重要目標是完善C,另一個重要目標就是增加面向對象的程序設計。

為了使C++具有良好的可移植性,1990年,美國國家標準局(ANSI)設立了ANSI X3J16委員會,專門負責制定C++標準。很快,國際標準化組織(ISO)也成立了自己的委員會(ISO-WG-21)。同年,ANSI與ISO將兩個委員會合并,統稱為ANSI/ISO,共同合作進行標準化工作。經過長達9年的努力,C++的國際標準(ISO/IEC)在1998年獲得了ISO、IEC(國際電工技術委員會)和ANSI的批準,這是第一個C++的國際標準ISO/IEC 14882:1998,常稱為C++98、標準C++或ANSI/ISO C++。2003年,發布了C++標準第二版(ISO/IEC 14882:2003)。本書以ANSI/ISO C++內容為基礎。

使用C++高級語言編寫的程序稱為源程序。由于計算機只能識別和執行由0和1組成的二進制指令,稱為機器代碼,因而C++源程序是不能被計算機直接執行的,必須轉換成機器代碼。這個轉換過程就是編譯系統對源代碼進行編譯連接的過程,如圖1.1所示。

圖1.1 C++程序創建過程

1.1.2 C++程序創建

事實上,對于C++程序的源代碼編寫、編譯和連接的步驟,許多C++編程工具軟件商都提供了各自的C++集成開發環境(Integrated Devel- opment Environment, IDE)用于程序的一體化操作,常見的有Microsoft Visual C++、各種版本的Borland C++(如Turbo C++、C++ Builder等)、IBM Visual Age C++和bloodshed免費的Dev-C++等。但Visual C++在項目文件管理、調試及操作的親和力等方面上都略勝一籌,從而成為目前使用得極為廣泛的基于Windows平臺的可視化編程環境,如圖1.2所示。

圖1.2 Visual C++ 6.0 SP6(中文版)開發環境

Visual C++ 6.0分為標準版、專業版和企業版三種,但其基本功能是相同的。Visual C++ 6.0 SP6(中文版)是在Visual C++ 6.0 SP6的基礎上進行漢化的一個版本,本書以此版本作為編程環境。為統一起見,仍稱之為Visual C++ 6.0,并以Windows XP(經典桌面主題)作為操作系統。下面以一個簡單的C++程序為例來說明C++程序在Visual C++中創建和運行的一般過程。

1.創建工作文件夾

創建Visual C++ 6.0的工作文件夾“D:\Visual C++程序”,以后所有創建的C++程序都在此文件夾下,這樣既便于管理,又容易查找。在文件夾“D:\ Visual C++程序”下再創建一個子文件夾“第1章”用于存放第1章中的C++程序;第2章程序就存放在子文件夾“第2章”中,以此類推。

2.啟動Visual C++ 6.0

選擇“開始”→“程序”→“Microsoft Visual Studio 6.0”→“Microsoft Visual C++ 6.0”命令,運行Visual C++ 6.0。第一次運行時,將顯示如圖1.3所示的“每日提示”對話框。單擊按鈕,可看到有關各種操作的提示。如果在“啟動時顯示提示”復選框中單擊鼠標左鍵,去除復選框的選中標記“”,那么下一次運行Visual C++ 6.0時將不再出現此對話框。單擊按鈕關閉此對話框,進入Visual C++ 6.0開發環境。

圖1.3 “每日提示”對話框

3.添加C++程序

(1)單擊標準工具欄上的“新建”按鈕,打開一個新的文檔窗口,在這個窗口中輸入下列C++代碼。

例Ex_Simple1】 一個簡單的C++程序

/* 一個簡單的C++程序 */
#include <iostream.h>
int  main()
{
     double  r,area;                     // 定義變量r,area雙精度整數類型
     cout<<"輸入圓的半徑:";             // 顯示提示信息
     cin>>r;                             // 從鍵盤上輸入的值存放到r中
     area=3.14159*r*r;                   // 計算圓面積,結果存放到area中
     // 思考:在輸出“圓的面積為:”后輸出area中的面積值,如何換行?
     cout<<"圓的面積為:"<<area<<"\n";
     return 0;                            // 指定返回值
}

本書約定:書中凡是需要用戶添加或修改的代碼均用填充底紋來標明。

(2)選擇“文件”→“保存”菜單或按快捷鍵【Ctrl+S】或單擊標準工具欄中的按鈕,彈出“保存為”文件對話框。將文件定位到“D:\Visual C++程序\第1章”文件夾中,文件名指定為“Ex_Simple1.cpp”(注意擴展名.cpp不能省略)。

此時在文檔窗口中的所有代碼顏色都發生改變,這是Visual C++ 6.0的文本編輯器所具有的語法顏色功能,綠色表示注釋(如//…),藍色表示關鍵詞(如double)等。

4.編譯和運行

(1)單擊編譯工具條上的“生成”按鈕或直接按快捷鍵【F7】,系統彈出一個對話框,詢問是否為該程序創建默認的活動工作區間文件夾,單擊按鈕,系統開始對Ex_Simple1進行編譯、連接,同時在輸出窗口中顯示編連的有關信息,當出現“Ex_Simple1.exe-o error(s),0 warning(s)”時表示Ex_Simple1.exe可執行文件已經正確無誤地生成了。

(2)單擊編譯工具條上的“運行”按鈕或直接按快捷鍵【Ctrl+F5】,就可以運行剛剛生成的Ex_Simple1.exe了,結果彈出下面的稱為控制臺的窗口(其屬性已被修改過,具體修改方法見實驗1):

此時等待用戶輸入一個數。當輸入10并按【Enter】鍵后,控制臺窗口顯示為:

其中,“Press any key to continue”是Visual C++自動加上去的,表示Ex_Simple1運行后,按一個任意鍵將返回到Visual C++開發環境,這就是C++程序的創建、編連和運行過程。

本書約定:在以后的C++程序運行結果中,本書不再完整顯示其控制臺窗口,也不再顯示“Press any key to continue”,僅將控制臺窗口中的運行結果列出。

1.1.3 C++代碼結構

從上面的程序可以看出,一個C++程序由編譯預處理指令、數據或數據結構定義和若干函數組成。在C++中,一個程序可以存放在一個或多個文件中,這樣的文件稱為源程序文件。為了與其它文件相區別,每一個C++源程序文件通常都以.cpp為擴展名。這里再以【例Ex_Simple1】的程序代碼來分析C++程序的組成和結構。

1.main函數

主函數:一個C語言程序可以包含若干函數,其中main表示主函數,由于每一個程序執行時都必須從main開始,而不管該函數在整個程序中的具體位置,因此每一個C++程序必須包含一個且只有一個main函數。

函數體:每一個函數都由函數頭和函數體組成。在main函數中,“int main()”稱為main函數的函數頭。函數頭下面用一對花括號“{”和“}”括起來的部分就是函數體。函數體中包括若干條語句,每一條語句都以分號“;”結束。

函數值:函數返回的值就是函數值,函數頭包括函數值類型和函數名。main函數名的前面有一個int,它表示main函數的類型是整型。函數值就是函數體中的return語句返回的值。上面程序中的main函數體包含“return 0”,所以main函數值是0。如果函數體描述的過程不需要返回函數值,函數就沒有值。此時,函數頭包括的函數值類型就是void。

2.預處理指令

#include iostream.h稱為預處理指令。iostream.h是C++編譯系統自帶的文件,稱為C++庫文件,它定義了標準輸入/輸出流的相關數據及其操作。由于程序用到了輸入/輸出流對象cin和cout,因而需要用#include將其合并到程序中。又由于它們總是被放置在源程序文件的起始處,所以這些文件被稱為頭文件(Header File)。C++編譯系統自帶了許多這樣的頭文件,每個頭文件都支持一組特定的“功能”,用于實現基本輸入/輸出、數值計算、字符串處理等方面的操作。

3.注釋

程序Ex_Simple中的“/*…*/”之間的內容(稱為塊注釋)或“//”開始一直到行尾的內容(稱為行注釋)是用來注釋的,是為了提高程序的可讀性,對編譯和運行并不起作用。正是因為這一點,所注釋的內容既可以用漢字來表示,也可以用英文來說明,只要便于理解就行。一般來說,注釋應在編程的過程中同時進行,不要指望程序編制完成后再補寫注釋。

4.縮進

縮進是指程序在書寫時不要將程序的每一行都由第一列開始,而且在適當的地方加進一些空格,也是為了提高程序的可讀性。通常,在書寫代碼時,每個花括號占一行,并與使用花括號的語句對齊。花括號內的語句采用縮進書寫格式,縮進量為4個字符(一個默認的制表符)。

主站蜘蛛池模板: 祁东县| 巩义市| 措美县| 云安县| 桦南县| 许昌县| 阿克陶县| 连江县| 巧家县| 娱乐| 会昌县| 安宁市| 江山市| 兴安县| 平顶山市| 张掖市| 平陆县| 沙河市| 鄂尔多斯市| 黑河市| 乡宁县| 永川市| 平凉市| 章丘市| 宁都县| 依安县| 周宁县| 大石桥市| 岢岚县| 堆龙德庆县| 鲁甸县| 开封县| 治县。| 吕梁市| 云南省| 长治市| 泾川县| 郑州市| 陆河县| 维西| 吉首市|