《計算機系列教材:C++程序設計(第2版)》系統(tǒng)介紹了C++程序設計。全書共分12章,主要內容包括類與對象、數(shù)據(jù)類型、預處理、數(shù)組、函數(shù)、指針、繼承與派生、多態(tài)性與虛函數(shù)、運算符重載、輸入輸出流、模板與異常處理。
《計算機系列教材:C++程序設計(第2版)》內容取舍得當,例題豐富,概念清晰,既益于教學,也有利于加強學生上機實踐能力的培養(yǎng),提高教學效果。
《計算機系列教材:C++程序設計(第2版)》以Visual C++6.0為開發(fā)平臺,書中所有實例都在此平臺上通過。《計算機系列教材:C++程序設計(第2版)》配有《C++程序設計項目實踐(第2版)》輔導教材,可以進一步強化學生的編程能力。
《計算機系列教材:C++程序設計(第2版)》可作為高等院校計算機專業(yè)教學及各類培訓班的教材和參考書。
本書是筆者主持的山西省省級精品課程“C++程序設計”的建設成果。該書較全面、系統(tǒng)地講述了C++的基本概念和編程方法,并用大量的實例讓讀者更好地掌握它們。本書的特點是:以應用為背景,以知識為主線,以提高能力和興趣為目的,逐步形成以工程實踐案例為教學主線、實踐任務為教學驅動、在實踐中融合理論學習的課程教學體系。把面向過程的內容自始至終貫穿到對象中講解,把函數(shù)完全放入對象之中,使初學者始終使用對象進行程序設計。
本書重點訓練學生編程的邏輯思路、算法,以及編程、調試的基本技術。因此,在本書的編寫中,以任務驅動為前提,從提出問題入手,進行分析和算法設計,而不是一味地講語法,以必需、夠用為度,最后歸納總結,加強針對性和應用性。
全書共分為兩篇。
第一篇為面向對象程序基礎,包括第1~6章。
第1章介紹了面向對象程序設計的基本思想,以及C++程序的結構特征。
第2章給出了C++的數(shù)據(jù)描述。
第3章重點介紹了C++的基本結構和控制語句。
第4章介紹了數(shù)組的應用。
第5章介紹了面向對象的方法--函數(shù)。
第6章介紹了指針和引用的使用方法。
第二篇為面向對象程序設計,包括第7~12章。
第7章介紹了類與對象的定義及其構造函數(shù)與析構函數(shù)的使用。
第8章講述了類的特性之一:繼承與派生。
第9章講述了類的特性之二:多態(tài)性與虛函數(shù)。
第10章介紹了運算符的重載。
第11章介紹了輸入輸出流。
第12章介紹了模板與異常處理。
本書第1、2章由葉瑤編寫,第3~8章由劉宇君編寫,第9~11章由曹黨生編寫,第12章由張煥梅編寫,由劉宇君統(tǒng)編全書。 在本書的編寫與出版過程中,得到了譚浩強教授的熱情指導,得到了秦建中等的許多幫助,在此表示衷心的感謝。
由于編者水平有限,書中難免有疏漏和不足之處,懇請廣大讀者及專家批評指正。
本課程“C++程序設計”網址:http://210.31.100.100/c++jpkc/default.asp.
編者2011年8月26日
第一篇 面向對象程序基礎
第1章 面向對象程序概述
1.1 程序設計方法的發(fā)展歷程
1.1.1 面向過程的結構化程序設計方法
1.1.2 面向對象的方法
1.2 面向對象的基本思想
1.2.1 面向對象的開發(fā)方法
1.2.2 面向對象的基本概念
1.2.3 面向對象的軟件工程
1.3 C++程序的特點
1.4 C++程序的結構特征
1.4.1 C++程序實例
1.4.2 C++程序的組成
1.4.3 C++程序的書寫格式
1.5 C++程序的實現(xiàn)
1.6 本章小結
1.7 思考與練習
1.7.1 思考題
1.7.2 上機練習
第2章 對象屬性的數(shù)據(jù)描述
2.1 C++的字符集
2.1.1 C++的字符集
2.1.2 C++的詞法記號
2.2 數(shù)據(jù)類型
2.2.1 數(shù)據(jù)類型概述
2.2.2 基本數(shù)據(jù)類型
2.3 常量、變量
2.3.1 常量
2.3.2 變量
2.4 運算符與表達式的計算
2.4.1 算術運算符與算術表達式
2.4.2 賦值運算符與賦值表達式
2.4.3 逗號運算符與逗號表達式
2.4.4 關系運算符與關系表達式
2.4.5 條件運算符與條件表達式
2.4.6 邏輯運算符與邏輯表達式
2.5 表達式中數(shù)據(jù)類型的轉換
2.5.1 數(shù)據(jù)類型的轉換
2.5.2 賦值類型轉換時的副作用
2.5.3 邏輯表達式優(yōu)化時的副作用
2.6 本章總結
2.7 思考與練習
2.7.1 思考題
2.7.2 上機練習
第3章 預處理與語句
3.1 預處理
3.1.1 宏定義
3.1.2 文件包含
3.1.3 條件編譯
3.2 程序的三種基本結構及流程圖
3.2.1 C++語句概述
3.2.2 程序的三種基本結構
3.2.3 流程圖
3.3 順序結構及其語句實現(xiàn)
3.3.1 標準輸出流對象cout
3.3.2 在輸出流中使用控制符
3.3.3 標準輸入流對象cin
3.3.4 賦值語句
3.4 分支結構及其語句實現(xiàn)
3.4.1 單分支結構及其語句實現(xiàn)
3.4.2 雙分支結構及其語句實現(xiàn)
3.4.3 多分支結構及其語句實現(xiàn)
3.4.4 使用條件表達式實現(xiàn)分支結構
3.5 循環(huán)結構及其語句實現(xiàn)
3.5.1 for語句
3.5.2 while語句
3.5.3 do-while語句
3.5.4 循環(huán)嵌套及其語句實現(xiàn)
3.6 輔助控制語句
3.6.1 break語句
3.6.2 continue語句
3.7 程序實例
3.8 本章總結
3.9 思考與練習
3.9.1 思考題
3.9.2 上機練習
第4章 數(shù)組及應用
4.1 問題的提出
4.2 一維數(shù)組及應用
4.2.1 一維數(shù)組的定義
4.2.2 一維數(shù)組的初始化
4.2.3 一維數(shù)組的應用
4.3 二維數(shù)組及應用
4.3.1 二維數(shù)組和多維數(shù)組的定義
4.3.2 二維數(shù)組的初始化
4.3.3 二維數(shù)組的應用
4.4 字符數(shù)組與字符串
4.4.1 字符數(shù)組的定義
4.4.2 字符數(shù)組的初始化
4.4.3 字符串的輸入輸出
4.4.4 字符數(shù)組的應用
4.4.5 字符串處理函數(shù)
4.5 數(shù)組應用實例
4.5.1 數(shù)值計算
4.5.2 統(tǒng)計
4.5.3 排序
4.5.4 查找
4.6 本章總結
4.7 思考與練習
4.7.1 思考題
4.7.2 上機練習
第5章 對象的函數(shù)成員和全局函數(shù)
5.1 函數(shù)定義與調用語句
5.1.1 函數(shù)的分類
5.1.2 函數(shù)的定義
5.1.3 函數(shù)的返回值
5.1.4 函數(shù)的調用語句
5.1.5 函數(shù)原型的聲明
5.2 函數(shù)調用的參數(shù)傳遞
5.2.1 函數(shù)的參數(shù)
5.2.2 函數(shù)參數(shù)的傳遞方式
5.3 函數(shù)的嵌套調用與遞歸調用
5.3.1 函數(shù)的嵌套調用
5.3.2 函數(shù)的遞歸調用
5.4 內聯(lián)函數(shù)
5.5 函數(shù)重載
5.6 函數(shù)模板
5.7 具有默認參數(shù)值的函數(shù)
5.8 變量的存儲屬性
5.8.1 局部變量和全局變量
5.8.2 變量的存儲類別
5.8.3 變量的存儲屬性
5.9 本章總結
5.10 思考與練習
5.10.1 思考題
5.10.2 上機練習
第6章 指針與引用
6.1 指針的概念
6.2 指針變量
6.2.1 指針變量的定義及其初始化
6.2.2 指針變量的運算符
6.2.3 指針的運算
6.3 指針與數(shù)組
6.3.1 指針與一維數(shù)組
6.3.2 指針與二維數(shù)組
6.3.3 指針與字符串
6.4 指針與函數(shù)
6.4.1 指針作為函數(shù)參數(shù)
6.4.2 返回指針的函數(shù)
6.4.3 函數(shù)指針
6.5 指針數(shù)組與二級指針
6.5.1 指針數(shù)組
6.5.2 二級指針
6.6 動態(tài)分配/釋放內存
6.6.1 動態(tài)分配內存
6.6.2 動態(tài)釋放內存
6.7 引用
6.7.1 引用類型變量的定義及使用
6.7.2 引用與函數(shù)
6.8 本章總結
6.9 思考與練習
6.9.1 思考題
6.9.2 上機練習
第二篇 面向對象程序設計
第7章 類與對象
7.1 類
7.1.1 類定義
7.1.2 成員函數(shù)的實現(xiàn)
7.2 對象
7.2.1 對象的定義
7.2.2 訪問對象中的成員
7.2.3 類成員的訪問屬性
7.2.4 類的封裝性和信息隱蔽
7.3 構造函數(shù)和析構函數(shù)
7.3.1 構造函數(shù)
7.3.2 帶有成員初始化表的構造函數(shù)
7.3.3 析構函數(shù)
7.4 靜態(tài)成員
7.4.1 靜態(tài)數(shù)據(jù)成員
7.4.2 靜態(tài)成員函數(shù)
7.5 友元
7.5.1 友元函數(shù)
7.5.2 友元類
7.6 本章總結
7.7 思考與練習
7.7.1 思考題
7.7.2 上機練習
第8章 繼承與派生類
8.1 類的繼承與派生
8.1.1 基類與派生類
8.1.2 派生類的定義
8.1.3 派生類的成員構成
8.2 繼承方式與成員訪問規(guī)則
8.2.1 公有繼承方式
8.2.2 私有繼承方式
8.2.3 保護繼承方式
8.3 派生類的構造函數(shù)和析構函數(shù)
8.3.1 派生類的構造函數(shù)
8.3.2 派生類的析構函數(shù)
8.4 多繼承
8.4.1 基類與派生類的關系
8.4.2 多繼承的定義
8.4.3 多繼承的構造函數(shù)
8.5 虛基類
8.5.1 為什么要引入虛基類--二義性問題
8.5.2 虛基類的引入
8.5.3 虛基類及其派生類的構造函數(shù)
8.6 綜合實例
8.7 本章總結
8.8 思考與練習
8.8.1 思考題
8.8.2 上機練習
第9章 多態(tài)性與虛函數(shù)
9.1 多態(tài)性
9.1.1 多態(tài)的分類
9.1.2 多態(tài)性小結
9.2 虛函數(shù)
9.2.1 什么是虛函數(shù)
9.2.2 虛函數(shù)的定義和使用規(guī)則
9.3 純虛函數(shù)和抽象類
9.3.1 為什么要設計純虛函數(shù)
9.3.2 純虛函數(shù)和抽象類
9.4 本章總結
9.5 思考與練習
9.5.1 思考題
9.5.2 上機練習
第10章 運算符重載
10.1 運算符重載
10.1.1 運算符重載的定義和規(guī)則
10.1.2 運算符重載示例
10.1.3 利用引用提高效率
10.1.4 賦值運算符的重載
10.2 幾種特殊運算符重載
10.2.1 轉換運算符的重載
10.2.2 ++、--運算符的重載
10.3 本章總結
10.4 思考與練習
10.4.1 思考題
10.4.2 上機練習
第11章 輸入輸出流
11.1 C++的輸入輸出
11.1.1 流
11.1.2 緩沖區(qū)
11.2 標準輸入輸出流
11.2.1 C++的基本流類體系
11.2.2 I/O標準流類
11.2.3 流的格式控制
11.2.4 流的狀態(tài)
11.2.5 重載運算符>>和<<
11.3 串流類
11.4 文件流
11.4.1 文件流概述
11.4.2 文件的打開與關閉
11.4.3 文件的讀寫
11.4.4 文件緩沖區(qū)指針的使用
11.4.5 二進制文件的讀寫
11.5 本章總結
11.6 思考與練習
11.6.1 思考題
11.6.2 上機練習
第12章 模板與異常處理
12.1 模板
12.1.1 函數(shù)模板
12.1.2 類模板
12.2 異常處理
12.2.1 異常概述
12.2.2 異常處理機制
12.2.3 異常類
12.3 本章總結
12.4 思考與練習
12.4.1 思考題
12.4.2 上機練習
參考文獻