C++程序設計 第3版 Computing Fundamentals with C++: 3rd Edition
[美]瑞克·莫瑟(Rick Mercer)
中文年末書展|繁簡參展書2書75折 詳見活動內容 »
-
75折
為你寫的 Vue Components:從原子到系統,一步步用設計思維打造面面俱到的元件實戰力 (iThome 鐵人賽系列書)$780$585 -
75折
BDD in Action, 2/e (中文版)$960$720 -
75折
看不見的戰場:社群、AI 與企業資安危機$750$563 -
79折
AI 精準提問 × 高效應用:DeepSeek、ChatGPT、Claude、Gemini、Copilot 一本搞定$390$308 -
7折
超實用!Word.Excel.PowerPoint 辦公室 Office 365 省時高手必備 50招, 4/e (暢銷回饋版)$420$294 -
75折
裂縫碎光:資安數位生存戰$550$412 -
85折
日本當代最強插畫 2025 : 150位當代最強畫師豪華作品集$640$544 -
79折
Google BI 解決方案:Looker Studio × AI 數據驅動行銷實作,完美整合 Google Analytics 4、Google Ads、ChatGPT、Gemini$630$498 -
79折
超有料 Plus!職場第一實用的 AI 工作術 - 用對 AI 工具、自動化 Agent, 讓生產力全面進化!$599$473 -
75折
從零開始學 Visual C# 2022 程式設計, 4/e (暢銷回饋版)$690$518 -
75折
Windows 11 制霸攻略:圖解 AI 與 Copilot 應用,輕鬆搞懂新手必學的 Windows 技巧$640$480 -
75折
精準駕馭 Word!論文寫作絕非難事 (好評回饋版)$480$360 -
Sam Yang 的插畫藝術:用 Procreate / PS 畫出最強男友視角 x 女孩美好日常$699$629 -
79折
AI 加持!Google Sheets 超級工作流$599$473 -
78折
想要 SSR? 快使用 Nuxt 吧!:Nuxt 讓 Vue.js 更好處理 SEO 搜尋引擎最佳化(iThome鐵人賽系列書)$780$608 -
75折
超實用!業務.總管.人資的辦公室 WORD 365 省時高手必備 50招 (第二版)$500$375 -
7折
Node-RED + YOLO + ESP32-CAM:AIoT 智慧物聯網與邊緣 AI 專題實戰$680$476 -
79折
「生成式⇄AI」:52 個零程式互動體驗,打造新世代人工智慧素養$599$473 -
7折
Windows APT Warfare:惡意程式前線戰術指南, 3/e$720$504 -
75折
我輩程式人:回顧從 Ada 到 AI 這條程式路,程式人如何改變世界的歷史與未來展望 (We, Programmers: A Chronicle of Coders from Ada to AI)$850$637 -
75折
不用自己寫!用 GitHub Copilot 搞定 LLM 應用開發$600$450 -
79折
Tensorflow 接班王者:Google JAX 深度學習又快又強大 (好評回饋版)$780$616 -
79折
GPT4 會你也會 - 共融機器人的多模態互動式情感分析 (好評回饋版)$700$553 -
79折
技術士技能檢定 電腦軟體應用丙級術科解題教本|Office 2021$460$363 -
75折
Notion 與 Notion AI 全能實戰手冊:生活、學習與職場的智慧策略 (暢銷回饋版)$560$420
相關主題
商品描述
本書是以C++編程語言來講解計算基礎知識和技能的實用教程。全書共13 章。本書首先介紹了通過程序設計解決問題的思路和步驟,然後依次介紹了C++基礎知識、函數的運用和實現、消息機制、成員函數、條件、循環、文件流、vector 類、泛型容器和二維數組等技術及其C++編程實現技巧。每一章中以及每章的最後,分別給出了自測題、練習題、編程技巧、編程項目等內容。附錄部分給出了所有自測題的解答,供讀者學習參考。
本書適合作為高等院校電腦專業程序設計、編程基礎等課程的教材,也適合專業程序員和想要學習C++編程的讀者閱讀參考。
作者簡介
作者:[美]瑞克·莫瑟(Rick Mercer)譯者:淩傑
瑞克·莫瑟(Rick Mercer),美國亞利桑那大學計算機科學系講師,教授軟件開發、程序設計等多門課程,先後編著了6本計算機教材。
目錄大綱
第1章用C++來解決問題1
1.1解決問題1
1.1.1分析(提問、考察、研究) 1
1.1.2設計(模型、思考、計劃、策劃、模式、綱要) 4
1.1.3算法模式5
1.1 .4算法設計示例6
1.1.5實現(完成、操作、使用) 7
1.1.6一段C++程序7
1.1.7測試8
1.2對象、類型與變量9
本章小結11
練習題12
解決問題:請編寫一個算法12
第2章C++基礎14
2.1 C++程序的組成部分14
2.1.1標記:一個程序的最小零件16
2.1.2特殊符號17
2.1.3標識符17
2.1.4關鍵字18
2.1.5註釋18
2.1. 6 C++字面常量19
2.2語句21
2.2.1 cout輸出語句22
2.2.2賦值與類型轉換22
2.2.3 cin輸入語句24
2.3算術表達式25
2.3.1整數算術運算27
2.3.2整數與浮點數的混合運算28
2.3.3 const對象29
2.4先提示再輸入30
2.5程序實現中的錯誤與警告32
2.5.1在編譯時被檢測到的錯誤與警告33
2.5.2編譯時的警告信息35
2.5.3連接時錯誤36
2.5.4運行時錯誤37
2.5.5意向性錯誤37
2.5.6當軟件的設計與問題說明不相符時38
本章小結39
練習題40
編程技巧43
編程項目44
第3章自由函數的運用48
3.1 cmath函數48
3.2使用cmath函數解決問題50
3.2.1分析50
3.2.2設計50
3.2.3實現52
3.3調用已被文檔化的函數53
3.3.1前置條件與後置條件53
3.3.2函數頭信息54
3.3.3實參與形參的關聯56
3.3.4面向int、char和bool這些類型的一些函數58
本章小結61
練習題61
編程技巧63
編程項目63
第4章自由函數的實現66
4.1實現屬於自己的函數66
4.1. 1測試驅動器69
4.1.2只有一條返回語句的函數70
4.2分析、設計與實現71
4.2.1分析71
4.2.2設計72
4.2.3實現72
4.2.4測試74
4.2.5標識符的域74
4.2.6函數名的域76
4.2.7全局標識符76
4.3 void函數與引用型形參77
4.4 const的引用型形參80
本章小結82
練習題83
編程技巧84
編程項目85
第5章發送消息89
5.1為真實世界建模89
5.1.1 BankAccount對象90
5.1. 2類與對象的圖解92
5.2發送消息93
5.3 string對象95
5.3.1訪問性方法95
5.3.2修改性方法96
5.3.3為string對象本身定義的操作符97
5.4 ostream和istream的成員函數99
5.5另一個非標準類:Grid 103
5.5.1 Grid對象的其他操作105
5.5.2不滿足前置條件的情況108
5.5.3即使函數沒有任何實參也必須用()來調用109
5.6類和函數為何而存在109
本章小結111
練習題112
編程技巧114
編程項目116
第6章成員函數的實現120
6.1在頭文件中定義類120
6.2實現類的成員函數124
6.2.1實現構造函數124
6.2.2實現修改型的類成員函數125
6.2.3實現訪問型的成員函數126
6.3默認構造函數129
6.4狀態型對像模式131
6.4.1構造函數131
6.4.2修改型函數131
6.4.3訪問型函數132
6.4.4命名約定132
6.4.5 public還是private 133
6.4.6將接口從實現中分離133
6.5面向對象設計準則135
6.5.1類的內聚力136
6.5.2為什麼const只用來修飾訪問型函數,卻不用於修改型函數136
本章小結139
練習題140
編程技巧141
編程項目143
第7章選擇操作149
7.1實現選擇控制149
7.1.1保護性動作模式150
7.1.2 if語句150
7.2關係運算符152
7.3替代性動作模式153
7.4選擇操作結構中的語句塊157
7.5 bool對象158
7.5.1布爾運算160
7.5.2運算符優先規則160
7.5.3布爾運算符||與grid對象161
7.5.4短路式布爾評估163
7.6 bool成員函數164
7.7多重選擇操作166
7.7. 1另一個示例:字母等級評定168
7.7.2多路返回169
7.8測試多重選擇操作170
7.9 assert函數171
7.10 switch語句173
本章小結177
練習題177
編程技巧180
編程項目181
第8章重複操作188
8.1實現重複控制188
8.2算法模式:確定性循環189
8.2.1 for語句191
8.2.2賦值操作符與其他增量運算的結合192
8.2.3對Grid對象使用確定性循環194
8.3確定性循環模式的應用196
8.3.1分析196
8.3.2設計197
8.3.3實現198
8.3.4測試199
8.3.5檢測到錯誤時應該怎麼做200
8.4算法模式:不確定性循環201
8.4.1使用while語句實現確定性循環模式202
8.4.2對Grid對象使用不確定性循環203
8.4.3設置了崗哨的不確定性循環204
8.4.4用cin >>來充當循環測試204
8.4. 5無限循環206
8.5 do while語句208
8.6循環的選擇與設計210
8.6.1確定要使用的循環類型210
8.6.2確定循環測試部分211
8.6.3編寫要重複執行的語句211
8.6.4確保循環會越來越接近終止條件211
8.6.5在必要情況下做好相關對象的初始化操作211
本章小結212
練習題213
編程技巧216
編程項目218
第9章文件流224
9.1 ifstream對象224
9.2將確定性循環模式應用於磁盤文件227
9.2.1讓處理過程終止於文件結束符227
9.2.2讓用戶選擇文件名229
9.3使用不確定性循環處理更複雜的磁盤文件輸入229
9.3.1數字與字符串的混合231
9.3.2 getline函數231
9.4 ofstream對象234
本章小結234
練習題235
編程技巧235
編程項目236
第10章vector 238
10.1 C++標準庫中的vector類238
10.1.1訪問集合中的個別元素239
10.1.2用確定的for循環來處理vector 240
10.1.3處理vector中的前n個元素241
10.1.4檢查下標出界242
10.1.5 vector::capacity、vector::resize與操作符= 243
10.2順序搜索245
10.3發送消息給vector中的各對象247
10.4 vector的實參/形參關聯251
10.5排序253
10.6二分搜索法258
本章小結262
練習題262
編程技巧267
編程項目270
第11章泛型容器278
11.1容器類278
11.1.1傳遞類型實參279
11.1.2模板279
11.2 Set類282
11.2.1構造函數Set() 283
11.2.2 bool contains(Type const&value) const 283
11.2.3 void insert(Type const&element) 284
11.2.4 bool remove(Type const&removalCandidate) 284
11.3疊代器模式285
本章小結287
練習題288
編程技巧288
編程項目290
第12章指針與內存管理294
12.1內存因素考量294
12.1.1指針295
12.1.2指向對象300
12.2原生的C數組302
12.2.1原生數組與vector之間的差異303
12.2.2數組與指針的聯繫303
12.2.3傳遞原生數組實參304
12.3用new操作符分配內存305
12.4 delete操作符309
12.5用C的struct構建單向鏈接結構體310
12.5.1用單向鏈接數據結構實現list類312
12.5.2 add(std::string) 313
12.5.3 get(int index) 314
12.5.4 remove(stringremovalCandidate) 314
本章小結316
練習題317
編程技巧318
編程項目319
第13章存儲vector的vector 324
13.1存儲vector的vector 324
13.2 Matrix類325
13.2.1標量乘法328
13.2.2矩陣加法328
13.3原生的二維數組330
13.4擁有兩個以上下標的數組331
本章小結333
練習題333
編程技巧336
編程項目336
附錄自測題答案342


