本書采用C++語(yǔ)言來(lái)講解面向?qū)ο缶幊,在介紹C++語(yǔ)法的基礎(chǔ)上,還引入了數(shù)據(jù)結(jié)構(gòu)、設(shè)計(jì)模式等內(nèi)容。全書篇章結(jié)構(gòu)精良、組織有序、概念清晰,圍繞教學(xué)需求展開(kāi)內(nèi)容,程序文檔形式一致,為學(xué)生日后在學(xué)術(shù)界和專業(yè)領(lǐng)域承擔(dān)程序設(shè)計(jì)方面的工作打好了基礎(chǔ)。
出版者的話
譯者序
前言
第1章 計(jì)算機(jī)與程序設(shè)計(jì)語(yǔ)言導(dǎo)論 1
1.1 計(jì)算機(jī)系統(tǒng) 1
1.1.1 計(jì)算機(jī)硬件 1
1.1.2 計(jì)算機(jī)軟件 4
1.2 計(jì)算機(jī)語(yǔ)言 4
1.2.1 機(jī)器語(yǔ)言 4
1.2.2 符號(hào)語(yǔ)言 5
1.2.3 高級(jí)語(yǔ)言 5
1.3 計(jì)算機(jī)語(yǔ)言范式 5
1.3.1 面向過(guò)程的程序設(shè)計(jì)語(yǔ)言范式 6
1.3.2 面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言范式 7
1.3.3 函數(shù)式程序設(shè)計(jì)語(yǔ)言范式 7
1.3.4 邏輯式程序設(shè)計(jì)語(yǔ)言范式 8
1.3.5 C++語(yǔ)言中包含的范式 8
1.4 程序設(shè)計(jì) 8
1.4.1 理解問(wèn)題 9
1.4.2 開(kāi)發(fā)解決方案 9
1.5 程序開(kāi)發(fā) 11
1.5.1 編寫和編輯程序 11
1.5.2 編譯程序 12
1.5.3 鏈接程序 12
1.5.4 執(zhí)行程序 12
1.6 測(cè)試 12
1.6.1 設(shè)計(jì)測(cè)試數(shù)據(jù) 12
1.6.2 程序錯(cuò)誤 13
本章小結(jié) 13
思考題 14
第2章 C++程序設(shè)計(jì)基礎(chǔ) 16
2.1 C++程序 16
2.1.1 第一個(gè)程序 16
2.1.2 第二個(gè)程序 20
2.2 變量、值和常量 22
2.2.1 變量 22
2.2.2 值 22
2.2.3 常量 26
2.3 C++程序的組成部分 26
2.3.1 標(biāo)記符 27
2.3.2 注釋 29
2.4 數(shù)據(jù)類型 30
2.4.1 整數(shù)類型 30
2.4.2 字符類型 36
2.4.3 布爾類型 38
2.4.4 浮點(diǎn)類型 39
2.4.5 void類型 40
2.4.6 字符串類 41
本章小結(jié) 42
思考題 42
編程題 47
第3章 表達(dá)式和語(yǔ)句 48
3.1 表達(dá)式 48
3.1.1 基本表達(dá)式 49
3.1.2 一元表達(dá)式 51
3.1.3 乘法類表達(dá)式 52
3.1.4 加法類表達(dá)式 54
3.1.5 賦值表達(dá)式 55
3.1.6 左值和右值的概念 57
3.2 類型轉(zhuǎn)換 57
3.2.1 隱式類型轉(zhuǎn)換 58
3.2.2 顯式類型轉(zhuǎn)換(強(qiáng)制轉(zhuǎn)換) 61
3.3 表達(dá)式的求值順序 62
3.3.1 優(yōu)先級(jí) 62
3.3.2 結(jié)合性 65
3.4 上溢和下溢 66
3.4.1 整數(shù)的上溢和下溢 66
3.4.2 浮點(diǎn)數(shù)的上溢和下溢 68
3.5 格式化數(shù)據(jù) 69
3.5.1 用于輸出的操作符 69
3.5.2 用于輸入的操作符 74
3.6 語(yǔ)句 75
3.6.1 聲明語(yǔ)句 76
3.6.2 表達(dá)式語(yǔ)句 77
3.6.3 空語(yǔ)句 78
3.6.4 復(fù)合語(yǔ)句 78
3.6.5 返回語(yǔ)句 79
3.7 程序設(shè)計(jì) 80
3.7.1 提取浮點(diǎn)數(shù)的整數(shù)部分和小數(shù)部分 80
3.7.2 提取整數(shù)的個(gè)位數(shù) 82
3.7.3 把時(shí)間分解為時(shí)分秒 83
3.7.4 計(jì)算平均值和偏差 84
本章小結(jié) 86
思考題 86
編程題 90
第4章 選擇結(jié)構(gòu) 92
4.1 簡(jiǎn)單選擇結(jié)構(gòu) 92
4.1.1 關(guān)系和等性表達(dá)式 92
4.1.2 單分支選擇結(jié)構(gòu):if語(yǔ)句 93
4.1.3 雙分支選擇結(jié)構(gòu):if-else語(yǔ)句 97
4.1.4 多分支選擇結(jié)構(gòu) 101
4.2 復(fù)雜條件決策 103
4.2.1 邏輯表達(dá)式 104
4.2.2 邏輯表達(dá)式的應(yīng)用 105
4.3 基于特定值的選擇結(jié)構(gòu) 111
4.3.1 switch語(yǔ)句 111
4.4 條件表達(dá)式 117
4.4.1 條件表達(dá)式的結(jié)構(gòu) 117
4.4.2 比較 118
4.5 程序設(shè)計(jì) 119
4.5.1 學(xué)生成績(jī) 119
4.5.2 計(jì)算給定收入的稅款 122
4.5.3 日期編號(hào) 124
本章小結(jié) 126
思考題 126
編程題 128
第5章 循環(huán)結(jié)構(gòu) 130
5.1 概述 130
5.1.1 前綴表達(dá)式和后綴表達(dá)式 130
5.1.2 循環(huán)語(yǔ)句 132
5.2 while語(yǔ)句 132
5.2.1 計(jì)數(shù)器控制while語(yǔ)句 133
5.2.2 事件控制while語(yǔ)句 138
5.2.3 while語(yǔ)句分析 144
5.3 for語(yǔ)句 144
5.3.1 循環(huán)頭 145
5.3.2 循環(huán)體 145
5.4 do-while語(yǔ)句 148
5.4.1 事件控制的循環(huán)結(jié)構(gòu) 149
5.4.2 do-while循環(huán)結(jié)構(gòu)的分析 151
5.5 有關(guān)循環(huán)結(jié)構(gòu)的詳細(xì)信息 152
5.5.1 三種循環(huán)結(jié)構(gòu)的比較 152
5.5.2 嵌套循環(huán) 152
5.6 其他相關(guān)語(yǔ)句 155
5.6.1 return語(yǔ)句 155
5.6.2 break語(yǔ)句 157
5.6.3 continue語(yǔ)句 157
5.6.4 goto語(yǔ)句 158
5.7 程序設(shè)計(jì) 158
5.7.1 累加和與累乘積 158
5.7.2 階乘 160
5.7.3 乘冪 162
5.7.4 最小值和最大值 164
5.7.5 any或者all查詢 166
本章小結(jié) 168
思考題 169
編程題 171
第6章 函數(shù) 173
6.1 概述 173
6.1.1 函數(shù)的優(yōu)點(diǎn) 174
6.1.2 函數(shù)的定義、聲明和調(diào)用 174
6.1.3 庫(kù)函數(shù)和用戶自定義函數(shù) 176
6.2 庫(kù)函數(shù) 177
6.2.1 數(shù)學(xué)函數(shù) 177
6.2.2 字符函數(shù) 181
6.2.3 處理時(shí)間 183
6.2.4 隨機(jī)數(shù)生成 184
6.3 用戶自定義函數(shù) 186
6.3.1 函數(shù)的四種類型 186
6.3.2 使用聲明 192
6.4 數(shù)據(jù)交換 194
6.4.1 傳遞數(shù)據(jù) 195
6.4.2 返回值 199
6.4.3 綜合示例 200
6.5 有關(guān)參數(shù)的進(jìn)一步討論 203
6.5.1 默認(rèn)參數(shù) 203
6.5.2 函數(shù)重載 204
6.6 作用域和生命周期 206
6.6.1 作用域 206
6.6.2 生命周期 211
6.7 程序設(shè)計(jì) 213
6.7.1 固定投資的未來(lái)價(jià)值 214
6.7.2 周期性投資的未來(lái)價(jià)值 217
本章小結(jié) 221
思考題 221
編程題 224
第7章 用戶自定義類型:類 227
7.1 概述 227
7.1.1 現(xiàn)實(shí)生活中的類型和實(shí)例 227
7.1.2 程序中的類和對(duì)象 228
7.1.3 比較 228
7.2 類 229
7.2.1 一個(gè)示例 229
7.2.2 類定義 231
7.2.3 成員函數(shù)定義 233
7.2.4 內(nèi)聯(lián)函數(shù) 234
7.2.5 應(yīng)用程序 235
7.2.6 結(jié)構(gòu) 235
7.3 構(gòu)造函數(shù)和析構(gòu)函數(shù) 236
7.3.1 構(gòu)造函數(shù) 236
7.3.2 析構(gòu)函數(shù) 238
7.3.3 創(chuàng)建和銷毀對(duì)象 239
7.3.4 必需的成員函數(shù) 239
7.4 實(shí)例成員 245
7.4.1 實(shí)例數(shù)據(jù)成員 245
7.4.2 實(shí)例成員函數(shù) 245
7.4.3 類不變式 249
7.5 靜態(tài)成員 252
7.5.1 靜態(tài)數(shù)據(jù)成員 252
7.5.2 靜態(tài)成員函數(shù) 253
7.6 面向?qū)ο蟮某绦蛟O(shè)計(jì) 259
7.6.1 獨(dú)立文件 259
7.6.2 獨(dú)立編譯 260
7.6.3 防止多重包含 265
7.6.4 封裝 265
7.7 設(shè)計(jì)類 266
7.7.1 表示分?jǐn)?shù)的類 267
7.7.2 表示時(shí)間的類 272
本章小結(jié) 276
思考題 276
編程題 278
第8章 數(shù)組 281
8.1 一維數(shù)組 281
8.1.1 數(shù)組屬性 281
8.1.2 聲明、分配和初始化 282
8.1.3 訪問(wèn)數(shù)組元素 284
8.2 有關(guān)數(shù)組的進(jìn)一步討論 290
8.2.1 訪問(wèn)操作 290
8.2.2 修改操作 293
8.2.3 使用帶數(shù)組的函數(shù) 295
8.2.4 并行數(shù)組 298
8.3 多維數(shù)組 302
8.3.1 二維數(shù)組 302
8.3.2 三維數(shù)組 306
8.4 程序設(shè)計(jì) 307
8.4.1 頻率數(shù)組和直方圖 307
8.4.2 線性轉(zhuǎn)換 309
本章小結(jié) 312
思考題 313
編程題 314
第9章 引用、指針和內(nèi)存管理 316
9.1 引用 316
9.1.1 概述 316
9.1.2 檢索值 318
9.1.3 修改值 319
9.1.4 引用的應(yīng)用 320
9.2 指針 325
9.2.1 地址 325
9.2.2 指針類型和指針變量 327
9.2.3 檢索值 329
9.2.4 使用const修飾符 329
9.2.5 指向指針的指針 331
9.2.6 兩種特殊的指針 331
9.2.7 指針的應(yīng)用 332
9.3 數(shù)組和指針 336
9.3.1 一維數(shù)組和指針 336
9.3.2 二維數(shù)組和指針 342
9.4 內(nèi)存管理 344
9.4.1 代碼內(nèi)存 344
9.4.2 靜態(tài)內(nèi)存 344
9.4.3 棧內(nèi)存 345
9.4.4 堆內(nèi)存 346
9.4.5 二維數(shù)組 349
9.5 程序設(shè)計(jì) 352
9.5.1 課程類 352
9.5.2 矩陣類 357
本章小結(jié) 362
思考題 362
編程題 366
第10章 字符串 368
10.1 C字符串 368
10.1.1 C字符串庫(kù) 369
10.1.2 C字符串的操作 369
10.2 C++字符串類 381
10.2.1 總體設(shè)計(jì)思路 382
10.2.2 C++字符串庫(kù) 383
10.2.3 C++字符串定義的操作 384
10.3 程序設(shè)計(jì) 402
10.3.1 四個(gè)自定義函數(shù) 402
10.3.2 數(shù)值進(jìn)制編碼系統(tǒng)的轉(zhuǎn)換 404
本章小結(jié) 409
思考題 409
編程題 410
第11章 類之間的關(guān)系 412
11.1 繼承關(guān)系 412
11.1.1 總體思路 412
11.1.2 公共繼承 413
11.1.3 有關(guān)公共繼承的進(jìn)一步討論 424
11.1.4 繼承的三種類型 430
11.2 關(guān)聯(lián)關(guān)系 431
11.2.1 聚合關(guān)系 432
11.2.2 組合關(guān)系 435
11.3 依賴關(guān)系 438
11.3.1 UML圖 439
11.3.2 一個(gè)綜合的示例 439
11.4 程序設(shè)計(jì) 443
11.4.1 詞法分析器類 443
11.4.2 注冊(cè) 446
本章小結(jié) 454
思考題 455
編程題 457
第12章 多態(tài)性和其他問(wèn)題 460
12.1 多態(tài)性 460
12.1.1 多態(tài)性的條件 461
12.1.2 構(gòu)造函數(shù)和析構(gòu)函數(shù) 464
12.1.3 綁定 470
12.1.4 運(yùn)行時(shí)類型信息 471
12.2 其他問(wèn)題 472
12.2.1 抽象類 472
12.2.2 多重繼承 482
本章小結(jié) 494
思考題 494
編程題 495
第13章 運(yùn)算符重載 497
13.1 對(duì)象的三種角色 497
13.1.1 宿主對(duì)象 497
13.1.2 參數(shù)對(duì)象 499
13.1.3 返回對(duì)象 500
13.2 重載原理 501
13.2.1 運(yùn)算符的三種類別 502
13.2.2 重載的規(guī)則 503
13.2.3 運(yùn)算符函數(shù) 504
13.3 重載為成員函數(shù) 504
13.3.1 一元運(yùn)算符 504
13.3.2 二元運(yùn)算符 507
13.3.3 其他運(yùn)算符 511
13.4 重載為非成員函數(shù) 517
13.4.1 二元算術(shù)運(yùn)算符 517
13.4.2 等性運(yùn)算符和關(guān)系運(yùn)算符 518
13.4.3 提取運(yùn)算符和插入運(yùn)算符 519
13.5 類型轉(zhuǎn)換 520
13.5.1 基本類型轉(zhuǎn)換為類類型 520
13.5.2 類類型轉(zhuǎn)換為基本類型 521
13.6 設(shè)計(jì)類 521
13.6.1 帶重載運(yùn)算符的Fraction類 521
13.6.2 Date類 530
13.6.3 多項(xiàng)式 536
本章小結(jié) 543
思考題 543
編程題 544
第14章 異常處理 546
14.1 概述 546
14.1.1 錯(cuò)誤處理的傳統(tǒng)方法 546
14.1.2 異常處理的方法 551
14.1.3 異常規(guī)范 558
14.1.4 棧展開(kāi) 559
14.2 類中的異常 560
14.2.1 構(gòu)造函數(shù)中的異常 561
14.2.2 析構(gòu)函數(shù)中的異常 567
14.3 標(biāo)準(zhǔn)異常類 567
14.3.1 邏輯錯(cuò)誤 568
14.3.2 運(yùn)行時(shí)錯(cuò)誤 569
14.3.3 其他五個(gè)類 570
14.3.4 使用標(biāo)準(zhǔn)異常類 571
本章小結(jié) 572
思考題 572
編程題 575
第15章 泛型編程:模板 576
15.1 函數(shù)模板 576
15.1.1 使用函數(shù)族 576
15.1.2 使用函數(shù)模板 577
15.1.3 其他函數(shù)模板版本 580
15.1.4 接口文件和應(yīng)用程序文件 583
15.2 類模板 584
15.2.1 接口和實(shí)現(xiàn) 584
15.2.2 編譯 587
15.2.3 其他問(wèn)題 591
15.2.4 繼承 592
15.2.5 回顧 592
本章小結(jié) 593
思考題 593
編程題 594
第16章 輸入/輸出流 595
16.1 概述 595
16.1.1 流 596
16.1.2 數(shù)據(jù)表示 596
16.1.3 流類 598
16.2 控制臺(tái)流 599
16.2.1 控制臺(tái)對(duì)象 599
16.2.2 流狀態(tài) 600
16.2.3 輸入/輸出 602
16.3 文件流 606
16.3.1 文件輸入/輸出 606
16.3.2 文件打開(kāi)模式 609
16.3.3 其他成員函數(shù) 614
16.3.4 順序訪問(wèn)與隨機(jī)訪問(wèn) 616
16.3.5 二進(jìn)制輸入/輸出 619
16.4 字符串流 625
16.4.1 實(shí)例化 626
16.4.2 應(yīng)用:適配器 627
16.5 格式化數(shù)據(jù) 629
16.5.1 直接使用標(biāo)志、字段和變量 629
16.5.2 預(yù)定義操作符 632
16.5.3 操作符定義 634
16.6 程序設(shè)計(jì) 638
16.6.1 合并兩個(gè)已排序文件 638
16.6.2 對(duì)稱密碼 640
本章小結(jié) 644
思考題 645
編程題 645
第17章 遞歸 647
17.1 概述 647
17.1.1 循環(huán)與遞歸 647
17.1.2 遞歸算法 649
17.1.3 尾部遞歸函數(shù)和非尾部遞歸函數(shù) 657
17.1.4 輔助函數(shù) 658
17.2 遞歸排序和查找 660
17.2.1 快速排序 660
17.2.2 二分查找法 664
17.2.3 漢諾塔 667
17.3 程序設(shè)計(jì) 670
17.3.1 字符串排列 670
17.3.2 素?cái)?shù) 672
本章小結(jié) 675
思考題 675
編程題 677
在線章節(jié)
第18章數(shù)據(jù)結(jié)構(gòu)入門
第19章標(biāo)準(zhǔn)模板庫(kù)
第20章設(shè)計(jì)模式
附錄AUnicode
附錄B進(jìn)制編碼系統(tǒng)
附錄CC++表達(dá)式和運(yùn)算符
附錄D位運(yùn)算
附錄E位域
附錄F預(yù)處理
附錄G名稱空間
附錄H比率
附錄I時(shí)間
附錄JLambda表達(dá)式
附錄K正則表達(dá)式
附錄L智能指針
附錄M隨機(jī)數(shù)生成
附錄N引用
附錄O移動(dòng)與復(fù)制
附錄PC++11概述
附錄Q統(tǒng)一建模語(yǔ)言
附錄R位集