目 錄
第1篇 新 手 入 門
第1章 緒論 3
視頻講解:18分鍾
1.1 C++曆史背景 4
1.1.1 20世紀最偉大的發明--計算機 4
1.1.2 C++發展曆程 4
1.1.3 C++發展中的傑齣人物 5
1.2 Visual Studio 2010集成編譯環境 6
1.2.1 安裝Visual Studio 2010 6
1.2.2 卸載Visual Studio 2010 8
1.2.3 使用Visual Studio 2010創建一個C++
控製颱程序 9
1.2.4 編寫第一個C++程序"Hello World" 11
1.3 如何使用本書代碼 12
1.4 小結 12
第2章 數據類型 13
視頻講解:85分鍾
2.1 第一個C++程序 14
2.1.1 #include指令 14
2.1.2 注釋 14
2.1.3 main函數 15
2.1.4 函數體 15
2.1.5 函數返迴值 15
2.2 數據類型概述 15
2.3 常量及符號 16
2.3.1 整型常量 17
2.3.2 實型常量 17
2.3.3 字符常量 18
2.3.4 字符串常量 19
2.3.5 其他常量 19
2.4 變量 19
2.4.1 標識符 20
2.4.2 變量與變量聲明 20
2.4.3 整型變量 21
2.4.4 實型變量 21
2.4.5 變量賦值 22
2.4.6 變量賦初值 22
2.4.7 字符變量 22
2.5 數據輸入與輸齣 24
2.5.1 控製颱屏幕 24
2.5.2 C++語言中的流 24
2.5.3 流操作的控製 26
2.6 實戰 33
2.6.1 輸齣一個正方形 33
2.6.2 輸齣一個三角形 34
2.6.3 簡單求和程序 34
2.6.4 數值型常量的使用 35
2.6.5 將輸入的小寫字符轉換為大寫字符 35
2.6.6 水池注水問題 36
2.7 小結 37
2.8 學習成果檢驗 37
第3章 錶達式與語句 39
視頻講解:55分鍾
3.1 運算符 40
3.1.1 算術運算符 40
3.1.2 關係運算符 41
3.1.3 邏輯運算符 42
3.1.4 賦值運算符 43
3.1.5 位運算 44
3.1.6 移位運算符 45
3.1.7 sizeof運算符 47
3.1.8 條件運算符 48
3.1.9 逗號運算符 48
3.2 結閤性和優先級 48
3.3 錶達式 50
3.3.1 算術錶達式 50
3.3.2 關係錶達式 50
3.3.3 條件錶達式 51
3.3.4 賦值錶達式 51
3.3.5 邏輯錶達式 51
3.3.6 逗號錶達式 51
3.3.7 錶達式中的類型轉換 53
3.4 語句 55
3.5 實戰 56
3.5.1 求1~10的纍加和 56
3.5.2 求一個整數任意次方後的最後三位數 56
3.5.3 婚禮上的謊言 57
3.5.4 阿姆斯特朗數 58
3.5.5 滿足abcd=(ab+cd) 2的數 59
3.5.6 最大公約數及最小公倍數 59
3.6 小結 60
3.7 學習成果檢驗 61
第4章 判斷與循環 63
視頻講解:90分鍾
4.1 條件判斷 64
4.1.1 if語句 64
4.1.2 if...else語句 66
4.1.3 嵌套的if-else語句 67
4.1.4 使用條件運算符進行判斷 71
4.1.5 switch判斷語句 73
4.2 循環語句 77
4.2.1 while循環語句 77
4.2.2 do...while循環 79
4.2.3 while與do...while比較 80
4.2.4 for循環語句 81
4.3 循環控製 85
4.3.1 控製循環的變量 85
4.3.2 break語句 86
4.3.3 continue語句 87
4.3.4 goto語句 88
4.4 循環嵌套 90
4.5 實戰 92
4.5.1 小寫字母轉大寫 92
4.5.2 百雞百錢問題 92
4.5.3 判斷三角形類型 93
4.5.4 簡單計算器 94
4.5.5 求總數問題 95
4.5.6 加油站加油 96
4.5.7 燈塔數量 97
4.5.8 尼科徹斯定理 98
4.6 小結 99
4.7 學習成果檢驗 99
第5章 綜閤實驗(1)--模擬ATM機界麵
程序 101
視頻講解:7分鍾
5.1 概述 102
5.2 需求分析 102
5.3 設計思路 102
5.4 詳細設計 102
5.5 程序代碼 106
第2篇 進 階 提 高
第6章 數組 113
視頻講解:34分鍾
6.1 一維數組 114
6.1.1 如何定義和引用一維數組 114
6.1.2 一維數組初始化 115
6.1.3 一維數組應用 116
6.2 二維數組 117
6.2.1 如何定義和引用二維數組 117
6.2.2 二維數組初始化 118
6.2.3 二維數組應用 120
6.3 多維數組 121
6.4 字符數組 121
6.4.1 如何定義和使用字符數組 121
6.4.2 字符數組初始化 122
6.4.3 字符數組的結束標誌 125
6.4.4 字符數組的輸入和輸齣 126
6.4.5 字符數組應用 128
6.5 實戰 129
6.5.1 相鄰元素之和 129
6.5.2 選票係統 130
6.5.3 統計學生成績 131
6.5.4 模擬比賽打分 132
6.5.5 矩陣的轉置 133
6.5.6 設計魔方陣 135
6.5.7 統計各種字符個數 136
6.6 小結 137
6.7 學習成果檢驗 137
第7章 函數 139
視頻講解:74分鍾
7.1 函數概述 140
7.2 函數的定義 142
7.2.1 無參函數 142
7.2.2 有參函數 142
7.2.3 空函數 143
7.3 返迴語句 143
7.3.1 從函數返迴 143
7.3.2 返迴值 144
7.4 函數參數 145
7.4.1 形式參數與實際參數 145
7.4.2 數組作函數參數 147
7.4.3 main參數 151
7.5 函數的調用 153
7.5.1 函數調用方式 153
7.5.2 嵌套調用 153
7.5.3 遞歸調用 155
7.6 內部函數和外部函數 158
7.6.1 內部函數 158
7.6.2 外部函數 158
7.7 局部變量和全局變量 160
7.7.1 局部變量 160
7.7.2 全局變量 161
7.8 實戰 163
7.8.1 求數組元素中的最小值 163
7.8.2 求直角三角形斜邊 165
7.8.3 小數分離 165
7.8.4 判斷素數 166
7.8.5 遞歸解決分魚問題 167
7.8.6 字母檢索 168
7.8.7 求字符串中字符的個數 169
7.8.8 打魚曬網問題 170
7.9 小結 172
7.10 學習成果檢驗 172
第8章 指針和引用 173
視頻講解:53分鍾
8.1 指針 174
8.1.1 變量與指針 174
8.1.2 指針運算符和取地址運算符 177
8.1.3 指針運算 179
8.2 指針與數組 180
8.2.1 數組的存儲 180
8.2.2 指針與一維數組 180
8.2.3 指針與二維數組 182
8.2.4 指針與字符數組 186
8.3 指嚮函數的指針 187
8.4 指針與安全 188
8.4.1 內存的分配方式 188
8.4.2 內存安全 190
8.5 引用 193
8.5.1 左值與右值 193
8.5.2 引用的概述 194
8.5.3 右值引用 195
8.6 函數與引用 196
8.6.1 使用引用傳遞參數 196
8.6.2 指針與引用 197
8.6.3 右值引用傳遞參數 199
8.7 實戰 200
8.7.1 使用左值引用實現整數排序 200
8.7.2 查找成績不及格的學生 201
8.7.3 指針實現冒泡排序 202
8.7.4 使用指針插入元素 203
8.7.5 使用指針的指針輸齣字符串 204
8.7.6 為二維數組動態分配內存並釋放 205
8.7.7 使用右值引用轉換二進製為十進製 206
8.8 小結 207
8.9 學習成果檢驗 208
第9章 綜閤實驗(2)--猜數字遊戲 209
視頻講解:24分鍾
9.1 概述 210
9.2 需求分析 210
9.3 係統設計 210
9.3.1 設計目標 210
9.3.2 開發及運行環境 210
9.4 程序預覽 211
9.5 設計思路 213
9.6 文件引用 213
9.7 主要功能實現 213
9.7.1 主函數 213
9.7.2 猜數字 215
9.7.3 光標定位 217
第3篇 核 心 技 術
第10章 類和對象 221
視頻講解:62分鍾
10.1 C++類 222
10.1.1 類概述 222
10.1.2 類的聲明與定義 222
10.1.3 類的實現 224
10.1.4 對象的聲明 228
10.2 構造函數 231
10.2.1 構造函數概述 231
10.2.2 復製構造函數 233
10.3 析構函數 234
10.4 類成員 236
10.4.1 訪問類成員 236
10.4.2 內聯成員函數 238
10.4.3 靜態類成員 239
10.4.4 隱藏的this指針 241
10.4.5 嵌套類 243
10.4.6 局部類 244
10.5 友元 245
10.5.1 友元概述 245
10.5.2 友元類 247
10.5.3 友元方法 248
10.6 命名空間 251
10.6.1 使用命名空間 251
10.6.2 定義命名空間 251
10.6.3 在多個文件中定義命名空間 254
10.6.4 定義嵌套的命名空間 255
10.6.5 定義未命名的命名空間 257
10.7 實戰 257
10.7.1 找齣最高分 257
10.7.2 計算平麵兩點間距離 260
10.7.3 創建簡單單嚮鏈錶 261
10.7.4 創建簡單雙嚮鏈錶 265
10.7.5 單嚮鏈錶的逆置 269
10.7.6 括號匹配檢測 272
10.8 小結 275
10.9 學習成果檢驗 275
第11章 繼承和派生 277
視頻講解:57分鍾
11.1 繼承 278
11.1.1 類的繼承 278
11.1.2 繼承後可訪問性 280
11.1.3 構造函數訪問順序 283
11.1.4 子類隱藏父類的成員函數 284
11.2 重載運算符 287
11.2.1 重載運算符的必要性 288
11.2.2 重載運算符的形式與規則 289
11.2.3 重載運算符的運算 291
11.2.4 轉換運算符 293
11.3 多重繼承 295
11.3.1 多重繼承定義 295
11.3.2 二義性 296
11.3.3 多重繼承的構造順序 297
11.4 多態 299
11.4.1 虛函數概述 299
11.4.2 利用虛函數實現動態綁定 299
11.4.3 虛繼承 301
11.5 抽象類 303
11.5.1 純虛函數 303
11.5.2 實現抽象類中的成員函數 305
11.6 結構體 306
11.7 實戰 307
11.7.1 接口的實現 307
11.7.2 二維方陣的加減運算 310
11.7.3 成員函數重寫與虛函數繼承的區彆 312
11.7.4 善用類指針 314
11.7.5 鏈錶閤並 316
11.7.6 柱狀三維圖形的體積 318
11.8 小結 321
11.9 學習成果檢驗 321
第12章 模闆 323
視頻講解:50分鍾
12.1 函數模闆 324
12.1.1 函數模闆的定義 324
12.1.2 函數模闆的作用 325
12.1.3 重載函數模闆 327
12.2 類模闆 328
12.2.1 類模闆的定義與聲明 328
12.2.2 簡單類模闆 330
12.2.3 默認模闆參數 331
12.2.4 為具體類型的參數提供默認值 332
12.2.5 有界數組模闆 333
12.3 模闆的使用 335
12.3.1 定製類模闆 335
12.3.2 定製類模闆成員函數 337
12.3.3 模闆部分定製 338
12.4 鏈錶類模闆 340
12.4.1 鏈錶 340
12.4.2 使用鏈錶類模闆 342
12.4.3 類模闆的靜態數據成員 345
12.5 實戰 347
12.5.1 使用函數模闆迴收動態分配的內存 347
12.5.2 三維坐標類模闆 348
12.5.3 多繼承與函數模闆 349
12.5.4 實現鏈錶模闆的插入 350
12.5.5 選擇排序函數模闆 351
12.6 小結 353
12.7 學習成果檢驗 354
第13章 文件操作 355
視頻講解:58分鍾
13.1 文件流 356
13.1.1 C++中的流類庫 356
13.1.2 類庫的使用 356
13.1.3 ios類中的枚舉常量 357
13.1.4 流的輸入/輸齣 357
13.2 文件打開 358
13.2.1 打開方式 358
13.2.2 默認打開模式 359
13.2.3 打開文件同時創建文件 360
13.3 文件的讀寫 361
13.3.1 文件流 361
13.3.2 寫文本文件 363
13.3.3 讀取文本文件 364
13.3.4 二進製文件的讀/寫 365
13.3.5 實現文件復製 366
13.4 文件指針移動操作 368
13.4.1 文件錯誤與狀態 368
13.4.2 文件的追加 368
13.4.3 文件結尾的判斷 370
13.4.4 在指定位置讀/寫文件 371
13.5 文件與流的關聯和分離 373
13.6 刪除文件 374
13.7 實戰 375
13.7.1 閤並兩個文件信息 375
13.7.2 文件復製 376
13.7.3 文件加密 377
13.7.4 使用銷毀的手段保護文件內容 379
13.7.5 在文件中查找關鍵詞齣現的次數 380
13.8 小結 382
13.9 學習成果檢驗 382
第14章 綜閤實驗(3)--圖書
管理係統 383
視頻講解:42分鍾
14.1 係統設計 384
14.1.1 需求分析 384
14.1.2 係統目標 384
14.1.3 係統功能結構 384
14.2 圖書類 385
14.3 主程序 389
14.4 添加圖書 393
14.5 顯示圖書信息 394
14.6 刪除圖書 396
14.7 小結 397
第4篇 高 級 應 用
第15章 預處理 401
視頻講解:42分鍾
15.1 本章知識體係 402
15.2 不帶參數的宏定義 402
15.3 帶參數的宏定義 404
15.4 #include命令 405
15.5 條件編譯 408
15.5.1 #if命令 408
15.5.2 #ifdef及#ifndef命令 410
15.5.3 #undef命令 412
15.5.4 #line命令 412
15.5.5 #pragma命令 413
15.6 實戰 413
15.6.1 利用宏計算兩個數的乘積 413
15.6.2 利用宏求3個數中的最小數 414
15.6.3 使用帶參數的宏求圓麵積 415
15.6.4 利用文件包含設計輸齣模式 415
15.6.5 使用條件編譯隱藏密碼 416
15.7 疑難解惑 417
15.7.1 C++語言中包括哪些預處理功能 417
15.7.2 使用宏時需要注意些什麼 417
15.7.3 文件包含可以嵌套嗎 418
15.8 小結 418
15.9 學習成果檢驗 418
第16章 STL標準模闆庫 419
視頻講解:35分鍾
16.1 序列容器 420
16.1.1 嚮量類模闆 420
16.1.2 雙端隊列類模闆 422
16.1.3 鏈錶類模闆 424
16.2 結閤容器 426
16.2.1 set類模闆 426
16.2.2 multiset類模闆 431
16.2.3 map類模闆 435
16.2.4 multimap類模闆 437
16.3 算法 438
16.3.1 非修正序列算法 438
16.3.2 修正序列算法 441
16.3.3 排序算法 445
16.3.4 數值算法 451
16.4 迭代器 455
16.4.1 輸齣迭代器 455
16.4.2 輸入迭代器 456
16.4.3 前嚮迭代器 457
16.4.4 雙嚮迭代器 457
16.4.5 隨機訪問迭代器 458
16.5 實戰 459
16.5.1 使用鏈錶類模闆加載學生類實例 459
16.5.2 按索引排序 460
16.5.3 使用並集算法閤並容器 463
16.5.4 利用容器算法洗牌 466
16.5.5 篩選過期的藥品 468
16.6 小結 470
16.7 學習成果檢驗 470
第17章 程序調試 471
視頻講解:36分鍾
17.1 選擇正確的調試方法 472
17.2 程序錯誤常見的4種類型 472
17.2.1 語法錯誤 472
17.2.2 連接錯誤 473
17.2.3 運行時錯誤 473
17.2.4 邏輯錯誤 474
17.3 調試工具的使用 475
17.3.1 創建調試程序 475
17.3.2 進入調試狀態 476
17.3.3 監視窗口 477
17.3.4 調用堆棧窗口 477
17.3.5 內存窗口 478
17.3.6 變量窗口 478
17.3.7 寄存器窗口 478
17.3.8 反匯編窗口 479
17.4 調試的基本應用 479
17.4.1 變量的跟蹤與查看 479
17.4.2 位置斷點的使用 480
17.5 小結 481
第18章 綜閤實驗(4)--商品
銷售係統 483
視頻講解:38分鍾
18.1 商品類的設計 484
18.2 銷售係統的設計 485
18.3 銷售記錄功能 497
18.4 小結 502
第5篇 項 目 實 戰
第19章 網絡通信 505
視頻講解:40分鍾
19.1 TCP/IP協議 506
19.1.1 OSI參考模型 506
19.1.2 TCP/IP參考模型 506
19.1.3 IP地址 507
19.1.4 數據包格式 508
19.2 套接字 510
19.2.1 Winsocket套接字 510
19.2.2 Winsocket的使用 510
19.2.3 套接字阻塞模式 515
19.2.4 字節順序 515
19.2.5 麵嚮連接流 516
19.2.6 麵嚮無連接流 516
19.3 簡單協議通信 517
19.3.1 服務端 517
19.3.2 客戶端 520
19.3.3 實例的運行 521
19.4 小結 521
第20章 吃豆子遊戲 523
視頻講解:136分鍾
20.1 Windows應用程序 524
20.1.1 建立Windows應用程序 524
20.1.2 WinMain函數 526
20.1.3 Windows消息循環 529
20.1.4 常用繪圖GDI 532
20.2 製作PacMan 535
20.2.1 PacMan程序框架初步分析 535
20.2.2 碰撞檢測的實現 538
20.2.3 地圖類的設計 542
20.2.4 數據更新 545
20.2.5 繪圖 553
20.2.6 窗口設計 559
20.3 小結 566
· · · · · · (
收起)