C++入門很簡單 ( 簡體 字) |
作者:池劍鋒 等 | 類別:1. -> 程式設計 -> C++ -> C++ |
譯者: |
出版社:清華大學出版社 | 3dWoo書號: 37385 詢問書籍請說出此書號!【缺書】 NT售價: 300 元 |
出版日:12/31/2013 |
頁數:432 |
光碟數:1 (含視頻教學) |
|
站長推薦: |
印刷:黑白印刷 | 語系: ( 簡體 版 ) |
|
加入購物車 │加到我的最愛 (請先登入會員) |
ISBN:9787302328247 |
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 序 |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證) |
作者序: |
譯者序: |
前言:隨著科技的不斷發展,IT行業出現了數百種編程語言。C++歷經30多年的發展,依舊是一門主流的程序設計語言。在開發大型軟件(如操作系統、數據倉庫、圖形圖像處理、編譯系統等較為底層的系統軟件)上C++具有很突出的優勢與效率,同時,學習C++語言有助于讀者理解計算機運行原理,便于設計出更加健壯、穩定的系統。在就業方面,C++程序員普遍具有較高的身價,一名優秀的C++程序員無疑具有更好的就業機會與市場競 爭力。 目前圖書市場上關于C++語言程序設計的圖書不少,但真正適合于C++初學者的書籍卻并不多,這些書籍往往語法細節過多,需要大量的計算機相關知識體系,對于初學者無疑是一個巨大的挑戰。基于這個原因,筆者根據自己多年使用C++編程的經驗和心得體會寫了這本書,希望能夠引領讀者進入C++編程的殿堂。本書針對C++初學者的基礎條件,配合大量的圖表,簡明扼要地總結了C++的語法要點和結構;實例程序簡單易懂,循序漸進,使讀者能更加深刻、全面地理解C++程序設計語言,靈活、高效地利用C++語言進行程序開發。 本書以通俗易懂、生活化的例子來解釋每個知識點的用法,書中的每個例子能起到拋磚引玉的功效。這樣就避免了云山霧罩、晦澀難懂。而且在語言上盡可能輕松活潑,多用類比、對比、比喻等寫作手法,而且配合了大量圖解教學,并對難點給出了必要提示。另外,本書還錄制了配套的多媒體教學視頻,以輔助讀者學習。相信這樣的一本書,可以掃清讀者學習過程中的障礙,讓讀者少走彎路,并激發學習Visual C++的興趣,從而較快地掌握Visual C++編程。 本書有何特色 1.提供配套的多媒體教學視頻 本書專門錄制了配套多媒體教學視頻,幫助讀者直觀而高效地學習,從而達到事半功倍的效果。這些視頻和本書實例源代碼收錄于本書配套光盤中。 2.起點較低,不需要程序設計的基礎知識 一些初學者在學C++語言之前并沒有接觸過其他程序設計語言,本書從程序設計基礎知識講起,詳細介紹C++的語法知識和要點,使讀者對其有充分了解,從而具備一定的程序設計基礎。 3.劃分有序,編排合理 本書將C++程序設計劃分為4大部分,分別是面向結構程序設計、面向對象程序設計、泛型編程以及輸入輸出流。這4個部分在編排邏輯上依次漸進,后續知識點需要前面的知識作為鋪墊,知識結構與脈絡清晰,便于讀者理解知識點。 4.詼諧幽默,穿插了大量生活化的例子 本書避免用艱澀難懂、枯燥乏味的術語云山霧罩地分析問題,代之以輕松活潑、幽默直白的講解。書中的知識點盡量先給現實生活中的例子,然后與之對比或者類比,讓讀者理解。 5.詳略得當,講解通俗易懂 本書從實用角度出發,盡量避免一些生僻而又不易理解的知識點,將重點放在語言本身的難點(指針、面向對象概念)和程序設計的技巧上,并結合生動形象的例子對較難的知識點進行詳細介紹,力求使讀者盡快掌握相關開發知識。 6.強化實踐,重視應用 本書提供了大量實例,從實踐角度對C++的知識點進行形象的說明,配合相關的技巧說明,加深讀者的印象。本書最后通過一個具體項目開發案例來講述如何利用C++從零基礎開始構建一個完整項目,注重實際解決問題的能力。 7.代碼精講,注釋豐富 本書中的每段代碼都給出了詳細的解釋,并且進行了豐富的代碼注釋,便于讀者理解。而且對于大段代碼還給出了流程圖幫助讀者理解復雜的程序,如第19章的學生管理系統。 8.提供練習題,鞏固提高 本書提供了必要的練習題目,以幫助讀者鞏固和提高所學的知識,也便于相關學校教學使用。 9.提供教學PPT,輔助教學 本書專門制作了教學PPT,以便于老師的教學和學生的學習。教學PPT的下載方式參見本書封底的提示語言。 10.提供完善的技術支持和售后服務 本書提供了專門的技術支持郵箱:cjf.1323@163.com,讀者在閱讀本書過程中有任何疑問都可以通過該郵箱獲得幫助。 本書內容及知識體系 第1篇 C++編程基礎篇(第1∼7章) 本篇介紹了C++程序設計語言的基本數據類型,面向結構程序設計的3種基本結構,以及相關運算符的意義,介紹了函數的相關特性和應用方式。
第2篇 面向對象程序設計篇(第8∼11章) 本篇對面向對象程序設計進行了詳細的介紹,形象地說明了什么是類和對象,以及它們之間的關系。接著介紹了C++面向程序設計的3大特性:繼承、多態及虛函數。對繼承和虛函數的概念與方法、多態的性質與原理進行詳細的介紹。 第3篇 C++模板篇(第12∼14章) 本篇主要介紹了泛型編程中的函數模板、類模板及C++標準模板庫中提供的模板。如何創建自定義的模板以及使用現有STL中的模板是本篇內容的關鍵。 第4篇 輸入/輸出操作篇(第15∼18章) 本篇主要介紹基本的輸入/輸出操作,涉及對文件流、字符流處理。同時,對包括異常處理、預處理、string類及相關類型轉換操作符的知識點進行說明。 第5篇 項目實戰篇(第19章) 整合前面所介紹的知識,通過一個具體的項目案例來說明如何利用C++進行項目開發。 配書光盤內容介紹 為了方便讀者閱讀本書,本書附帶1張DVD光盤。內容如下: * 本書配套多媒體教學視頻; * 本書所有實例源代碼; * Visual C++項目開發源代碼及教學視頻。 適合閱讀本書的讀者 * 零基礎學C++的人員; * C++程序員; * C++開發愛好者; * 專業培訓機構的學員; * 大中專院校的學生。 閱讀本書的建議 * 沒有C++基礎知識的讀者,建議從第1章順次閱讀并演練每一個實例。 * 有一定C++基礎知識的讀者,可以根據實際情況有重點地選擇閱讀的章節。 * 對于書中提供的每個編程實例,先自己思考一下實現的思路,然后再閱讀,學習效果更好。 * 對于不易理解的概念和知識點,可以通過調試光盤中提供的實例代碼來深入理解程序的運行機制和原理。
本書作者 本書由池劍鋒主筆編寫。其他參與編寫的人員有陳剛、陳世瓊、黃點點、黃海力、黃紹斌、蔣春蕾、李國良、李俊娜、李曉娜、劉永純、王書勇、王挺、王文強、張偉、張小華、胡丹萍、王以榮、徐陽。 閱讀本書時,有疑問可發電子郵件到bookservice2008@163.com以獲得幫助。
編者 |
內容簡介:本書是一本與眾不同的面向初學者的C++讀物,不需要讀者有太多的基礎。本書以簡單實用為原則,講解通俗易懂,循序漸進,避免了云山霧罩、晦澀難懂。本書語言輕松活潑,用類比、對比、比喻等寫作手法,并配合圖解教學,對難點之處又給出了必要提示;書中的每個知識點都對應相應的編程實例,便于讀者一邊學習一邊動手實踐,既可以提高讀者的動手能力,也可以激發學習興趣。本書配1張光盤,內容為本書配套教學視頻及源代碼。另外,光盤中還贈送了Visual C++項目開發的源代碼及教學視頻。 本書共19章,分為5篇。第1篇C++編程基礎介紹了程序設計基本概念、基本數據類型和運行符、數組、指針與引用、結構體和共用體、函數封裝;第2篇面向對象程序設計介紹了類和對象、繼承、虛函數和多態性;第3篇C++模板介紹了函數模板、類模板和標準模板庫;第4篇介紹了輸入/輸出流和文件流、異常處理、程序預處理、string類和其他信息;第5篇C++項目實戰介紹了一個學生管理系統的 開發。 本書適合C++編程新手閱讀;有一定基礎的讀者,也可通過本書進一步理解C++的各個重要概念及知識點;對于大、中專院校的學生和培訓班的學員,本書也不失為一本好教材。 |
目錄:第1篇 C++編程基礎篇 第1章 C++編程前奏(教學視頻:19分鐘) 2 1.1 計算機的五臟六腑 2 1.1.1 控制器 3 1.1.2 運算器 3 1.1.3 存儲器 4 1.1.4 輸入設備 4 1.1.5 輸出設備 4 1.2 操作系統的進化史 4 1.3 編程語言的家譜 5 1.3.1 機器語言 5 1.3.2 匯編語言 6 1.3.3 高級語言 8 1.4 面向過程程序設計 8 1.5 面向對象程序設計 9 1.5.1 面向對象的方法由來——萬物皆是對象 10 1.5.2 面向對象的基本概念 10 1.6 搭建C++開發環境 11 1.6.1 下載和安裝大管家——Visual C++ 6.0 11 1.6.2 大管家的責任 11 1.6.3 邁出第一步——第一個C++程序 15 1.7 C++編程簡述 17 1.7.1 C++語言特點 17 1.7.2 C++的良好編程風格 18 1.8 本章小結 19 1.9 本章習題 20 第2章 開始C++開發之旅(教學視頻:27分鐘) 21 2.1 機器的螺絲--基本數據類型和常用庫函數 21 2.1.1 字符集和標識符 21 2.1.2 整型數據 23 2.1.3 浮點型數據 24 2.1.4 字符型數據 25 2.1.5 字符串和枚舉常量 26 2.1.6 符號常量和變量 27 2.1.7 輸入/輸出函數 32 2.1.8 其他常用的函數 35 2.2 運算符和表達式 37 2.2.1 算術運算符 37 2.2.2 邏輯運算符 38 2.2.3 關系運算符 39 2.2.4 位操作運算符 39 2.2.5 賦值運算符和相等性運算符(==) 40 2.2.6 字節數運算符(sizeof) 41 2.2.7 運算符的優先級和結合性 41 2.2.8 算術表達式 43 2.2.9 邏輯表達式 45 2.2.10 關系表達式 46 2.2.11 條件表達式 47 2.2.12 賦值表達式 48 2.2.13 逗號表達式 49 2.3 類型轉換 50 2.3.1 強制類型轉換 50 2.3.2 自動類型轉換 52 2.4 控制結構和語句 53 2.4.1 for重復結構及示例 53 2.4.2 while重復結構及示例 55 2.4.3 do/while重復結構及示例 56 2.4.4 if-else結構及示例 57 2.4.5 switch多選結構 59 2.4.6 break和continue語句 61 2.4.7 goto語句 62 2.5 預處理 63 2.5.1 文件包含命令(#include) 63 2.5.2 宏定義命令(#define) 63 2.6 本章小結 64 2.7 本章習題 64 第3章 數組和字符串(教學視頻:30分鐘) 67 3.1 一維數組 67 3.1.1 一維數組定義 67 3.1.2 一維數組的初始化 68 3.1.3 一維數組元素的引用 68 3.1.4 一維數組示例 69 3.2 多維數組 71 3.2.1 多維數組定義 71 3.2.2 初始化多維數組 72 3.2.3 多維數組應用舉例 73 3.3 字符數組和字符串 74 3.3.1 字符數組的定義和賦值 74 3.3.2 字符串的輸入/輸出 76 3.3.3 字符串應用示例 77 3.4 本章小結 78 3.5 本章習題 79 第4章 指針與引用(教學視頻:46分鐘) 81 4.1 市場經濟--指針的定義及格式 81 4.1.1 什么是指針 81 4.1.2 聲明一個指針 82 4.1.3 初始化指針變量 83 4.1.4 指向指針的指針 84 4.2 指針的運算 85 4.2.1 指針的賦值運算和增減值運算 85 4.2.2 指針比較運算和相減運算 87 4.2.3 指針運算和地址運算 88 4.3 指針和數組 89 4.3.1 使用數組名的指針表示法 89 4.3.2 指針數組 90 4.3.3 指向數組的指針 91 4.4 動態內存分配 94 4.4.1 使用new動態分配內存 94 4.4.2 delete釋放動態申請的內存 94 4.4.3 malloc和free使用 96 4.4.4 內存動態申請注意事項 97 4.4.5 轉換指針 99 4.5 常量指針和指向常量的指針 100 4.5.1 常量指針 100 4.5.2 指向常量的指針 101 4.6 人人都可以有綽號--引用 102 4.6.1 引用和引用的創建方法 102 4.6.2 引用和指針關系 103 4.7 本章小結 106 4.8 本章習題 106 第5章 結構體和共用體(教學視頻:51分鐘) 109 5.1 一串精美的珍珠——結構體 109 5.1.1 結構體的聲明 109 5.1.2 結構體變量的定義和使用 110 5.1.3 結構體變量初始化 111 5.1.4 結構體數組定義和引用 113 5.1.5 結構體指針 114 5.1.6 結構體應用舉例 117 5.2 大家的公共教室--共用體 121 5.2.1 共用體的聲明 121 5.2.2 共用體變量定義和使用 121 5.2.3 共用體和結構體差異 123 5.2.4 共用體數組和指針 124 5.2.5 共用體應用舉例 124 5.3 本章小結 126 5.4 本章習題 126 第6章 使用函數編程(教學視頻:45分鐘) 128 6.1 神秘的黑盒子--函數 128 6.1.1 程序模塊化的優勢 128 6.1.2 編寫一個函數 129 6.2 理解函數 130 6.2.1 函數的定義 130 6.2.2 函數的聲明 132 6.3 函數參數和返回值 133 6.3.1 什么是實參和形參 134 6.3.2 參數類型轉換 135 6.3.3 函數參數默認值設置 136 6.3.4 函數參數值傳遞 137 6.3.5 函數參數指針傳遞 138 6.3.6 函數參數引用傳遞 141 6.3.7 函數返回值實現 142 6.4 遞歸函數和內聯函數 143 6.4.1 遞歸函數示例 144 6.4.2 內聯(inline)函數示例 145 6.5 函數的重載 146 6.5.1 重載函數特征 146 6.5.2 實現重載函數 147 6.5.3 重載函數的二義性問題 148 6.6 函數存儲類型 149 6.6.1 外部函數 149 6.6.2 內部函數 150 6.7 本章小結 151 6.8 本章習題 151 第7章 函數高級應用(教學視頻:37分鐘) 153 7.1 小心地雷--內存操作問題 153 7.1.1 內存泄漏 153 7.1.2 野指針 155 7.2 函數與結構體、共用體 156 7.2.1 結構體和共用體作為函數參數 156 7.2.2 結構體和共用體作為返回值 157 7.3 函數與數組 159 7.3.1 一維數組作為函數參數 159 7.3.2 二維數組作為函數參數 160 7.4 函數指針 162 7.4.1 函數指針的定義 162 7.4.2 把函數作為參數傳遞 164 7.4.3 函數指針數組 165 7.5 main函數的參數--程序的入口 167 7.6 本章小結 169 7.7 本章習題 170 第2篇 面向對象程序設計篇 第8章 類和對象之基礎(教學視頻:43分鐘) 174 8.1 類和對象的基本概念--抽象與具體辯證 174 8.1.1 類的概念 174 8.1.2 對象概念 175 8.1.3 類和對象的關系 175 8.2 類的定義格式和對象定義方法 176 8.2.1 類的定義格式 176 8.2.2 對象的定義方法 177 8.2.3 對象成員的表示 178 8.2.4 class和struct 180 8.3 一個對象的生與死 180 8.3.1 默認構造函數 180 8.3.2 自定義構造函數 181 8.3.3 析構函數 182 8.4 抄作業的秘密--拷貝構造函數 184 8.4.1 理解拷貝構造函數 184 8.4.2 默認的拷貝構造函數 184 8.4.3 拷貝構造函數方法的選擇 185 8.5 公共飲水機--靜態成員 189 8.5.1 靜態數據成員 189 8.5.2 靜態成員函數 191 8.6 只可遠觀而不可褻玩--常成員 192 8.6.1 常數據成員 192 8.6.2 常成員函數 194 8.7 類的類型轉換 195 8.7.1 類型隱式轉換 196 8.7.2 類的類型和一般數據類型之間的轉換 196 8.7.3 隱式轉換存在的二義性問題 199 8.8 本章小結 200 8.9 本章習題 200 第9章 類和對象之進階(教學視頻:44分鐘) 203 9.1 類的作用域和對象的生存期 203 9.1.1 類的作用域 203 9.1.2 對象的生存期 205 9.2 嚴格的海關--友元函數和友元類 207 9.2.1 友元函數 207 9.2.2 友元類 209 9.3 對象指針和數組 210 9.3.1 對象指針 210 9.3.2 this指針 213 9.3.3 對象引用 214 9.3.4 對象數組 216 9.3.5 對象指針數組 217 9.4 按需選擇--運算符重載 219 9.4.1 運算符重載的條件 219 9.4.2 重載賦值運算符 220 9.4.3 重載算術運算符 221 9.4.4 重載下標運算符 222 9.4.5 重載類型轉換 223 9.4.6 重載new和delete運算符 224 9.4.7 智能指針 225 9.5 本章小結 226 9.6 本章習題 227 第10章 繼承(教學視頻:45分鐘) 229 10.1 父子關系--何謂繼承 229 10.2 繼承和聚合 230 10.3 基類和派生類 230 10.3.1 從基類派生出新類 230 10.3.2 繼承下的訪問控制 232 10.3.3 派生類的構造函數和析構函數 237 10.3.4 基類和派生類的類型轉換 239 10.4 多重繼承 241 10.4.1 多個基類 241 10.4.2 多重繼承成員的模糊性 243 10.4.3 重復繼承 245 10.4.4 虛基類 246 10.5 本章小結 248 10.6 本章習題 249 第11章 虛函數和多態性(教學視頻:21分鐘) 251 11.1 標準接口--什么是多態性 251 11.2 動態綁定和靜態綁定 252 11.2.1 靜態綁定 252 11.2.2 虛函數 255 11.2.3 動態綁定 258 11.3 空瓶子--抽象基類和純虛函數 260 11.3.1 純虛函數的聲明和定義 261 11.3.2 抽象類 262 11.3.3 虛析構函數 263 11.4 類成員指針 264 11.4.1 數據成員指針 264 11.4.2 成員函數指針 266 11.5 本章小結 268 11.6 本章習題 269 第3篇 C++模板篇 第12章 函數模板(教學視頻:16分鐘) 272 12.1 認識函數模板 272 12.1.1 為什么使用模板 272 12.1.2 定義函數模板 273 12.1.3 使用函數模板 274 12.2 函數模板的參數 276 12.3 重載函數模板 278 12.3.1 函數模板之間的重載 279 12.3.2 顯示特化的重載 280 12.3.3 普通函數重載 281 12.4 本章小結 282 12.5 本章習題 283 第13章 類模板(教學視頻:21分鐘) 285 13.1 認識類模板 285 13.2 定義類模板 286 13.2.1 模板參數 286 13.2.2 簡單的類模板 287 13.2.3 創建類模板實例 289 13.2.4 類模板的靜態成員 292 13.2.5 非類型的類模板參數 294 13.2.6 非類型的參數實例 296 13.2.7 默認參數模板 297 13.3 模板顯式實例化 299 13.4 類模板的友元 301 13.5 模板的嵌套 303 13.6 本章小結 307 13.7 本章習題 307 第14章 標準模板庫(STL)(教學視頻:28分鐘) 309 14.1 STL概述 309 14.1.1 STL組件 309 14.1.2 容器(container) 310 14.1.3 迭代器(iterator) 313 14.1.4 算法(algorithm) 313 14.1.5 STL頭文件 314 14.2 使用vector容器 315 14.2.1 創建Vector容器 315 14.2.2 訪問vector容器中的元素 316 14.2.3 vector基本操作 318 14.2.4 vector容器和數組 320 14.2.5 輸入/輸出流迭代器 321 14.3 創建自己的迭代器 323 14.3.1 給算法傳送迭代器 323 14.3.2 STL迭代器類型要求 325 14.3.3 STL迭代器成員函數的條件 327 14.3.4 插入迭代器 328 14.4 list容器 329 14.4.1 創建list容器 330 14.4.2 訪問list容器中的元素 330 14.4.3 list容器上的操作 331 14.5 本章小結 333 14.6 本章習題 333 第4篇 輸入/輸出操作篇 第15章 輸入/輸出流和文件流(教學視頻:32分鐘) 336 15.1 C++中的輸入/輸出流 336 15.1.1 什么是流 336 15.1.2 輸出流 337 15.1.3 輸入流 339 15.1.4 流格式狀態 340 15.1.5 流錯誤狀態 342 15.2 文件流 344 15.2.1 寫入文件 344 15.2.2 讀取文件 346 15.2.3 文件隨機訪問 347 15.2.4 隨機訪問文件的讀寫操作 348 15.3 字符串流 351 15.3.1 strstream相關類 351 15.3.2 sstream相關類 352 15.4 對象和流 353 15.4.1 <<操作符重載 354 15.4.2 >>操作符重載 355 15.5 本章小結 356 15.6 本章習題 357 第16章 異常處理(教學視頻:25分鐘) 359 16.1 認識異常 359 16.1.1 了解異常處理 359 16.1.2 拋出異常 360 16.1.3 導致拋出異常的代碼 362
16.2 用類對象作為異常 362 16.2.1 用catch處理程序和異常 362 16.2.2 用基類處理程序捕獲派生類的異常 365 16.2.3 重新拋出異常 367 16.2.4 捕獲所有異常 369 16.3 拋出異常的函數 371 16.3.1 函數try塊 371 16.3.2 在構造函數中拋出異常 372 16.3.3 異常和析構函數 372 16.3.4 一個簡單的異常處理例子 373 16.4 其他典型異常 375 16.4.1 堆棧解退 375 16.4.2 處理new失敗 376 16.4.3 auto_ptr與內存泄漏 377 16.5 本章小結 378 16.6 本章習題 378 第17章 程序的預處理(教學視頻:15分鐘) 380 17.1 預處理簡介 380 17.2 C++預處理程序 381 17.3 include(包含)文件 382 17.4 預處理指令#define 383 17.4.1 預定義符號常量 383 17.4.2 帶參數的宏定義和不帶參數的宏定義 384 17.4.3 宏定義取消 386 17.5 條件編譯 387 17.5.1 #if-#else-#endif指令 387 17.5.2 #if - #elif - #endif指令 388 17.5.3 #ifdef - #endif指令 388 17.5.4 #ifndef - #endif指令 389 17.6 #pragam 指令 389 17.7 本章小結 392 17.8 本章習題 392 第18章 string類和其他信息(教學視頻:21分鐘) 393 18.1 string類介紹和聲明 393 18.2 string的輸入/輸出 394 18.3 string的基本操作 395 18.3.1 賦值和拼接 395 18.3.2 比較字符串 397 18.3.3 子串 398 18.3.4 交換字符串 399 18.3.5 字符插入 399 18.3.6 替換字符 401 18.3.7 查找 402 18.3.8 轉換為C風格的char*字符串 405 18.4 運行時類型信息(RTTI) 406 18.5 類型轉換操作符 407 18.5.1 const_cast操作符 407 18.5.2 static_cast操作符 408 18.5.3 reinterpret_cast操作符 408 18.6 本章小結 408 18.7 本章習題 409 第5篇 項目實戰篇 第19章 學生管理系統項目案例(教學視頻:48分鐘) 412 19.1 學生管理系統項目需求與設計 412 19.1.1 數據庫設計 412 19.1.2 功能設計 413 19.1.2 項目需求及功能分析 413 19.1.3 功能模塊劃分及設計 414 19.2 學生管理系統編程實現 416 19.2.1 student學生類 416 19.2.2 filemanage數據操作類 419 19.2.3 Operstu學生信息操作類 423 19.3 學生管理系統總結 432
|
序: |