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