《計(jì)算機(jī)科學(xué)叢書(shū):C++程序設(shè)計(jì)(原書(shū)第3版)》采用“問(wèn)題驅(qū)動(dòng)”、“基礎(chǔ)先行”和“實(shí)例和實(shí)踐相結(jié)合”的方式,闡明了基本的C++特性!队(jì)算機(jī)科學(xué)叢書(shū):C++程序設(shè)計(jì)(原書(shū)第3版)》共分為三部分,第一部分介紹C++程序設(shè)計(jì)的基本概念,第二部分介紹面向?qū)ο蟪绦蛟O(shè)計(jì)方法,第三部分介紹算法與數(shù)據(jù)結(jié)構(gòu)方面的內(nèi)容。為了幫助學(xué)生更好地掌握相關(guān)知識(shí),《計(jì)算機(jī)科學(xué)叢書(shū):C++程序設(shè)計(jì)(原書(shū)第3版)》每章都包括以下模塊:目標(biāo),引言,關(guān)鍵點(diǎn),檢查點(diǎn),問(wèn)題和實(shí)例研究,本章小結(jié),在線測(cè)驗(yàn),程序設(shè)計(jì)練習(xí),提示、小竅門(mén)、警示和教學(xué)提示。
《計(jì)算機(jī)科學(xué)叢書(shū):C++程序設(shè)計(jì)(原書(shū)第3版)》可以作為高等院校計(jì)算機(jī)及相關(guān)專(zhuān)業(yè)C++程序設(shè)計(jì)課程的教材,也可以作為C++程序設(shè)計(jì)的自學(xué)參考書(shū)。
《計(jì)算機(jī)科學(xué)叢書(shū):C++程序設(shè)計(jì)(原書(shū)第3版)》保持了Liang博士系列叢書(shū)中一貫的標(biāo)志性的教與學(xué)的哲學(xué):以實(shí)例教,由實(shí)踐學(xué)。通過(guò)使用他所提出的已經(jīng)經(jīng)過(guò)實(shí)踐檢驗(yàn)的“基礎(chǔ)先行”的方法,Liang博士在本書(shū)中通過(guò)大量實(shí)例闡明了基本的C++特性,使得學(xué)生可以通過(guò)實(shí)踐來(lái)更有效地進(jìn)行學(xué)習(xí)。
《計(jì)算機(jī)科學(xué)叢書(shū):C++程序設(shè)計(jì)(原書(shū)第3版)》首先幫助學(xué)生循序漸進(jìn)地學(xué)習(xí)所有必需和重要的基本概念,然后再進(jìn)入面向?qū)ο蟪绦蛟O(shè)計(jì)方法的學(xué)習(xí),最終掌握構(gòu)建具有異常處理和輸入輸出功能的有意義的應(yīng)用程序的方法;靖拍疃际鞘褂煤(jiǎn)短且吸引人的實(shí)例來(lái)進(jìn)行闡述的。他還在實(shí)例研究中給出了一些較大規(guī)模的實(shí)例,并附以整體的分析討論和詳細(xì)的逐行注解。貫穿全書(shū)的實(shí)例和練習(xí)都以問(wèn)題求解為中心,力圖培養(yǎng)學(xué)生開(kāi)發(fā)可重用組件并用之創(chuàng)建實(shí)際項(xiàng)目的意識(shí)。
與第2版相比,第3版在文字表達(dá)、內(nèi)容組織、課后練習(xí)和附加材料方面都得到了顯著改善。
第3版有以下創(chuàng)新特色:
按照邏輯順序,重新組織了各章的內(nèi)容和主題,增加了許多有趣的實(shí)例,以及引人入勝的課后練習(xí)。
在每一節(jié)的開(kāi)始,以“關(guān)鍵點(diǎn)”的形式說(shuō)明重要的概念和內(nèi)容;在每一節(jié)的結(jié)束,以“檢查點(diǎn)”的形式檢查學(xué)生對(duì)于內(nèi)容的掌握程度。
第4章就介紹了string類(lèi)型,以便學(xué)生能夠盡早使用該類(lèi)型編寫(xiě)程序。
列出常見(jiàn)的編程錯(cuò)誤和陷阱,讓學(xué)生避免犯這些錯(cuò)誤。
Y. Daniel Liang,普度大學(xué)終身教授,阿姆斯特朗亞特蘭大州立大學(xué)計(jì)算機(jī)科學(xué)系教授。他所編寫(xiě)的Java教程在美國(guó)大學(xué)Java課程中采用率最高,同時(shí)他還兼任Prentice Hall Java系列叢書(shū)的編輯。
出版者的話
譯者序
前言
致讀者
第一部分 編程基礎(chǔ)
第1章 計(jì)算機(jī)、程序和C++語(yǔ)言簡(jiǎn)介
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 編程語(yǔ)言
1.3.1 機(jī)器語(yǔ)言
1.3.2 匯編語(yǔ)言
1.3.3 高級(jí)語(yǔ)言
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++語(yǔ)言的歷史
1.6 一個(gè)簡(jiǎn)單的C++程序
1.7 C++程序開(kāi)發(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 語(yǔ)法錯(cuò)誤
1.9.2 運(yùn)行時(shí)錯(cuò)誤
1.9.3 邏輯錯(cuò)誤
1.9.4 常見(jiàn)錯(cuò)誤
關(guān)鍵術(shù)語(yǔ)
本章小結(jié)
在線測(cè)驗(yàn)
程序設(shè)計(jì)練習(xí)
第2章 程序設(shè)計(jì)基礎(chǔ)
2.1 引言
2.2 編寫(xiě)簡(jiǎn)單的程序
2.3 從鍵盤(pán)讀取輸入
2.4 標(biāo)識(shí)符
2.5 變量
2.6 賦值語(yǔ)句和賦值表達(dá)式
2.7 命名常量
2.8 數(shù)值數(shù)據(jù)類(lèi)型及其運(yùn)算
2.8.1 數(shù)值類(lèi)型
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 簡(jiǎn)寫(xiě)運(yùn)算符
2.12 自增、自減運(yùn)算符
2.13 數(shù)值類(lèi)型轉(zhuǎn)換
2.14 軟件開(kāi)發(fā)流程
2.15 實(shí)例研究:計(jì)算給定金額的貨幣數(shù)量
2.16 常見(jiàn)錯(cuò)誤
關(guān)鍵術(shù)語(yǔ)
本章小結(jié)
在線測(cè)驗(yàn)
程序設(shè)計(jì)練習(xí)
第3章 分支語(yǔ)句
3.1 引言
3.2 bool數(shù)據(jù)類(lèi)型
3.3 if語(yǔ)句
3.4 雙分支的if-else語(yǔ)句
3.5 嵌套的if語(yǔ)句和多分支的if-else語(yǔ)句
3.6 常見(jiàn)錯(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語(yǔ)句
3.14 條件表達(dá)式
3.15 運(yùn)算符優(yōu)先級(jí)和結(jié)合律
3.16 調(diào)試
關(guān)鍵術(shù)語(yǔ)
本章小結(jié)
在線測(cè)驗(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ù)類(lèi)型和操作符
4.3.1 ASCII碼
4.3.2 從鍵盤(pán)讀取一個(gè)字符
4.3.3 特殊字符的轉(zhuǎn)義序列
4.3.4 數(shù)值類(lèi)型和字符類(lèi)型之間的相互轉(zhuǎn)換
4.3.5 比較和測(cè)試字符
4.4 實(shí)例研究:生成隨機(jī)字符
4.5 實(shí)例研究:猜生日
4.6 字符函數(shù)
4.7 實(shí)例研究:十六進(jìn)制轉(zhuǎn)換為十進(jìn)制
4.8 字符串類(lèi)型
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 簡(jiǎn)單的文件輸入輸出
4.11.1 寫(xiě)入文件
4.11.2 讀取一個(gè)文件
關(guān)鍵術(shù)語(yǔ)
本章小結(jié)
在線測(cè)驗(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í)例研究:多道減法測(cè)試
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ù)測(cè)未來(lái)的學(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ù)語(yǔ)
本章小結(jié)
在線測(cè)驗(yàn)
程序設(shè)計(jì)練習(xí)
第6章 函數(shù)
6.1 引言
6.2 函數(shù)定義
6.3 函數(shù)調(diào)用
6.4 無(wú)返回值函數(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ù)語(yǔ)
本章小結(jié)
在線測(cè)驗(yàn)
程序設(shè)計(jì)練習(xí)
第7章 一維數(shù)組和C字符串
7.1 引言
7.2 數(shù)組基礎(chǔ)
7.2.1 聲明數(shù)組
7.2.2 訪問(wèn)數(shù)組元素
7.2.3 數(shù)組初始化語(yǔ)句
7.2.4 處理數(shù)組
7.3 問(wèn)題:彩票號(hào)碼
7.4 問(wèn)題:一副紙牌
7.5 數(shù)組作為函數(shù)參數(shù)
7.6 防止函數(shù)修改傳遞參數(shù)的數(shù)組
7.7 數(shù)組作為函數(shù)值返回
7.8 問(wèn)題:計(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ù)語(yǔ)
本章小結(jié)
在線測(cè)驗(yàn)
程序設(shè)計(jì)練習(xí)
第8章 多維數(shù)組
8.1 引言
8.2 聲明二維數(shù)組
8.3 操作二維數(shù)組
8.4 二維數(shù)組作為函數(shù)參數(shù)
8.5 問(wèn)題:評(píng)定多項(xiàng)選擇測(cè)試的成績(jī)
8.6 問(wèn)題:找最近鄰點(diǎn)對(duì)
8.7 問(wèn)題:數(shù)獨(dú)
8.8 多維數(shù)組
8.8.1 問(wèn)題:每日溫度與濕度
8.8.2 問(wèn)題:猜生日
本章小結(jié)
在線測(cè)驗(yàn)
程序設(shè)計(jì)練習(xí)
第二部分 面向?qū)ο缶幊?br />
第9章 對(duì)象和類(lèi)
9.1 引言
9.2 聲明類(lèi)
9.3 例:定義類(lèi)和創(chuàng)建對(duì)象
9.4 構(gòu)造函數(shù)
9.5 創(chuàng)建及使用對(duì)象
9.6 類(lèi)定義和類(lèi)實(shí)現(xiàn)的分離
9.7 避免多次包含
9.8 類(lèi)中的內(nèi)聯(lián)函數(shù)
9.9 數(shù)據(jù)域封裝
9.10 變量作用域
9.11 類(lèi)抽象和封裝
關(guān)鍵術(shù)語(yǔ)
本章小結(jié)
在線測(cè)驗(yàn)
程序設(shè)計(jì)練習(xí)
第10章 面向?qū)ο笏枷?br />
10.1 引言
10.2 string類(lèi)
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類(lèi)
10.10 類(lèi)設(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ù)語(yǔ)
本章小結(jié)
在線測(cè)驗(yàn)
程序設(shè)計(jì)練習(xí)
第11章 指針及動(dòng)態(tài)內(nèi)存管理
11.1 引言
11.2 指針基礎(chǔ)
11.3 用typedef定義同義類(lèi)型
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)建及訪問(wèn)動(dòng)態(tài)對(duì)象
11.11 this指針
11.12 析構(gòu)函數(shù)
11.13 實(shí)例研究:Course類(lèi)
11.14 拷貝構(gòu)造函數(shù)
11.15 自定義拷貝構(gòu)造函數(shù)
關(guān)鍵術(shù)語(yǔ)
本章小結(jié)
在線測(cè)驗(yàn)
程序設(shè)計(jì)練習(xí)
第12章 模板、向量和棧
12.1 引言
12.2 模板基礎(chǔ)
12.3 例:一個(gè)通用排序函數(shù)
12.4 模板類(lèi)
12.5 改進(jìn)Stack類(lèi)
12.6 C++向量類(lèi)
12.7 用vector類(lèi)替換數(shù)組
12.8 實(shí)例研究:表達(dá)式計(jì)算
關(guān)鍵術(shù)語(yǔ)
本章小結(jié)
在線測(cè)驗(yàn)
程序設(shè)計(jì)練習(xí)
第13章 文件輸入輸出
13.1 引言
13.2 文本輸入輸出
13.2.1 向文件中寫(xiě)入數(shù)據(jù)
13.2.2 從文件中讀取數(shù)據(jù)
13.2.3 檢測(cè)文件是否存在
13.2.4 檢測(cè)文件結(jié)束
13.2.5 讓用戶輸入文件名
13.3 格式化輸出
13.4 函數(shù):getline、get和put
13.5 fstream和文件打開(kāi)模式
13.6 檢測(cè)流狀態(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ī)訪問(wèn)文件
13.9 更新文件
關(guān)鍵術(shù)語(yǔ)
本章小結(jié)
在線測(cè)驗(yàn)
程序設(shè)計(jì)練習(xí)
第14章 運(yùn)算符重載
14.1 引言
14.2 Rational類(lèi)
14.3 運(yùn)算符函數(shù)
14.4 重載[]運(yùn)算符
14.5 重載簡(jiǎn)寫(xiě)運(yùn)算符
14.6 重載一元運(yùn)算符
14.7 重載++和——運(yùn)算符
14.8 友元函數(shù)和友元類(lèi)
14.9 重載<<和>>運(yùn)算符
14.10 自動(dòng)類(lèi)型轉(zhuǎn)換
14.10.1 轉(zhuǎn)換為基本數(shù)據(jù)類(lèi)型
14.10.2 轉(zhuǎn)換為對(duì)象類(lèi)型
14.11 定義重載運(yùn)算符的非成員函數(shù)
14.12 帶有重載運(yùn)算符函數(shù)的Rational類(lèi)
14.13 重載賦值運(yùn)算符
關(guān)鍵術(shù)語(yǔ)
本章小結(jié)
在線測(cè)驗(yàn)
程序設(shè)計(jì)練習(xí)
第15章 繼承和多態(tài)
15.1 引言
15.2 基類(lèi)和派生類(lèi)
15.3 泛型程序設(shè)計(jì)
15.4 構(gòu)造函數(shù)和析構(gòu)函數(shù)
15.4.1 調(diào)用基類(lèi)構(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 抽象類(lèi)和純虛函數(shù)
15.10 類(lèi)型轉(zhuǎn)換:static_cast 和 dynamic_cast
關(guān)鍵術(shù)語(yǔ)
本章小結(jié)
在線測(cè)驗(yàn)
程序設(shè)計(jì)練習(xí)
第16章 異常處理
16.1 引言
16.2 異常處理概述
16.3 異常處理機(jī)制的優(yōu)點(diǎn)
16.4 異常類(lèi)
16.5 自定義異常類(lèi)
16.6 多重異常捕獲
16.7 異常的傳播
16.8 重拋出異常
16.9 異常說(shuō)明
16.10 何時(shí)使用異常機(jī)制
關(guān)鍵術(shù)語(yǔ)
本章小結(jié)
在線測(cè)驗(yàn)
程序設(shè)計(jì)練習(xí)
第三部分 算法和數(shù)據(jù)結(jié)構(gòu)
第17章 遞歸
17.1 引言
17.2 例:階乘
17.3 實(shí)例研究:斐波那契數(shù)
17.4 用遞歸方法求解問(wèn)題
17.5 遞歸輔助函數(shù)
17.5.1 選擇排序
17.5.2 二分搜索
17.6 漢諾塔
17.7 八皇后問(wèn)題
17.8 遞歸與循環(huán)
17.9 尾遞歸
關(guān)鍵術(shù)語(yǔ)
本章小結(jié)
在線測(cè)驗(yàn)
程序設(shè)計(jì)練習(xí)
第18章 開(kāi)發(fā)高效的算法
第19章 排序
第20章 鏈表、隊(duì)列和優(yōu)先隊(duì)列
第21章 二分搜索樹(shù)
第22章 STL容器
第23章 STL算法
第24章 圖及其應(yīng)用
第25章 加權(quán)圖及其應(yīng)用
第26章 平衡二叉樹(shù)和伸展樹(shù)
附錄
附錄A C++關(guān)鍵字
附錄B ASCII字符集
附錄C 運(yùn)算符優(yōu)先級(jí)表
附錄D 數(shù)字系統(tǒng)
附錄E 位運(yùn)算