圖書信息
書名:21天學編程系列 21天學通C++(第3版)宣傳語:超暢銷叢書再度升級,科學的學習計畫表助您21天輕鬆學通C++
作者:劉蕾 等 編
ISBN: 978-7-121-22027-2
出版時間:2014年1月出版
定價:59.80元
頁數:420頁
開本:16開
編輯推薦
本書有何特色1.細緻體貼的講解
為了讓讀者更快地上手,本書特別設計了適合初學者的學習方式,用準確的語言總結概念?用直觀的圖示演示過程?用詳細的注釋解釋代碼?用形象的比方幫助記憶。
2.實用超值的DVD光碟
為了幫助讀者比較直觀地學習,本書附帶DVD光碟,內容包括多媒體視頻、電子教案(PPT)和實例原始碼等。
3.提供完善的技術支持
目錄
第1篇C++數據表達篇第1章C++入門 1
1.1C++概述 1
1.1.1C++的歷史沿革 1
1.1.2C++與面向對象 1
1.1.3從C到C++ 2
1.2程式設計方法 3
1.2.1結構化程式設計 3
1.2.2面向對象程式設計 4
1.2.3程式設計方法比較 4
1.3C++開發環境——Visual C++ 6.05
1.3.1工作區 5
1.3.2編輯區(Editor Area) 6
1.3.3輸出視窗(Output Panel) 6
1.3.4選單欄、工具列、狀態欄 7
1.4第一個C++程式——Hello World 7
1.4.1創建源程式 7
1.4.2編譯連線 9
1.4.3調試運行 9
1.5C++源程式組成元素10
1.5.1基本組成 10
1.5.2基本符號 11
1.5.3標識符 11
1.5.4保留字 11
1.5.5分隔設定 12
1.6小結 12
1.7習題 12
第2章變數和數據類型16
2.1常量 16
2.1.1聲明常量 16
2.1.2常量的套用 17
2.2變數 19
2.2.1聲明變數 19
2.2.2變數的命名規則 19
2.2.3變數的作用範圍 20
2.2.4變數的套用 21
2.3基本數據類型 22
2.3.1整型 23
2.3.2字元型 24
2.3.3浮點型 25
2.3.4布爾型 26
2.4類型轉換 27
2.4.1隱式轉換 27
2.4.2顯式轉換 28
2.5小結 29
2.6習題 29
第3章運算符和表達式32
3.1運算符 32
3.1.1算術運算符 32
3.1.2賦值運算符 34
3.1.3關係運算符 35
3.1.4邏輯運算符 35
3.1.5條件運算符 36
3.1.6逗號運算符 37
3.1.7位運算符 37
3.1.8sizeof運算符 38
3.1.9運算符的優先權 38
3.2表達式 39
3.2.1算術表達式 40
3.2.2關係表達式 40
3.2.3邏輯表達式 41
3.2.4條件表達式 42
3.2.5賦值表達式 43
3.2.6逗號表達式 43
3.3語句 44
3.3.1語句中的空格 44
3.3.2空語句 45
3.3.3聲明語句 45
3.3.4賦值語句 46
3.4小結 46
3.5習題 46
第4章程式控制結構 50
4.1順序結構 50
4.1.1表達式語句 50
4.1.2輸入語句 51
4.1.3輸出語句 51
4.1.4格式控制符 52
4.1.5套用示例 55
4.2選擇結構 56
4.2.1if語句 56
4.2.2if?else語句 57
4.2.3多重if…else語句 58
4.2.4switch語句 60
4.2.5套用示例 62
4.3循環結構 63
4.3.1for語句63
4.3.2while語句 64
4.3.3do?while語句 65
4.3.4多重循環 66
4.3.5套用示例 67
4.4轉向語句 68
4.5小結 69
4.6習題 70
第2篇C++面向過程設計篇
第5章函式 73
5.1定義函式 73
5.1.1函式概述 73
5.1.2定義函式 74
5.1.3套用示例 75
5.2函式參數及原型 76
5.2.1函式的參數及返回值 76
5.2.2函式原型 77
5.2.3main()函式 77
5.2.4帶參數的main()函式 79
5.3調用函式 80
5.3.1函式調用格式 80
5.3.2傳值調用 81
5.3.3引用調用 82
5.3.4嵌套調用 83
5.3.5遞歸調用 83
5.3.6帶默認形參值的函式 85
5.4變數的作用域 85
5.4.1局部變數 86
5.4.2全局變數 87
5.5函式的作用域 88
5.6函式重載 89
5.6.2參數類型不同的函式重載 90
5.6.3參數個數上不同的重載函式 91
5.7小結 92
5.8習題 92
第6章編譯預處理95
6.1預處理命令 95
6.2宏 95
6.2.1宏概述 95
6.2.2不帶參數的宏定義 96
6.2.3取消宏 97
6.2.4宏嵌套 99
6.2.5帶參數的宏定義 99
6.2.7宏與函式的區別 103
6.3檔案包含 105
6.3.1#include命令 105
6.3.2合理使用檔案包含 106
6.4條件編譯 107
6.4.1#ifdef形式 107
6.4.2#ifndef形式108
6.4.3#if形式108
6.5其他命令 110
6.5.1#error命令 110
6.5.2#line命令 110
6.6小結 111
6.7習題 111
第7章數組 114
7.1聲明數組 114
7.1.1聲明一維數組 114
7.1.2聲明多維數組 115
7.2引用數組 116
7.2.1引用一維數組 116
7.2.2引用多維數組 117
7.3數組的賦值 118
7.3.1初始化數組 119
7.3.2通過賦值表達式賦值 120
7.3.3通過輸入語句賦值 121
7.3.4通過循環語句賦值 122
7.3.5多維數組的賦值 123
7.4字元串 124
7.4.1傳統字元串 124
7.4.2字元數組 126
7.5數組與函式 127
7.6數組套用 129
7.6.1順序查找 129
7.6.2折半查找 130
7.6.3排序 132
7.7小結 135
7.8習題 136
第8章指針 139
8.1指針概述 139
8.1.1指針是什麼 139
8.1.2定義指針 140
8.1.3指針的初始化 140
8.2指針的運算 142
8.2.1取地址與取值運算 142
8.2.2指針的算術運算 143
8.2.3指針的關係運算 145
8.2.4指針的賦值運算 146
8.2.5void指針和const指針 146
8.3指針與數組 148
8.3.1訪問數組元素的方法 148
8.3.2多維數組元素的訪問 150
8.3.3 數組指針與指針數組151
8.4指針與函式 152
8.4.1指針作為函式參數 152
8.4.2指針型函式 154
8.4.3函式指針 155
8.5指針與字元串 156
8.6二級指針 157
8.7小結 158
8.8習題 159
第9章構造數據類型 162
9.1結構體 162
9.1.1結構體概述 162
9.1.2結構體類型說明 163
9.1.3定義結構體類型變數 164
9.1.4初始化結構體變數 165
9.1.5引用結構體成員變數 167
9.1.6結構體作為函式參數 169
9.2共用體 170
9.2.1共用體類型說明 170
9.2.2定義共用體類型變數 171
9.2.3引用共用體成員變數 171
9.3枚舉 173
9.3.1定義枚舉類型 173
9.3.2定義枚舉類型變數 175
9.3.3引用枚舉類型變數 176
9.4類型重定義typedef177
9.5位域 179
9.5.1定義位域變數 179
9.5.2使用位域 180
9.6小結 181
9.7習題 182
第3篇C++面向對象編程篇
第10章類和對象 185
10.1類 185
10.1.1什麼是類 185
10.1.2結構到類 186
10.1.3類的聲明 188
10.1.4類的訪問控制 189
10.1.5類的定義 191
10.2對象193
10.2.1對象概述 193
10.2.2對象數組 194
10.3構造函式196
10.3.1構造函式的概念196
10.3.2構造函式的聲明和定義 196
10.3.3構造函式的調用198
10.3.4不帶參數的構造函式199
10.3.5帶有默認參數的構造函式200
10.3.6構造函式的重載201
10.4拷貝構造函式202
10.4.1定義拷貝構造函式 202
10.4.2調用拷貝構造函式 203
10.4.3默認拷貝構造函式 205
10.5析構函式206
10.6友元207
10.6.1友元函式 207
10.6.2友元成員 209
10.6.3友元類210
10.7小結212
10.8習題212
第11章繼承 217
11.1繼承與派生 217
11.1.1繼承與派生概述217
11.1.2聲明派生類218
11.2訪問控制218
11.2.1公有繼承 219
11.2.2私有派生 221
11.2.3保護繼承 222
11.3派生類的構造函式和析構函式 226
11.3.1執行順序和構建原則226
11.3.2派生類的構造函式 226
11.3.3派生類析構函式的構建 227
11.4多重繼承229
11.4.1二義性問題229
11.4.2聲明多重繼承 231
11.4.3多重繼承的構造函式和析構函式 233
11.5虛基類 235
11.5.1虛基類的引入 235
11.5.2定義虛基類236
11.5.3虛基類的構造函式和初始化 238
11.6小結239
11.7習題239
第12章多態 245
12.1多態245
12.1.1什麼是多態245
12.1.2多態的作用246
12.1.3多態的引入246
12.2函式重載248
12.3虛函式 249
12.3.1虛函式的引入 249
12.3.2定義虛函式251
12.3.3使用虛函式252
12.3.4多重繼承和虛函式 253
12.3.5虛函式的注意事項 255
12.4抽象類 255
12.4.1純虛函式 255
12.4.2抽象類257
12.5小結259
12.6習題259
第13章運算符重載 263
13.1運算符重載簡介 263
13.1.1運算符重載的定義 263
13.1.2運算符重載的特點 264
13.1.3運算符重載的規則 265
13.2運算符重載的形式266
13.2.1重載為類的成員函式266
13.2.2雙目運算符重載為成員函式 266
13.2.3單目運算符重載為成員函式 267
13.2.4運算符重載為類的友元函式 269
13.2.5雙目運算符重載為友元函式 269
13.2.6單目運算符重載為友元函式 270
13.2.7成員運算符函式與友元運算符函式的比較 272
13.3特殊運算符的重載272
13.3.1 “++”和“--”的重載 272
13.3.2賦值運算符“=”的重載 274
13.3.3下標運算符“[ ]”的重載 276
13.4類類型轉換 277
13.5小結279
13.6習題279
第14章輸入/輸出流 283
14.1輸入/輸出流的引入 283
14.1.1printf與scanf的缺陷 283
14.1.2輸入/輸出流簡介 284
14.1.3輸入/輸出流類層次 285
14.2標準輸入/輸出流 286
14.2.1標準輸出流對象286
14.2.2標準輸入流對象287
14.2.3標準錯誤輸出流對象288
14.3輸入/輸出流成員函式 289
14.3.1get()函式:輸出字元串 289
14.3.2getline()函式:獲取字元串 291
14.4輸入/輸出的格式控制 291
14.4.1用ios類的成員函式進行格式控制292
14.4.2使用格式控制符進行格式控制294
14.5用戶自定義數據類型的輸入/輸出 296
14.5.1重載輸出運算符“<<” 296
14.5.2重載輸入運算符“>>” 298
14.6小結299
14.7習題299
第4篇C++高級特性篇
第15章檔案 303
15.1檔案和流303
15.1.1檔案概述 303
15.1.2檔案流類 304
15.2檔案的打開與關閉305
15.2.1打開檔案 305
15.2.2關閉檔案 307
15.3檔案的順序讀寫 308
15.3.1讀寫文本檔案 308
15.3.2文本檔案套用示例 309
15.3.3二進制檔案概述311
15.3.4讀寫二進制檔案311
15.4檔案的隨機讀寫 314
15.5小結316
15.6習題316
第16章命名空間 319
16.1命名空間319
16.1.1什麼是命名空間319
16.1.2定義命名空間 320
16.2使用命名空間322
16.2.1使用作用域運算符引用成員 322
16.2.2使用using指令323
16.2.3使用using聲明324
16.2.4using指令與using聲明的比較 325
16.3類的作用域 325
16.3.1靜態數據成員 326
16.3.2靜態成員函式 327
16.4作用域 328
16.4.1局部作用域328
16.4.2全局作用域330
16.4.3作用域嵌套331
16.5this指針332
16.6小結334
16.7習題334
第17章引用與記憶體管理 337
17.1引用337
17.1.1引用概述 337
17.1.2引用的使用338
17.2引用的操作 339
17.2.1引用作為函式參數 339
17.2.2引用作為返回值340
17.3動態記憶體分配341
17.3.1申請動態記憶體 341
17.3.2釋放空間 343
17.3.3malloc和free庫函式 344
17.4const引用 346
17.5指針與引用的區別347
17.6小結348
17.7習題349
第5篇C++編程實踐篇
第18章標準模板庫STL351
18.1標準模板庫 351
18.1.1STL概述 351
18.1.2STL的引入 351
18.1.3STL的組成 352
18.2算法353
18.3容器355
18.3.1什麼是容器355
18.3.2向量 355
18.3.3列表 357
18.3.4集合 359
18.3.5雙端佇列 360
18.3.6棧361
18.3.7映射和多重映射363
18.4疊代器 364
18.5小結365
18.6習題365
第19章模板與C++標準庫 368
19.1模板概述368
19.1.1模板簡介 368
19.1.2模板的引入369
19.2函式模板370
19.2.1定義函式模板 370
19.2.2生成模板函式 371
19.2.3函式模板的異常處理372
19.3類模板 373
19.3.1定義類模板373
19.3.2模板類374
19.4C++標準庫概述 376
19.5字元串庫377
19.5.1讀寫字元串377
19.5.2字元串賦值377
19.5.3字元串比較378
19.5.4字元串長度和空字元串 379
19.6小結381
19.7習題381
第20章異常處理 384
20.1錯誤與異常 384
20.1.1什麼是異常384
20.1.2異常處理的基本思想384
20.2異常處理的實現 386
20.2.1使用try/catch捕獲異常386
20.2.2使用throw拋出異常387
20.2.3套用示例 388
20.3類和結構的異常處理 389
20.3.1異常處理中的構造和析構390
20.3.2處理結構類型的異常391
20.4異常處理機制392
20.5小結394
20.6習題394
第6篇實例篇
第21章簡單學生成績管理系統開發實例 397
21.1需求分析397
21.2總體設計397
21.3功能模組實現398
21.3.1成績錄入模組 399
21.3.2成績統計模組 399
21.3.3成績排名模組 400
21.3.4成績查詢模組 402
21.3.5輸出模組 403
21.4系統集成403
21.5系統實現405
21.5.1結構和變數定義部分406
21.5.2功能函式定義部分 407
21.5.3主函式部分408
21.6小結410
前言
“21天學編程系列”自2009年1月上市以來一直受到廣大讀者的青睞。該系列中的大部分圖書從一上市就登上了編程類圖書銷售排行榜的前列,很多大中專院校也將該系列中的一些圖書作為教材使用,目前這些圖書已經多次印刷、改版。可以說,“21天學編程系列”是自2009年以來國內原創計算機編程圖書最有影響力的品牌之一。為了使該系列圖書能緊跟技術和教學的發展,更加適合讀者學習和學校教學,我們結合最新技術和讀者的建議,對該系列圖書進行了改版(即第3版)。本書便是該系列中的C++分冊。
本書有何特色
1.細緻體貼的講解
為了讓讀者更快地上手,本書特別設計了適合初學者的學習方式,用準確的語言總結概念?用直觀的圖示演示過程?用詳細的注釋解釋代碼?用形象的比方幫助記憶。效果如下:
知識點介紹準確、清晰是其顯著特點,一般放在每一節開始位置,讓零基礎的讀者了解相關概念,順利入門。
範例書中出現的完整實例,以章節順序編號,便於檢索和循序漸進地學習、實踐,放在每節知識點介紹之後。
範例代碼與範例編號對應,層次清楚、語句簡潔、注釋豐富,體現了代碼優美的原則,有利於讀者養成良好的代碼編寫習慣。對於大段程式,均在每行代碼前設定編號便於學習。
運行結果對範例給出運行結果和對應圖示,幫助讀者更直觀地理解範例代碼。
範例解析將範例代碼中的關鍵代碼行逐一解釋,有助於讀者掌握相關概念和知識。
貼心的提示為了便於讀者閱讀,全書還穿插著一些技巧、提示等小貼士,體例約定如下:
提示:通常是一些貼心的提醒,讓讀者加深印象或提供建議,或者解決問題的方法。
注意:提出學習過程中需要特別注意的一些知識點和內容,或者相關信息。
警告:對操作不當或理解偏差將會造成的災難性後果做警示,以加深讀者印象。
經作者多年的培訓和授課證明,以上講解方式是最適合初學者學習的方式,讀者按照這種方式,會非常輕鬆、順利地掌握本書知識。
2.實用超值的DVD光碟
為了幫助讀者比較直觀地學習,本書附帶DVD光碟,內容包括多媒體視頻、電子教案(PPT)和實例原始碼等。
多媒體視頻
本書配有長達12小時教學視頻,講解關鍵知識點界面操作和書中的一些綜合練習題。作者親自配音、演示,手把手教會讀者使用。
電子教案(PPT)
本書可以作為高校相關課程的教材或課外輔導書,所以作者特別為本書製作了電子教案(PPT),以方便老師教學使用。
3.提供完善的技術支持
本書的技術支持論壇,讀者可以在上面提問交流。另外,論壇上還有一些教程、視頻動畫和各種技術文章,可幫助讀者提高開發水平。
推薦的學習計畫表
本書作者在長期從事相關培訓或教學實踐過程中,歸納了最適合初學者的學習模式,並參考了多位專家的意見,為讀者總結了合理的學習時間分配方式,列表如下:
本書適合哪些讀者閱讀
本書非常適合以下幾類人員閱讀:
從未接觸過C++編程,但對C++有興趣的自學人員;
各大中專院校的在校學生和相關授課老師;
了解一些C++,但還需要進一步學習的人員;
在某些需要使用C++編程的特殊領域的工作人員;
其他編程愛好者。
本書作者
本書主要由劉蕾編寫。其他參與編寫的人員有張燕、杜海梅、孟春燕、吳金艷、鮑凱、龐雁豪、楊銳麗、鮑潔、王小龍、李亞傑、張彥梅、劉媛媛、李亞偉、張昆,在此一併表示感謝。