21世紀(jì)高等學(xué)校計(jì)算機(jī)規(guī)劃教材:C++教程
定 價(jià):36 元
- 作者:鄭莉 ,李寧 著
- 出版時(shí)間:2010/5/1
- ISBN:9787115226648
- 出 版 社:人民郵電出版社
- 中圖法分類:TP312C
- 頁碼:354
- 紙張:膠版紙
- 版次:1
- 開本:16開
《C++教程》的內(nèi)容涵蓋了C++語言的基本語法、面向?qū)ο蟮母拍詈统绦蛟O(shè)計(jì)方法、數(shù)據(jù)結(jié)構(gòu)基礎(chǔ)、模板和泛型程序設(shè)計(jì)簡(jiǎn)介。對(duì)于每一個(gè)知識(shí)點(diǎn),都是先給出一個(gè)簡(jiǎn)要的綜述,然后通過例題來講解。全書一共有174個(gè)例題,每個(gè)例題包括題目、主要知識(shí)點(diǎn)、源程序、運(yùn)行結(jié)果、思考與提示幾個(gè)部分。
《C++教程》是面向沒有程序設(shè)計(jì)基礎(chǔ)的讀者編寫的入門教材,特點(diǎn)是問題驅(qū)動(dòng)、案例教學(xué),適用于大學(xué)的C++程序設(shè)計(jì)課程,也可用于自學(xué)。
《C++教程》是針對(duì)零起點(diǎn)的讀者編寫的計(jì)算機(jī)程序設(shè)計(jì)入門教材,基于作者在清華大學(xué)18年的程序設(shè)計(jì)課程教學(xué)經(jīng)驗(yàn)和教學(xué)成果,是國家精品課“面向?qū)ο蟮某绦蛟O(shè)計(jì)”建設(shè)成果之一 書中對(duì)于每一個(gè)知識(shí)點(diǎn),都是先給出一個(gè)簡(jiǎn)要的綜述,然后通過例題來講解每個(gè)例題包括題目、主要知識(shí)點(diǎn)、源程序、運(yùn)行結(jié)果、思考與提示幾個(gè)部分書中的習(xí)題包含了很多“國家計(jì)算機(jī)等級(jí)考試二級(jí)(C++)筆試”的真題,對(duì)于檢驗(yàn)學(xué)生的學(xué)習(xí)情況和準(zhǔn)備相關(guān)的考試都有裨益。
C++語言是目前廣泛使用的一種程序設(shè)計(jì)語言。它支持面向過程、面向?qū)ο蠛头盒统绦蛟O(shè)計(jì),主要應(yīng)用于面向?qū)ο蟮某绦蛟O(shè)計(jì)。C++語言課程是在大學(xué)里普遍開設(shè)的程序設(shè)計(jì)基礎(chǔ)類課程。學(xué)習(xí)c++的途徑大致有兩種,一種是首先學(xué)習(xí)一種面向過程的語言(通常是c語言),熟悉程序設(shè)計(jì)的基礎(chǔ)知識(shí),然后再學(xué)習(xí)c++;另一種是,直接以c++作為程序設(shè)計(jì)的入門課程。這兩種途徑各有優(yōu)點(diǎn)。
本書是面向沒有程序設(shè)計(jì)基礎(chǔ)的讀者編寫的入門教材,適用于大學(xué)的c++程序設(shè)計(jì)課程,也可用于自學(xué)。
從1999年開始,我在清華大學(xué)講授c++課程,以前也出版過c++教材,還算是受歡迎的書。這些年來與各個(gè)學(xué)校的同行有過很多交流、探討。除了我自己教的學(xué)生,還收到過大量讀者的來信。師生們?cè)诮虒W(xué)過程中,對(duì)教材有著多種不同的需求。其中有一些教師,會(huì)抱怨講大課的時(shí)候?qū)W生坐不下、聽不進(jìn);有一些學(xué)生會(huì)抱怨老師講得沒意思、聽不懂。雖然我自己授課的時(shí)候沒遇到這樣的情況,但是這樣的情況確實(shí)是存在的。我理解不同學(xué)校的學(xué)生,學(xué)習(xí)習(xí)慣和學(xué)習(xí)興趣可能有所差別,所以教材的編寫思路和講述形式也需要多樣化,以適應(yīng)不同的需求。
本書的內(nèi)容涵蓋了C++語言的基本語法、面向?qū)ο蟮母拍詈统绦蛟O(shè)計(jì)方法、數(shù)據(jù)結(jié)構(gòu)基礎(chǔ)、模板和泛型程序設(shè)計(jì)簡(jiǎn)介。對(duì)于每一個(gè)知識(shí)點(diǎn),都是先給出一個(gè)簡(jiǎn)要的綜述,然后通過例題來講解。全書一共有174個(gè)例題,每個(gè)例題包括:題目、主要知識(shí)點(diǎn)、源程序、運(yùn)行結(jié)果、思考與提示幾個(gè)部分。書中的習(xí)題主要是選擇題和填空題。這些習(xí)題中包含了很多“國家計(jì)算機(jī)等級(jí)考試二級(jí)(C++)筆試”的真題,對(duì)于檢驗(yàn)學(xué)生的學(xué)習(xí)情況和準(zhǔn)備相關(guān)的考試都有裨益。學(xué)生編程能力的訓(xùn)練主要是通過實(shí)驗(yàn)來完成的,本書另外配有實(shí)驗(yàn)指導(dǎo)書。
我寫這本書的初衷,就是想給師生們提供一本容易教、容易學(xué)的教材:沒有長篇大論的理論,以問題驅(qū)動(dòng),將概念和語法都融在例題之中;還有很多知識(shí)點(diǎn)是以啟發(fā)式的方法,出現(xiàn)在例題的“思考與練習(xí)”中。這樣,老師講的時(shí)候就可以很生動(dòng),先提出問題,再介紹解決這個(gè)問題需要的概念和語法,然后講解源程序、演示運(yùn)行結(jié)果,最后對(duì)運(yùn)行時(shí)的現(xiàn)象進(jìn)行分析,鞏固概念和語法,并對(duì)學(xué)生的進(jìn)一步思考和練習(xí)給出提示;也可以針對(duì)“思考與練習(xí)”中的問題組織課內(nèi)外的討論。
鄭莉,清華大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)系副教授。本科及研究生畢業(yè)于清華大學(xué)計(jì)算機(jī)系,國家級(jí)教學(xué)團(tuán)隊(duì)骨干,ISO/IEC JTC1 SC36國際標(biāo)準(zhǔn)組織專家及聯(lián)合編輯。教育部教育信息化技術(shù)標(biāo)準(zhǔn)委員會(huì)副秘書長;從事計(jì)算機(jī)基礎(chǔ)課教學(xué)及軟件工程、網(wǎng)絡(luò)教育技術(shù)研究;創(chuàng)建了國家精品課“面向?qū)ο蟮某绦蛟O(shè)計(jì)”,主持863重點(diǎn)項(xiàng)目課題,作為主要起草人起草了多部信息技術(shù)國家標(biāo)準(zhǔn)。作為聯(lián)合編輯起草了國際標(biāo)準(zhǔn)草案;獲國家級(jí)教學(xué)成果二等獎(jiǎng)、北京市教學(xué)成果一等獎(jiǎng)、教育部中國高校科學(xué)技術(shù)獎(jiǎng)一自然科學(xué)二等獎(jiǎng);主編了多本計(jì)算機(jī)程序設(shè)計(jì)的暢銷教材。
第1章 緒論 1
1.1 C++語言的特點(diǎn) 1
1.2 面向?qū)ο蟪绦蛟O(shè)計(jì) 1
1.3 C++語言的基本符號(hào) 2
1.4 C++語言的詞匯 3
1.4.1 關(guān)鍵字 3
1.4.2 標(biāo)識(shí)符 3
1.4.3 常量 3
1.4.4 運(yùn)算符 3
1.5 最簡(jiǎn)單的C++程序 4
小結(jié) 5
習(xí)題 5
第2章 簡(jiǎn)單數(shù)據(jù)及運(yùn)算 7
2.1 程序中的數(shù)據(jù) 7
2.2 基本數(shù)據(jù)類型 11
2.2.1 整數(shù)類型 11
2.2.2 浮點(diǎn)數(shù)類型 15
2.2.3 字符類型 16
2.2.4 字符串類型 17
2.2.5 布爾類型 18
2.3 簡(jiǎn)單運(yùn)算 19
2.3.1 算術(shù)運(yùn)算 19
2.3.2 賦值運(yùn)算 21
2.3.3 逗號(hào)運(yùn)算 23
2.3.4 關(guān)系運(yùn)算 23
2.3.5 邏輯運(yùn)算 24
2.3.6 sizeof運(yùn)算 25
2.3.7 位運(yùn)算 26
2.4 語句 27
2.4.1 聲明語句 28
2.4.2 表達(dá)式語句 28
2.4.3 復(fù)合語句 28
小結(jié) 28
習(xí)題 28
第3章 流程控制 30
3.1 分支結(jié)構(gòu) 30
3.1.1 用if語句實(shí)現(xiàn)選擇結(jié)構(gòu) 30
3.1.2 switch語句 34
3.2 循環(huán)語句 36
3.2.1 while語句 36
3.2.2 do while語句 37
3.2.3 for語句 38
3.3 循環(huán)與選擇結(jié)構(gòu)的嵌套 40
3.4 break & continue語句 41
3.5 goto語句 43
小結(jié) 44
習(xí)題 44
第4章 復(fù)雜數(shù)據(jù)及運(yùn)算 47
4.1 數(shù)組 47
4.1.1 一維數(shù)組的聲明與使用 48
4.1.2 多維數(shù)組的聲明與使用 50
4.2 指針 52
4.2.1 數(shù)據(jù)在內(nèi)存中的地址 53
4.2.2 指針及指針運(yùn)算 56
4.3 字符串 61
4.3.1 以數(shù)組存放C風(fēng)格的字符串 61
4.3.2 string類型字符串 63
4.4 枚舉類型 67
4.5 運(yùn)算優(yōu)先級(jí)與類型轉(zhuǎn)換 68
4.5.1 運(yùn)算優(yōu)先級(jí) 68
4.5.2 類型轉(zhuǎn)換 70
小結(jié) 71
習(xí)題 71
第5章 抽象與分類 74
5.1 面向過程的功能抽象——函數(shù) 74
5.1.1 函數(shù)的定義與調(diào)用 74
5.1.2 函數(shù)參數(shù)的單向傳遞 77
5.1.3 引用類型的參數(shù) 78
5.1.4 指針類型的參數(shù) 81
5.1.5 數(shù)組類型的參數(shù) 81
5.1.6 缺省參數(shù)值 84
5.1.7 省略參數(shù) 85
5.1.8 嵌套與遞歸調(diào)用 85
5.1.9 內(nèi)聯(lián)函數(shù) 87
5.1.10 函數(shù)指針 88
5.1.11 函數(shù)的重載 89
5.2 類與對(duì)象的概念 91
5.2.1 分類與抽象的思想 91
5.2.2 對(duì)象的屬性與行為 91
5.3 程序中類的設(shè)計(jì) 91
5.3.1 對(duì)象屬性的抽象 92
5.3.2 對(duì)象功能與行為的抽象 93
5.4 類的對(duì)象 94
5.4.1 對(duì)象的定義與初始化 94
5.4.2 對(duì)象的析構(gòu) 99
5.4.3 對(duì)象數(shù)組 100
5.4.4 通過指針訪問對(duì)象 103
5.4.5 以對(duì)象作為函數(shù)的參數(shù) 106
5.5 特殊的類 106
5.5.1 結(jié)構(gòu)體 107
5.5.2 聯(lián)合體 109
5.6 友元 111
5.6.1 友元函數(shù) 111
5.6.2 友元類 112
小結(jié) 113
習(xí)題 113
第6章 自定義類型的運(yùn)算 121
6.1 用函數(shù)實(shí)現(xiàn)對(duì)象的運(yùn)算 121
6.2 運(yùn)算符重載函數(shù) 124
6.2.1 運(yùn)算符重載為成員函數(shù) 125
6.2.2 運(yùn)算符重載為非成員函數(shù) 127
6.3 典型運(yùn)算符的重載 129
6.3.1 重載乘法運(yùn)算符 129
6.3.2 重載求相反數(shù)運(yùn)算符 131
6.3.3 重載相等比較運(yùn)算符 133
6.3.4 重載++運(yùn)算符 135
6.3.5 重載賦值運(yùn)算符 138
6.3.6 重載類型轉(zhuǎn)換符 142
6.3.7 重載下標(biāo)訪問運(yùn)算符 144
小結(jié) 145
習(xí)題 145
第7章 多文件工程和編譯預(yù)處理命令 150
7.1 多文件工程 150
7.2 外部變量與外部函數(shù) 152
7.3 標(biāo)準(zhǔn)C++庫和命名空間 154
7.3.1 標(biāo)準(zhǔn)C++庫 154
7.3.2 什么是命名空間 155
7.3.3 命名空間的定義 155
7.3.4 命名空間的使用 157
7.3.5 命名空間的嵌套 161
7.4 編譯預(yù)處理 162
7.4.1 在程序中包含頭文件 163
7.4.2 程序中的置換 163
7.4.3 條件預(yù)編譯 165
小結(jié) 168
習(xí)題 169
第8章 類的重用 171
8.1 類的組合 171
8.1.1 類的組合的含義 171
8.1.2 類的組合實(shí)現(xiàn) 172
8.1.3 前向引用聲明 175
8.2 類的繼承 176
8.2.1 什么是繼承 176
8.2.2 派生類的定義 177
8.2.3 繼承成員的訪問控制 179
8.2.4 派生類的構(gòu)造函數(shù)和析構(gòu)函數(shù) 182
8.2.5 向上轉(zhuǎn)型 185
8.3 多繼承與虛基類 187
8.3.1 多繼承中同名隱藏和二義性問題 187
8.3.2 重復(fù)繼承與虛基類 188
小結(jié) 190
習(xí)題 191
第9章 數(shù)據(jù)的共享與保護(hù) 195
9.1 變量的生存期與作用域 195
9.1.1 對(duì)象的生存期 195
9.1.2 作用域及可見性 196
9.2 同類對(duì)象間的數(shù)據(jù)共享——靜態(tài)成員 199
9.2.1 靜態(tài)數(shù)據(jù)成員 199
9.2.2 靜態(tài)函數(shù)成員 200
9.3 共享數(shù)據(jù)的保護(hù) 202
9.3.1 常引用 202
9.3.2 常成員 203
9.3.3 常對(duì)象 206
小結(jié) 208
習(xí)題 208
第10章 多態(tài)性 213
10.1 多態(tài)性概述 213
10.2 虛函數(shù) 214
10.2.1 函數(shù)的覆蓋 214
10.2.2 虛函數(shù)成員 215
10.2.3 虛析構(gòu)函數(shù) 219
10.3 抽象類 221
小結(jié) 223
習(xí)題 223
第11章 輸入/輸出流 230
11.1 C++輸入/輸出流的概念 230
11.1.1 什么是輸入/輸出流 230
11.1.2 流類庫的頭文件 231
11.1.3 預(yù)定義流對(duì)象 231
11.1.4 I/O流庫的類體系 231
11.1.5 輸出流舉例 232
11.1.6 輸入流舉例 233
11.2 無格式的輸入/輸出 234
11.2.1 無格式輸入 235
11.2.2 無格式輸出 236
11.3 有格式輸入/輸出 236
11.3.1 默認(rèn)的輸入/輸出格式 236
11.3.2 格式標(biāo)志的設(shè)置 237
11.3.3 格式控制操縱符 238
11.4 I/O流的狀態(tài) 248
11.5 文件流 249
11.5.1 文件的概念 250
11.5.2 文件流的建立 250
11.5.3 文件流的關(guān)閉 251
11.5.4 兩種特殊的文件流 251
11.6 字符串流 253
11.6.1 字符串流的建立 253
11.6.2 字符串流的緩沖區(qū)操作 254
11.7 針對(duì)自定義類型重載和 255
小結(jié) 257
習(xí)題 257
第12章 容錯(cuò)及異常處理基礎(chǔ) 260
12.1 異常處理的基本思想 260
12.2 拋出異常 261
12.3 捕獲異常 263
12.4 異常對(duì)象 266
12.5 標(biāo)準(zhǔn)程序庫異常處理 267
12.6 異常規(guī)范 269
小結(jié) 270
習(xí)題 270
第13章 數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)介 273
13.1 線性群體 273
13.1.1 線性群體的概念 273
13.1.2 直接存取群體——數(shù)組 274
13.1.3 順序存取群體——鏈表 277
13.1.4 棧 286
13.1.5 隊(duì)列 288
13.2 群體數(shù)據(jù)的組織 290
13.2.1 順序查找 290
13.2.2 折半查找 291
13.2.3 插入排序 293
13.2.4 選擇排序 294
13.2.5 交換排序 295
小結(jié) 297
習(xí)題 297
第14章 模板簡(jiǎn)介 301
14.1 函數(shù)模板 301
14.1.1 函數(shù)模板的定義和實(shí)例化 301
14.1.2 模板實(shí)參的使用 304
14.1.3 模板的常規(guī)參數(shù) 306
14.2 類模板 307
14.3 類模板與繼承 310
小結(jié) 312
習(xí)題 312
第15章 泛型程序設(shè)計(jì)與C++ STL簡(jiǎn)介 319
15.1 泛型程序設(shè)計(jì)的概念和術(shù)語 319
15.1.1 泛型程序設(shè)計(jì) 319
15.1.2 STL的相關(guān)概念和術(shù)語 320
15.2 C++ STL中的容器 322
15.2.1 順序容器 322
15.2.2 關(guān)聯(lián)容器 333
15.2.3 容器適配器 335
15.3 迭代器 338
15.3.1 迭代器的分類 339
15.3.2 迭代器適配器 341
15.3.3 迭代器相關(guān)的輔助函數(shù) 341
15.4 標(biāo)準(zhǔn)C++庫中的算法簡(jiǎn)介 342
15.4.1 非可變序列算法 343
15.4.2 可變序列算法 345
15.4.3 排序及相關(guān)算法 348
15.4.4 數(shù)值算法 350
15.5 函數(shù)對(duì)象 351
15.5.1 函數(shù)對(duì)象 351
15.5.2 函數(shù)適配器 351
小結(jié) 352
習(xí)題 352
本節(jié)的例題以數(shù)值型(整數(shù)、實(shí)數(shù))的數(shù)據(jù)為例,介紹了常量與變量的概念和使用方法。這樣的概念和使用方法也同樣適用于其他類型的數(shù)據(jù),比如字符數(shù)據(jù)。其實(shí)程序中的“Please enter theradius!\n”就是字符串常量。2.2節(jié)將詳細(xì)介紹各種不同的數(shù)據(jù)類型。
2.2 基本數(shù)據(jù)類型
程序需要處理的數(shù)據(jù),具有很多不同的類型,有簡(jiǎn)單的,也有復(fù)雜的。不同類型的數(shù)據(jù)在內(nèi)存中的存放形式也不一樣,那么在程序中如何規(guī)范地存放和使用數(shù)據(jù)呢?這就是對(duì)數(shù)據(jù)類型的規(guī)定。程序中的數(shù)據(jù)類型,是對(duì)現(xiàn)實(shí)世界中的數(shù)據(jù)類型的一種模擬。例如,整數(shù)、實(shí)數(shù)、字符這些數(shù)據(jù)類型,在c++程序中都有對(duì)應(yīng)的類型。對(duì)于這些比較簡(jiǎn)單的數(shù)據(jù)類型,c++語言通過基本數(shù)據(jù)類型來模擬。這些基本類型在內(nèi)存中的存儲(chǔ)形式以及它們的運(yùn)算規(guī)則,是c++語言預(yù)定義的,我們?cè)诔绦蛑锌梢灾苯邮褂谩R恍┥晕?fù)雜的數(shù)據(jù),可以由基本類型簡(jiǎn)單復(fù)合而成。而對(duì)于各種對(duì)象的模擬,就不僅需要詳細(xì)定義其數(shù)據(jù),還需要定義處理數(shù)據(jù)的方法。
在這一章里,我們僅僅介紹c++的基本數(shù)據(jù)類型,第4章將介紹復(fù)雜數(shù)據(jù)類型,第5章將介紹類的定義。
數(shù)據(jù)可以依其本身的特點(diǎn)進(jìn)行分類。C++預(yù)定義的基本數(shù)據(jù)類型可以用來表示整數(shù)(如int)、浮點(diǎn)數(shù)(如double)、字符(如char)和布爾類型(bool)。
2.2.1整數(shù)類型
c++的整數(shù)類型有多種形式,讀者可以根據(jù)數(shù)據(jù)的特點(diǎn)選擇最合適的形式使用;菊麛(shù)類型是int類型,按符號(hào)可以分為有符號(hào)的(signed)和無符號(hào)的(unsigned)兩類;按照數(shù)據(jù)范圍大小,又可以分成短整數(shù)(short)和長整數(shù)(10ng),用于存放字符數(shù)據(jù)的char類型實(shí)質(zhì)上也是整數(shù)類型。