C++程序設計 第3版

[美]瑞克·莫瑟(Rick Mercer)

  • 出版商: 人民郵電
  • 出版日期: 2019-08-01
  • 定價: $474
  • 售價: 7.9$374
  • 語言: 簡體中文
  • ISBN: 7115512434
  • ISBN-13: 9787115512437
  • 相關分類: C++ 程式語言

立即出貨

相關主題

商品描述

本書是以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