C++ 開發手冊 : 基礎·案例·應用

C++ 開發手冊 : 基礎·案例·應用

作者: 明日科技
出版社: 化學工業
出版在: 2022-03-01
ISBN-13: 9787122405548
ISBN-10: 7122405540
裝訂格式: 平裝
總頁數: 384 頁





內容描述


《C++開發手冊:基礎·案例·應用》是“計算機科學與技術手冊系列”圖書之一,該系列圖書內容全面,
以理論聯繫實際、能學到並做到為宗旨,以技術為核心,以案例為輔助,讀者全面學習基礎技術、
代碼編寫方法和具體應用項目,旨在為想入相應領域或者已經在該領域深耕多年的技術人員提供新而全的技術性內容及案例。
本書全面講解C++開發技術,分為3篇,分別是:基礎篇、案例篇、應用篇,
共29章,內容由淺入深,循序,使讀者在打好基礎的同時逐步提升。
本書內含了C++的基礎知識,並以12個典型案例解讀了在開發工作中常見的問題,代碼豐富,
步驟詳細,同時本書還配備了兩個大型應用項目,使讀者能夠同步做出產品,達到學到並且做到的目的。
本書適合C++編程自學者、C++程序開發人員和測試人員閱讀參考,
同時也可供大中專院校計算機相關專業師生使用。


目錄大綱


1篇 基礎篇 
1章 C++概述 
1.1 C++問世 3 
1.1.1 C++的發展歷程 3 
1.1.2 開發C++的代表人物 3 
1.2 C++特點 4 
1.3 C++開發環境 5 
1.3.1 下載Visual Studio 2019 5 
1.3.2 安裝Visual Studio 2019 5 
1.3.3 編寫一個C++程序 7 
1.3.4 編譯C++程序 9 
1.3.5 運行C++程序 9 
1.3.6 改終端顏色 10 
1.4 C++工程項目文件 10 
2章 剖析一個C++程序 
2.1 一個C++程序 13 
2.1.1 C++程序詳細代碼 13 
2.1.2 C++程序的基本組成 13 
2.2 C++結構的詳解 13 
2.2.1 預處理命令 13 
2.2.2 main函數(主函數) 14 
2.2.3 函數體 14 
2.2.4 函數返回值 14 
2.2.5 註釋 14 
2.3 C++程序的基本元素 15 
2.3.1 標識符 15 
2.3.2 關鍵字 16 
2.3.3 常量 16 
2.3.4 變量 17 
2.4 C++代碼編寫規範 17 
2.4.1 代碼寫規範的好處 18 
2.4.2 如何將代碼寫規範 18 
2.5 綜合案例——打印《三十六計》內容 18 
2.6 實戰練習 19 
3章 基本數據類型 
3.1 基本數據類型概述 21 
3.2 整型數據 21 
3.2.1 整型常量 21 
3.2.2 整型變量 21 
3.3 浮點型數據 23 
3.3.1 浮點型常量 23 
3.3.2 浮點型變量 23 
3.4 字符型數據 24 
3.4.1 字符常量 24 
【實例3.1】 輸出字符'A' 25 
3.4.2 字符串常量 25 
3.4.3 字符變量 26 
【實例3.2】字符型和整型之間的秘密 26 
【實例3.3】字符型數據進行算術運算 26 
3.5 布爾類型數據 27 
3.6 算術運算符 27 
3.7 輸入與輸出數據 28 
3.7.1 通過printf格式輸出數據 28 
【實例3.4】使用格式輸出函數printf 29 
【實例3.5】在printf函數中使用附加符號 30 
3.7.2 利用scanf格式輸入數據 31 
【實例3.6】輸入數據 31 
3.7.3 標準I/O流 33 
3.8 綜合案例——計算貸款支付額 34 
3.9 實戰練習 35 
4章 條件判斷語句 
4.1 什麼是條件判斷 37 
4.2 條件判斷語句 37 
4.2.1 單條if語句 37 
【實例4.1】奇偶性判斷 37 
4.2.2 關係運算符與邏輯運算符 38 
4.2.3 if…else語句 39 
【實例4.2】成績是否優秀 40 
4.2.4 else if語句 41 
【實例4.3】根據成績劃分等級 41 
4.3 使用條件運算符進行判斷 42 
【實例4.4】3和5的整倍數 42 
4.4 switch判斷語句 43 
【實例4.5】成績評級 43 
4.5 條件判斷語句的嵌套 44 
【實例4.6】判斷是否是閏年 45 
4.6 綜合案例——計算增加後的工資 46 
4.7 實戰練習 46 
5章 循環控制語句 
5.1 什麼是循環 48 
5.2 while循環 48 
【實例5.1】使用while循環計算從1到10的累加 48 
5.3 do…while循環 49 
【實例5.2】使用do…while循環計算1到10的累加 49 
5.4 while和do…while比較 50 
【實例5.3】使用do…while實現自增運算 50 
【實例5.4】使用while實現自增運算 51 
5.5 for循環 51 
【實例5.5】用for循環計算從1到10的累加 52 
5.6 循環控制 53 
5.6.1 break語句 53 
【實例5.6】計算輸入的10個整數之和 53 
5.6.2 continue語句 54 
【實例5.7】使用continue計算和 54 
5.7 循環嵌套 54 
【實例5.8】按階梯形輸出九九乘法表 55 
5.8 綜合案例——阿姆斯壯數 55 
5.9 實戰練習 56 
6章 封裝函數使程序模塊化 
6.1 函數概述 58 
6.1.1 定義函數 58 
6.1.2 聲明和使用函數 58 
【實例6.1】函數的應用 58 
6.2 函數的參數 59 
6.2.1 形參與實參 59 
6.2.2 設置缺省值 59 
【實例6.2】默認參數比大小 59 
6.3 從函數中返回 60 
6.3.1 函數返回值 60 
6.3.2 了解空函數 61 
6.4 遞歸調用函數 61 
【實例6.3】求n的階乘 61 
6.5 重載函數的使用 62 
【實例6.4】重載函數的應用 62 
6.6 生存週期與作用域 63 
6.6.1 變量的作用域 63 
【實例6.5】變量的作用域 63 
6.6.2 變量的生存週期 64 
6.6.3 變量的存儲方式 64 
【實例6.6】輸出不同生命期的變量值 65 
【實例6.7】使用static變量實現累加 66 
6.7 名稱空間 67 
6.8 綜合案例——提款機的記錄 68 
6.9 實戰練習 69 
7章 使用數組獲取連續空間 
7.1 一維數組 71 
7.1.1 聲明一維數組 71 
7.1.2 一維數組的元素 71 
7.1.3 初始化一維數組 71 
【實例7.1】一維數組賦值 72 
7.2 二維數組 72 
7.2.1 聲明二維數組 72 
7.2.2 引用二維數組元素 73 
7.2.3 初始化二維數組 73 
【實例7.2】將二維數組行列對換 74 
7.3 字符數組 75 
7.3.1 聲明一個字符串數組 75 
7.3.2 字符串數組賦值 75 
7.3.3 字符數組的一些說明 75 
7.3.4 越界引用 76 
【實例7.3】字符串中的非法字符 76 
【實例7.4】輸出字符數組中內容 77 
7.3.5 字符串處理函數 77 
【實例7.5】字符串連接函數strcat 78 
【實例7.6】字符串拷貝函數strcpy 79 
【實例7.7】字符串比較函數strcmp 80 
7.4 字符串類型 80 
7.4.1 使用本地字符串類型string 80 
【實例7.8】修改指定字符 81 
7.4.2 連接string字符串 81 
【實例7.9】字符串連接 81 
7.4.3 比較string字符串 82 
【實例7.10】比較兩個string字符串的大小 82 
7.4.4 定義string類型數組 82 
【實例7.11】string類型的數組 82 
7.5 綜合案例——名字排序 83 
7.6 實戰練習 84 
8章 C++指針 
8.1 指針概述 86 
8.1.1 保存變量地址 86 
【實例8.1】輸出變量的地址值 87 
8.1.2 指針的運算 89 
【實例8.2】輸出int指針運算後地址值 89 
8.1.3 指向空的指針與空類型指針 89 
【實例8.3】空類型指針的使用 90 
8.1.4 指向常量的指針與指針常量 90 
【實例8.4】指針與const 91 
8.2 指針在函數中的應用 91 
8.2.1 傳遞地址 91 
【實例8.5】調用自定義函數交換兩個變量值 91 
8.2.2 指向函數入口地址 92 
8.2.3 空指針調用函數 93 
【實例8.6】使用空類型指針執行函數 93 
8.2.4 從函數中返回指針 94 
【實例8.7】指針做返回值 94 
8.3 指針與數組 94 
8.3.1 存儲數組元素 94 
8.3.2 保存一維數組首地址 95 
【實例8.8】通過指針變量獲取數組中元素 95 
8.3.3 保存二維數組首地址 96 
【實例8.9】使用指針變量遍歷二維數組 97 
【實例8.10】指針與二維數組 98 
8.3.4 指針與字符數組 98 
【實例8.11】連接兩個字符串 99 
8.4 安全使用指針 99 
8.4.1 內存分配 99 
【實例8.12】動態分配空間 99 
8.4.2 內存安全 100 
8.5 綜合案例——你輸入我尋找 100 
8.6 實戰練習 101 
9章 引用 
9.1 什麼是引用 103 
9.1.1 引用的概念 103 
【實例9.1】輸出引用 103 
9.1.2 右值引用 104 
【實例9.2】右值引用的定義 104 
9.2 引用在函數中的應用 105 
9.2.1 引用作為函數的形參 105 
【實例9.3】通過引用交換數值 105 
9.2.2 指針與引用 106 
【實例9.4】指針的引用作參數 106 
9.2.3 右值引用傳遞參數 107 
【實例9.5】右值引用傳遞參數 107 
9.3 綜合案例——排序 108 
9.4 實戰練習 109 
10章 構造數據類型 
10.1 結構體 111 
10.1.1 結構體定義 111 
10.1.2 結構體變量 111 
10.1.3 結構體成員及初始化 112 
【實例10.1】展示老師的基本信息 112 
【實例10.2】輸出新來學生信息 113 
10.1.4 結構體的嵌套 114 
【實例10.3】展示房間位置 114 
10.1.5 結構體大小 115 
10.2 重命名數據類型 116 
10.3 結構體與函數 116 
10.3.1 結構體變量做函數參數 116 
【實例10.4】小貓信息 116 
10.3.2 結構體指針做函數參數 117 
【實例10.5】登記新員工信息 117 
10.4 結構體數組 118 
10.4.1 結構體數組聲明與引用 118 
10.4.2 指針訪問結構體數組 119 
【實例10.6】顯示銷售前5名的產品 119 
10.5 共用體 119 
10.5.1 共用體的定義與聲明 119 
10.5.2 共用體的大小 120 
【實例10.7】選擇一種交通工具回家 121 
10.5.3 共用體的特點 121 
10.6 枚舉類型 122 
10.6.1 枚舉類型的聲明 122 
10.6.2 枚舉類型變量 122 
【實例10.8】選擇喜歡的顏色 123 
10.7 使用宏定義替換複雜的數據 124 
【實例10.9】求兩個數的乘積 125 
10.8 綜合案例——選票系統 126 
10.9 實戰練習 128 
11章 面向對象編程 
11.1 面向對象的編程思想 130 
11.1.1 面向對象 130 
11.1.2 面向對象編程的特點 130 
11.2 類與對象 131 
11.2.1 聲明與定義類 131 
11.2.2 在源文件中包含頭文件 132 
11.2.3 實現一個類 132 
11.2.4 實例化一個對象 135 
11.2.5 訪問類成員 135 
【實例11.1】通過實例化的對象訪問類成員 136 
11.3 類的構造與析構 137 
11.3.1 構造函數概述 137 
11.3.2 利用構造函數初始化成員變量 137 
11.3.3 析構一個類 138 
【實例11.2】析構函數的調用 138 
11.4 定義靜態成員 139 
11.5 通過指針作對象 140 
【實例11.3】函數指針調用類成員 140 
11.6 隱含的this指針 141 
【實例11.4】同一個類的不同對像數據 141 
11.7 聲明const對象 142 
【實例11.5】標準尺寸 142 
11.8 申請對像數組 144 
【實例11.6】批量化生產 144 
11.9 C++中的友元 146 
11.9.1 友元機制 146 
11.9.2 定義友元類 147 
11.10 重載運算符 148 
11.10.1 重載算術運算符 148 
【實例11.7】重載加號運算符 148 
11.10.2 重載比較運算符 149 
【實例11.8】重載比較運算符 149 
11.11 綜合案例——銷毀電話卡 150 
11.12 實戰練習 151 
12章 繼承、派生、多態 
12.1 類的繼承 153 
12.1.1 定義派生類 153 
【實例12.1】以共有方式繼承 153 
12.1.2 訪問類成員 154 
12.1.3 類的派生方式 155 
12.1.4 父類和子類的構造順序 157 
【實例12.2】構造函數訪問順序 157 
12.1.5 子類顯式調用父類構造函數 158 
【實例12.3】子類顯式調用父類的構造函數 158 
12.1.6 嵌套定義多個類 159 
12.2 多重繼承 160 
12.2.1 聲明多重繼承的派生類 161 
【實例12.4】派生類的多重繼承 161 
12.2.2 注意避免二義性 162 
12.2.3 多重繼承的構造順序 162 
【實例12.5】多重繼承的構造順序 162 
12.3 C++的多態性 163 
12.3.1 虛函數概述 164 
12.3.2 動態綁定 164 
【實例12.6】輸出作員姓名 164 
12.3.3 虛繼承機制 165 
【實例12.7】虛繼承 165 
12.4 抽像類介紹 166 
12.4.1 創建純虛函數 167 
【實例12.8】計算圓形、矩形面積 167 
12.4.2 實現抽像類中的成員函數 168 
【實例12.9】輸出作員和系統管理員姓名 168 
12.5 異常處理 169 
12.5.1 拋出異常 169 
12.5.2 捕獲異常 170 
12.5.3 異常匹配 171 
12.5.4 標準異常 171 
12.6 綜合案例——等邊多邊形 172 
12.7 實戰練習 173 
13章 C++模板使用 
13.1 函數模板 175 
13.1.1 定義函數模板 175 
13.1.2 使用函數模板 176 
13.1.3 重載函數模板 176 
【實例13.1】求出字符串的小值 177 
13.2 類模板 177 
13.2.1 定義類模板 177 
13.2.2 執行時指定參數 179 
【實例13.2】簡單類模板 179 
13.2.3 設置默認模板參數 180 
【實例13.3】默認模板參數 180 
13.2.4 為具體類型的參數提供默認值 180 
【實例13.4】為具體類型的參數提供默認值 180 
13.2.5 越界檢測 181 
13.3 模板的使用方法 181 
13.3.1 定制類模板 182 
【實例13.5】定制類模板 182 
13.3.2 定制類模板成員函數 183 
【實例13.6】定制類模板成員函數 183 
13.4 鍊錶類模板 184 
13.4.1 建立單向鍊錶 184 
【實例13.7】簡單鍊錶的實現 184 
13.4.2 鍊錶類模板的使用 186 
【實例13.8】使用CList類模板 186 
13.4.3 類模板的靜態數據成員 188 
【實例13.9】在類模板中使用靜態數據成員 188 
13.5 綜合案例——不同類型數組管理 189 
13.6 實戰練習 190 
14章 標準模板庫STL 
14.1 序列容器 192 
14.1.1 對比容器適配器與容器 192 
14.1.2 對比迭代器與容器 192 
14.1.3 向量類模板 193 
【實例14.1】vector類模板的使用 194 
14.1.4 雙端隊列類模板 196 
【實例14.2】雙端隊列類模板應用 197 
14.1.5 鍊錶類模板 198 
【實例14.3】從小到大排序 199 
14.2 結合容器 200 
14.2.1 set類模板 200 
【實例14.4】set集合應用 201 
14.2.2 multiset類模板 201 
【實例14.5】在集合中查找元素 203 
14.2.3 map類模板 203 
【實例14.6】使用下標插入新元素 204 
14.2.4 multimap類模板 205 
【實例14.7】插入新元素 205 
14.3 算法 206 
14.3.1 非修正序列算法 206 
14.3.2 修正序列算法 206 
14.3.3 排序算法 207 
14.3.4 數值算法 208 
14.4 迭代器 209 
14.4.1 輸出迭代器 209 
【實例14.8】輸出迭代器 209 
14.4.2 輸入迭代器 210 
【實例14.9】輸入迭代器 210 
14.4.3 前向迭代器 210 
【實例14.10】前向迭代器 210 
14.4.4 雙向迭代器 211 
【實例14.11】雙向迭代器 211 
14.4.5 隨機訪問迭代器 212 
【實例14.12】隨機訪問迭代器 212 
14.5 lambda表達式 212 
【實例14.13】lambda表達式的使用 212 
14.6 綜合案例——存儲學生信息 213 
14.7 實戰練習 214 
15章 利用文件處理數據 
15.1 流簡介 216 
15.1.1 C++中的流類庫 216 
15.1.2 類庫的使用 216 
15.1.3 ios類中的枚舉常量 216 
15.1.4 流的輸入/輸出 217 
【實例15.1】字符相加並輸出 217 
15.2 文件打開 217 
15.2.1 打開方式 217 
15.2.2 打開文件同時創建文件 219 
【實例15.2】創建文件 219 
15.3 文件的讀寫 219 
15.3.1 文件流 219 
【實例15.3】讀寫文件 220 
15.3.2 寫文本文件 221 
【實例15.4】向文本文件寫入數據 221 
15.3.3 讀取文本文件 222 
【實例15.5】讀取文本文件內容 222 
15.3.4 二進製文件的讀寫 222 
【實例15.6】使用read讀取文件 223 
15.3.5 實現文件複製 223 
15.4 文件指針移動作 224 
15.4.1 文件錯誤與狀態 224 
15.4.2 文件的追加 225 
15.4.3 文件結尾的判斷 225 
【實例15.7】判斷文件結尾 226 
15.4.4 在指定位置讀寫文件 226 
15.5 文件和流的關聯和分離 227 
15.6 刪除文件 228 
15.7 綜合案例——保存車信息 229 
15.8 實戰練習 230 
2篇 案例篇 
16章 銀行自動提款機——條件語句+循環語句實現 
16.1 案例效果預覽 232 
16.2 案例準備 233 
16.3 業務流程 233 
16.4 實現過程 234 
16.4.1 用Visual Studio 2019創建新項目 234 
16.4.2 設計選擇界面 235 
16.4.3 選擇數字1 236 
16.4.4 選擇數字2 236 
16.4.5 選擇數字3 237 
17章 猜數字遊戲——自定義函數+for+條件語句+隨機函數實現 
17.1 案例效果預覽 239 
17.2 案例準備 240 
17.3 業務流程 240 
17.4 實現過程 241 
17.4.1 用Visual Studio 2019創建新項目 241 
17.4.2 設計思路 242 
17.4.3 文件引用 242 
17.4.4 實現猜數字 242 
17.4.5 光標定位 243 
17.4.6 主函數 243 
18章 燒杯平衡水——指針+自定義函數實現 
18.1 案例效果預覽 245 
18.2 案例準備 246 
18.3 業務流程 246 
18.4 實現過程 247 
18.4.1 用Visual Studio 2019創建新項目 247 
18.4.2 文件引用 247 
18.4.3 設計平衡水量的函數 247 
18.4.4 設計輸入燒杯水量 248 
18.4.5 比較燒杯的水量情況 248 
19章 挑選硬盤 ——類+條件語句+for循環實現 
19.1 案例效果預覽 250 
19.2 案例準備 251 
19.3 業務流程 251 
19.4 實現過程 251 
19.4.1 用Visual Studio 2019創建新項目 251 
19.4.2 文件引用 252 
19.4.3 設計硬盤類 252 
19.4.4 比較 252 
19.4.5 程序入口函數 253 
20章 有事請留言——自定義頭文件+類實現 
20.1 案例效果預覽 255 
20.2 案例準備 255 
20.3 業務流程 256 
20.4 實現過程 256 
20.4.1 用Visual Studio 2019創建新項目 256 
20.4.2 設計用戶信息頭文件 257 
20.4.3 設計用戶源文件 257 
20.4.4 設計留言信息 257 
21章 撲克牌牌面比較——枚舉類型+類+重載實現 
21.1 案例效果預覽 259 
21.2 案例準備 259 
21.3 業務流程 260 
21.4 實現過程 260 
21.4.1 用Visual Studio 2019創建新項目 260 
21.4.2 文件引用 261 
21.4.3 定義撲克牌牌面 261 
21.4.4 定義牌面比較類 261 
21.4.5 程序入口函數 262 
22章 情侶戀愛紀念日——算術運算符+自定義函數+時間函數實現 
22.1 案例效果預覽 263 
22.2 案例準備 264 
22.3 業務流程 264 
22.4 實現過程 264 
22.4.1 用Visual Studio 2019創建新項目 264 
22.4.2 文件引用 265 
22.4.3 設計計算天數函數 265 
22.4.4 獲取當前時間 266 
22.4.5 輸出戀愛天數 266 
23章 心跳的過程——數學函數+ Windows API+ TCHAR實現 
23.1 案例效果預覽 268 
23.2 案例準備 269 
23.3 業務流程 269 
23.4 實現過程 269 
23.4.1 用Visual Studio 2019創建新項目 269 
23.4.2 文件引用 269 
23.4.3 設計心字符的位置 270 
23.4.4 設計心的高度 270 
23.4.5 設計跳動的心 270 
24章 讀心術——條件判斷+輸入輸出實現 
24.1 案例效果預覽 272 
24.2 案例準備 273 
24.3 業務流程 273 
24.4 實現過程 273 
24.4.1 用Visual Studio 2019創建新項目 273 
24.4.2 文件引用 274 
24.4.3 設置5次數字排列 274 
24.4.4 輸出結果 276 
25章 搞怪自戀小程序——Windows函數+條件判斷嵌套實現 
25.1 案例效果預覽 278 
25.2 案例準備 279 
25.3 業務流程 279 
25.4 實現過程 280 
25.4.1 用Visual Studio 2019創建新項目 280 
25.4.2 文件引用 281 
25.4.3 準備界面 281 
25.4.4 初始化控制台 281 
25.4.5 一次選擇 282 
25.4.6 二次選擇 282 
26章 打地鼠小遊戲——全局變量+ delete+指針實現 
26.1 案例效果預覽 285 
26.2 案例準備 287 
26.3 業務流程 287 
26.4 實現過程 287 
26.4.1 用Visual Studio 2019創建新項目 287 
26.4.2 文件引用 288 
26.4.3 全局變量以及函數聲明 288 
26.4.4 武器店設計 288 
26.4.5 藥店設計 290 
26.4.6 打小地鼠情況 291 
26.4.7 打大地鼠情況 292 
26.4.8 程序入口函數 294 
27章 快樂吃豆子——類+win32繪圖+鍵盤消息處理實現 
27.1 案例效果預覽 296 
27.2 案例準備 297 
27.3 業務流程 297 
27.4 實現過程 298 
27.4.1 用Visual Studio 2019創建窗口程序 298 
27.4.2 碰撞檢測的實現 300 
27.4.3 地圖類的設計 302 
27.4.4 數據更新 304 
27.4.5 繪圖 306 
27.4.6 窗口設計 307 
3篇 應用篇 
28章 坦克動盪遊戲 
28.1 系統需求分析 316 
28.1.1 系統概述 316 
28.1.2 系統可行性分析 316 
28.1.3 功能性需求分析 316 
28.2 系統功能設計 316 
28.2.1 系統功能結構 316 
28.2.2 系統業務流程 317




相關書籍

Problem Solving, Abstraction, and Design using C++, 6/e (IE-Paperback)

作者 Frank L. Friedman Elliot B. Koffman

2022-03-01

Software Application Development: A Visual C++, MFC, and STL Tutorial (Paperback)

作者 Bud Fox Ph.D. Zhang Wenzu Ph.D. Tan May Ling M.Sc.

2022-03-01

Global Navigation Satellite Systems, Inertial Navigation, and Integration 4/e

作者 Grewal Mohinder S. Andrews Angus P. Bartone Chris G.

2022-03-01