目錄
第1章 電腦、網際網路與全球資訊網簡介1.1 簡介1.2 何謂電腦?1.3 電腦的架構1.4 早期的電腦作業系統1.5 個人式、分散式及用戶端/伺服器的計算環境1.6 網際網路與全球資訊網1.7 機器語言、組合語言和高階語言1.8 C/C++的沿革1.9 C++標準函式庫(C++standardlibrary)1.10 典型的C++開發環境1.11 C++和C++HowtoProgram第五版注意事項1.12 實際體驗C++應用程式1.13 軟體工程案例研討:物件技術與統一塑模語言(UML)介紹(必讀)1.14 資源網站第2章 C++程式設計簡介2.1 簡介2.2 第一個C++程式:列印一行文字2.3 修改第一個C++程式2.4 另一個C++程式:整數加法2.5 記憶體觀念2.6 算術計算2.7 判斷:等號運算子和關係運算子2.8 探討ATM需求文件第3章 類別與物件簡介3.1 簡介3.2 類別、物件、成員函式與資料成員3.3本章範例概覽3.4定義一個含有成員函式的類別3.5定義一個具有參數的成員函式3.6資料成員、set函式與get函式3.7 以建構子將物件初始化3.8將類別放在獨立檔案以提高重複使用性3.9 將介面與實作分開3.10 以set函式驗證資料3.11(選讀)軟體工程案例研討:找出ATM需求文件中的類別第4章 控制敘述:第一部分4.1 簡介4.2 演算法4.3 虛擬碼4.4 控制結構4.5 if選擇敘述4.6 if…else雙重選擇敘述4.7 while重複敘述4.8 規劃演算法:計數控制重複4.9規劃演算法:警示控制重複4.10 規劃演算法:巢狀控制敘述4.11 賦值運算子4.12 遞增和遞減運算子4.13 (選讀)軟體工程案例研討:找出ATM系統中的類別屬性第5章 控制敘述:第二部份5.1 簡介5.2 計數控制重複的基本原理5.3 for重複敘述5.4 使用for敘述的範例5.5 do…while重複敘述5.6 switch多重選擇敘述5.7 break和continue敘述5.8 邏輯運算子5.9 等號運算子(==)和賦值運算子(=)的混淆5.10 結構化程式設計摘要5.11 (選讀)軟體工程案例研討:找出ATM系統中的物件狀態與活動第6章 函式與遞迴6.1 簡介6.2 C++程式元件6.3 數學函式庫函式6.4 定義多參數函式6.5函式原型及引數強制轉換6.6 C++標準函式庫標頭檔6.7 案例研究:亂數產生器6.8 案例研究:機率遊戲與enum6.9 儲存類別6.10 使用域解析原則6.11 函式呼叫堆疊與活動記錄6.12無參數函式6.13 行內函式6.14 參照與參照參數6.15 預設引數6.16 單元使用域解析運算子6.17 函式多載6.18 函式樣板6.19 遞迴6.20 遞迴範例:Fibonacci數列(FibonacciSeries)6.21 遞迴與循環6.22(選讀)軟體工程實例研究:判定ATM系統中的類別操作第7章 陣列與vector7.1 簡介7.2 陣列7.3 宣告陣列7.4 陣列使用範例7.5 把陣列傳給函式7.6 案例研究:類別GradeBook—用陣列儲存成績7.7 用線性搜尋法搜尋陣列7.8 用插入排序法為陣列排序7.9 多維陣列7.10 案例研究:使用二維陣列的類別GradeBook7.11 C++標準函式庫類別樣板vector簡介7.12 (選讀)軟體工程實例研究:ATM系統中的物件合作關係第8章 指標與指標字串8.1 簡介8.2 宣告及初始化指標變數8.3 指標運算子8.4 透過指標以傳址呼叫將引數傳入函式8.5 使用const指標8.6 使用傳址呼叫的選擇排序法8.7 sizeof運算子8.8 指標運算式及指標算術8.9 指標和陣列間的關係8.10 指標陣列8.11 案例研究:模擬牌與發牌8.12 函式指標8.13指標字串處理簡介8.13.1字元與指標字串基礎8.13.2 字串處理函式庫的字串操作函式第9章 類別:深入討論(上)9.1 簡介5029.2 案例研究:類別Time9.3 類別使用域及存取類別的成員9.4 區分介面與實作9.5 存取函式與工具函式9.6 類別Time案例研究:建構子與預設引數9.7 解構子9.8 建構子與解構子的呼叫時機9.9 類別Time案例研究:小心陷阱;傳回private資料成員的參照9.10 預設逐成員賦值9.11 軟體再利用性9.12 (選讀)軟體工程實例研究:開始撰寫ATM系統類別程式第10章 類別:深入討論(下)10.1 簡介10.2 const物件和const成員函式10.3 組合:將物件當作類別成員10.4 夥伴函式與類別10.5 使用this指標10.6 透過new和delete運算子動態配置記憶體10.7 static類別成員10.8 資料抽象化與資訊隱藏10.8.1 範例陣列抽象資料型別10.8.2 範例字串抽象資料型別10.8.3 範例佇列抽象資料型別10.9 容器類別與循環器10.10 代理類別第11章 運算子多載;字串和陣列物件11.1 簡介11.2 運算子多載的基本原理11.3 運算子多載的限制11.4 運算子函式作為類別成員與全域函式的對照11.5 對串流插入和串流擷取運算子的多載11.6 多載一元運算子11.7 多載二元運算子11.8 案例研究:Array類別11.9 不同型別之間的轉換11.10 案例研究:String類別11.11 多載++和--11.12 案例研究:日期類別11.13 標準函式庫的string類別11.14 explicit建構子第12章 物件導向程式設計:繼承12.1 簡介12.2 基本類別與衍生類別12.3 protected成員12.4 基本類別和衍生類別之間的關係12.4.1 建立並使用CommissionEmployee類別12.4.2 不使用繼承機制建立BasePlusCommissionEmployee類別12.4.3 建立CommissionEmployee-BasePlusCommissionEmployee繼承階層12.4.4 使用protected資料的CommissionEmployee-BasePlusCommissionEmployee繼承階層12.4.5 使用private資料的CommissionEmployee-BasePlusCommissionEmployee繼承階層12.5 衍生類別的建構子與解構子12.6 public、protected和private繼承12.7 使用繼承的軟體工程第13章 物件導向程式設計:多型13.1 簡介13.2 多型的範例13.3 繼承階層中的物件關係13.3.1 從衍生類別物件呼叫基本類別的函式13.3.2 以衍生類別的指標指向基本類別的物件13.3.3 透過基本類別指標來呼叫衍生類別的成員函式13.3.4 virtual函式13.3.5 基本類別與衍生類別物件和指標間合法的賦值整理13.4 Type欄位與switch敘述13.5 抽象類別和純粹virtual函式13.6 案例研究:利用多型建立的薪資系統13.6.1 產生抽象基本類別Employee13.6.2 產生具象衍生類別SalariedEmployee13.6.3 產生具象衍生類別HourlyEmployee13.6.4 產生具象衍生類別CommissionEmployee13.6.5 產生間接具象衍生類別BasePlusCommissionEmployee13.6.6 多型處理的範例13.7 (選讀)剖析多型,virtual函式和動態聯繫13.8 案例研究:使用多型和執行時期向下轉型所得的資訊(dynamic_cast、typeid和type_info)完成的薪資系統13.9 虛擬解構子13.10 (選讀)軟體工程實例研究:將繼承放入ATM系統中第14章 樣板14.1 簡介14.2 函式樣版14.3 將函式樣板多載14.4 類別樣板14.5 類別樣板的非型別參數和預設型別14.6 樣板與繼承注意事項14.7 樣板與夥伴注意事項14.8 樣板與static成員注意事項第15章 串流輸入/輸出15.1簡介15.2 串流15.2.1 典型串流與標準串流15.2.2 iostream函式庫標頭檔15.2.3 串流輸入/輸出類別和物件15.3 串流輸出15.3.1 輸出char*變數15.3.2 使用成員函式put輸出字元15.4串流輸入15.4.1 get與getline成員函式15.4.2 istream的成員函式peek、putback和ignore15.4.3 型別安全性I/O15.5 使用read、write和gcount的非格式化I/O15.6 串流操作子簡介15.6.1 整數串流進位法:dec、oct、hex和setbase15.6.2 浮點數的精準度(precision和setprecision)15.6.3 欄位寬度(width和setw)15.6.4 使用者自訂輸出串流操作子15.7 串流格式狀態和串流操作子15.7.1 補零和小數點(showpoint)15.7.2 對齊方式(left、right和internal)15.7.3 填補(fill、setfill)15.7.4 整數串流進位法(dec、oct、hex、showbase)15.7.5 浮點數、科學記號法和定點表示法(scientific、fixed)15.7.6 大寫/小寫控制(uppercase)15.7.7 指定Boolean格式(boolalpha)15.7.8 透過成員函式flags來設定和重設格式狀態15.8 串流錯誤狀態15.9 將輸出串流與輸入串流連結第16章 例外處理16.1 簡介16.2 例外處理概述16.3 範例:處理除零動作16.4 何時使用例外處理16.5 重新拋出例外16.6 例外規格16.7 處理非預期的例外16.8 堆疊展開16.9 建構子、解構子和例外處理16.10 例外和繼承16.11 處理new的錯誤16.12 auto_ptr類別和動態記憶體配置16.13 標準函式庫的例外階層16.14 其他的錯誤處理技術第17章 檔案處理17.1 簡介17.2 資料階層17.3 檔案與串流17.4 建立循序存取檔案17.5 從循序存取檔案讀取資料17.6 更新循序存取檔案17.7 隨機存取檔案17.8 建立隨機存取檔案17.9 將資料隨機寫入隨機存取檔案17.10 循序地從隨機存取檔案讀取17.11 案例研究:交易處理程式17.12 物件的輸入與輸出第18章 字串類別與字串串流處理18.1 簡介18.2 字串賦值與串接18.3 字串比較18.4 子字串18.5 字串交換18.6 字串特性18.7 在字串中搜尋字串和字元18.8 在字串裡置換字元18.9 插入字元到字串18.10 轉換成指標基礎的C風格字串char*Strings18.11 循環器18.12 字串串流處理第19章 網頁程式設計19.1 簡介19.2 HTTP要求類型19.3 多層架構19.4 存取網頁伺服器19.5 ApacheHTTP伺服器19.6 要求XHTML文件19.7 簡介CGI19.8 簡單的HTTP處理程序19.9 簡單的CGIScripts19.10 傳送輸入到CGIScript19.11 使用XHTML格式傳送輸入19.12 其他標頭檔19.13 案例研究:互動式網頁19.14 Cookie19.15 伺服端檔案19.16 案例研究:購物車19.17 網際網路與網站上的資源第20章 搜尋與排序20.1 簡介20.2 搜尋演算法20.2.1 線性搜尋的效率20.2.2 二分搜尋20.3 排序演算法20.3.1 選擇排序法的效率20.3.2 插入排序法的效率20.3.3 合併排序法(遞迴實作)第21章 資料結構21.1 簡介21.2 自我參照類別21.3 動態記憶體配置與資料結構21.4 鏈結串列21.5 堆疊21.6 佇列21.7 樹第22章 標準樣板函式庫22.1 簡介標準樣板函式庫22.1.1 簡介容器22.1.2 簡介循環器22.1.3 簡介演算法22.2 循序式容器22.2.1 vector循序式容器22.2.2 list循序式容器22.2.3 deque循序式容器22.3.1 multiset關聯式容器22.3.2 set關聯式容器22.3.3 multimap關聯式容器22.3.4 map關聯式容器22.4 容器配接器22.4.1 stack配接器22.4.2 queue配接器22.4.3 priority_queue配接器22.5 演算法22.5.1 fill、fill_n、generate和generate_n22.5.2 equal、mismatch和lexicographical_compare22.5.3 remove、remove_if、remove_copy和remove_copy_if22.5.4 replace、replace_if、replace_copy和replace_copy_if22.5.5 數學演算法22.5.6 基本搜尋和排序演算法22.5.7 swap、iter_swap和swap_ranges22.5.8 copy_backward、merge、unique和reverse22.5.9 inplace_merge、unique_copy和reverse_copy22.5.10 集合操作22.5.11 lower_bound、upper_bound和equal_range22.5.12 堆積排序法22.5.13 win和max22.5.14 本章未討論的STL演算法22.6 類別bitset22.7 函式物件22.8 STL的網際網路和全球資訊網資源第23章 其它主題23.1簡介23.2 const_cast運算子23.3命名空間23.4運算子關鍵字23.5可變類別成員23.6 指向類別成員的指標(.*和->*)23.7 多重繼承23.8 多重繼承和virtual基本類別23.9 書末評論中英對照
第1章 電腦、網際網路與全球資訊網簡介1.1 簡介1.2 何謂電腦?1.3 電腦的架構1.4 早期的電腦作業系統1.5 個人式、分散式及用戶端/伺服器的計算環境1.6 網際網路與全球資訊網1.7 機器語言、組合語言和高階語言1.8 C/C++的沿革1.9 C++標準函式庫(C++standardlibrary)1.10 典型的C++開發環境1.11 C++和C++HowtoProgram第五版注意事項1.12 實際體驗C++應用程式1.13 軟體工程案例研討:物件技術與統一塑模語言(UML)介紹(必讀)1.14 資源網站第2章 C++程式設計簡介2.1 簡介2.2 第一個C++程式:列印一行文字2.3 修改第一個C++程...