作 者:翁惠玉 俞勇 著
定 價:49.8
出 版 社:人民郵電出版社
出版日期:2016年08月01日
頁 數:0
裝 幀:簡裝
ISBN:9787115429353
《C++程序設計——思想與方法(第3版)》一書是上海交通大學資深教學型老師的傾力之作,為解決讀者在學習程序設計時遇到的諸多問題,作者將多年的教學經驗,以及程序設計的思想和方法總結在本書中,並將書中的重點、難度、案例操作錄制了教學視頻,讀者在學習過程中,可掃描二維碼打開視頻,暢想名師的講解。
●第1章 緒論 11.1 程序設計概述 11.2 計算機組成 11.2.1 計算機硬件 21.2.2 計算機軟件 31.3 程序設計語言 31.3.1 機器語言 31.3.2 彙編語言 41.3.3 高級語言 41.3.4 C++語言 51.4 程序設計過程 51.4.1 算法設計 51.4.2 編碼 81.4.3 編譯和鏈接 81.4.4 調試與維護 81.5 小結 91.6 習題 9第2章 程序的基本組成 112.1 程序的基本結構 112.1.1 注釋 122.1.2 預編譯 122.1.3 名字空間 132.1.4 主程序 132.2 常量與變量 142.2.1 變量定義 142.2.2 數據類型 162.2.3 常量與符號常量 21*2.2.4 C++11的擴展 242.3 數據的輸入/輸出 252.3.1 數據的輸入 252.3.2 數據的輸出 262.4 算術運算 272.4.1 算術表達式 272.4.2 各種類型的數值間的混合運算 272.4.3 強制類型轉換 272.4.4 數學函數庫 28*2.4.5 C++11的擴展 292.5 賦值運算 292.5.1 賦值表達式 292.5.2 賦值的嵌套 302.5.3 復合賦值運算 312.5.4 自增和自減運算符 322.6 程序規範及常見錯誤 332.7 小結 342.8 習題 34第3章 分支程序設計 373.1 關繫表達式 373.2 邏輯表達式 383.3 if語句 393.3.1 if語句的格式 393.3.2 if語句的嵌套 433.3.3 條件表達式 443.4 switch語句及其應用 463.5 編程規範及常見錯誤 523.6 小結 523.7 習題 53第4章 循環程序設計 564.1 計數循環 564.1.1 for語句 564.1.2 for語句的進一步討論 614.1.3 for循環的嵌套 61*4.1.4 C++11的擴展 624.2 break和continue語句 624.3 基於哨兵的循環 644.3.1 while語句 644.3.2 do-while語句 684.4 循環的中途退出 69*4.5 枚舉法 70*4.6 貪婪法 734.7 編程規範及常見錯誤 754.8 小結 754.9 習題 75第5章 批量數據處理——數組 795.1 一維數組 795.1.1 一維數組的定義 795.1.2 一素的引用 805.1.3 一維數組的內存映像 815.1.4 一維數組的應用 81*5.1.5 C++11的擴展 835.2 查找 845.2.1 順序查找 845.2.2 二分查找 855.3 排序 875.3.1 直接選擇排序法 875.3.2 冒泡排序法 895.4 二維數組 905.4.1 二維數組的定義 915.4.2 二素的引用 915.4.3 二維數組的內存映像 925.4.4 二維數組的應用 925.5 字符串 965.5.1 字符串的存儲及初始化 965.5.2 字符串的輸入/輸出 975.5.3 字符串處理函數 975.5.4 字符串的應用 985.6 編程規範及常見錯誤 1005.7 小結 1015.8 習題 101第6章 過程封裝——函數 1046.1 函數定義 1056.1.1 函數的基本結構 1056.1.2 return語句 1056.1.3 函數示例 1056.2 函數的使用 1086.2.1 函數原型的聲明 1086.2.2 函數調用 1096.2.3 將函數與主程序放在一起 1096.2.4 函數調用過程 1106.3 變量的作用域 1136.4 變量的存儲類別 1156.4.1 自動變量 1156.4.2 靜態變量 1156.4.3 寄存器變量 1176.4.4 外部變量 1176.5 數組作為函數參數 1196.6 帶默認值的函數 1246.7 內聯函數 1256.8 重載函數 1266.9 函數模板 1286.10 遞歸函數 1296.10.1 遞歸函數的基本概念 1296.10.2 遞歸函數的應用 131*6.11 基於遞歸的算法 1366.11.1 回溯法 1366.11.2 分治法 1406.11.3 動態規劃 143*6.12 C++11的擴展 1466.12.1 constexpr函數 1466.12.2 尾置返回類型 1466.13 編程規範及常見錯誤 1476.14 小結 1476.15 習題 148第7章 間接訪問——指針 1517.1 指針的概念 1517.1.1 指針與間接訪問 1517.1.2 指針變量的定義 1517.1.3 指針的基本操作 152*7.1.4 C++11的擴展 1557.2 指針運算與數組 1557.2.1 指針運算 1557.2.2 用指針訪問數組 1567.3 動態內存分配 1567.3.1 動態變量 1567.3.2 動態變量的創建 1577.3.3 動態變量的消亡 1587.3.4 內存洩漏 1587.3.5 查找new操作的失誤 1587.3.6 動態變量應用 159*7.3.7 C++11的擴展 1607.4 字符串再討論 1617.5 指針與函數 1617.5.1 指針作為形式參數 1617.5.2 數組作為函數參數再討論 1647.5.3 字符串作為函數的參數 1667.5.4 返回指針的函數 1667.6 引用類型與函數 1677.6.1 引用類型 1677.6.2 引用傳遞 1697.6.3 返回引用的函數 171*7.6.4 C++11的擴展 1717.7 指針數組與多級指針 1727.7.1 指針數組 172*7.7.2 main函數的參數 173*7.7.3 多級指針 175*7.7.4 動態二維數組 1767.8 函數指針 1777.8.1 指向函數的指針 1777.8.2 函數指針作為函數參數 1787.8.3 用於菜單選擇 180*7.8.4 C++11的擴展 1817.9 編程規範及常見錯誤 1837.10 小結 1837.11 習題 184第8章 數據封裝——結構體 1868.1 記錄的概念 1868.2 記錄的使用 1878.2.1 結構體類型的定義 1878.2.2 結構體類型的變量的定義 1888.2.3 結構體類型的變量的使用 1898.3 結構體作為函數的參數 1908.4 鏈表 1928.4.1 鏈表的概念 1928.4.2 單鏈表的存儲 1938.4.3 單鏈表的操作 1938.5 編程規範及常見錯誤 1988.6 小結 1988.7 習題 198第9章 模塊化開發 2009.1 結構化程序設計 2009.2 自頂向下分解 2009.2.1 頂層分解 2019.2.2 prn_instruction的實現 2019.2.3 play函數的實現 2019.2.4 get_call_from_user的實現 2029.3 模塊劃分 2039.4 設計自己的庫 2099.5 編程規範及常見錯誤 2149.6 小結 2149.7 習題 214第10章 創建新的類型 21610.1 面向對像程序設計 21610.1.1 抽像的過程 21610.1.2 面向對像程序設計的特點 21710.1.3 庫和類 21810.2 類的定義 22410.3 對像的使用 22810.3.1 對像的定義 22810.3.2 對像的操作 22810.3.3 this指針 23010.4 對像的構造與析構 23110.4.1 對像的構造 23110.4.2 對像的析構 23510.4.3 類與對像應用實例 237*10.4.4 C++11的擴展 24010.5 const與類 24210.5.1 常量數據成員 24210.5.2 常量對像 24310.5.3 常量成員函數 24310.6 靜態成員 24410.6.1 靜態數據成員 24410.6.2 靜態成員函數 24510.6.3 靜態常量成員 24710.7 &nbs 24810.8 編程規範及常見錯誤 25010.9 小結 25010.10 習題 251第11章 運算符重載 25411.1 運算符重載的意義 25411.2 運算符重載的方法 25511.3 5個特殊運算符的重載 25911.3.1 賦值運算符的重載 25911.3.2 下標運算符的重載 26011.3.3 函數調用運算符的重載 26111.3.4 ++和--運算符的重載 26211.3.5 輸入/輸出運算符的重載 265*11.3.6 C++11的擴展 26711.4 自定義類型轉換函數 26711.4.1 內置類型到類類型的轉換 26811.4.2 類類型到其他類型的轉換 268*11.4.3 C++11的擴展 26911.5 運算符重載的應用 26911.5.1 完整的Rational類的定義和使用 26911.5.2 完整的DoubleArray類的定義和使用 27211.6 編程規範及常見錯誤 27511.7 小結 27611.8 習題 276第12章 組合與繼承 27912.1 組合 27912.2 繼承 28412.2.1 派生類的定義 28512.2.2 繼承的應用 28812.2.3 重定義基類的函數 29212.2.4 派生類對像的賦值 29312.2.5 派生類作為基類 29412.3 運行時的多態性 29512.3.1 將派生類對像隱式轉換為基類對像 29512.3.2 多態性與虛函數 29712.3.3 虛析構函數 300*12.3.4 C++11的擴展 30012.4 純虛函數和抽像類 30112.4.1 純虛函數 30112.4.2 抽像類 30112.5 編程規範及常見錯誤 30212.6 小結 30212.7 習題 302第13章 泛型機制——模板 30513.1 類模板的定義 30513.2 類模板的實例化 30713.3 模板的編譯 30813.4 非類型參數和參數的默認值 30813.5 類模 30913.5.1 30913.5.2 模板的特定實 31013.6 類模板作為基類 31413.7 編程規範及常見錯誤 31413.8 小結 31513.9 習題 315第14章 輸入/輸出與文件 31614.1 流與標準庫 31614.2 輸入/輸出緩衝 31714.3 基於控制臺的輸入/輸出 31814.3.1 輸出流 31814.3.2 輸入流 32014.3.3 格式化的輸入/輸出 32314.4 基於文件的輸入/輸出 32614.4.1 文件的概念 32614.4.2 文件和流 32714.4.3 文件的順序訪問 32914.4.4 文件的隨機訪問 33114.4.5 用流式文件處理含有記錄的文件 33314.5 基於字符串的輸入/輸出 33914.6 編程規範及常見錯誤 34014.7 小結 34014.8 習題 340第15章 異常處理 34315.1 傳統的異常處理方法 34315.2 異常處理機制 34315.2.1 異常拋出 34415.2.2 異常捕獲 34515.3 異常規格說明 35015.4 編程規範及常見錯誤 35115.5 小結 35115.6 習題 351第16章 容器和迭代器 35316.1 容器 35316.2 迭代器 35316.3 容器和迭代器的設計示例 35416.3.1 用數組實現的容器 35416.3.2 用鏈表實現的容器 35716.4 小結 35916.5 習題 360參考文獻 361
本書主要內容包括:程序的基本組成,分支程序設計,循環程序設計,批量數據處理——數組,過程封裝——函數,間接訪問——指針,數據封裝——結構體,模塊化開發,創建新的類型,運算符重載,組合與繼承,泛型機制——模板,輸入輸出與文件,異常處理,容器與迭代器。
翁惠玉 俞勇 著
翁惠玉 博士, 現為上海交通大學副教授,從事計算機網絡和信息繫統的研究,並長期擔任上海交通大學ACM試點班的程序設計、數據結構和計算機網絡等課程的主講教師。程序設計2004年被評為上海市精品課程。在教學方面,翁老師曾多次獲重量和上海市的教學成果獎,還多次獲得上海交通大學的優秀教學獎。俞勇,上海交通大學教授、博士生導師,國務院特殊津貼獲得者、全國模範教師。先後主持教育部教育教學改革項目2項、獲得重量和上海市教學成果獎8項、上海市優秀教材獎2項,並3次率隊奪得ACM國際大學生程序設計競賽全球總冠軍。