-- 會員 / 註冊 --  
 帳號:
 密碼:
  | 註冊 | 忘記密碼
3/26 新書到! 3/19 新書到! 3/14 新書到! 12/12 新書到!
購書流程Q & A站務留言版客服信箱
3ds MaxMayaRhinoAfter EffectsSketchUpZBrushPainterUnity
PhotoShopAutoCadMasterCamSolidWorksCreoUGRevitNuke
C#CC++Java遊戲程式Linux嵌入式PLCFPGAMatlab
駭客資料庫搜索引擎影像處理FluentVR+ARANSYS深度學習
單晶片AVROpenGLArduinoRaspberry Pi電路設計CadenceProtel
HadoopPythonStm32CortexLabview手機程式AndroidiPhone
可查書名,作者,ISBN,3dwoo書號
詳細書籍分類

C++入門經典(第10版)

( 簡體 字)
作者:[美]Walter Savitch著類別:1. -> 程式設計 -> C++ -> C++
譯者:周靖譯
出版社:清華大學出版社C++入門經典(第10版) 3dWoo書號: 48330
詢問書籍請說出此書號!

缺書
NT售價: 690

出版日:1/1/2018
頁數:739
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 版 )
加入購物車 加到我的最愛
(請先登入會員)
ISBN:9787302486763
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證)
作者序:

譯者序:

前言:

  本書適合C++程序設計和計算機科學入門課程。不要求讀者有任何編程經驗,也不要求掌握除中學代數之外的其他任何數學知識。
  本書前幾版的讀者請閱讀關于第10版修訂內容的小節,前言其余內容可略過。新讀者請閱讀前言的全部內容以把握本書脈絡。
第10版修訂內容
  第10版采用和第9版相同的體例。保留第9版全部內容,但進行了以下修訂。
* 統一采用camelCase拼寫法,不再采用C風格的下劃線連接。例如,set_name改為setName。
* 第10章討論了淺拷貝和深拷貝。
* 第12章和第17章討論了如何用頭文件引入編譯模板。
* 第18章討論了C++11的std::array類、正則表達式、線程和智能指針。
* 進行了大量勘誤和編輯,強調了文件I/O的首選方法,術語更規范,更好地定義了封裝,并不再討論已在C++11和更高版本中成為標準的一些東西。
* 新增10個編程項目。
* 新增5個視頻講解,總數達69個。這些視頻講解輔導學生解題和寫程序,有助于鞏固對關鍵編程概念的掌握。如書中某個主題有對應的視頻講解,就會出現一行特殊的注釋(視頻講解:……)。
  用過第9版的教師可沿用以前的教案,幾乎不需要任何改動。
主題可以靈活排序
  本書允許教師自由安排教學順序。為了演示這一靈活性,下面推薦了兩個額外的順序。采用任何順序都不會影響學習的連貫性。為了在改變順序時確保這種連貫性,可能需要移動個別小節而不是全章。但只有較大的、位置便利的小節才需移動。為了幫助您根據需要自定義一個教學/閱讀順序,圖P.1展示了一幅依賴圖。另外,每章都有“預備知識”小節,解釋學習那一章的每一節之前需掌握的內容。
  重新排序1:提前學習類
  為有效設計類,學生需要掌握一些基本工具,比如控制結構和函數定義。這些基礎知識在第1章∼第6章介紹。完成第6章后,學生就可開始寫自己的類了。如果想提前學習類的相關知識,可像下面這樣重新安排各章順序。
* 基礎知識 第1章∼第6章。這6章全面介紹控制結構、函數定義和基本文件I/O。第3章介紹幾種額外的控制結構,想提前學習類可考慮推遲這一章。
* 類和命名空間 第10章、第11章的11.1節和11.2節、第12章。這些章節全面介紹了如何定義類、友元、重載操作符和命名空間。
* 數組、字符串和向量 第7章和第8章。
* 指針和動態數組 第9章。
* 類中的數組 第11章的11.3節和11.4節。
* 繼承 第15章。
* 遞歸 第14章(可推遲)。
* 指針和鏈表 第13章。
  可能還要用到以下各章的部分內容。
* 異常處理 第16章。
* 模板 第17章。
* 標準模板庫 第18章。
  重新排序2:略微推遲類的學習
  在“重新排序2”中,將先學完所有控制結構和數組的知識,然后才開始學習類。雖然對類的接觸要比“重新排序1”晚,但還是比本書的默認順序提前一些。
* 基礎知識 第1章到第6章。這6章全面介紹了控制結構、函數定義和基本文件I/O。
* 數組和字符串 第7章、第8章的8.1節和8.2節。
* 類和命名空間 第10章、第11章的11.1節、11.2節和第12章。這些章節全面介紹了如何定義類、友元、重載操作符和命名空間。
* 指針和動態數組 第9章。
* 類中的數組 第11章的11.3節和11.4節。
* 繼承 第15章。
* 遞歸 第14章(可推遲)。
* 向量 8.3節。
* 指針和鏈表 第13章。
  可能還要用到以下各章的部分內容。
* 異常處理 第16章。
* 模板 第17章。
* 標準模板庫 第18章。
面向學生的易用性
  一本書必須按恰當的順序來講解恰當的主題,這是最起碼的要求。另外,在老師和其他有經驗的程序員看來,書的內容必須清晰而正確,這是另一個最起碼的要求。但是不是符合這兩項要求的書都是好書呢?答案是否定的。書中的內容必須采取有利于初學者使用的方式來編排。在這本入門教科書中,我盡力讓學生覺得清楚和友好。本書以前版本的大量學生反饋證明,這種寫作風格確實使內容更清晰,能使學生充分享受到學習的樂趣。
ANSI/ISO C++標準
  本書可順利使用符合最新ANSI/ISO C++標準的編譯器。寫作時最新標準是C++14。
高級主題
  許多“高級主題”都已成為標準CS1課程的一部分。即使不是,以補充材料的形式提供也不錯。本書提供大量高級主題,它們既可集成到課程中,也可作為自學主題。本書全面講述了C++模板、繼承(包括虛函數)、異常處理和STL(Standard Template Library,標準模板庫)。雖然本書使用了庫,而且教給學生庫的重要性,但不要求任何非標準庫。本書只用所有C++實現都有的庫。
依賴圖
  下面的依賴圖展示了各個章節可能的排序方式。連接兩個框的實線表明上部的框必須先于下部的框完成。只要符合這個條件,采用任何閱讀順序都無損連貫性。如果一個框中包含小節編號,表明該框只代表那些小節,不代表全章。
  

  
小結框
  每個要點都用一個有底紋的方框來小結,它們散布于各章。
  自測題
  每章都在重要位置提供大量自測題。答案在章末提供。
  視頻講解
   視頻講解(Video Note)旨在講解關鍵編程概念和技術,演示了從設計到編碼來解決問題的過程。視頻講解使學生能方便地自學感興趣的主題,支持選擇、播放、倒退、快進和暫停。每當看到“ 視頻講解:……”,都表明當前主題有對應的視頻講解。
* 教師資源指南(Instructor’s Resource Guide):包括每一章的教學要點、課堂測驗/答案和大量編程項目的參考答案。
* Test Bank和Test Generator:用于生成試卷。
* PowerPoint幻燈片:包括本書的程序和插圖。
* Lab Manual(實驗手冊)。
  
致 謝
  在準備本書素材期間,許多個人和團體提供了大量建議和幫助,并和我進行了廣泛而深入的探討。本書第1版大部分內容是我在科羅拉多大學(波德分校)計算機系擔任客座教授時寫就的。其余內容和后續版本則是在加州大學(圣地亞哥分校)計算機科學與工程系完成的。非常感謝兩所學校為本書寫作和教學所提供的良好氛圍。
  特別感謝向這一版和之前各版提供意見或者編程項目的個人,以下人名按字母排序:Alex Feldman,Amber Settle,Andrew Burt,Andrew Haas,Anne Marchant,Barney MacCabe,Bob Holloway,Bob Matthews,Brian R. King,Bruce Johnston,Carol Roberts,Charles Dowling,Claire Bono,Cynthia Martincic,David Feinstein,David Teague,Dennis Heckman,Donald Needham,Doug Cosman,Dung Nguyen,Edward Carr,Eitan M. Gurari,Ethan Munson,Firooz Khosraviyani,Frank Moore,Gilliean Lee,Huzefa Kagdi,James Stepleton,Jeff Roach,Jeffrey Watson,Jennifer Perkins,Jerry Weltman,Joe Faletti,Joel Cohen,John J. Westman,John Marsaglia,John Russo,Joseph Allen,Joseph D. Oldham,Jerrold Grossman,Jesse Morehouse,Karla Chaveau,Ken Rockwood,Larry Johnson,Len Garrett,Linda F. Wilson,Mal Gunasekera,Marianne Lepp,Matt Johnson,Michael Keenan,Michael Main,Michal Sramka,Naomi Shapiro,Nat Martin,Noah Aydin,Nisar Hundewale,Paul J. Kaiser,Paul Kube,Paulo Franca,Richard Borie,Scot Drysdale,Scott Strong,Sheila Foster,Steve Mahaney,Susanne Sherba,Thomas Judson,Walter A. Manrique,Wei Lian Chen和Wojciech Komornicki。
  還要感謝用過本書前幾版的許多老師,他們的建議相當有價值。最后感謝Kenrick Mock幫我實現了這一版的全部修訂。他的工作令我和編輯激賞!
內容簡介:

作為C++入門經典教材,《C++入門經典(第10版)》結合作者多年的教學經驗,清楚梳理出一個有利于教與學的結構體系,從各章開頭的內容總覽,到隨處可見的自測題、小結框、編程提示和編程陷阱,再到章末的小結、習題、編程練習和編程項目,由淺入深,從簡到繁,可以幫助初學者漸入佳境,逐步理解并掌握重要的編程概念。
《C++入門經典(第10版)》共18章,8個附錄。在講解C++基礎知識之后,循序漸進地引導讀者深入函數、I/O流、類、控制流程、命名空間、數組、字符串、指針和動態數組、遞歸、模板、指針和鏈表、派生類、異常以及標準模板庫。本書前幾版被全國100多所高校選作C++程序設計課程的教材,很受師生歡迎。《C++入門經典(第10版)》也適合自學,不同層次的知識點和測試練習,可以幫助讀者以自己的節奏進入美妙的C++編程世界。
目錄:

第1章計算機和C++編程入門 1
1.1計算機系統 2
硬件 2
軟件 5
高級語言 6
編譯器 7
歷史回顧 9
1.2編程和問題求解 9
算法 10
程序設計 11
面向對象編程 12
軟件生命周期 12
1.3C++入門 13
C++語言的起源 13
一個C++示范程序 14
陷阱:在\n中錯誤地使用斜杠 17
編程提示:輸入和輸出語法 17
簡單C++程序的布局 17
陷阱:在include的文件名前錯誤地
添加一個空格 19
編譯和運行C++程序 19
陷阱:編譯C++11程序 19
編程提示:讓程序運行起來 20
1.4測試和調試 22
各種程序錯誤 22
陷阱:錯誤地假定程序正確 23
小結 24
自測題答案 25
編程練習 26
編程項目 27
第2章C++基礎知識 29
2.1變量和賦值 30
變量 30
名稱:標識符 32
變量聲明 33
賦值語句 34
陷阱:未初始化的變量 35
編程提示:使用有意義的名稱 36
2.2輸入和輸出 37
使用cout進行輸出 37
include預編譯指令和命名空間 38
轉義序列 39
編程提示:用\n或endl終止
每一個程序 40
格式化帶小數點的數字 41
用cin進行輸入 42
設計輸入和輸出 43
編程提示:I/O中的換行 43
2.3數據類型和表達式 44
int類型和double類型 44
其他數值類型 45
C++11類型 46
char類型 47
bool類型 48
string類簡介 48
類型的兼容性 49
算術操作符和表達式 50
陷阱:除法中的整數 52
更多賦值語句 53
2.4簡單控制流程 54
一個簡單的分支機制 54
陷阱:連續的不等式 58
陷阱:該用==的時候用了= 58
復合語句 59
簡單的循環機制 61
遞增操作符和遞減操作符 63
編程實例:信用卡余額 64
陷阱:無限循環 65
2.5程序風格 67
縮進 67
注釋 67
為常量命名 69
小結 71
自測題答案 72
編程練習 75
編程項目 76
第3章更多的控制流程 81
3.1使用布爾表達式 82
布爾表達式求值 82
陷阱:將布爾表達式轉換成int值 85
枚舉類型(選讀) 87
3.2多路分支 87
嵌套語句 88
編程提示:在嵌套語句中使用
花括號 88
多路if-else語句 90
編程實例:州收入稅 91
switch語句 94
陷阱:忘記在switch語句中添加
break 96
為菜單使用switch語句 97
代碼塊 98
陷阱:疏忽局部變量 100
3.3C++循環語句詳解 101
while語句回顧 101
再論遞增操作符和遞減操作符 102
for語句 104
陷阱:for語句中多余的分號 108
應該使用哪種循環 108
陷阱:未初始化的變量和
無限循環 110
break語句 110
陷阱:嵌套循環中的break語句 111
3.4設計循環 111
求和與求乘積的循環 112
終止循環 113
嵌套循環 115
調試循環 116
小結 119
自測題答案 120
編程練習 123
編程項目 124
第4章過程抽象和返回值的函數 129
4.1自頂向下設計 130
4.2預定義函數 130
使用預定義函數 131
隨機數生成 134
強制類型轉換 135
強制類型轉換的古老形式 137
陷阱:整數除法丟棄了小數部分 137
4.3程序員自定義函數 138
函數定義 138
返回布爾值的函數 142
另一種形式的函數聲明 142
陷阱:實參順序錯誤 143
函數定義語法小結 144
再論函數定義的位置 144
編程提示:在分支語句中使用
函數調用 145
4.4過程抽象 146
黑盒的比喻 146
編程提示:選擇形參名稱 147
編程提示:嵌套循環 148
案例分析:購買比薩 150
編程提示:使用偽代碼 154
4.5作用域和局部變量 155
函數如同小程序 155
編程實例:豌豆試驗田 157
全局常量和全局變量 157
傳值形參是局部變量 158
塊作用域 160
再論命名空間 161
編程實例:階乘函數 163
4.6重載函數名稱 164
重載入門 164
編程實例:購買比薩(修訂版) 166
自動類型轉換 168
小結 170
自測題答案 171
編程練習 173
編程項目 174
第5章用函數完成所有子任務 177
5.1void函數 178
void函數的定義 178
編程實例溫度換算 180
void函數中的return語句 181
5.2傳引用參數 182
初探傳引用調用 182
傳引用調用詳解 184
編程實例:swapValues函數 187
混合的參數列表 188
編程提示:應該使用哪種參數 189
陷阱:疏忽造成的局部變量 190
5.3使用過程抽象 192
在函數中調用其他函數 192
前條件和后條件 193
案例分析:超市定價系統 194
5.4測試和調試函數 198
存根和驅動程序 198
5.5常規調試技術 201
不抱成見 201
檢查常見錯誤 202
定位錯誤 202
assert宏 203
小結 205
自測題答案 206
編程練習 208
編程項目 209
第6章I/O流——對象和類入門 213
6.1流和基本文件I/O 214
為什么要用文件來I/O 215
文件I/O 215
類與對象入門 218
編程提示:檢查文件是否成功
打開 219
文件I/O技術 222
追加到文件(選讀) 223
文件名作為輸入(選讀) 225
6.2流I/O工具 227
用流函數格式化輸出 227
操縱元 230
流作為函數實參 232
編程提示:檢查文件尾 233
命名空間的問題 234
編程實例:整理文件格式 235
6.3字符I/O 236
get和put成員函數 236
putback成員函數(選讀) 239
編程實例:檢查輸入 239
陷阱:輸入中不期而遇的\n 241
編程實例:另一個newLine函數 242
函數的默認實參(選讀) 243
eof成員函數 246
編程實例:編輯文本文件 247
預定義字符函數 249
陷阱:toupper和tolower返回值 250
小結 252
自測題答案 253
編程練習 257
編程項目 258
第7章數組 263
7.1數組入門 264
聲明和引用數組 264
編程提示:為數組使用for循環 266
陷阱:數組索引總是從零開始 266
編程提示:為數組長度使用已定義
常量 266
數組在內存中的表示 267
陷阱:數組索引越界 268
初始化數組 269
編程提示:C++11基于范圍的
for語句 270
7.2函數中的數組 272
索引變量作為函數參數 272
整個數組作為函數參數 274
const參數修飾符 276
陷阱:const參數修飾符的使用
不一致 277
返回數組的函數 278
案例分析:產量圖 278
7.3數組編程 287
部分填充數組 287
編程提示:不要吝嗇形參 289
編程實例:搜索數組 290
編程實例:數組排序 291
編程實例:冒泡排序 294
7.4多維數組 297
多維數組基礎 297
多維數組參數 298
編程實例:二維打分程序 299
陷阱:在數組索引之間使用逗號 302
小結 303
自測題答案 304
編程練習 306
編程項目 307
第8章字符串和向量 315
8.1字符串的數組類型 316
C字符串值和C字符串變量 317
陷阱:為C字符串使用=和== 319
<cstring>中的其他函數 321
陷阱:使用strcpy復制C字符串
越界 322
C字符串輸入和輸出 324
C字符串到數值的轉換和
可靠輸入 326
8.2標準string類 330
標準類string簡介 330
string類的I/O 332
編程提示:getline的其他版本 334
陷阱:混合使用cin>>變量;和
getline 335
用string類進行字符串處理 336
編程實例:回文測試 338
string對象和C字符串之間的轉換 341
字符串和數字之間的轉換 342
8.3向量 342
向量基礎知識 342
陷阱:使用方括號時超出向量
長度 345
編程提示:向量賦值具有良好
行為 345
效率問題 345
小結 347
自測題答案 348
編程練習 349
編程項目 350
第9章指針和動態數組 355
9.1指針 356
指針變量 357
基本內存管理 362
陷阱:虛懸指針 362
靜態變量和自動變量 362
編程提示:定義指針類型 363
9.2動態數組 364
數組變量和指針變量 365
創建和使用動態數組 366
指針運算(選讀) 370
多維動態數組(選讀) 371
小結 373
自測題答案 374
編程練習 374
編程項目 375
第10章定義類 379
10.1結構 380
用于異種數據的結構 380
陷阱:結構定義中忘記添加分號 383
結構作為函數參數 384
編程提示:使用層次化結構 384
對結構進行初始化 386
10.2類 388
定義類和成員函數 388
公共成員和私有成員 391
編程提示:將所有成員變量
設為私有 396
編程提示:定義取值函數和
賦值函數 397
編程提示:將賦值操作符用于
對象 398
編程實例:BankAccount類
(版本1) 398
總結類的一些特征 402
用于初始化的構造函數 403
編程提示:總是包括默認構造
函數 408
陷阱:無參構造函數 409
C++11的成員初始化器和構造
函數委托 410
10.3抽象數據類型 411
用于生成抽象數據類型的類 412
編程實例:類的另一種實現 414
10.4繼承 418
派生類 418
定義派生類 419
小結 423
自測題答案 424
編程練習 428
編程項目 428
第11章類中的友元函數、
重載操作符和數組 433
11.1友元函數 434
編程實例:一個相等性函數 434
友元函數 436
編程提示:定義取值函數和
友元函數 438
編程提示:同時使用成員函數和
非成員函數 439
編程實例:Money類(版本1) 439
實現digitToInt(選讀) 443
陷阱:數字常量中的前置零 444
const參數修飾符 445
陷阱:修飾符const的用法不一致 447
11.2重載操作符 449
重載操作符 449
用于自動類型轉換的構造函數 452
重載一元操作符 453
重載>>和<< 454
11.3數組和類 460
類數組 460
數組作為類成員 463
編程實例:用于部分填充
數組的類 463
11.4類和動態數組 465
編程實例:字符串變量類 466
析構函數 468
陷阱:指針作為傳值參數 469
拷貝構造函數 471
重載賦值操作符 474
小結 477
自測題答案 478
編程練習 484
編程項目 484
第12章獨立編譯和命名空間 491
12.1獨立編譯 492
ADT回顧 492
案例分析:獨立編譯的
DigitalTime類 493
使用#ifndef 500
編程提示:定義其他庫 502
12.2命名空間 503
命名空間和using預編譯指令 503
創建命名空間 504
限定名稱 506
命名空間的微妙之處(選讀) 507
無名命名空間 508
陷阱:混淆全局命名空間和
無名命名空間 512
小結 513
自測題答案 514
編程練習 515
編程項目 516
第13章指針和鏈表 517
13.1節點和鏈表 518
節點 519
nullptr 521
鏈表 522
在表頭插入節點 523
陷阱:丟失節點 525
搜索鏈表 526
指針作為迭代器 528
在列表中插入和刪除節點 528
陷阱:為動態數據結構使用賦值
操作符 531
鏈表的變體 531
類構成的鏈表 533
13.2棧和隊列 536
棧 536
編程實例:棧類 536
隊列 539
編程實例:隊列類 540
小結 544
自測題答案 545
編程練習 546
編程項目 547
第14章遞歸 553
14.1面向任務的遞歸函數 554
案例分析:垂直數字 555
深入遞歸 559
陷阱:無窮遞歸 560
用于遞歸的棧 562
陷阱:棧溢出 563
遞歸與迭代 563
14.2面向值的遞歸函數 564
要返回值的遞歸函數的常規形式 564
編程實例:另一個求乘方函數 564
14.3遞歸思想 567
遞歸設計技術 567
案例分析:二叉搜索
(遞歸思想示例) 569
編程實例:遞歸成員函數 574
小結 577
自測題答案 578
編程練習 581
編程項目 581
第15章繼承 585
15.1繼承基礎 586
派生類 588
派生類中的構造函數 593
陷阱:使用來自基類的私有
成員變量 595
陷阱:私有成員函數不會繼承 596
protected限定符 596
重定義成員函數 598
重定義與重載的比較 600
訪問重定義的基函數 601
15.2繼承細節 602
不繼承的函數 602
派生類中的賦值操作符和
拷貝構造函數 602
派生類中的析構函數 603
15.3多態性 604
晚期綁定 604
C++虛函數 605
虛函數和擴展類型兼容性 609
陷阱:不使用虛成員函數 612
陷阱:試圖對虛成員函數定義
不齊全的類進行編譯 612
編程提示:使析構函數成為
虛函數 613
小結 615
自測題答案 616
編程練習 619
編程項目 620
第16章異常處理 627
16.1異常處理基礎 628
異常處理的簡單例子 629
定義自己的異常類 635
多個throw塊和catch塊 636
陷阱:首先捕捉較具體的異常 638
編程提示:異常類可能很簡單 638
在函數中拋出異常 639
異常規范 640
陷阱:派生類中的異常規范 641
16.2用于異常處理的編程技術 642
拋出異常的時機 642
陷阱:未捕捉的異常 643
陷阱:嵌套try-catch塊 643
陷阱:濫用異常 644
異常類層次結構 644
測試可用內存 644
重新拋出異常 645
小結 646
自測題答案 647
編程練習 647
編程項目 649
第17章模板 651
17.1用于算法抽象的模板 652
函數模板 653
陷阱:編譯器的復雜性 656
編程實例:泛型排序函數 657
編程提示:如何定義模板 660
陷阱:為不恰當的類型使用模板 660
17.2用于數據抽象的模板 660
類模板的語法 660
編程實例:數組類 663
小結 668
自測題答案 669
編程練習 671
編程項目 671
第18章標準模板庫 675
18.1迭代器 676
using聲明 677
迭代器基礎 677
編程提示:使用auto簡化變量
聲明 681
陷阱:編譯器問題 681
迭代器的種類 682
常量和可變迭代器 684
逆向迭代器 685
其他種類的迭代器 687
18.2容器 687
順序容器 687
陷阱:迭代器和刪除元素 690
編程提示:容器中的類型定義 691
容器配接器stack和queue 691
關聯容器set和map 693
編程提示:為容器使用初始化、
基于范圍的for和auto 698
效率問題 699
18.3泛型算法 699
運行時間和大O表示法 700
容器訪問運行時間 703
不修改容器的算法 703
會修改容器的算法 706
set算法 707
排序算法 708
18.4不斷進化的C++ 708
std::array 709
正則表達式 710
線程 713
智能指針 717
小結 722
自測題答案 723
編程練習 724
編程項目 724
附錄AC++關鍵字 729
附錄B操作符的優先級 730
附錄CASCII字符集 731
附錄D部分庫函數 732
附錄E內聯函數 736
附錄F重載數組索引方括號 737
附錄Gthis指針 738
附錄H將操作符重載為成員操作符 740
序: