內容介紹
《C++自學視頻教程》共分3篇18章,其中,第1篇為入門篇,主要包括初識C++、認識C++程式、變數和數據類型、運算符與表達式、條件判斷語句、循環控制語句、封裝函式使程式模組化、C++中的指針、C++中的引用、使用數組獲取連續空間等內容;第2篇為提高篇,主要包括面向對象編程、從基類到派生類、C++模板的使用、代碼整理、掌握C++標準模板庫、利用檔案處理數據等內容;第3篇為實戰篇,主要包括ATM機界面、猜數字遊戲、吃豆子遊戲和人事考勤管理系統4個實戰項目。另外本書光碟含:
17 小時視頻講解 /961 個編程實例 /15 個經典模組分析 /16 個項目開發案例 /311 個編程實踐任務 /616 個能力測試題目(基礎能力測試、數學及邏輯思維能力測試、面試能力測試、編程英語能力測試) /23 個 IT 勵志故事。
目錄
第1篇 入 門 篇
第1章 初識C++ 2
( 視頻講解:45分鐘)
1.1 C++的歷史背景 3
1.1.1 計算機的問世 3
1.1.2 C++發展歷程 3
1.1.3 C++中的傑出人物 4
1.2 C++語言特點 5
1.3 Visual Studio 2010集成編譯環境 6
1.3.1 安裝Visual Studio 2010 6
1.3.2 卸載Visual Studio 2010 11
1.3.3 使用Visual Studio 2010創建一個C++控制台程式 12
1.3.4 編寫第一個C++程式
“Hello World!” 15
1.4 本書代碼使用指南 16
1.5 本章小結 16
第2章 認識C++程式 17
( 視頻講解:54分鐘)
2.1 我的第一個C++程式 18
2.1.1 創建第一個C++程式 18
2.1.2 C++程式的基本組成 20
2.2 C++的常用概念 21
2.2.1 預處理命令 21
2.2.2 注釋 21
2.2.3 main函式 22
2.2.4 函式體 22
2.2.5 函式返回值 22
2.3 初步了解函式 22
2.3.1 一個簡單的函式 22
2.3.2 函式的傳參 24
2.3.3 函式的返回值、參數與變數 25
2.3.4 函式的聲明和定義 26
2.3.5 變數 29
2.4 C++語言基本要素 30
2.4.1 解讀標識符 31
2.4.2 關鍵字 31
2.4.3 定義和使用常量 32
2.4.4 變數的套用 32
2.5 C++代碼編寫規範 33
2.5.1 代碼寫規範的好處 33
2.5.2 如何將代碼寫規範 34
2.6 綜合套用 34
2.7 本章常見錯誤 35
2.8 本章小結 35
2.9 跟我上機 35
第3章 變數和數據類型 37
( 視頻講解:1小時5分鐘)
3.1 常量 38
3.1.1 整型常量 38
3.1.2 實型常量 38
3.1.3 字元常量 39
3.1.4 字元串常量 40
3.1.5 其他常量 41
3.2 變數 41
3.2.1 標識符 41
3.2.2 變數與變數說明 42
3.2.3 整型變數 42
3.2.4 實型變數 43
3.2.5 變數賦值 43
3.2.6 變數賦初值 44
3.2.7 字元變數 44
3.3 常用數據類型 45
3.3.1 定義數值類型 46
3.3.2 字元類型 47
3.3.3 布爾類型 47
3.4 輸入與輸出數據 48
3.4.1 通過printf格式輸出數據 48
3.4.2 利用scanf格式輸入數據 51
3.4.3 標準I/O流 54
3.4.4 控制輸入/輸出格式 56
3.5 綜合套用 60
3.5.1 計算貸款支付額 60
3.5.2 計算函式值 61
3.6 本章常見錯誤 62
3.7 本章小結 62
3.8 跟我上機 63
第4章 運算符與表達式 64
( 視頻講解:40分鐘)
4.1 C++中的運算符 65
4.1.1 算術運算符 65
4.1.2 關係運算符 66
4.1.3 邏輯運算符 67
4.1.4 賦值運算符 68
4.1.5 位運算符 69
4.1.6 移位運算符 70
4.1.7 sizeof運算符 73
4.1.8 條件運算符 73
4.1.9 逗號運算符 74
4.2 結合性和優先權 74
4.3 表達式 75
4.3.1 算術表達式 76
4.3.2 關係表達式 76
4.3.3 條件表達式 76
4.3.4 賦值表達式 76
4.3.5 邏輯表達式 77
4.3.6 逗號表達式 77
4.3.7 表達式中的類型轉換 78
4.4 語句概述 81
4.5 判斷左值與右值 82
4.6 綜合套用 83
4.6.1 計算三角形周長 83
4.6.2 計算三角形的邊長 83
4.7 本章常見錯誤 84
4.7.1 注意=和== 84
4.7.2 不要混淆strlen和sizeof 84
4.7.3 對浮點數求余 84
4.8 本章小結 84
4.9 跟我上機 85
第5章 條件判斷語句 86
( 視頻講解:35分鐘)
5.1 決策分支 87
5.2 判斷語句 87
5.2.1 第一種形式的判斷語句——if語句 87
5.2.2 第二種形式的判斷語句——if-else語句 89
5.2.3 第三種形式的判斷語句——多次判斷語句 91
5.3 使用條件運算符進行判斷 93
5.4 switch判斷語句 94
5.5 判斷語句的嵌套 99
5.6 綜合套用 101
5.6.1 圖書的位置 101
5.6.2 計算增加後的工資 102
5.7 本章常見錯誤 103
5.7.1 注意case後不要跟變數 103
5.7.2 if else的匹配問題 104
5.7.3 if判斷表達式的比較問題 104
5.8 本章小結 104
5.9 跟我上機 104
第6章 循環控制語句 106
( 視頻講解:50分鐘)
6.1 while循環 107
6.2 do…while循環 109
6.3 while和do…while比較 110
6.4 for循環 112
6.5 循環控制 115
6.5.1 控制循環的變數 116
6.5.2 break語句 117
6.5.3 continue語句 118
6.5.4 goto語句 119
6.6 循環嵌套 120
6.7 綜合套用 122
6.7.1 阿姆斯壯數 122
6.7.2 巴斯卡三角形 123
6.7.3 輸出閏年 124
6.8 本章常見錯誤 126
6.8.1 break和continue語句的區別 126
6.8.2 goto的問題 126
6.9 本章小結 126
6.10 跟我上機 127
第7章 封裝函式使程式模組化 128
( 視頻講解:1小時)
7.1 函式概述 129
7.1.1 定義函式 129
7.1.2 聲明和使用函式 129
7.2 函式的參數 130
7.2.1 形參與實參 130
7.2.2 設定默認值 131
7.3 從函式中返回 132
7.3.1 函式返回值 132
7.3.2 了解空函式 133
7.4 遞歸調用函式 133
7.5 重載函式的使用 137
7.6 生存周期與作用域 139
7.6.1 變數的作用域 139
7.6.2 變數的生存周期 140
7.6.3 變數的儲存方式 141
7.7 名稱空間 145
7.8 綜合套用 147
7.8.1 等差數列求和 147
7.8.2 提款機的記錄 148
7.9 本章常見錯誤 149
7.9.1 函式中返回的數組地址無效 149
7.9.2 聲明函式時不要忘記加分號 149
7.9.3 儘量不要用using
namespace std 149
7.10 本章小結 150
7.11 跟我上機 150
第8章 C++中的指針 152
( 視頻講解:20分鐘)
8.1 指針概述 153
8.1.1 保存變數地址 153
8.1.2 指針的運算 157
8.1.3 指向空的指針與空類型指針 159
8.1.4 指向常量的指針與指針常量 160
8.2 指針在函式中的套用 162
8.2.1 傳遞地址 162
8.2.2 指向函式入口地址 163
8.2.3 空指針調用函式 164
8.2.4 從函式中返回指針 165
8.3 安全使用指針 167
8.3.1 記憶體分配 167
8.3.2 記憶體安全 169
8.4 綜合套用 172
8.4.1 水桶的平衡 172
8.4.2 分步計算 173
8.4.3 顯示數組元素 173
8.5 本章常見錯誤 174
8.5.1 文字常量區不可修改 174
8.5.2 重複釋放記憶體,錯誤提示
“Debug Assertion Failed!” 175
8.5.3 釋放空間以後,記得給
指針賦空 175
8.5.4 (*p)--輸出的不是想要的值 175
8.6 本章小結 176
8.7 跟我上機 176
第9章 C++中的引用 177
( 視頻講解:14分鐘)
9.1 引用概述 178
9.1.1 引用的概念 178
9.1.2 引用就是別名常量 179
9.1.3 右值引用 180
9.2 引用在函式中的套用 181
9.2.1 引用作為函式的形參 181
9.2.2 指針與引用 182
9.2.3 右值引用傳遞參數 184
9.3 綜合套用 185
9.4 本章常見錯誤 186
9.4.1 指針和引用分別應該什麼時候用 186
9.4.2 在哪裡創建,就在哪裡釋放指針 186
9.4.3 指針和引用混合使用 186
9.4.4 指針的特殊寫法 187
9.5 本章小結 187
9.6 跟我上機 187
第10章 使用數組獲取連續空間 188
( 視頻講解:56分鐘)
10.1 一維數組 189
10.1.1 聲明一維數組 189
10.1.2 一維數組的元素 189
10.1.3 初始化一維數組 190
10.2 二維數組 191
10.2.1 聲明二維數組 191
10.2.2 引用二維數組元素 192
10.2.3 初始化二維數組 193
10.3 字元數組 195
10.3.1 聲明一個字元串數組 195
10.3.2 字元串數組賦值 195
10.3.3 字元數組的一些說明 195
10.3.4 越界引用 196
10.3.5 字元串處理函式 198
10.4 指針與數組 203
10.4.1 存儲數組元素 203
10.4.2 保存一維數組首地址 203
10.4.3 保存二維數組首地址 205
10.4.4 指針與字元數組 210
10.4.5 數組作函式參數 212
10.4.6 動態分配數組 214
10.5 字元串類型 215
10.5.1 使用本地字元串類型string 215
10.5.2 連線string字元串 216
10.5.3 比較string字元串 217
10.5.4 定義string類型數組 218
10.6 綜合套用 219
10.6.1 名字排序 219
10.6.2 查找數字 220
10.6.3 求平均身高 221
10.7 本章常見錯誤 222
10.7.1 不能對數組名直接賦值 222
10.7.2 sizeof(a)和sizeof(a+1) 223
10.7.3 注意區分數組指針和
指針數組 223
10.8 本章小結 223
10.9 跟我上機 224
第2篇 提 高 篇
第11章 面向對象編程 226
( 視頻講解:1小時20分鐘)
11.1 面向對象的編程思想 227
11.1.1 面向過程 228
11.1.2 面向對象 228
11.1.3 面向對象編程的特點 229
11.2 類與對象 229
11.2.1 聲明與定義類 230
11.2.2 在源檔案中包含頭檔案 231
11.2.3 實現一個類 231
11.2.4 實例化一個對象 236
11.2.5 訪問類成員 236
11.3 類的構造與析構 239
11.3.1 構造函式概述 239
11.3.2 利用構造函式初始化成員變數 239
11.3.3 析構一個類 242
11.4 定義靜態成員 244
11.5 通過指針操作對象 247
11.6 隱含的this指針 248
11.7 複製對象 250
11.8 聲明const對象 252
11.9 申請對象數組 254
11.10 C++中的友元 257
11.10.1 友元機制 257
11.10.2 定義友元類 259
11.11 重載運算符 260
11.11.1 重載算術運算符 260
11.11.2 重載比較運算符 262
11.12 綜合套用 263
11.12.1 用戶與留言 263
11.12.2 挑選硬碟 265
11.13 本章常見錯誤 266
11.13.1 聲明類時提示編譯錯誤 266
11.13.2 對比const與#define 267
11.13.3 new和delete要配對使用 267
11.14 本章小結 267
11.15 跟我上機 267
第12章 從基類到派生類 269
( 視頻講解:46分鐘)
12.1 類的繼承 270
12.1.1 定義派生類 270
12.1.2 訪問類成員 272
12.1.3 類的派生方式 273
12.1.4 父類和子類的構造順序 276
12.1.5 子類顯示調用父類構造函式 277
12.1.6 子類隱藏父類的成員函式 279
12.1.7 嵌套定義多個類 282
12.2 多重繼承 284
12.2.1 聲明多重繼承的派生類 284
12.2.2 注意避免二義性 285
12.2.3 多重繼承的構造順序 286
12.3 C++的多態性 288
12.3.1 虛函式概述 288
12.3.2 動態綁定 288
12.3.3 虛繼承機制 290
12.4 抽象類介紹 292
12.4.1 創建純虛函式 292
12.4.2 實現抽象類中的成員函式 293
12.5 綜合套用 295
12.5.1 學生類的設計 295
12.5.2 等邊多邊形 296
12.5.3 教師職位信息 298
12.6 本章常見錯誤 299
12.6.1 靜態成員函式不能訪問普通成員變數 299
12.6.2 類初始化時不能直接給數組名賦值 299
12.6.3 派生後的訪問許可權總結 300
12.7 本章小結 300
12.8 跟我上機 300
第13章 C++模板的使用 303
( 視頻講解:50分鐘)
13.1 函式模板 304
13.1.1 定義函式模板 304
13.1.2 使用函式模板 305
13.1.3 重載函式模板 307
13.2 類模板 308
13.2.1 定義類模板 308
13.2.2 執行時指定參數 310
13.2.3 設定默認模板參數 311
13.2.4 為具體類型的參數提供默認值 312
13.2.5 越界檢測 313
13.3 模板的使用方法 315
13.3.1 定製類模板 315
13.3.2 定製類模板成員函式 317
13.3.3 部分定製模板 318
13.4 鍊表類模板 319
13.4.1 建立單向鍊表 320
13.4.2 鍊表類模板的使用 322
13.4.3 類模板的靜態數據成員 324
13.5 綜合套用 326
13.5.1 除法函式模板 326
13.5.2 取得數據間最大值 327
13.5.3 不同類型數組管理 328
13.6 本章常見錯誤 330
13.6.1 函式模板與類模板的區別 330
13.6.2 成員函式在類外實現時不要帶默認值 330
13.6.3 函式默認順序從右向左 330
13.7 本章小結 330
13.8 跟我上機 331
第14章 代碼整理 332
( 視頻講解:52分鐘)
14.1 結構體概述 333
14.2 重命名數據類型 333
14.3 枚舉類型的套用 335
14.4 類型推導 340
14.5 異常處理 341
14.5.1 拋出異常 342
14.5.2 捕獲異常 344
14.5.3 異常匹配 347
14.5.4 標準異常 349
14.6 使用宏定義替換複雜的數據 349
14.7 綜合套用 353
14.7.1 撲克牌的牌面 353
14.7.2 使用帶參數的宏求圓面積 354
14.7.3 綜合成績 355
14.8 本章常見錯誤 356
14.8.1 注意帶參數的宏 356
14.8.2 結構體成員的引用 356
14.8.3 結構體位元組對齊問題 356
14.8.4 用指針動態申請結構體記憶體時失敗 357
14.9 本章小結 357
14.10 跟我上機 358
第15章 掌握C++標準模板庫 359
( 視頻講解:29分鐘)
15.1 幾種常見數據結構 360
15.1.1 簡述STL 360
15.1.2 順序線性結構 360
15.1.3 基本操作 360
15.1.4 棧結構 361
15.1.5 佇列結構 361
15.1.6 鍊表結構 361
15.1.7 圖結構 362
15.2 使用容器管理數據 362
15.2.1 對比容器適配器與容器 362
15.2.2 對比疊代器與容器 363
15.2.3 vector容器 364
15.2.4 list容器 367
15.2.5 關聯容器 370
15.3 常用算法 372
15.3.1 for_each函式 372
15.3.2 fill函式 373
15.3.3 sort函式 374
15.3.4 transform函式 375
15.4 lambda表達式 376
15.5 綜合套用 379
15.5.1 疊代輸出信息 379
15.5.2 計算平均值 380
15.6 本章常見錯誤 380
15.6.1 不要直接使用頭指針操作鍊表 380
15.6.2 區分記憶體中的棧和數據結構中的棧 381
15.6.3 數組和容器的區別 381
15.7 本章小結 381
15.8 跟我上機 381
第16章 利用檔案處理數據 383
( 視頻講解:58分鐘)
16.1 檔案流概述 384
16.1.1 C++中的流類庫 384
16.1.2 使用類庫 384
16.1.3 ios類中的枚舉常量 385
16.1.4 使用流進行輸出 385
16.2 打開檔案 386
16.2.1 檔案打開方式 386
16.2.2 默認打開模式 387
16.2.3 創建並打開檔案 388
16.3 讀寫檔案 389
16.3.1 檔案流分類 389
16.3.2 寫文本檔案 391
16.3.3 讀取文本檔案 392
16.3.4 二進制檔案的讀寫 393
16.3.5 實現檔案複製 394
16.4 移動檔案指針 395
16.4.1 檔案錯誤與狀態 395
16.4.2 向檔案追加寫入 396
16.4.3 檔案結尾的判斷 397
16.4.4 在指定位置讀寫檔案 399
16.5 檔案和流的關聯和分離 401
16.6 刪除檔案 402
16.7 綜合套用 403
16.7.1 記錄類的信息 403
16.7.2 讀取檔案信息 404
16.8 本章常見錯誤 405
16.8.1 檔案打開要記得關閉 405
16.8.2 peek不能用於ofstream 405
16.8.3 忘記調回指針,讀不到內容 405
16.9 本章小結 405
16.10 跟我上機 406
第3篇 實 戰 篇
第17章 C++語言遊戲開發 410
( 視頻講解:2小時48分鐘)
17.1 模擬ATM機界面程式 411
17.1.1 概述 411
17.1.2 需求分析 411
17.1.3 設計思路 411
17.1.4 詳細設計 411
17.1.5 程式代碼 415
17.1.6 小結 418
17.2 猜數字遊戲 418
17.2.1 概述 418
17.2.2 需求分析 418
17.2.3 系統設計 419
17.2.4 程式預覽 419
17.2.5 設計思路 421
17.2.6 檔案引用 421
17.2.7 主要功能實現 422
17.2.8 小結 426
17.3 吃豆子遊戲 426
17.3.1 PacMan程式框架初步分析 426
17.3.2 碰撞檢測的實現 429
17.3.3 地圖類的設計 432
17.3.4 數據更新 435
17.3.5 繪圖 443
17.3.6 視窗設計 448
17.3.7 小結 455
第18章 人事考勤管理系統(Visual
Studio 2010和SQL Server
2008實現) 456
( 視頻講解:1小時30分鐘)
18.1 開發背景 457
18.2 需求分析 457
18.3 系統設計 457
18.3.1 系統目標 457
18.3.2 系統功能結構 458
18.3.3 系統預覽 458
18.3.4 業務流程圖 458
18.3.5 資料庫設計 459
18.4 公共模組設計 461
18.5 主窗體設計 466
18.6 用戶登錄模組設計 469
18.6.1 用戶登錄模組概述 469
18.6.2 用戶登錄技術分析 469
18.6.3 用戶登錄實現過程 470
18.7 用戶管理模組設計 471
18.7.1 用戶管理模組概述 471
18.7.2 用戶管理技術分析 471
18.7.3 用戶管理實現過程 472
18.7.4 單元測試 474
18.8 部門管理模組設計 475
18.8.1 部門管理模組概述 475
18.8.2 部門管理技術分析 475
18.8.3 部門管理實現過程 476
18.9 人員信息管理模組設計 478
18.9.1 人員信息管理模組概述 478
18.9.2 人員信息管理技術分析 479
18.9.3 人員信息管理實現過程 479
18.10 考勤管理模組設計 485
18.10.1 考勤管理模組概述 485
18.10.2 考勤管理技術分析 486
18.10.3 考勤管理實現過程 487
18.11 考勤匯總查詢模組設計 492
18.11.1 考勤匯總查詢模組概述 492
18.11.2 考勤匯總查詢技術分析 492
18.11.3 考勤匯總查詢實現過程 493
18.12 開發技巧與難點分析 496
18.12.1 調用動態程式庫設計界面 496
18.12.2 主視窗的界面顯示 497
18.13 本章小結 498