商品簡介
C++是近年廣泛使用的程序設計語言,由C語言的基礎上發展而來,實現了由面向過程到面向對象的轉變,全面支持面向對象的程序設計方法。C++語言在軟件工業領域一直處于領先地位,并且自身在不斷完善,必將作為高性能軟件開發的基礎,在軟件開發中發揮主要的作用。 由肖俊宇等編著的《由淺入深學C++--基礎進階與必做300題(附光盤)》是C++語言的入門教程,較為系統地介紹了C++語言的基礎內容。本書共分為3篇22章,詳細介紹了C++語言的基礎知識、面向對象、標準模塊、底層開發和綜合案例。本書循序漸進地講述了C++的基礎知識、C++程序的組成及其開發過程、C++程序中的數據、表達式和語句、控制程序流程、數組與字符串、指針與引用、使用函數、函數模板、錯誤和異常處理、宏和預編譯、面向對象的開發、封裝、繼承、多態、類模板、文件流、標準模板庫STL和編程實踐等內容。 《由淺入深學C++--基礎進階與必做300題(附光盤)》涉及面廣,從基本知識到高級內容和核心概念,再到綜合案例,幾乎涉及C++開發的所有重要知識。本書適臺所有想全面學習C++開發技術的人員閱讀,尤其適合沒有編程基礎的C++語言初學者作為入門教程,也可作為大、中院校師生和培訓班的教材,對于C++語言開發愛好者,本書也有較大的參考價值。
名人推薦
由肖俊宇等編著的《由淺入深學C++--基礎進階與必做300題(附光盤)》結合大量多媒體教學視頻,循序漸進、由淺八深地介紹了初學人員如何更快、更好地掌握C++編程技術,并深八理解這些技術,從而達到項目開發的水平。書中提供了大量的典型實例和練習題,供讀者演練,最後還提供了必要的項目案例,提高讀者的開發水平。
目次
第1篇 C++基礎篇第1章 C++概述 1.1 引言 1.1.1 C++的歷史沿革 1.1.2 入門C++ 1.1.3 編程思想的轉變 1.2 C++概述 1.2.1 C++的特征 1.2.2 C與C++的比較 1.2.3 C++的應用領域 1.3 C++源程序的組成 1.3.1 基本組成元素 1.3.2 標識符 1.3.3 保留字 1.3.4 符號 1.4 C++集成開發環境——DEV-C++ 1.4.1 選擇C++編譯器 1.4.2 安裝DEV-C++ 1.4.3 DEV-C++ IDE簡介 1.5 第一個C++程序——Hello World 1.5.1 創建源程序 1.5.2 編譯運行 1.6 小結 1.7 習題第2章 變量與數據類型 2.1 常量和變量 2.1.1 常量 2.1.2 變量 2.1.3 變量的定義及賦值 2.1.4 變量的應用示例 2.2 基本數據類型 2.2.1 基本數據類型概述 2.2.2 整型數據類型 2.2.3 浮點型數據類型 2.2.4 字符型數據類型 2.2.5 布爾型數據類型 2.3 變量的作用域 2.4 類型轉換 2.4.1 隱式轉換 2.4.2 顯式轉換 2.5 小結 2.6 習題 3第3章 表達式與語句 3.1 運算符 3.1.1 運算符概述 3.1.2 算術運算符 3.1.3 自增和自減運算符 3.1.4 賦值運算符 3.1.5 關系運算符 3.1.6 邏輯運算符 3.1.7 條件運算符 3.1.8 逗號運算符 3.1.9 位運算符 3.1.10 sizeof運算符 3.2 運算符的優先級和結合性 3.3 表達式 3.4 語句 3.4.1 空格的作用 3.4.2 語句塊 3.4.3 賦值語句 3.4.4 空語句 3.5 小結 3.6 習題第4章 流程控制結構之順序結構 4.1 程序流程圖 4.2 表達式語句 4.3 格式化輸入/輸出 4.3.1 標準輸入流cin 4.3.2 標準輸出流cout 4.3.3 輸出流cerr和clog 4.4 格式控制函數 4.5 格式控制符 4.5.1 控制不同進制的輸出 4.5.2 控制輸出寬度 4.5.3 控制輸出精度 4.6 順序結構綜合應用 4.7 小結 4.8 習題第5章 流程控制結構之選擇結構 5.1 條件 5.1.1 關系表達式條件 5.1.2 邏輯表達式條件 5.1.3 組合條件 5.2 if語句 5.2.1 if形式 5.2.2 if…else形式 5.2.3 if…else if…else形式 5.2.4 if…else語句嵌套 5.3 switch語句 5.3.1 switch語句的基本形式 5.3.2 應用示例 5.4 選擇結構的嵌套 5.5 選擇結構綜合應用 5.6 小結 5.7 習題第6章 流程控制結構之循環結構 6.1 goto語句 6.2 while語句 6.2.1 while語句的基本形式 6.2.2 應用示例 6.2.3 注意事項 6.3 do…while語句 6.3.1 do…while語句的形式 6.3.2 應用示例 6.3.3 注意事項 6.4 for語句 6.4.1 for語句的形式 6.4.2 應用示例 6.4.3 注意事項 6.5 多重循環 6.6 轉向語句 6.6.1 break語句 6.6.2 continue語句 6.6.3 return語句 6.7 循環結構綜合應用 6.8 小結 6.9 習題第7章 數組 7.1 數組概述 7.1.1 數組的基本概念 7.1.2 一維數組 7.1.3 二維數組 7.2 數組的聲明及初始化 7.2.1 聲明一維數組 7.2.2 初始化一維數組 7.2.3 聲明二維數組 7.2.4 初始化二維數組 7.3 引用數組元素 7.3.1 引用一維數組元素 7.3.2 引用二維數組元素 7.3.3 應用示例 7.4 字符串 7.4.1 字符數組 7.4.2 字符串 7.4.3 字符數組與字符串的區別 7.5 字符串處理函數 7.5.1 strcmp()函數——字符串比較 7.5.2 strcpy()函數——字符串復制 7.5.3 strcat()函數——字符串連接 7.5.4 strlen()函數——計算字符串長度 7.5.5 gets()和puts()函數——字符串輸入輸出 7.6 數組綜合應用 7.7 小結 7.8 習題第8章 函數 8.1 函數概述 8.1.1 函數的基本概念 8.1.2 函數的分類 8.1.3 函數的組成 8.2 函數的聲明和定義 8.2.1 聲明函數 8.2.2 定義函數 8.2.3 頭文件和實現文件的分離 8.3 函數參數傳遞 8.3.1 形參和實參 8.3.2 值傳遞 8.3.3 地址傳遞 8.4 函數的調用 8.4.1 函數調用過程 8.4.2 無參函數的調用 8.4.3 帶參函數的調用 8.4.4 默認形參值的函數調用 8.4.5 嵌套調用 8.5 遞歸 8.5.1 直接遞歸 8.5.2 間接遞歸 8.6 main()函數 8.6.1 不帶參數的main()函數 8.6.2 帶參數的main()函數 8.7 內聯函數 8.8 函數綜合應用 8.9 小結 8.10 習題第9章 函數的高級應用 9.1 數組作為函數參數 9.1.1 傳遞一維數組參數 9.1.2 傳遞多維數組參數 9.2 查找的函數實現 9.2.1 順序查找的函數實現 9.2.2 折半查找的函數實現 9.3 排序的函數實現 9.3.1 冒泡排序的函數實現 9.3.2 快速排序的函數實現 9.4 函數模板 9.4.1 引入函數模板 9.4.2 定義函數模板 9.4.3 實例化函數模板 9.4.4 應用示例 9.5 函數重載 9.5.1 函數重載概述 9.5.2 參數類型不同的函數重載 9.5.3 參數個數不同的函數重載 9.5.4 應用示例 9.6 函數高級應用 9.7 小結 9.8 習題第10章 指針與引用 10.1 指針概述 10.1.1 指針的基本概念 10.1.2 定義指針變量 10.1.3 初始化指針 10.2 指針的訪問 10.2.1 指針的值 10.2.2 訪問指針數據 10.2.3 應用示例 10.3 指針的算術運算 10.3.1 指針與整數的加減運算 10.3.2 指針加減1運算 10.3.3 指針的相減運算 10.3.4 應用示例 10.4 指針的關系運算 10.5 指向數組的指針 10.5.1 指針訪問數組元素 10.5.2 指向一維數組 10.5.3 數組指針 10.5.4 指向多維數組 10.6 指向字符串的指針 10.6.1 定義字符串指針 10.6.2 應用示例 10.7 引用 10.7.1 引用的應用 10.7.2 引用與指針 10.8 指針數組 10.9 函數與指針 10.9.1 指針作為函數參數 10.9.2 指針函數 10.9.3 函數指針 10.10 動態內存分配 10.11 指向指針的指針 10.12 小結 10.13 習題第11章 宏和預編譯 11.1 預處理器和編譯器 11.2 預處理器的任務 11.2.1 包含文件 11.2.2 搜索頭文件 11.2.3 定義宏 11.3 宏的作用 11.3.1 替代字面常量 11.3.2 替代運算符 11.3.3 聲明已定義符號 11.3.4 預定義的宏 11.4 帶參數的宏 11.4.1 定義帶參數的宏 11.4.2 注意宏展開的結果 11.4.3 帶參數的宏與函數的異同 11.4.4 特殊的宏符號 11.5 宏指令和預定義宏 11.5.1 宏指令和預定義宏 11.5.2 利用預定義的宏指令進行條件編譯 11.5.3 文件包含命令和包含警衛 11.6 綜合實例 11.7 小結 11.8 習題第12章 復合數據類型 12.1 定義結構體 12.1.1 結構體概述 12.1.2 定義結構體類型 12.1.3 聲明結構體變量 12.2 結構體的應用 12.2.1 初始化結構體變量 12.2.2 引用結構體變量成員 12.2.3 結構體指針 12.2.4 結構體數組 12.3 聯合 12.3.1 定義聯合類型 12.3.2 聲明聯合變量 12.3.3 引用聯合類型成員 12.4 枚舉 12.4.1 定義枚舉類型 12.4.2 聲明枚舉變量 12.4.3 引用枚舉變量成員 12.5 用戶自定義數據類型 12.6 復合數據類型綜合應用 12.7 小結 12.8 習題第2篇 面向對象編程篇第13章 對象與類 13.1 對象與類概述 13.1.1 對象 13.1.2 對象分類 13.1.3 類 13.2 面向對象開發與面向過程開發的比較 13.2.1 面向過程開發 13.2.2 面向對象開發 13.3 類的特征 13.3.1 封裝 13.3.2 繼承 13.3.3 多態 13.4 從結構到類 13.5 類 13.5.1 類的聲明 13.5.2 類的訪問控制 13.5.3 類的定義 13.6 構造函數 13.6.1 構造函數的概念 13.6.2 構造函數的聲明和定義 13.6.3 構造函數的調用 13.6.4 不帶參數的構造函數 13.6.5 帶有默認參數的構造函數 13.6.6 構造函數的重載 13.7 拷貝構造函數 13.7.1 自定義拷貝構造函數 13.7.2 調用拷貝構造函數 13.7.3 默認拷貝構造函數 13.8 析構函數 13.9 友元 13.9.1 友元函數 13.9.2 友元成員 13.9.3 友元類 13.10 類的static成員 13.10.1 定義static成員 13.10.2 使用static成員 13.11 小結 13.12 習題第14章 繼承 14.1 繼承與派生 14.1.1 繼承與派生概述 14.1.2 聲明派生類 14.2 繼承的訪問控制 14.2.1 公有繼承 14.2.2 私有繼承 14.2.3 保護繼承 14.3 派生類的構造函數和析構函數 14.3.1 執行順序和構建原則 14.3.2 派生類構造函數的創建 14.3.3 派生類析構函數的構建 14.4 多重繼承 14.4.1 二義性問題 14.4.2 多重繼承 14.4.3 多重繼承的構造函數和析構函數 14.5 虛基類 14.5.1 虛基類的引入 14.5.2 虛基類 14.5.3 虛基類的構造函數和初始化 14.6 小結 14.7 習題第15章 多態 15.1 多態 15.1.1 多態的含義 15.1.2 多態的作用 15.1.3 多態的引入 15.2 函數重載 15.3 虛函數 15.3.1 定義虛函數 15.3.2 多級繼承和虛函數 15.4 純虛函數與抽象類 15.4.1 純虛函數 15.4.2 抽象類 15.5 小結 15.6 習題第16章 運算符重載 16.1 運算符重載簡介 16.1.1 運算符重載的定義 16.1.2 運算符重載的特點 16.2 運算符重載形式 16.2.1 重載為類的成員函數 16.2.2 運算符重載為類的友元函數 16.2.3 運算符成員函數與友元運算符函數的比較 16.3 特殊運算符重載 16.3.1 “++”和“--”重載 16.3.2 賦值運算符“=”重載 16.3.3 下標運算符“[ ]”重載 16.4 類類型轉換 16.5 小結 16.6 習題第17章 輸入/輸出流 17.1 輸入/輸出流的引入 17.1.1 C語言中輸入/輸出缺陷 17.1.2 輸入/輸出流簡介 17.1.3 輸入/輸出流類層次 17.2 標準輸入/輸出流 17.2.1 標準輸出流對象 17.2.2 標準輸入流對象 17.3 輸入/輸出流成員函數 17.3.1 get()函數 17.3.2 getline()函數 17.3.3 put()函數 17.3.4 read()和write()函數 17.3.5 其他成員函數 17.4 輸入/輸出格式控制 17.4.1 用ios類的成員函數進行格式控制 17.4.2 使用格式控制符進行格式控制 17.5 用戶自定義數據類型的輸入/輸出 17.5.1 重載輸出運算符“<<” 17.5.2 重載輸入運算符“>>” 17.6 綜合實例 17.7 命名空間 17.7.1 命名空間概述 17.7.2 定義命名空間 17.7.3 使用命名空間 17.8 小結 17.9 習題第18章 文件 18.1 文件概述 18.1.1 操作文件的過程 18.1.2 處理文件流的類 18.2 文件的打開與關閉 18.2.1 打開文件 18.2.2 關閉文件 18.3 文件的順序讀寫 18.3.1 讀寫文本文件 18.3.2 文本文件應用示例 18.3.3 讀寫二進制文件 18.4 文件的隨機讀寫 18.5 綜合實例 18.6 小結 18.7 習題第19章 類模板 19.1 什么是類模板 19.2 定義類模板 19.2.1 語法 19.2.2 非類型參數 19.2.3 模板參數的缺省實參 19.3 生成類模板的實例 19.3.1 類型參數的模板實例化 19.3.2 非類型參數的模板實例化 19.3.3 類模板范例 19.4 類模板的靜態成員 19.5 類模板的友元 19.6 類模板的特化 19.6.1 類模板的全特化 19.6.2 偏特化 19.6.3 類模板的匹配規則 19.7 小結 19.8 習題第20章 標準模板庫STL 20.1 標準模板庫概述 20.1.1 C++標準庫 20.1.2 STL的形成 20.1.3 STL的組成 20.1.4 STL的引入 20.2 算法 20.3 容器 20.3.1 容器概述 20.3.2 向量 20.3.3 列表 20.3.4 集合 20.3.5 雙端隊列 20.3.6 棧 20.3.7 映射和多重映射 20.4 迭代器 20.5 綜合練習 20.6 小結 20.7 習題第21章 程序調試與異常處理 21.1 程序錯誤 21.1.1 編譯錯誤 21.1.2 邏輯錯誤 21.1.3 運行錯誤 21.2 程序調試 21.2.1 DEV-C++的調試功能 21.2.2 調試程序示例 21.3 異常處理 21.3.1 基本思想 21.3.2 拋出異常 21.3.3 捕獲異常 21.4 錯誤處理實例 21.5 異常處理實例 21.6 小結 21.7 習題第3篇 綜合案例篇第22章 人事管理系統開發實例 22.1 需求分析 22.2 系統設計 22.2.1 概要設計 22.2.2 詳細設計 22.2.3 數據結構設計 22.3 系統實現 22.3.1 創建應用程序 22.3.2 注冊職工 22.3.3 更新職工信息 22.3.4 職工去職 22.3.5 查詢職工信息 22.3.6 保存數據 22.3.7 工資排序 22.3.8 職工信息顯示 22.4 系統集成 22.5 小結 22.6 習題