C++權威教程(第6版)

C++權威教程(第6版)

《C++權威教程(第6版)》是2016年人民郵電出版社出版的圖書,作者是[美] 戴爾 ( Nell Dale) ,[美] 威姆斯 ChipWeems。

基本介紹

  • 書名:C++權威教程(第6版)
  • 作者戴爾Nell Dale)、威姆斯 Chip Weems
  • 譯者:岳新欣
  • ISBN:9787115407924
  • 頁數:716
  • 出版社人民郵電出版社
  • 出版時間:2016年01月 
  • 裝幀:平裝
  • 開本:16開
  • 編輯:岳新欣
  • 版次:1
  • 印次:1
  • 字數:1546千字
內容簡介,圖書目錄,

內容簡介

本書是全面的C++教程,介紹C++編程知識及問題解決方式與方法。新增了編程練習,面向學生重新組織了書中容;從教育與傳播知識的角度考慮,其中涵蓋實際案例研究,並用高度相關的練習強化讀者對關鍵概念的理解,以及對關鍵技能的掌握;C++語言結構與理論並重。另外,本書還配有全套輔助資源(為學生和老師準備的完整原始碼,還有PowerPoint課程大綱,試題庫)

圖書目錄

第1章 程式設計與問題解決概述 1
1.1 程式設計概述 1
1.1.1 什麼是程式設計 1
1.1.2 怎樣編寫程式 2
1.1.3 什麼是算法 3
1.1.4 什麼是程式設計語言 4
1.2 計算機如何運行程式 7
1.2.1 程式設計語言可以編寫的指令類型  9
1.2.2 什麼是軟體維護 11
1.3 計算機里有什麼 15
1.4 計算行業的行為準則與義務 19
1.4.1 軟體盜版 19
1.4.2 數據的保密 19
1.4.3 計算機資源的使用 19
1.4.4 軟體工程 20
1.5 問題求解方法 21
1.5.1 提出問題 21
1.5.2 尋找熟悉的內容 21
1.5.3 類比解決 22
1.5.4 方法-目標分析 22
1.5.5 分而治之 23
1.5.6 構建模組方法 23
1.5.7 合併解決方案 24
1.5.8 心理障礙:對開始的恐懼 24
1.5.9 用算法解決問題 25
1.6 小結 29
第2章 C++語法與語義及程式開發過程.31
2.1 C++程式的組成元素 31
2.1.1 C++程式結構 31
2.1.2 語法與語義 33
2.1.3 語法模板 34
2.1.4 為程式元素命名:標識符 36
2.1.5 數據和數據類型 37
2.1.6 為元素命名:聲明 38
2.1.7 採取行動:可執行語句 42
2.1.8 超越最簡主義:向程式添加注釋  46
2.2 程式構造 47
2.2.1 程式塊(複合語句) 49
2.2.2 C++預處理器 50
2.3 再說“輸出”  55
2.3.1 生成空行 55
2.3.2 在一行內插入空格 56
2.3.3 特殊字元 56
2.4 程式輸入、糾錯和執行 57
2.4.1 輸入程式 57
2.4.2 編譯和運行程式 58
2.5 測試與調試 61
2.6 小結 62
第3章 數值類型、表達式和輸出 63
3.1 C++數據類型概述 63
3.2 數值數據類型 64
3.2.1 整型 64
3.2.2 浮點類型 65
3.3 數值類型的聲明 66
3.3.1 命名常量聲明 66
3.3.2 變數聲明 67
3.4 簡單算術表達式 67
3.4.1 算術運算符 67
3.4.2 遞增和遞減運算符 70
3.5 複合算術表達式 70
3.5.1 優先權規則 70
3.5.2 隱式類型轉換和顯式類型轉換 71
3.6 函式調用和庫函式 75
3.6.1 返回值的函式 75
3.6.2 庫函式 77
3.6.3 void函式 78
3.7 設定輸出格式 78
3.7.1 整數和字元串 79
3.7.2 浮點數 81
3.8 其他string操作 85
3.8.1 length和size函式 85
3.8.2 find函式 86
3.8.3 substr函式 87
3.8.4 訪問字元串中的字元:at函式 88
3.8.5 轉換為小寫和大寫 88
3.9 測試與調試 92
3.10 小結 93
第4章 程式輸入和軟體設計過程 94
4.1 向程式輸入數據 94
4.1.1 輸入流和提取運算符()  95
4.1.2 讀取標記和換行符 97
4.1.3 用get函式讀取字元數據 98
4.1.4 用ignore函式跳過字元 100
4.1.5 讀取字元串數據 101
4.2 互動式輸入/輸出 103
4.3 非互動式輸入/輸出 105
4.4 檔案輸入和輸出 105
4.4.1 檔案 106
4.4.2 使用檔案 106
4.4.3 運行時輸入檔案名稱 111
4.5 輸入失敗 113
4.6 軟體設計方法 113
4.7 功能分解 114
4.7.1 模組 116
4.7.2 實現設計 116
4.7.3 有關設計的一種觀點 119
4.8 測試與調試 123
4.9 小結 124
第5章 條件、邏輯表達式和選擇控制結構 126
5.1 控制流 126
5.2 條件與邏輯表達式 128
5.2.1 bool數據類型 128
5.2.2 邏輯表達式 128
5.3 If語句 132
5.3.1 If-Then-Else形式 132
5.3.2 塊(複合語句) 134
5.3.3 If-Then形式 136
5.3.4 常見錯誤 137
5.4 嵌套If語句 140
5.5 邏輯運算符 144
5.5.1 運算符的優先權 148
5.5.2 與浮點類型一起使用的關係運算符 150
5.6 判斷I/O流的狀態 151
5.7 測試與調試 157
5.7.1 問題求解階段的測試:算法演練  157
5.7.2 實現階段的測試 159
5.7.3 測試計畫 162
5.7.4 在編譯和執行期間自動執行的測試 163
5.8 小結 165
第6章 循環 166
6.1 While語句 166
6.2 循環的執行階段 168
6.3 使用While語句的循環 169
6.3.1 計數控制的循環 169
6.3.2 事件控制的循環 171
6.3.3 循環子任務 176
6.4 如何設計循環 182
6.4.1 設計控制流 182
6.4.2 設計循環中的過程 183
6.4.3 循環退出 184
6.5 嵌套邏輯 184
6.6 測試與調試 202
6.6.1 循環測試策略 202
6.6.2 涉及循環的測試計畫 202
6.7 小結 204
第7章 更多控制結構 205
7.1 Switch語句 205
7.2 Do-While語句 210
7.3 For語句 214
7.4 Break和Continue語句 219
7.5 選擇循環語句的原則 220
7.6 更多C++運算符 221
7.6.1 賦值運算符和賦值表達式 222
7.6.2 遞增和遞減運算符 223
7.6.3 位運算符 223
7.6.4 強制轉換操作 224
7.6.5 sizeof運算符 224
7.6.6 ?:運算符 224
7.6.7 運算符優先權 225
7.6.8 算術與關係表達式中的隱式類型轉換 226
7.7 測試與調試 231
7.8 小結 232
第8章 函式 233
8.1 用void函式實現功能分解 233
8.1.1 使用函式的時機 234
8.1.2 模組為什麼需要接口設計 234
8.1.3 設計接口 234
8.1.4 將模組寫為void函式 235
8.2 回顧用戶定義的函式 239
8.2.1 函式調用中的控制流 239
8.2.2 函式形參 240
8.3 void函式的語法與語義 241
8.3.1 函式調用 241
8.3.2 函式聲明和定義 242
8.3.3 局部變數 243
8.3.4 Return語句 244
8.4 形參 246
8.4.1 值參數 246
8.4.2 引用參數 247
8.4.3 使用帶有形參的表達式 253
8.4.4 關於實參列表和形參列表的最後一點提醒 254
8.4.5 將斷言寫為函式文檔 255
8.5 測試與調試 265
8.6 小結 267
第9章 作用域、生存期及函式 268
9.1 標識符的作用域 268
9.1.1 作用域規則 270
9.1.2 變數聲明與定義 272
9.1.3 命名空間 273
9.2 變數的生存期 275
9.3 接口設計 280
9.3.1 副作用 280
9.3.2 全局常量 282
9.4 返回值的函式 284
9.4.1 完整示例 286
9.4.2 布爾函式 289
9.4.3 接口設計與副作用 291
9.4.4 何時使用返回值的函式 292
9.5 賦值、實參傳送、返回函式值中的類型轉
換 293
9.6 測試與調試 302
9.7 小結 306
第10章 用戶定義的數據類型 308
10.1 內置簡單類型 308
10.1.1 數值類型 309
10.1.2 字元 310
10.2 用戶定義的簡單類型 311
10.2.1 Typedef語句 312
10.2.2 枚舉類型 312
10.2.3 命名與匿名數據類型 319
10.3 簡單數據類型與結構化數據類型 320
10.4 記錄(Struct) 321
10.4.1 訪問各個組成項 323
10.4.2 對struct的聚合操作 324
10.4.3 再談struct聲明 325
10.4.4 綁定相似項目 326
10.5 分層記錄 328
10.6 union 330
10.7 指針 331
10.7.1 指針變數 332
10.7.2 指針表達式 334
10.8 引用類型 335
10.9 測試與調試 342
10.9.1 應對輸入錯誤 342
10.9.2 涉及指針的調試 343
10.10 小結 344
第11章 數組 346
11.1 一維數組 346
11.1.1 聲明數組 348
11.1.2 訪問各個數組項 349
11.1.3 出界數組索引 351
11.1.4 在聲明中初始化數組 352
11.1.5 數組聚合操作(的缺乏)  352
11.1.6 聲明和訪問數組的例子 353
11.1.7 在實參中傳送數組 358
11.1.8 數組的注釋 360
11.1.9 對數組使用typedef 363
11.1.10 指針表達式和數組 363
11.1.11 C風格的字元串 364
11.1.12 作為數組的字元串 364
11.1.13 C字元串操作 365
11.1.14 將C字元串轉換為C++字元串  366
11.1.15 使用哪種字元串表示法 366
11.2 記錄的數組 366
11.3 特殊的數組處理 370
11.3.1 子數組處理 370
11.3.2 具有語義內容的索引 372
11.4 二維數組 372
11.5 在實參中傳遞二維數組 375
11.6 處理二維數組 377
11.6.1 對行求和 377
11.6.2 修改後的對行求和 378
11.6.3 對列求和 379
11.6.4 初始化數組 380
11.6.5 列印數組 380
11.7 定義二維數組的另一種方法 382
11.8 多維數組 384
11.9 測試與調試 398
11.9.1 一維數組 398
11.9.2 複雜結構 399
11.9.3 多維數組 400
11.10 小結 401
第12章 類和抽象 402
12.1 抽象數據類型 402
12.2 C++類 405
12.2.1 實現成員函式 408
12.2.2 類、對象和成員 410
12.2.3 對對象的內置操作 411
12.2.4 類作用域 412
12.3 信息隱藏 413
12.3.1 用戶編寫的頭檔案 414
12.3.2 規格說明檔案和實現檔案 415
12.3.3 編譯和連結多檔案程式 419
12.4 什麼是對象 421
12.5 類的設計原則 423
12.5.1 封裝 423
12.5.2 抽象 425
12.5.3 提高可修改性、可重用性的設計 425
12.5.4 可變性 426
12.6 Name ADT 432
12.6.1 ADT的規格說明 433
12.6.2 實現檔案 434
12.7 組合 436
12.8 UML圖 440
12.8.1 繪製類的圖 440
12.8.2 繪製類的組合關係圖 441
12.9 測試與調試 446
12.10 小結 450
第13章 基於數組的列表 451
13.1 什麼是列表 451
13.2 作為抽象數據類型的列表 452
13.2.1 改進職責 453
13.2.2 數據表示 454
13.2.3 示例程式 456
13.3 List ADT的實現 459
13.3.1 基本操作 459
13.3.2 插入和刪除 460
13.3.3 順序查找 460
13.3.4 疊代器 461
13.4 有序列表 465
13.4.1 基本操作 466
13.4.2 插入 466
13.4.3 順序查找 468
13.4.4 二分查找 469
13.4.5 刪除 472
13.5 類的有序列表 475
13.5.1 IsThere 476
13.5.2 Insert和Delete  477
13.6 再說UML圖 479
13.7 測試與調試 488
13.8 小結 488
第14章 動態數據和連結列表 489
14.1 動態數據 489
14.1.1 分配動態數據 489
14.1.2 刪除動態數據 491
14.1.3 常量和動態數據 494
14.2 順序結構與連結結構 495
14.3 創建動態連結列表:練習示例 496
14.4 ADT列表的動態實現 501
14.4.1 創建一個空連結列表 502
14.4.2 向連結列表中插入 503
14.4.3 連結列表的遍歷 504
14.4.4 從連結列表中刪除 505
14.4.5 復位列表 507
14.4.6 獲取下一項目 507
14.4.7 檢查連結列表是否已滿 507
14.4.8 搜尋列表 507
14.5 析構函式和複製構造函式 511
14.5.1 析構函式 511
14.5.2 淺複製與深複製 511
14.5.3 複製構造函式 513
14.6 有序連結列表 515
14.6.1 插入(20)  516
14.6.2 插入(60)(從循環處開始)   517
14.6.3 插入(100)  518
14.6.4 從連結列表中刪除 519
14.6.5 刪除(30)  520
14.6.6 刪除(50)  520
14.7 測試和調試 523
14.8 小結 524
第15章 繼承、多態和面向對象的設計.525
15.1 面向對象的程式設計 525
15.2 繼承 526
15.2.1 類比 527
15.2.2 繼承和面向對象的設計過程528
15.2.3 由一個類派生另一個類 529
15.2.4 ExpandedEntry類的規格說明530
15.2.5 ExpandedEntry類的實現 531
15.2.6 構造函式執行順序 535
15.3 動態綁定和虛函式 540
15.3.1 切去問題 540
15.3.2 虛函式 542
15.4 面向對象的設計 543
15.4.1 自由討論 544
15.4.2 篩選 544
15.4.3 情景探究 545
15.4.4 職責算法 546
15.4.5 結語 546
15.5 實現設計 547
15.6 測試與調試 562
15.7 小結 563
第16章 模板、運算符重載和異常 564
16.1 模板類 564
16.1.1 定義類模板 565
16.1.2 實例化類模板 566
16.1.3 實現輸入參數的另一種方式:const引用 568
16.1.4 程式代碼的組織 568
16.1.5 一句提醒 573
16.2 泛型函式 574
16.2.1 函式重載 574
16.2.2 在類的外部定義函式模板 575
16.2.3 實例化函式模板 575
16.3 運算符重載 576
16.4 異常 579
16.4.1 throw語句 580
16.4.2 try-catch語句 581
16.4.3 非局部異常處理程式 583
16.4.4 重新拋出異常 585
16.4.5 標準異常 585
16.5 測試與調試 601
16.6 小結 602
第17章 使用標準模板庫的數據結構簡介  603
17.1 抽象數據結構與實現 603
17.2 其他線性結構 605
17.2.1 棧 606
17.2.2 佇列 607
17.2.3 優先權佇列 608
17.3 雙向線性結構 609
17.3.1 雙向列表 609
17.3.2 雙端佇列 609
17.4 STL簡介 610
17.4.1 疊代器 611
17.4.2 vector模板 612
17.4.3 list模板 616
17.4.4 stack模板 618
17.4.5 queue模板 620
17.4.6 priority_queue模板 621
17.4.7 deque模板 622
17.5 非線性結構 632
17.5.1 二叉樹 633
17.5.2 散列表 635
17.6 關聯容器 637
17.6.1 set模板 637
17.6.2 map模板 640
17.7 測試與調試 652
17.8 小結 652
第18章 遞歸 654
18.1 什麼是遞歸 654
18.2 使用簡單變數的遞歸算法 657
18.3 漢諾塔 659
18.4 使用結構化變數的遞歸算法 662
18.5 使用指針變數的遞歸 668
18.5.1 按逆序輸出動態連結列表 668
18.5.2 複製動態連結列表 670
18.6 選擇遞歸還是疊代 673
18.7 測試與調試 679
18.8 小結 680
附錄A 保留字 681
附錄B 運算符優先權 682
附錄C 標準庫例程選編 683
附錄D 閱讀本書時使用標準化之前的C++版本 692
附錄E 字元集 695
附錄F 程式風格、格式設定和文檔 697
附錄G 浮點數補議 702
附錄H 使用C字元串 709
附錄I C++ char常量 715

相關詞條

熱門詞條

聯絡我們