《計(jì)算機(jī)科學(xué)叢書:C++程序設(shè)計(jì)(原書第3版)》采用“問題驅(qū)動(dòng)”、“基礎(chǔ)先行”和“實(shí)例和實(shí)踐相結(jié)合”的方式,闡明了基本的C++特性!队(jì)算機(jī)科學(xué)叢書:C++程序設(shè)計(jì)(原書第3版)》共分為三部分,第一部分介紹C++程序設(shè)計(jì)的基本概念,第二部分介紹面向?qū)ο蟪绦蛟O(shè)計(jì)方法,第三部分介紹算法與數(shù)據(jù)結(jié)構(gòu)方面的內(nèi)容。為了幫助學(xué)生更好地掌握相關(guān)知識(shí),《計(jì)算機(jī)科學(xué)叢書:C++程序設(shè)計(jì)(原書第3版)》每章都包括以下模塊:目標(biāo),引言,關(guān)鍵點(diǎn),檢查點(diǎn),問題和實(shí)例研究,本章小結(jié),在線測驗(yàn),程序設(shè)計(jì)練習(xí),提示、小竅門、警示和教學(xué)提示。
《計(jì)算機(jī)科學(xué)叢書:C++程序設(shè)計(jì)(原書第3版)》可以作為高等院校計(jì)算機(jī)及相關(guān)專業(yè)C++程序設(shè)計(jì)課程的教材,也可以作為C++程序設(shè)計(jì)的自學(xué)參考書。
《計(jì)算機(jī)科學(xué)叢書:C++程序設(shè)計(jì)(原書第3版)》保持了Liang博士系列叢書中一貫的標(biāo)志性的教與學(xué)的哲學(xué):以實(shí)例教,由實(shí)踐學(xué)。通過使用他所提出的已經(jīng)經(jīng)過實(shí)踐檢驗(yàn)的“基礎(chǔ)先行”的方法,Liang博士在本書中通過大量實(shí)例闡明了基本的C++特性,使得學(xué)生可以通過實(shí)踐來更有效地進(jìn)行學(xué)習(xí)。
《計(jì)算機(jī)科學(xué)叢書:C++程序設(shè)計(jì)(原書第3版)》首先幫助學(xué)生循序漸進(jìn)地學(xué)習(xí)所有必需和重要的基本概念,然后再進(jìn)入面向?qū)ο蟪绦蛟O(shè)計(jì)方法的學(xué)習(xí),最終掌握構(gòu)建具有異常處理和輸入輸出功能的有意義的應(yīng)用程序的方法;靖拍疃际鞘褂煤喍糖椅说膶(shí)例來進(jìn)行闡述的。他還在實(shí)例研究中給出了一些較大規(guī)模的實(shí)例,并附以整體的分析討論和詳細(xì)的逐行注解。貫穿全書的實(shí)例和練習(xí)都以問題求解為中心,力圖培養(yǎng)學(xué)生開發(fā)可重用組件并用之創(chuàng)建實(shí)際項(xiàng)目的意識(shí)。
與第2版相比,第3版在文字表達(dá)、內(nèi)容組織、課后練習(xí)和附加材料方面都得到了顯著改善。
第3版有以下創(chuàng)新特色:
按照邏輯順序,重新組織了各章的內(nèi)容和主題,增加了許多有趣的實(shí)例,以及引人入勝的課后練習(xí)。
在每一節(jié)的開始,以“關(guān)鍵點(diǎn)”的形式說明重要的概念和內(nèi)容;在每一節(jié)的結(jié)束,以“檢查點(diǎn)”的形式檢查學(xué)生對(duì)于內(nèi)容的掌握程度。
第4章就介紹了string類型,以便學(xué)生能夠盡早使用該類型編寫程序。
列出常見的編程錯(cuò)誤和陷阱,讓學(xué)生避免犯這些錯(cuò)誤。
Y. Daniel Liang,普度大學(xué)終身教授,阿姆斯特朗亞特蘭大州立大學(xué)計(jì)算機(jī)科學(xué)系教授。他所編寫的Java教程在美國大學(xué)Java課程中采用率最高,同時(shí)他還兼任Prentice Hall Java系列叢書的編輯。
出版者的話
譯者序
前言
致讀者
第一部分 編程基礎(chǔ)
第1章 計(jì)算機(jī)、程序和C++語言簡介
1.1 引言
1.2 什么是計(jì)算機(jī)
1.2.1 CPU
1.2.2 位和字節(jié)
1.2.3 內(nèi)存
1.2.4 存儲(chǔ)設(shè)備
1.2.5 輸入輸出設(shè)備
1.2.6 通信設(shè)備
1.3 編程語言
1.3.1 機(jī)器語言
1.3.2 匯編語言
1.3.3 高級(jí)語言
1.4 操作系統(tǒng)
1.4.1 控制和監(jiān)視系統(tǒng)活動(dòng)
1.4.2 分配和指派系統(tǒng)資源
1.4.3 任務(wù)調(diào)度
1.5 C++語言的歷史
1.6 一個(gè)簡單的C++程序
1.7 C++程序開發(fā)周期
1.8 程序風(fēng)格和文檔
1.8.1 適當(dāng)?shù)淖⑨尯妥⑨岋L(fēng)格
1.8.2 正確的縮進(jìn)和間距
1.9 編程錯(cuò)誤
1.9.1 語法錯(cuò)誤
1.9.2 運(yùn)行時(shí)錯(cuò)誤
1.9.3 邏輯錯(cuò)誤
1.9.4 常見錯(cuò)誤
關(guān)鍵術(shù)語
本章小結(jié)
在線測驗(yàn)
程序設(shè)計(jì)練習(xí)
第2章 程序設(shè)計(jì)基礎(chǔ)
2.1 引言
2.2 編寫簡單的程序
2.3 從鍵盤讀取輸入
2.4 標(biāo)識(shí)符
2.5 變量
2.6 賦值語句和賦值表達(dá)式
2.7 命名常量
2.8 數(shù)值數(shù)據(jù)類型及其運(yùn)算
2.8.1 數(shù)值類型
2.8.2 數(shù)值文字常量
2.8.3 數(shù)值運(yùn)算符
2.8.4 指數(shù)運(yùn)算符
2.9 算術(shù)表達(dá)式和運(yùn)算符優(yōu)先級(jí)
2.10 實(shí)例研究:顯示當(dāng)前時(shí)間
2.11 簡寫運(yùn)算符
2.12 自增、自減運(yùn)算符
2.13 數(shù)值類型轉(zhuǎn)換
2.14 軟件開發(fā)流程
2.15 實(shí)例研究:計(jì)算給定金額的貨幣數(shù)量
2.16 常見錯(cuò)誤
關(guān)鍵術(shù)語
本章小結(jié)
在線測驗(yàn)
程序設(shè)計(jì)練習(xí)
第3章 分支語句
3.1 引言
3.2 bool數(shù)據(jù)類型
3.3 if語句
3.4 雙分支的if-else語句
3.5 嵌套的if語句和多分支的if-else語句
3.6 常見錯(cuò)誤和陷阱
3.7 實(shí)例研究:計(jì)算身體質(zhì)量指數(shù)
3.8 實(shí)例研究:計(jì)算稅款
3.9 生成隨機(jī)數(shù)
3.10 邏輯運(yùn)算符
3.11 實(shí)例研究:確定閏年
3.12 實(shí)例研究:彩票
3.13 switch語句
3.14 條件表達(dá)式
3.15 運(yùn)算符優(yōu)先級(jí)和結(jié)合律
3.16 調(diào)試
關(guān)鍵術(shù)語
本章小結(jié)
在線測驗(yàn)
程序設(shè)計(jì)練習(xí)
第4章 數(shù)學(xué)函數(shù)、字符和字符串
4.1 引言
4.2 數(shù)學(xué)函數(shù)
4.2.1 三角函數(shù)
4.2.2 指數(shù)函數(shù)
4.2.3 近似函數(shù)
4.2.4 min、max和abs函數(shù)
4.2.5 實(shí)例研究:計(jì)算三角形的角
4.3 字符數(shù)據(jù)類型和操作符
4.3.1 ASCII碼
4.3.2 從鍵盤讀取一個(gè)字符
4.3.3 特殊字符的轉(zhuǎn)義序列
4.3.4 數(shù)值類型和字符類型之間的相互轉(zhuǎn)換
4.3.5 比較和測試字符
4.4 實(shí)例研究:生成隨機(jī)字符
4.5 實(shí)例研究:猜生日
4.6 字符函數(shù)
4.7 實(shí)例研究:十六進(jìn)制轉(zhuǎn)換為十進(jìn)制
4.8 字符串類型
4.8.1 字符串索引和下標(biāo)操作符
4.8.2 連接字符串
4.8.3 比較字符串
4.8.4 讀字符串
4.9 實(shí)例研究:使用字符串修改彩票程序
4.10 格式化控制臺(tái)輸出
4.10.1 setprecision(n)操作
4.10.2 修改操作
4.10.3 showpoint操作
4.10.4 setw(width)操作
4.10.5 left和right操作
4.11 簡單的文件輸入輸出
4.11.1 寫入文件
4.11.2 讀取一個(gè)文件
關(guān)鍵術(shù)語
本章小結(jié)
在線測驗(yàn)
程序設(shè)計(jì)練習(xí)
第5章 循環(huán)
5.1 引言
5.2 while循環(huán)
5.2.1 實(shí)例研究:猜數(shù)字
5.2.2 循環(huán)設(shè)計(jì)策略
5.2.3 實(shí)例研究:多道減法測試
5.2.4 使用用戶的確認(rèn)控制循環(huán)
5.2.5 使用標(biāo)記值控制循環(huán)
5.2.6 輸入和輸出重定向
5.2.7 從一個(gè)文件中讀取所有的數(shù)據(jù)
5.3 do-while循環(huán)
5.4 for循環(huán)
5.5 使用哪種循環(huán)
5.6 嵌套循環(huán)
5.7 最小化數(shù)字錯(cuò)誤
5.8 實(shí)例研究
5.8.1 求最大公約數(shù)
5.8.2 預(yù)測未來的學(xué)費(fèi)
5.8.3 蒙特卡羅模擬
5.8.4 十進(jìn)制轉(zhuǎn)換為十六進(jìn)制
5.9 關(guān)鍵字break和continue
5.10 實(shí)例研究:檢查回文
5.11 實(shí)例研究:輸出素?cái)?shù)
關(guān)鍵術(shù)語
本章小結(jié)
在線測驗(yàn)
程序設(shè)計(jì)練習(xí)
第6章 函數(shù)
6.1 引言
6.2 函數(shù)定義
6.3 函數(shù)調(diào)用
6.4 無返回值函數(shù)
6.5 以傳值方式傳遞參數(shù)
6.6 模塊化代碼
6.7 函數(shù)的重載
6.8 函數(shù)原型
6.9 缺省參數(shù)
6.10 內(nèi)聯(lián)函數(shù)
6.11 局部、全局和靜態(tài)局部變量
6.11.1 for循環(huán)中變量的作用域
6.11.2 靜態(tài)局部變量
6.12 以引用方式傳遞參數(shù)
6.13 常量引用參數(shù)
6.14 實(shí)例研究:十六進(jìn)制轉(zhuǎn)換為十進(jìn)制
6.15 函數(shù)抽象和逐步求精
6.15.1 自頂向下設(shè)計(jì)
6.15.2 自頂向下或自底向上實(shí)現(xiàn)
6.15.3 實(shí)現(xiàn)細(xì)節(jié)
6.15.4 逐步求精的好處
關(guān)鍵術(shù)語
本章小結(jié)
在線測驗(yàn)
程序設(shè)計(jì)練習(xí)
第7章 一維數(shù)組和C字符串
7.1 引言
7.2 數(shù)組基礎(chǔ)
7.2.1 聲明數(shù)組
7.2.2 訪問數(shù)組元素
7.2.3 數(shù)組初始化語句
7.2.4 處理數(shù)組
7.3 問題:彩票號(hào)碼
7.4 問題:一副紙牌
7.5 數(shù)組作為函數(shù)參數(shù)
7.6 防止函數(shù)修改傳遞參數(shù)的數(shù)組
7.7 數(shù)組作為函數(shù)值返回
7.8 問題:計(jì)算每個(gè)字符的出現(xiàn)次數(shù)
7.9 搜索數(shù)組
7.9.1 順序搜索方法
7.9.2 二分搜索方法
7.10 排序數(shù)組
7.11 C字符串
7.11.1 輸入和輸出C字符串
7.11.2 C字符串函數(shù)
7.11.3 使用strcpy和strncpy函數(shù)復(fù)制字符串
7.11.4 使用strcat和strncat函數(shù)拼接字符串
7.11.5 使用strcmp函數(shù)比較字符串
7.11.6 字符串和數(shù)字之間的轉(zhuǎn)換
關(guān)鍵術(shù)語
本章小結(jié)
在線測驗(yàn)
程序設(shè)計(jì)練習(xí)
第8章 多維數(shù)組
8.1 引言
8.2 聲明二維數(shù)組
8.3 操作二維數(shù)組
8.4 二維數(shù)組作為函數(shù)參數(shù)
8.5 問題:評(píng)定多項(xiàng)選擇測試的成績
8.6 問題:找最近鄰點(diǎn)對(duì)
8.7 問題:數(shù)獨(dú)
8.8 多維數(shù)組
8.8.1 問題:每日溫度與濕度
8.8.2 問題:猜生日
本章小結(jié)
在線測驗(yàn)
程序設(shè)計(jì)練習(xí)
第二部分 面向?qū)ο缶幊?br />
第9章 對(duì)象和類
9.1 引言
9.2 聲明類
9.3 例:定義類和創(chuàng)建對(duì)象
9.4 構(gòu)造函數(shù)
9.5 創(chuàng)建及使用對(duì)象
9.6 類定義和類實(shí)現(xiàn)的分離
9.7 避免多次包含
9.8 類中的內(nèi)聯(lián)函數(shù)
9.9 數(shù)據(jù)域封裝
9.10 變量作用域
9.11 類抽象和封裝
關(guān)鍵術(shù)語
本章小結(jié)
在線測驗(yàn)
程序設(shè)計(jì)練習(xí)
第10章 面向?qū)ο笏枷?br />
10.1 引言
10.2 string類
10.2.1 構(gòu)造一個(gè)字符串
10.2.2 追加字符串
10.2.3 字符串賦值
10.2.4 函數(shù)at、clear、erase及empty
10.2.5 函數(shù)length、size、capacity和c_str()
10.2.6 字符串比較
10.2.7 獲取子串
10.2.8 字符串搜索
10.2.9 字符串插入和替換
10.2.10 字符串運(yùn)算符
10.2.11 把數(shù)字轉(zhuǎn)換為字符串
10.2.12 字符串分割
10.2.13 實(shí)例研究:字符串替換
10.3 對(duì)象作為函數(shù)參數(shù)
10.4 對(duì)象數(shù)組
10.5 實(shí)例成員和靜態(tài)成員
10.6 只讀成員函數(shù)
10.7 從對(duì)象的角度思考
10.8 對(duì)象合成
10.9 實(shí)例研究:StackOfIntegers類
10.10 類設(shè)計(jì)準(zhǔn)則
10.10.1 內(nèi)聚
10.10.2 一致
10.10.3 封裝
10.10.4 清晰
10.10.5 完整
10.10.6 實(shí)例與靜態(tài)
關(guān)鍵術(shù)語
本章小結(jié)
在線測驗(yàn)
程序設(shè)計(jì)練習(xí)
第11章 指針及動(dòng)態(tài)內(nèi)存管理
11.1 引言
11.2 指針基礎(chǔ)
11.3 用typedef定義同義類型
11.4 常量指針
11.5 數(shù)組和指針
11.6 函數(shù)調(diào)用時(shí)傳遞指針參數(shù)
11.7 從函數(shù)中返回指針
11.8 有用的數(shù)組函數(shù)
11.9 動(dòng)態(tài)持久內(nèi)存分配
11.10 創(chuàng)建及訪問動(dòng)態(tài)對(duì)象
11.11 this指針
11.12 析構(gòu)函數(shù)
11.13 實(shí)例研究:Course類
11.14 拷貝構(gòu)造函數(shù)
11.15 自定義拷貝構(gòu)造函數(shù)
關(guān)鍵術(shù)語
本章小結(jié)
在線測驗(yàn)
程序設(shè)計(jì)練習(xí)
第12章 模板、向量和棧
12.1 引言
12.2 模板基礎(chǔ)
12.3 例:一個(gè)通用排序函數(shù)
12.4 模板類
12.5 改進(jìn)Stack類
12.6 C++向量類
12.7 用vector類替換數(shù)組
12.8 實(shí)例研究:表達(dá)式計(jì)算
關(guān)鍵術(shù)語
本章小結(jié)
在線測驗(yàn)
程序設(shè)計(jì)練習(xí)
第13章 文件輸入輸出
13.1 引言
13.2 文本輸入輸出
13.2.1 向文件中寫入數(shù)據(jù)
13.2.2 從文件中讀取數(shù)據(jù)
13.2.3 檢測文件是否存在
13.2.4 檢測文件結(jié)束
13.2.5 讓用戶輸入文件名
13.3 格式化輸出
13.4 函數(shù):getline、get和put
13.5 fstream和文件打開模式
13.6 檢測流狀態(tài)
13.7 二進(jìn)制輸入輸出
13.7.1 write函數(shù)
13.7.2 read函數(shù)
13.7.3 例:二進(jìn)制數(shù)組I/O
13.7.4 例:二進(jìn)制對(duì)象I/O
13.8 隨機(jī)訪問文件
13.9 更新文件
關(guān)鍵術(shù)語
本章小結(jié)
在線測驗(yàn)
程序設(shè)計(jì)練習(xí)
第14章 運(yùn)算符重載
14.1 引言
14.2 Rational類
14.3 運(yùn)算符函數(shù)
14.4 重載[]運(yùn)算符
14.5 重載簡寫運(yùn)算符
14.6 重載一元運(yùn)算符
14.7 重載++和——運(yùn)算符
14.8 友元函數(shù)和友元類
14.9 重載<<和>>運(yùn)算符
14.10 自動(dòng)類型轉(zhuǎn)換
14.10.1 轉(zhuǎn)換為基本數(shù)據(jù)類型
14.10.2 轉(zhuǎn)換為對(duì)象類型
14.11 定義重載運(yùn)算符的非成員函數(shù)
14.12 帶有重載運(yùn)算符函數(shù)的Rational類
14.13 重載賦值運(yùn)算符
關(guān)鍵術(shù)語
本章小結(jié)
在線測驗(yàn)
程序設(shè)計(jì)練習(xí)
第15章 繼承和多態(tài)
15.1 引言
15.2 基類和派生類
15.3 泛型程序設(shè)計(jì)
15.4 構(gòu)造函數(shù)和析構(gòu)函數(shù)
15.4.1 調(diào)用基類構(gòu)造函數(shù)
15.4.2 構(gòu)造函數(shù)鏈和析構(gòu)函數(shù)鏈
15.5 函數(shù)重定義
15.6 多態(tài)
15.7 虛函數(shù)和動(dòng)態(tài)綁定
15.8 關(guān)鍵字protected
15.9 抽象類和純虛函數(shù)
15.10 類型轉(zhuǎn)換:static_cast 和 dynamic_cast
關(guān)鍵術(shù)語
本章小結(jié)
在線測驗(yàn)
程序設(shè)計(jì)練習(xí)
第16章 異常處理
16.1 引言
16.2 異常處理概述
16.3 異常處理機(jī)制的優(yōu)點(diǎn)
16.4 異常類
16.5 自定義異常類
16.6 多重異常捕獲
16.7 異常的傳播
16.8 重拋出異常
16.9 異常說明
16.10 何時(shí)使用異常機(jī)制
關(guān)鍵術(shù)語
本章小結(jié)
在線測驗(yàn)
程序設(shè)計(jì)練習(xí)
第三部分 算法和數(shù)據(jù)結(jié)構(gòu)
第17章 遞歸
17.1 引言
17.2 例:階乘
17.3 實(shí)例研究:斐波那契數(shù)
17.4 用遞歸方法求解問題
17.5 遞歸輔助函數(shù)
17.5.1 選擇排序
17.5.2 二分搜索
17.6 漢諾塔
17.7 八皇后問題
17.8 遞歸與循環(huán)
17.9 尾遞歸
關(guān)鍵術(shù)語
本章小結(jié)
在線測驗(yàn)
程序設(shè)計(jì)練習(xí)
第18章 開發(fā)高效的算法
第19章 排序
第20章 鏈表、隊(duì)列和優(yōu)先隊(duì)列
第21章 二分搜索樹
第22章 STL容器
第23章 STL算法
第24章 圖及其應(yīng)用
第25章 加權(quán)圖及其應(yīng)用
第26章 平衡二叉樹和伸展樹
附錄
附錄A C++關(guān)鍵字
附錄B ASCII字符集
附錄C 運(yùn)算符優(yōu)先級(jí)表
附錄D 數(shù)字系統(tǒng)
附錄E 位運(yùn)算