C++程式設計(原書第3版)

C++程式設計(原書第3版)

《C++程式設計(原書第3版)》是2019年7月機械工業出版社出版的圖書,作者是Y.Daniel Liang。

基本介紹

  • 中文名:C++程式設計(原書第3版)
  • 作者:Y.Daniel Liang
  • 出版時間:2019年7月
  • 出版社:機械工業出版社
  • ISBN:9787111485148
  • 定價:79 元
  • 開本:16 開
  • 裝幀:平裝
內容簡介,圖書目錄,

內容簡介

本書採用“問題驅動”、“基礎先行”和“實例和實踐相結合”的方式,闡明了基本的C++特性。本書共分為三部分,第一部分介紹C++程式設計的基本概念,第二部分介紹面向對象程式設計方法,第三部分介紹算法與數據結構方面的內容。為了幫助學生更好地掌握相關知識,本書每章都包括以下模組:目標,引言,關鍵點,檢查點,問題和實例研究,本章小結,線上測驗,程式設計練習,提示、小竅門、警示和教學提示。本書可以作為高等院校計算機及相關專業C++程式設計課程的教材,也可以作為C++程式設計的自學參考書。

圖書目錄

Introduction to Programming with C++, Third Edition
出版者的話
譯者序
前言
致讀者
第一部分 編程基礎
第1章 計算機、程式和C++語言簡介 2
1.1 引言 2
1.2 什麼是計算機 3
1.2.1 CPU 4
1.2.2 位和位元組 4
1.2.3 記憶體 5
1.2.4 存儲設備 5
1.2.5 輸入輸出設備 6
1.2.6 通信設備 7
1.3 程式語言 8
1.3.1 機器語言 8
1.3.2 彙編語言 9
1.3.3 高級語言 9
1.4 作業系統 10
1.4.1 控制和監視系統活動 11
1.4.2 分配和指派系統資源 11
1.4.3 任務調度 11
1.5 C++語言的歷史 11
1.6 一個簡單的C++程式 12
1.7 C++程式開發周期 16
1.8 程式風格和文檔 18
1.8.1 適當的注釋和注釋風格 18
1.8.2 正確的縮進和間距 18
1.9 編程錯誤 19
1.9.1 語法錯誤 19
1.9.2 運行時錯誤 19
1.9.3 邏輯錯誤 20
1.9.4 常見錯誤 20
關鍵術語 22
本章小結 22
線上測驗 23
程式設計練習 23
第2章 程式設計基礎 25
2.1 引言 25
2.2 編寫簡單的程式 25
2.3 從鍵盤讀取輸入 28
2.4 標識符 30
2.5 變數 30
2.6 賦值語句和賦值表達式 32
2.7 命名常量 33
2.8 數值數據類型及其運算 34
2.8.1 數值類型 34
2.8.2 數值文字常量 37
2.8.3 數值運算符 37
2.8.4 指數運算符 38
2.9 算術表達式和運算符優先權 39
2.10 實例研究:顯示當前時間 41
2.11 簡寫運算符 43
2.12 自增、自減運算符 43
2.13 數值類型轉換 45
2.14 軟體開發流程 47
2.15 實例研究:計算給定金額的貨幣數量 51
2.16 常見錯誤 53
關鍵術語 54
本章小結 55
線上測驗 55
程式設計練習 55
第3章 分支語句 60
3.1 引言 60
3.2 bool數據類型 61
3.3 if語句 62
3.4 雙分支的if-else語句 64
3.5 嵌套的if語句和多分支的if-else語句 65
3.6 常見錯誤和陷阱 67
3.7 實例研究:計算身體質量指數 71
3.8 實例研究:計算稅款 73
3.9 生成隨機數 75
3.10 邏輯運算符 77
3.11 實例研究:確定閏年 81
3.12 實例研究:彩票 82
3.13 switch語句 83
3.14 條件表達式 86
3.15 運算符優先權和結合律 88
3.16 調試 89
關鍵術語 89
本章小結 90
線上測驗 90
程式設計練習 90
第4章 數學函式、字元和字元串 99
4.1 引言 99
4.2 數學函式 100
4.2.1 三角函式 100
4.2.2 指數函式 100
4.2.3 近似函式 101
4.2.4 min、max和abs函式 101
4.2.5 實例研究:計算三角形的角 101
4.3 字元數據類型和操作符 103
4.3.1 ASCII碼 103
4.3.2 從鍵盤讀取一個字元 104
4.3.3 特殊字元的轉義序列 104
4.3.4 數值類型和字元類型之間的相互轉換 105
4.3.5 比較和測試字元 106
4.4 實例研究:生成隨機字元 107
4.5 實例研究:猜生日 109
4.6 字元函式 112
4.7 實例研究:十六進制轉換為十進制 113
4.8 字元串類型 114
4.8.1 字元串索引和下標操作符 115
4.8.2 連線字元串 116
4.8.3 比較字元串 116
4.8.4 讀字元串 116
4.9 實例研究:使用字元串修改彩票程式 118
4.10 格式化控制台輸出 119
4.10.1 setprecision(n)操作 120
4.10.2 修改操作 121
4.10.3 showpoint操作 121
4.10.4 setw(width)操作 122
4.10.5 left和right操作 122
4.11 簡單的檔案輸入輸出 123
4.11.1 寫入檔案 124
4.11.2 讀取一個檔案 125
關鍵術語 126
本章小結 126
線上測驗 127
程式設計練習 127
第5章 循環 132
5.1 引言 132
5.2 while循環 133
5.2.1 實例研究:猜數字 135
5.2.2 循環設計策略 138
5.2.3 實例研究:多道減法測試 138
5.2.4 使用用戶的確認控制循環 140
5.2.5 使用標記值控制循環 140
5.2.6 輸入和輸出重定向 141
5.2.7 從一個檔案中讀取所有的數據 142
5.3 do-while循環 144
5.4 for循環 145
5.5 使用哪種循環 149
5.6 嵌套循環 150
5.7 最小化數字錯誤 152
5.8 實例研究 153
5.8.1 求最大公約數 153
5.8.2 預測未來的學費 155
5.8.3 蒙特卡羅模擬 156
5.8.4 十進制轉換為十六進制 156
5.9 關鍵字break和continue 158
5.10 實例研究:檢查回文 161
5.11 實例研究:輸出素數 163
關鍵術語 165
本章小結 165
線上測驗 166
程式設計練習 166
第6章 函式 176
6.1 引言 176
6.2 函式定義 177
6.3 函式調用 178
6.4 無返回值函式 180
6.5 以傳值方式傳遞參數 183
6.6 模組化代碼 184
6.7 函式的重載 186
6.8 函式原型 189
6.9 預設參數 190
6.10 內聯函式 191
6.11 局部、全局和靜態局部變數 192
6.11.1 for循環中變數的作用域 194
6.11.2 靜態局部變數 194
6.12 以引用方式傳遞參數 197
6.13 常量引用參數 205
6.14 實例研究:十六進制轉換為十進制 205
6.15 函式抽象和逐步求精 207
6.15.1 自頂向下設計 208
6.15.2 自頂向下或自底向上實現 209
6.15.3 實現細節 210
6.15.4 逐步求精的好處 214
關鍵術語 214
本章小結 215
線上測驗 215
程式設計練習 215
第7章 一維數組和C字元串 225
7.1 引言 225
7.2 數組基礎 226
7.2.1 聲明數組 226
7.2.2 訪問數組元素 227
7.2.3 數組初始化語句 228
7.2.4 處理數組 229
7.3 問題:彩票號碼 232
7.4 問題:一副紙牌 235
7.5 數組作為函式參數 237
7.6 防止函式修改傳遞參數的數組 238
7.7 數組作為函式值返回 240
7.8 問題:計算每個字元的出現次數 241
7.9 搜尋數組 244
7.9.1 順序搜尋方法 244
7.9.2 二分搜尋方法 245
7.10 排序數組 247
7.11 C字元串 249
7.11.1 輸入和輸出C字元串 249
7.11.2 C字元串函式 250
7.11.3 使用strcpy和strncpy函式複製字元串 251
7.11.4 使用strcat和strncat函式拼接字元串 251
7.11.5 使用strcmp函式比較字元串 252
7.11.6 字元串和數字之間的轉換 252
關鍵術語 253
本章小結 254
線上測驗 254
程式設計練習 254
第8章 多維數組 263
8.1 引言 263
8.2 聲明二維數組 263
8.3 操作二維數組 264
8.4 二維數組作為函式參數 267
8.5 問題:評定多項選擇測試的成績 268
8.6 問題:找最近鄰點對 269
8.7 問題:數獨 271
8.8 多維數組 274
8.8.1 問題:每日溫度與濕度 275
8.8.2 問題:猜生日 277
本章小結 278
線上測驗 278
程式設計練習 278
第二部分 面向對象編程
第9章 對象和類 292
9.1 引言 292
9.2 聲明類 292
9.3 例:定義類和創建對象 294
9.4 構造函式 297
9.5 創建及使用對象 298
9.6 類定義和類實現的分離 301
9.7 避免多次包含 303
9.8 類中的內聯函式 305
9.9 數據域封裝 305
9.10 變數作用域 308
9.11 類抽象和封裝 310
關鍵術語 314
本章小結 314
線上測驗 315
程式設計練習 315
第10章 面向對象思想 318
10.1 引言 318
10.2 string類 318
10.2.1 構造一個字元串 319
10.2.2 追加字元串 319
10.2.3 字元串賦值 319
10.2.4 函式at、clear、erase及empty 320
10.2.5 函式length、size、capacity和c_str( ) 320
10.2.6 字元串比較 321
10.2.7 獲取子串 321
10.2.8 字元串搜尋 322
10.2.9 字元串插入和替換 322
10.2.10 字元串運算符 323
10.2.11 把數字轉換為字元串 324
10.2.12 字元串分割 324
10.2.13 實例研究:字元串替換 324
10.3 對象作為函式參數 327
10.4 對象數組 329
10.5 實例成員和靜態成員 331
10.6 唯讀成員函式 335
10.7 從對象的角度思考 337
10.8 對象合成 342
10.9 實例研究:StackOfIntegers類 344
10.10 類設計準則 346
10.10.1 內聚 346
10.10.2 一致 346
10.10.3 封裝 347
10.10.4 清晰 347
10.10.5 完整 347
10.10.6 實例與靜態 347
關鍵術語 348
本章小結 348
線上測驗 348
程式設計練習 348
第11章 指針及動態記憶體管理 353
11.1 引言 353
11.2 指針基礎 353
11.3 用typedef定義同義類型 359
11.4 常量指針 359
11.5 數組和指針 360
11.6 函式調用時傳遞指針參數 363
11.7 從函式中返回指針 367
11.8 有用的數組函式 368
11.9 動態持久記憶體分配 369
11.10 創建及訪問動態對象 373
11.11 this指針 375
11.12 析構函式 376
11.13 實例研究:Course類 379
11.14 拷貝構造函式 382
11.15 自定義拷貝構造函式 384
關鍵術語 387
本章小結 387
線上測驗 388
程式設計練習 388
第12章 模板、向量和棧 393
12.1 引言 393
12.2 模板基礎 393
12.3 例:一個通用排序函式 397
12.4 模板類 399
12.5 改進Stack類 405
12.6 C++向量類 407
12.7 用vector類替換數組 410
12.8 實例研究:表達式計算 413
關鍵術語 417
本章小結 417
線上測驗 417
程式設計練習 418
第13章 檔案輸入輸出 424
13.1 引言 424
13.2 文本輸入輸出 425
13.2.1 向檔案中寫入數據 425
13.2.2 從檔案中讀取數據 426
13.2.3 檢測檔案是否存在 427
13.2.4 檢測檔案結束 427
13.2.5 讓用戶輸入檔案名稱 429
13.3 格式化輸出 430
13.4 函式:getline、get和put 431
13.5 fstream和檔案打開模式 434
13.6 檢測流狀態 435
13.7 二進制輸入輸出 437
13.7.1 write函式 438
13.7.2 read函式 439
13.7.3 例:二進制數組I/O 440
13.7.4 例:二進制對象I/O 440
13.8 隨機訪問檔案 444
13.9 更新檔案 447
關鍵術語 448
本章小結 448
線上測驗 448
程式設計練習 449
第14章 運算符重載 452
14.1 引言 452
14.2 Rational類 453
14.3 運算符函式 458
14.4 重載[ ]運算符 460
14.5 重載簡寫運算符 462
14.6 重載一元運算符 462
14.7 重載++和--運算符 463
14.8 友元函式和友元類 464
14.9 重載<<和>>運算符 466
14.10 自動類型轉換 468
14.10.1 轉換為基本數據類型 468
14.10.2 轉換為對象類型 469
14.11 定義重載運算符的非成員函式 469
14.12 帶有重載運算符函式的Rational類 470
14.13 重載賦值運算符 477
關鍵術語 481
本章小結 481
線上測驗 481
程式設計練習 481
第15章 繼承和多態 484
15.1 引言 484
15.2 基類和派生類 484
15.3 泛型程式設計 492
15.4 構造函式和析構函式 493
15.4.1 調用基類構造函式 493
15.4.2 構造函式鏈和析構函式鏈 494
15.5 函式重定義 497
15.6 多態 499
15.7 虛函式和動態綁定 500
15.8 關鍵字protected 503
15.9 抽象類和純虛函式 504
15.10 類型轉換:static_cast 和 dynamic_cast 512
關鍵術語 515
本章小結 516
線上測驗 516
程式設計練習 517
第16章 異常處理 518
16.1 引言 518
16.2 異常處理概述 518
16.3 異常處理機制的優點 522
16.4 異常類 523
16.5 自定義異常類 527
16.6 多重異常捕獲 531
16.7 異常的傳播 535
16.8 重拋出異常 537
16.9 異常說明 538
16.10 何時使用異常機制 539
關鍵術語 540
本章小結 540
線上測驗 540
程式設計練習 541
第三部分 算法和數據結構
第17章 遞歸 544
17.1 引言 544
17.2 例:階乘 545
17.3 實例研究:斐波那契數 548
17.4 用遞歸方法求解問題 550
17.5 遞歸輔助函式 552
17.5.1 選擇排序 553
17.5.2 二分搜尋 555
17.6 漢諾塔 556
17.7 八皇后問題 559
17.8 遞歸與循環 561
17.9 尾遞歸 562
關鍵術語 563
本章小結 563
線上測驗 563
程式設計練習 563
第18章 開發高效的算法
第19章 排序
第20章 鍊表、佇列和優先佇列
第21章 二分搜尋樹
第22章 STL容器
第23章 STL算法
第24章 圖及其套用
第25章 加權圖及其套用
第26章 平衡二叉樹和伸展樹
附錄
附錄A C++關鍵字 568
附錄B ASCII字元集 569
附錄C 運算符優先權表 570
附錄D 數字系統 572
附錄E 位運算 575

相關詞條

熱門詞條

聯絡我們