C++範例教學手冊

Download Report

Transcript C++範例教學手冊

C++範例教學手冊
課程簡報大綱
領航數位科技 編著
第一章 認識 Visual C++





電腦簡介
Visual C++ 簡介
程式初瞥
Visual C++的程式架構
命名空間(Namespaces)
1-1 電腦簡介
電腦(Computer)是由許多不同功能的電子零件
及機械裝置所組成,因為它能執行算術運算,所
以也稱為 電子計算機(Electronic Computer),簡
稱 計算機。
電腦基本上包括 硬體(Hardware)與 軟體
(Software)兩大部分:硬體是一組可執行程式的實
體,軟體是可提供電腦指令的程式。
1-1-1 電腦硬體
腦硬體包括 中央處理單元、記憶體、資料儲存
媒體 及 輸出入設備。
1-1-2 資料的儲存格式
料儲存在記憶體是以電壓的高低來表示,因此
我們以0和1來對應電壓的高低,也就是說記憶體
靠著電流來保存一連串的0和1資料。
資料存在儲存媒體是則以磁性的正負來表示,
因此我們以0和1來對應磁性的正負,也就是說儲
存媒體靠著磁性來保存一連串的0和1。
由於電腦只能處理0和1資料,也就是二進位數
系的資料,而我們習慣使用十進位數系的資料,
因此資料進出記憶體必須經過轉換。
1-1-3 電腦軟體
電腦軟體是提供電腦指令的程式,分系統軟體
與應用軟體兩大部分:
 系統軟體用來開發或執行其他的軟體,分
作業系統與轉換系統。
 應用軟體是為了解決特殊問題或提供特別
服務的程式,如上網的IE、繪圖的
AutoCAD等。
1-1-4 電腦程式
電腦軟體是由許多電腦程式(Computer
Program)所組成,電腦程式是供電腦執行的一系
列指令(Instructions)。撰寫電腦程式的工具叫程
式語言(Program Language),它使用一些特定的
字彙、語法來規範撰寫規則。電腦工程上有許多
種的程式語言,就好像世界上有許多國家語言一
樣。
一個程式是由許多的 敘述句(Statements)或稱
指令(Instructions)所組成。每一個句子必須遵循
一定的程式語法(Syntax)並提供一定的語意
(Semantics)。
1-1-5 電腦程式的開發
一個應用系統的開發一般是先做系統分析與系統設計,
系統設計以後定出各程式的規範,就可進行程式的開發。
程式的開發是先撰寫程式碼(Coding),再進行程式轉換與
測試,轉換有錯回頭修改程式碼,再重新轉換。測試有錯
也要回頭修改程式碼,再重新轉換與測試。
1-1-6 電腦程式的偵錯
在程式開發過程,從撰寫程式碼開始到程式完
全可用,會經歷許多錯誤,包括:
 轉換時錯誤(Compile-time errors) (又稱語
法錯誤Syntax errors):程式碼含有語法上
的錯誤,無法產生執行檔或機器碼。
 執行時錯誤(Run-time errors):執行檔或機
器碼執行時發生未控制的錯誤,錯誤訊息
由作業系統送出。
 邏輯錯誤(Logical errors):執行檔或機器碼
執行時產生非預期的結果。
1-2 Visual C++簡介
Visual C++ .NET的老祖宗叫C語言,C語言是
一種可以在MS-DOS下執行的程式語言,它的執
行能力介於高階語言與低階語言之間,它的檔案
小與速度快,僅次於組合語言。
後來的C++是由C所發展出來,除了增加許多
軟體公司提供的函式外,設計概念也增加了物件
導向的寫法,但是基本語法幾乎仍是一樣。
1-2-1 Visual C++.NET
微軟(Microsoft)公司為支援其視窗系統,將其
開發或併購的程式語言,加上開發視窗程式的功
能外,也將程式碼的編輯、編譯、偵錯與測試等
功能包裝成一個視覺化軟體開發套件SDK,取名
Visual XXX(在原程式名稱前冠上Visual),其中
Visual C++是微軟根據ANSI C/C++規格所研發的
微軟版C++。由於各Visual程式的環境都不盡相同,
因此1995年推出Visual Studio 4.0,整合了各
Visual程式的開發介面,並使各語言可以互相使用
彼此的資源。
1-2-2 Visual C++的運作方式
Visual C++程式語言兼具編譯與直譯的功能,
它的中介語言檔可以讓你的程式「寫一次,到處
可執行」,也就是說Visual C++程式有 跨平台
(Platform Independence)的功能,在任何裝有
Visual C++編譯程式的作業系統上編譯好的程式,
可以在任何裝有.NET Framework的作業系統上執
行。
1-2-2 Visual C#的運作方式
1-2-3 Visual C++ 的作業平台
Visual C++作業平台.NET Framework包含 類
別庫(FCL, Framework Class Library),以及 共同
語言執行環境(CLR, Common Language
Runtime)。
1-3 程式初瞥
學習程式撰寫不是研究電腦理論,而是熟悉程
式語法的使用,程式語法有許多,不論簡單或複
雜的語法,都必須置於一定的架構下。開始時我
們先用最簡單的程式敘述句介紹Visual C++ 程式
的架構。
1-3-1 SDK 的安裝
1.
2.
3.
4.
5.
6.
執行vcsetup安裝程式,出現Visual Studio 2008
Express Edition安裝程式歡迎畫面,按下 下一步 按
鈕。
出現授權確認畫面,勾選接受合約後,按下 下一步
按鈕。
出現安裝選項畫面,勾選安裝選擇性產品(可不勾選)
後,按下 下一步 按鈕。
出現安裝資料夾畫面,鍵入安裝的資料夾後,按下 安
裝 按鈕。
出現下載及安裝進行畫面。
安裝完成後出現安裝完成畫面,按下 結束 按鈕,完
成Visual Studio 2008 Express SDK的安裝。
1-3-2 IDE 介面說明
安裝完成後首次啟動Visual Studio 2008
Express Edition程式,出現IDE整合工作視窗:
第一次出現的整合工作視窗除了標準配置外,
還包括三個小視窗:方案總管、起始頁 及 程式碼
定義視窗。
1-3-2 IDE 介面說明
1-3-3 HelloWorld實例
製作原始檔
在功能列上點選 檔案>新增>專案,出現 新增
專案 視窗後,點選 Win32專案類型以及 Win32主
控台應用程式 的安裝範本,並輸入專案名稱及路
徑,然後按下 開啟 按鈕。
 將程式碼存檔
點選 檔案>全部儲存 存回所有的變動,如果是
使用WordPad,於檔名欄輸入「"HelloWorld.cpp"」
(檔名前後要有雙引號),檔案格式要選純文字檔
(Text Document)。

1-3-3 HelloWorld實例


將原始檔轉換成中介語言MSIL檔
 在Visual C++ IDE視窗功能列選擇 建置>建置方案
(快速鍵 F7)。
 如果是使用WordPad編輯,就必須進入 命令提示
字元 視窗執行 cl 編譯程式
執行編譯好的MSIL檔
 在Visual C++ IDE 視窗功能列選擇 偵錯>啟動但
不偵錯 後即自動執行。
 如果是使用WordPad編輯,就必須進入 命令提示
字元 視窗輸入 「HelloWorld」。執行結果會在 命
令提示字元 視窗顯示「Hello World!」。
1-4 Visual C++ 的程式架構
任何程式都有它一定的架構,撰寫 Visual C++
程式就要在 Visual C++程式的架構下,佈置各種
程式指令。
1-4-1 程式模版 (Template)
每種程式語言都有自己的架構, Visual C++程
式的架構模式如下:
1-4-2 程式註解
註解說明在任何程式語言都是必要的項目,因
為程式並不是只給電腦(轉換程式)或設計人員看的,
其他的相關人員也需要看得懂,所以為了方便閱
讀,必須要在程式適當的地方加上說明文字。
有二種方法用來標示備註說明:
 單行註解:在每一行說明前加上「 // 」符
號。
 多行註解:在所有說明前加上「 /* 」符號,
說明後加上「 */ 」符號。
1-4-3 函式標頭檔 (Head File)
如果程式用到系統函式或自訂的外部函式,就要指
定所使用函式的標頭檔,語法是以#include關鍵字來
定義。例如在程式中使用到資料輸出的函式printf,由
於printf函式存在iostream的標頭檔中,所以在程式前
面定義引用iostream標頭檔。
標頭檔以「.h」為副檔名(extension file name)。
include為引用的關鍵字,「#」號表示該行指令只供
編譯器參考(Compile directory)。語法是:
1-4-4 程式標頭 (Header)
每個Visual C++程式可以包含許多函式,但其
中只有一個叫做main的主函式,它是系統進入程
式的 切入點(Entry point),程式的執行是由此開始,
可以稱為 程式標頭,在標頭後面的一對大括弧內
放有程式說明及程式指令(statement)的定義。
1-4-5 函式使用(Method Call)
函式 的使用是程式指令的一種,「Hello World」
程式用到iostream內的printf函式,它可以將指定
的字串顯示在螢幕上。iostream是Visual C++
FCL標頭檔之一,提供與資料輸出入有關的支援,
例如將字串顯示在螢幕上。
1-5 命名空間 (Namespaces)
每個程式都難免用到視為「黑箱」的系統函式
或自定函式,在程式編譯時必須知道「黑箱」的
內容,命名空間 就是用來指示編譯器函式內容的
所在位置。
1-5-1 何謂命名空間
C++ 在處理模組程式也是一樣:System是一個
大分類,Console是System下的小分類,Write()
和WriteLine()是裡面的模組程式。我們在使用
Write()函式時要加上完整的搜尋路徑,讓編譯程
式能夠找到Write()模組程式之所在,例如:
上述的搜尋路徑在C++ 稱為 命名空間
(Namespaces)。
1-5-2 命名空間的使用
在命名空間裡有許多不同功能的物件供許多程
式共同使用,如果要引用命名空間裡的物件,必
須使用物件的全名(即命名空間名稱加上物件名稱)。
例如:
1-5-3 如何自訂命名空間
在類別的原始碼最前面加一行 namespace
namespacename;,namespace 是保留字,
namespacename 是命名空間名稱,是層狀目錄,各
層目錄名稱之間以兩個冒號(::)隔開。例如: