目 錄
Introduction to C++ Programming and Data Structures, Fifth Edition
第1章 計算機、程序和C++概述 1
1.1 簡介 1
1.2 什么是計算機 2
1.2.1 中央處理器 3
1.2.2 比特和字節(jié) 4
1.2.3 內存 5
1.2.4 存儲設備 6
1.2.5 輸入和輸出設備 8
1.2.6 通信設備 9
1.3 程序設計語言 10
1.3.1 機器語言 10
1.3.2 匯編語言 10
1.3.3 高級語言 11
1.4 操作系統(tǒng) 15
1.4.1 控制和監(jiān)視系統(tǒng)活動 16
1.4.2 分配和派發(fā)系統(tǒng)資源 16
1.4.3 調度操作 17
1.5 C++的歷史 18
1.6 一個簡單的C++程序 19
1.7 C++程序開發(fā)周期 26
1.8 程序設計風格和文檔 29
1.8.1 適當?shù)淖⑨尯妥⑨岋L格 30
1.8.2 適當?shù)目s進和間距 30
1.8.3 塊樣式 30
1.9 程序設計錯誤 31
1.9.1 語法錯誤 32
1.9.2 運行時錯誤 33
1.9.3 邏輯錯誤 34
1.9.4 常見錯誤 35
關鍵術語 37
章節(jié)總結 38
編程練習 39
第2章 程序設計初步 43
2.1 簡介 44
2.2 編寫一個簡單程序 44
2.3 從鍵盤讀取輸入 48
2.4 標識符 52
2.5 變量 53
2.6 賦值語句和賦值表達式 56
2.7 命名常量 58
2.8 數(shù)值數(shù)據(jù)類型和操作 61
2.8.1 數(shù)值字面量 66
2.8.2 數(shù)值運算符 67
2.8.3 指數(shù)運算 72
2.9 計算表達式和運算符優(yōu)先級 73
2.10 案例研究:顯示當前時間 75
2.11 復合賦值運算符 78
2.12 遞增和遞減運算符 80
2.13 數(shù)值類型轉換 84
2.14 軟件開發(fā)過程 88
2.15 案例研究:計算貨幣單位 93
2.16 常見錯誤 97
關鍵術語 99
章節(jié)總結 100
編程練習 101
第3章 選擇 114
3.1 簡介 115
3.2 bool數(shù)據(jù)類型 115
3.3 if語句 118
3.4 雙分支if-else語句 121
3.5 嵌套if和多分支if-else
語句 124
3.6 常見錯誤和陷阱 128
3.7 案例研究:計算體重指數(shù) 134
3.8 案例研究:計算稅費 137
3.9 生成隨機數(shù) 141
3.10 邏輯運算符 144
3.11 案例研究:確定閏年 151
3.12 案例研究:彩票 152
3.13 switch語句 155
3.14 條件運算符 160
3.15 運算符優(yōu)先級和結合律 162
3.16 調試 164
關鍵術語 166
章節(jié)總結 166
編程練習 167
第4章 數(shù)學函數(shù)、字符和
字符串 183
4.1 簡介 184
4.2 數(shù)學函數(shù) 184
4.2.1 三角函數(shù) 184
4.2.2 指數(shù)函數(shù) 186
4.2.3 取整函數(shù) 188
4.2.4 min、max和abs函數(shù) 189
4.2.5 案例研究:計算三角形的
角度 190
4.3 字符數(shù)據(jù)類型和運算 192
4.3.1 ASCII碼 192
4.3.2 從鍵盤讀取字符 194
4.3.3 特殊字符的轉義序列 194
4.3.4 char型數(shù)據(jù)和數(shù)值型數(shù)據(jù)
之間的轉換 196
4.3.5 字符的比較和檢測 199
4.4 案例研究:生成隨機字符 201
4.5 案例研究:猜生日 204
4.6 字符函數(shù) 206
4.7 案例研究:將十六進制數(shù)轉換為
十進制數(shù) 209
4.8 string類型 212
4.8.1 字符串索引和下標運算符 214
4.8.2 連接字符串 215
4.8.3 比較字符串 216
4.8.4 讀取字符串 217
4.9 案例研究:使用字符串修改彩票
程序 222
4.10 格式化控制臺輸出 224
4.10.1 setprecision(n)
操縱器 227
4.10.2 fixed操縱器 228
4.10.3 showpoint操縱器 229
4.10.4 setw(width)操縱器 229
4.10.5 left和right操縱器 231
4.11 簡單文件輸入和輸出 235
4.11.1 寫入文件 235
4.11.2 從文件中讀取 237
關鍵術語 239
章節(jié)總結 240
編程練習 240
第5章 循環(huán) 252
5.1 簡介 252
5.2 while循環(huán) 253
5.3 案例研究:猜數(shù)字 259
5.4 循環(huán)設計策略 264
5.5 使用用戶確認或哨兵值控制
循環(huán) 266
5.6 輸入和輸出重定向以及從文件中
讀取所有數(shù)據(jù) 270
5.7 do-while循環(huán) 272
5.8 for循環(huán) 277
5.9 使用哪個循環(huán) 282
5.10 嵌套循環(huán) 286
5.11 最小化數(shù)值誤差 290
5.12 案例研究 291
5.12.1 案例研究:求最大公約數(shù) 291
5.12.2 案例研究:預測未來學費 294
5.12.3 案例研究:將十進制數(shù)
轉換為十六進制數(shù) 296
5.13 關鍵字break和continue 299
5.14 案例研究:檢查回文 306
5.15 案例研究:顯示質數(shù) 309
關鍵術語 312
章節(jié)總結 313
編程練習 313
第6章 函數(shù) 332
6.1 簡介 332
6.2 定義函數(shù) 334
6.3 調用函數(shù) 337
6.4 void函數(shù) 341
6.5 通過值傳遞參數(shù) 348
6.6 模塊化代碼 349
6.7 重載函數(shù) 355
6.8 函數(shù)原型 360
6.9 默認參數(shù) 362
6.10 內聯(lián)函數(shù) 364
6.11 局部、全局和靜態(tài)局部變量 367
6.11.1 for循環(huán)中的變量作用域 370
6.11.2 靜態(tài)局部變量 371
6.12 通過引用傳遞參數(shù) 374
6.13 常量引用參數(shù) 386
6.14 案例研究:將十六進制數(shù)轉換
為十進制數(shù) 386
6.15 函數(shù)抽象和逐步細化 390
6.15.1 自頂向下設計 392
6.15.2 自頂向下或自底向上實現(xiàn) 394
6.15.3 實現(xiàn)細節(jié) 394
6.15.4 逐步細化的好處 397
關鍵術語 398
章節(jié)總結 398
編程練習 400
第7章 一維數(shù)組和C字符串 419
7.1 簡介 420
7.2 數(shù)組基礎知識 420
7.2.1 聲明數(shù)組 420
7.2.2 訪問數(shù)組元素 422
7.2.3 數(shù)組初始化語句 424
7.2.4 處理數(shù)組 425
7.2.5 foreach循環(huán) 429
7.3 案例研究:分析數(shù)字 431
7.4 案例研究:一副牌 434
7.5 將數(shù)組傳遞給函數(shù) 437
7.6 防止函數(shù)中數(shù)組參數(shù)的更改 442
7.7 從函數(shù)返回數(shù)組 444
7.8 案例研究:統(tǒng)計每個字母的出現(xiàn)
次數(shù) 446
7.9 查找數(shù)組 449
7.9.1 線性查找法 450
7.9.2 二分查找法 451
7.10 數(shù)組排序 456
7.11 C字符串 460
7.11.1 C字符串的輸入和輸出 461
7.11.2 C字符串函數(shù) 462
7.11.3 用strcpy和strncpy
復制字符串 465
7.11.4 用strcat和strncat
連接字符串 466
7.11.5 比較字符串 467
7.11.6 字符串與C字符串相互
轉換 469
7.11.7 將字符串轉換為數(shù)字 469
7.12 將數(shù)字轉換為字符串 470
關鍵術語 471
章節(jié)總結 471
編程練習 472
第8章 多維數(shù)組 492
8.1 簡介 492
8.2 聲明二維數(shù)組 493
8.3 處理二維數(shù)組 496
8.4 將二維數(shù)組傳遞給函數(shù) 499
8.5 案例研究:對選擇題測驗評分 502
8.6 案例研究:尋找最近點對 505
8.7 案例研究:數(shù)獨 508
8.8 多維數(shù)組 513
8.8.1 案例研究:每日溫度和
濕度 514
8.8.2 案例研究:猜測生日 516
關鍵術語 519
章節(jié)總結 519
編程練習 519
第9章 對象和類 540
9.1 簡介 540
9.2 為對象定義類 541
9.3 示例:定義類和創(chuàng)建對象 543
9.4 構造函數(shù) 548
9.5 構造和使用對象 549
9.6 將類定義與實現(xiàn)分離 553
9.7 防止多重包含 557
9.8 類中的內聯(lián)函數(shù) 559
9.9 數(shù)據(jù)字段封裝 560
9.10 變量作用域 564
9.11 類抽象和封裝 566
關鍵術語 573
章節(jié)總結 574
編程練習 575
第10章 面向對象思維 581
10.1 簡介 581
10.2 string類 582
10.2.1 構造字符串 582
10.2.2 追加字符串 583
10.2.3 字符串賦值 584
10.2.4 函數(shù)at、clear、erase、empty、back和front 586
10.2.5 函數(shù)length、size、capacity和c_str() 587
10.2.6 比較字符串 588
10.2.7 獲取子字符串 589
10.2.8 在字符串中查找 590
10.2.9 插入和替換字符串 591
10.2.10 字符串運算符 593
10.2.11 用stringstream將
數(shù)字轉換為字符串 596
10.2.12 拆分字符串 596
10.2.13 案例研究:替換
字符串 597
10.3 將對象傳遞給函數(shù) 599
10.4 對象數(shù)組 603
10.5 實例成員和靜態(tài)成員 605
10.6 常量成員函數(shù) 612
10.7 面向對象的思想 616
10.8 類關系 622
10.8.1 關聯(lián) 622
10.8.2 聚合和組合 623
10.9 案例研究:
StackOfIntegers類 626
10.10 構造函數(shù)初始化列表 629
10.11 類設計指南 634
10.11.1 內聚性 635
10.11.2 一致性 635
10.11.3 封裝性 635
10.11.4 清晰性 635
10.11.5 完整性 636
10.11.6 實例與靜態(tài) 636
關鍵術語 637
章節(jié)總結 637
編程練習 638
第11章 指針與動態(tài)內存管理 646
11.1 簡介 647
11.2 指針基礎 647
11.3 使用typedef關鍵字定義
同義類型 655
11.4 將const與指針一起使用 656
11.5 數(shù)組和指針 658
11.6 在函數(shù)調用中傳遞指針參數(shù) 663
11.7 從函數(shù)返回指針 667
11.8 有用的數(shù)組函數(shù) 669
11.9 動態(tài)持久內存分配 672
11.10 創(chuàng)建和訪問動態(tài)對象 678
11.11 this指針 680
11.12 析構函數(shù) 681
11.13 案例研究:Course類 686
11.14 復制構造函數(shù) 690
11.15 自定義復制構造函數(shù) 694
關鍵術語 698
章