C++程式設計——思想與方法慕課版(第3版)

C++程式設計——思想與方法慕課版(第3版)

《C++程式設計——思想與方法慕課版(第3版)》是2019年9月人民郵電出版社出版的圖書,作者是翁惠玉、俞勇。

基本介紹

  • 書名:C++程式設計——思想與方法慕課版(第3版)
  • 作者:翁惠玉
    俞勇
  • ISBN:9787115429353
  • 定價:49.8元
  • 出版社:人民郵電出版社
  • 出版時間:2019年9月
  • 裝幀:平裝
  • 開本:16開
內容簡介,圖書目錄,

內容簡介

本書主要內容包括:程式的基本組成,分支程式設計,循環程式設計,批量數據處理——數組,過程封裝——函式,間接訪問——指針,數據封裝墓膠講——結構體,模組化開發,創建新的類型,運算符重載,組合與繼承,泛型機制——模板,輸入輸出與檔案,異常處理,容器與疊代器。

圖書目錄

第 1章 緒論 1
1.1 程式設計概述 1
1.2 計算機估欠組成 1
1.2.1 計算機硬體 2
1.2.2 計算機軟體 3
1.3 程式設計語言 3
1.3.1 機器語言 3
1.3.2 彙編語言 4
1.3.3 語言 4
1.3.4 C++語言 5
1.4 程式設計過頁艱抹程 5
1.4.1 算法設計 5
1.4.2 編碼 8
1.4.3 編譯和連結 8
1.4.4 調試與維護 8
1.5 小結 9
1.6 習題 9
第翻嬸狼 2章 程式的基本組成 11
2.1 程式的基本結構 11
2.1.1 注釋 12
2.1.2 預編譯 12
2.1.3 名字空間 13
2.1.4 主程式 13
2.2 常量與變數 14
2.2.1 變數定義 14
2.2.2 數據類型 16
2.2.3 常量與符號常量 21
*2.2.4 C++11的擴展 24
2.3 數據的輸入/輸出 25
2.3.1 數據的輸入 25
2.3.2 數據的輸出 26
2.4 算術運算 27
2.4.1 算術漿榜幾樂表達式 27
2.4.2 各種類型的數值間的混合運算 27
2.4.3 強制類型轉換 27
2.4.4 數學函式館 28
*2.4.5 C++11的擴展 29
2.5 賦值運算 29
2.5.1 賦值表達式 29
2.5.2 賦值的嵌套 30
2.5.3 複合賦值運算 31
2.5.4 自增和自減運算符 32
2.6 程式規範及常見錯誤 33
2.7 小結 34
2.8 習題 34
第3章 分支程式設計 37
3.1 關係表達式 37
3.2 邏輯表達式 38
3.3 if語句 39
3.3.1 if語句的格式 39
3.3.2 if語句的嵌套 43
3.3.3 條件表達式 44
3.4 switch語句及其套用 46
3.5 編程規範及常見錯誤 52
3.6 小結 52
3.7 習題 53
第4章 循環程式設計 56
4.1 計數循環 56
4.1.1 for語句 56
4.1.2 for語句的進一步討論 61
4.1.3 for循環的嵌套 61
*4.1.4 C++11的擴展 62
4.2 break和continue語句 62
4.3 基於哨兵的循環 64
4.3.1 while語句 64
4.3.2 do-while語句 68
4.4 循環的中途退出 69
*4.5 枚舉法 70
*4.6 貪婪法 73
4.7 編程規範及常見錯誤 75
4.8 小結 75
4.9 習題 75
第5章 批量數據處理——數組 79
5.1 一維數組 79
5.1.1 一說歡歸維數組的定義 79
5.1.2 一維數組元素的引用 80
5.1.3 一維數組的記憶體映像 81
5.1.4 一維數組的套用 81
*5.1.5 C++11的擴展 83
5.2 查找 84
5.2.1 順序查找 84
5.2.2 二分查找 85
5.3 排序 87
5.3.1 直接選擇排序法 87
5.3.2 冒泡排序法 89
5.4 二維數組 90
5.4.1 二維數組的定義 91
5.4.2 二維數組元素的引用 91
5.4.3 二維數組的記憶體映像 92
5.4.4 二維數組的套用 92
5.5 字元串 96
5.5.1 字元串的存儲及初始化 96
5.5.2 字元串的輸入/輸出 97
5.5.3 字元串處理函式 97
5.5.4 字元串的應蘭辨雄拳用 98
5.6 編程規範及常見錯誤 100
5.7 小結 101
5.8 習題 101
第6章 過程封裝——函式 104
6.1 函式定義 105
6.1.1 函式的基本結構 105
6.1.2 return語句 105
6.1.3 函式示例 105
6.2 函式的使用 108
6.2.1 函式原型的聲明 108
6.2.2 函式調用 109
6.2.3 將函式與主程式放在一起 109
6.2.4 函式調用過程 110
6.3 變數的作用域 113
6.4 變數的存儲類別 115
6.4.1 自動變數 115
6.4.2 靜態變數 115
6.4.3 暫存器變數 117
6.4.4 外部變數 117
6.5 數組作為函式參數 119
6.6 帶默認值的函式 124
6.7 內聯函式 125
6.8 重載函式 126
6.9 函式模板 128
6.10 遞歸函式 129
6.10.1 遞歸函式的基本概念 129
6.10.2 遞歸函式的套用 131
*6.11 基於遞歸的算法 136
6.11.1 回溯法 136
6.11.2 分治法 140
6.11.3 動態規劃 143
*6.12 C++11的擴展 146
6.12.1 constexpr函式 146
6.12.2 尾置返回類型 146
6.13 編程規範及常見錯誤 147
6.14 小結 147
6.15 習題 148
第7章 間接訪問——指針 151
7.1 指針的概念 151
7.1.1 指針與間接訪問 151
7.1.2 指針變數的定義 151
7.1.3 指針的基本操作 152
*7.1.4 C++11的擴展 155
7.2 指針運算與數組 155
7.2.1 指針運算 155
7.2.2 用指針訪問數組 156
7.3 動態記憶體分配 156
7.3.1 動態變數 156
7.3.2 動態變數的創建 157
7.3.3 動態變數的消亡 158
7.3.4 記憶體泄漏 158
7.3.5 查找new操作的失誤 158
7.3.6 動態變數套用 159
*7.3.7 C++11的擴展 160
7.4 字元串再討論 161
7.5 指針與函式 161
7.5.1 指針作為形式參數 161
7.5.2 數組作為函式參數再討論 164
7.5.3 字元串作為函式的參數 166
7.5.4 返回指針的函式 166
7.6 引用類型與函式 167
7.6.1 引用類型 167
7.6.2 引用傳遞 169
7.6.3 返回引用的函式 171
*7.6.4 C++11的擴展 171
7.7 指針數組與多級指針 172
7.7.1 指針數組 172
*7.7.2 main函式的參數 173
*7.7.3 多級指針 175
*7.7.4 動態二維數組 176
7.8 函式指針 177
7.8.1 指向函式的指針 177
7.8.2 函式指針作為函式參數 178
7.8.3 用於選單選擇 180
*7.8.4 C++11的擴展 181
7.9 編程規範及常見錯誤 183
7.10 小結 183
7.11 習題 184
第8章 數據封裝——結構體 186
8.1 記錄的概念 186
8.2 記錄的使用 187
8.2.1 結構體類型的定義 187
8.2.2 結構體類型的變數的定義 188
8.2.3 結構體類型的變數的使用 189
8.3 結構體作為函式的參數 190
8.4 鍊表 192
8.4.1 鍊表的概念 192
8.4.2 單鍊表的存儲 193
8.4.3 單鍊表的操作 193
8.5 編程規範及常見錯誤 198
8.6 小結 198
8.7 習題 198
第9章 模組化開發 200
9.1 結構化程式設計 200
9.2 自頂向下分解 200
9.2.1 頂層分解 201
9.2.2 prn_instruction的實現 201
9.2.3 play函式的實現 201
9.2.4 get_call_from_user的實現 202
9.3 模組劃分 203
9.4 設計自己的庫 209
9.5 編程規範及常見錯誤 214
9.6 小結 214
9.7 習題 214
第 10章 創建新的類型 216
10.1 面向對象程式設計 216
10.1.1 抽象的過程 216
10.1.2 面向對象程式設計的特點 217
10.1.3 庫和類 218
10.2 類的定義 224
10.3 對象的使用 228
10.3.1 對象的定義 228
10.3.2 對象的操作 228
10.3.3 this指針 230
10.4 對象的構造與析構 231
10.4.1 對象的構造 231
10.4.2 對象的析構 235
10.4.3 類與對象套用實例 237
*10.4.4 C++11的擴展 240
10.5 const與類 242
10.5.1 常量數據成員 242
10.5.2 常量對象 243
10.5.3 常量成員函式 243
10.6 靜態成員 244
10.6.1 靜態數據成員 244
10.6.2 靜態成員函式 245
10.6.3 靜態常量成員 247
10.7 友元 248
10.8 編程規範及常見錯誤 250
10.9 小結 250
10.10 習題 251
第 11章 運算符重載 254
11.1 運算符重載的意義 254
11.2 運算符重載的方法 255
11.3 5個特殊運算符的重載 259
11.3.1 賦值運算符的重載 259
11.3.2 下標運算符的重載 260
11.3.3 函式調用運算符的重載 261
11.3.4 ++和--運算符的重載 262
11.3.5 輸入/輸出運算符的重載 265
*11.3.6 C++11的擴展 267
11.4 自定義類型轉換函式 267
11.4.1 內置類型到類類型的轉換 268
11.4.2 類類型到其他類型的轉換 268
*11.4.3 C++11的擴展 269
11.5 運算符重載的套用 269
11.5.1 完整的Rational類的定義和使用 269
11.5.2 完整的DoubleArray類的定義和使用 272
11.6 編程規範及常見錯誤 275
11.7 小結 276
11.8 習題 276
第 12章 組合與繼承 279
12.1 組合 279
12.2 繼承 284
12.2.1 派生類的定義 285
12.2.2 繼承的套用 288
12.2.3 重定義基類的函式 292
12.2.4 派生類對象的賦值 293
12.2.5 派生類作為基類 294
12.3 運行時的多態性 295
12.3.1 將派生類對象隱式轉換為基類對象 295
12.3.2 多態性與虛函式 297
12.3.3 虛析構函式 300
*12.3.4 C++11的擴展 300
12.4 純虛函式和抽象類 301
12.4.1 純虛函式 301
12.4.2 抽象類 301
12.5 編程規範及常見錯誤 302
12.6 小結 302
12.7 習題 302
第 13章 泛型機制——模板 305
13.1 類模板的定義 305
13.2 類模板的實例化 307
13.3 模板的編譯 308
13.4 非類型參數和參數的默認值 308
13.5 類模板的友元 309
13.5.1 普通友元 309
13.5.2 模板的特定實例的友元 310
13.6 類模板作為基類 314
13.7 編程規範及常見錯誤 314
13.8 小結 315
13.9 習題 315
第 14章 輸入/輸出與檔案 316
14.1 流與標準庫 316
14.2 輸入/輸出緩衝 317
14.3 基於控制台的輸入/輸出 318
14.3.1 輸出流 318
14.3.2 輸入流 320
14.3.3 格式化的輸入/輸出 323
14.4 基於檔案的輸入/輸出 326
14.4.1 檔案的概念 326
14.4.2 檔案和流 327
14.4.3 檔案的順序訪問 329
14.4.4 檔案的隨機訪問 331
14.4.5 用流式檔案處理含有記錄的檔案 333
14.5 基於字元串的輸入/輸出 339
14.6 編程規範及常見錯誤 340
14.7 小結 340
14.8 習題 340
第 15章 異常處理 343
15.1 傳統的異常處理方法 343
15.2 異常處理機制 343
15.2.1 異常拋出 344
15.2.2 異常捕獲 345
15.3 異常規格說明 350
15.4 編程規範及常見錯誤 351
15.5 小結 351
15.6 習題 351
第 16章 容器和疊代器 353
16.1 容器 353
16.2 疊代器 353
16.3 容器和疊代器的設計示例 354
16.3.1 用數組實現的容器 354
16.3.2 用鍊表實現的容器 357
16.4 小結 359
16.5 習題 360
參考文獻 361
4.3 基於哨兵的循環 64
4.3.1 while語句 64
4.3.2 do-while語句 68
4.4 循環的中途退出 69
*4.5 枚舉法 70
*4.6 貪婪法 73
4.7 編程規範及常見錯誤 75
4.8 小結 75
4.9 習題 75
第5章 批量數據處理——數組 79
5.1 一維數組 79
5.1.1 一維數組的定義 79
5.1.2 一維數組元素的引用 80
5.1.3 一維數組的記憶體映像 81
5.1.4 一維數組的套用 81
*5.1.5 C++11的擴展 83
5.2 查找 84
5.2.1 順序查找 84
5.2.2 二分查找 85
5.3 排序 87
5.3.1 直接選擇排序法 87
5.3.2 冒泡排序法 89
5.4 二維數組 90
5.4.1 二維數組的定義 91
5.4.2 二維數組元素的引用 91
5.4.3 二維數組的記憶體映像 92
5.4.4 二維數組的套用 92
5.5 字元串 96
5.5.1 字元串的存儲及初始化 96
5.5.2 字元串的輸入/輸出 97
5.5.3 字元串處理函式 97
5.5.4 字元串的套用 98
5.6 編程規範及常見錯誤 100
5.7 小結 101
5.8 習題 101
第6章 過程封裝——函式 104
6.1 函式定義 105
6.1.1 函式的基本結構 105
6.1.2 return語句 105
6.1.3 函式示例 105
6.2 函式的使用 108
6.2.1 函式原型的聲明 108
6.2.2 函式調用 109
6.2.3 將函式與主程式放在一起 109
6.2.4 函式調用過程 110
6.3 變數的作用域 113
6.4 變數的存儲類別 115
6.4.1 自動變數 115
6.4.2 靜態變數 115
6.4.3 暫存器變數 117
6.4.4 外部變數 117
6.5 數組作為函式參數 119
6.6 帶默認值的函式 124
6.7 內聯函式 125
6.8 重載函式 126
6.9 函式模板 128
6.10 遞歸函式 129
6.10.1 遞歸函式的基本概念 129
6.10.2 遞歸函式的套用 131
*6.11 基於遞歸的算法 136
6.11.1 回溯法 136
6.11.2 分治法 140
6.11.3 動態規劃 143
*6.12 C++11的擴展 146
6.12.1 constexpr函式 146
6.12.2 尾置返回類型 146
6.13 編程規範及常見錯誤 147
6.14 小結 147
6.15 習題 148
第7章 間接訪問——指針 151
7.1 指針的概念 151
7.1.1 指針與間接訪問 151
7.1.2 指針變數的定義 151
7.1.3 指針的基本操作 152
*7.1.4 C++11的擴展 155
7.2 指針運算與數組 155
7.2.1 指針運算 155
7.2.2 用指針訪問數組 156
7.3 動態記憶體分配 156
7.3.1 動態變數 156
7.3.2 動態變數的創建 157
7.3.3 動態變數的消亡 158
7.3.4 記憶體泄漏 158
7.3.5 查找new操作的失誤 158
7.3.6 動態變數套用 159
*7.3.7 C++11的擴展 160
7.4 字元串再討論 161
7.5 指針與函式 161
7.5.1 指針作為形式參數 161
7.5.2 數組作為函式參數再討論 164
7.5.3 字元串作為函式的參數 166
7.5.4 返回指針的函式 166
7.6 引用類型與函式 167
7.6.1 引用類型 167
7.6.2 引用傳遞 169
7.6.3 返回引用的函式 171
*7.6.4 C++11的擴展 171
7.7 指針數組與多級指針 172
7.7.1 指針數組 172
*7.7.2 main函式的參數 173
*7.7.3 多級指針 175
*7.7.4 動態二維數組 176
7.8 函式指針 177
7.8.1 指向函式的指針 177
7.8.2 函式指針作為函式參數 178
7.8.3 用於選單選擇 180
*7.8.4 C++11的擴展 181
7.9 編程規範及常見錯誤 183
7.10 小結 183
7.11 習題 184
第8章 數據封裝——結構體 186
8.1 記錄的概念 186
8.2 記錄的使用 187
8.2.1 結構體類型的定義 187
8.2.2 結構體類型的變數的定義 188
8.2.3 結構體類型的變數的使用 189
8.3 結構體作為函式的參數 190
8.4 鍊表 192
8.4.1 鍊表的概念 192
8.4.2 單鍊表的存儲 193
8.4.3 單鍊表的操作 193
8.5 編程規範及常見錯誤 198
8.6 小結 198
8.7 習題 198
第9章 模組化開發 200
9.1 結構化程式設計 200
9.2 自頂向下分解 200
9.2.1 頂層分解 201
9.2.2 prn_instruction的實現 201
9.2.3 play函式的實現 201
9.2.4 get_call_from_user的實現 202
9.3 模組劃分 203
9.4 設計自己的庫 209
9.5 編程規範及常見錯誤 214
9.6 小結 214
9.7 習題 214
第 10章 創建新的類型 216
10.1 面向對象程式設計 216
10.1.1 抽象的過程 216
10.1.2 面向對象程式設計的特點 217
10.1.3 庫和類 218
10.2 類的定義 224
10.3 對象的使用 228
10.3.1 對象的定義 228
10.3.2 對象的操作 228
10.3.3 this指針 230
10.4 對象的構造與析構 231
10.4.1 對象的構造 231
10.4.2 對象的析構 235
10.4.3 類與對象套用實例 237
*10.4.4 C++11的擴展 240
10.5 const與類 242
10.5.1 常量數據成員 242
10.5.2 常量對象 243
10.5.3 常量成員函式 243
10.6 靜態成員 244
10.6.1 靜態數據成員 244
10.6.2 靜態成員函式 245
10.6.3 靜態常量成員 247
10.7 友元 248
10.8 編程規範及常見錯誤 250
10.9 小結 250
10.10 習題 251
第 11章 運算符重載 254
11.1 運算符重載的意義 254
11.2 運算符重載的方法 255
11.3 5個特殊運算符的重載 259
11.3.1 賦值運算符的重載 259
11.3.2 下標運算符的重載 260
11.3.3 函式調用運算符的重載 261
11.3.4 ++和--運算符的重載 262
11.3.5 輸入/輸出運算符的重載 265
*11.3.6 C++11的擴展 267
11.4 自定義類型轉換函式 267
11.4.1 內置類型到類類型的轉換 268
11.4.2 類類型到其他類型的轉換 268
*11.4.3 C++11的擴展 269
11.5 運算符重載的套用 269
11.5.1 完整的Rational類的定義和使用 269
11.5.2 完整的DoubleArray類的定義和使用 272
11.6 編程規範及常見錯誤 275
11.7 小結 276
11.8 習題 276
第 12章 組合與繼承 279
12.1 組合 279
12.2 繼承 284
12.2.1 派生類的定義 285
12.2.2 繼承的套用 288
12.2.3 重定義基類的函式 292
12.2.4 派生類對象的賦值 293
12.2.5 派生類作為基類 294
12.3 運行時的多態性 295
12.3.1 將派生類對象隱式轉換為基類對象 295
12.3.2 多態性與虛函式 297
12.3.3 虛析構函式 300
*12.3.4 C++11的擴展 300
12.4 純虛函式和抽象類 301
12.4.1 純虛函式 301
12.4.2 抽象類 301
12.5 編程規範及常見錯誤 302
12.6 小結 302
12.7 習題 302
第 13章 泛型機制——模板 305
13.1 類模板的定義 305
13.2 類模板的實例化 307
13.3 模板的編譯 308
13.4 非類型參數和參數的默認值 308
13.5 類模板的友元 309
13.5.1 普通友元 309
13.5.2 模板的特定實例的友元 310
13.6 類模板作為基類 314
13.7 編程規範及常見錯誤 314
13.8 小結 315
13.9 習題 315
第 14章 輸入/輸出與檔案 316
14.1 流與標準庫 316
14.2 輸入/輸出緩衝 317
14.3 基於控制台的輸入/輸出 318
14.3.1 輸出流 318
14.3.2 輸入流 320
14.3.3 格式化的輸入/輸出 323
14.4 基於檔案的輸入/輸出 326
14.4.1 檔案的概念 326
14.4.2 檔案和流 327
14.4.3 檔案的順序訪問 329
14.4.4 檔案的隨機訪問 331
14.4.5 用流式檔案處理含有記錄的檔案 333
14.5 基於字元串的輸入/輸出 339
14.6 編程規範及常見錯誤 340
14.7 小結 340
14.8 習題 340
第 15章 異常處理 343
15.1 傳統的異常處理方法 343
15.2 異常處理機制 343
15.2.1 異常拋出 344
15.2.2 異常捕獲 345
15.3 異常規格說明 350
15.4 編程規範及常見錯誤 351
15.5 小結 351
15.6 習題 351
第 16章 容器和疊代器 353
16.1 容器 353
16.2 疊代器 353
16.3 容器和疊代器的設計示例 354
16.3.1 用數組實現的容器 354
16.3.2 用鍊表實現的容器 357
16.4 小結 359
16.5 習題 360
參考文獻 361

相關詞條

熱門詞條

聯絡我們