《C++程序設計》根據(jù)教育部非計算機專業(yè)計算機基礎課程教學指導分委員會提出的《高等學校非計算機專業(yè)計算機基礎課程教學基本要求》中的關于“程序設計”的課程教學要求編寫。全書以面向?qū)ο蟮木幊趟枷霝橹骶,主要講解程序設計基礎知識、類與對象的基本概念、繼承與多態(tài)、輸入/輸出流以及泛型程序設計等內(nèi)容!禖++程序設計》可作為高等院!俺绦蛟O計”課程的教材使用,也可作為學習程序設計的自學參考書和培訓教材。
工業(yè)和信息化普通高等教育“十二五”規(guī)劃教材立項項目;概念闡述注意演繹與歸納,案例講解側(cè)重方法與應用,編程思想兼顧理論與實踐。 《C++程序設計》是C++程序設計的入門教材,基于作者多年程序設計方面的教學與科研成果,結合國內(nèi)外該領域的最新進展,側(cè)重于案例講解和方法應用,編寫而成。書中對各重要概念都給予了明確解釋,注重理論和應用的結合。同時,講解概念時注意演繹和歸納,特別總結了C++程序設計學習的過程中容易忽視的錯誤細節(jié)。 書中涵蓋的主要內(nèi)容: ·面向?qū)ο蟪绦蛟O計方法及C++語言介紹; ·對象的屬性描述; ·對象的功能描述; ·類的概念及繼承結構。
第1章 程序設計方法和c++語言概述
1.1 程序編寫過程
1.2 面向過程程序設計方法
1.3 面向?qū)ο蟪绦蛟O計方法
1.4 c++語言的發(fā)展
1.5 c++語言程序的開發(fā)過程
1.6 一個簡單的程序
本章小結
習題
第2章 數(shù)據(jù)類型、運算符和表達式
2.1 數(shù)據(jù)類型
2.2 常量和變量
2.2.1 c++的符號系統(tǒng)
2.2.2 c++的常量
2.2.3 c++的變量
2.3 運算符和表達式
2.3.1 算術運算符和算術表達式
2.3.2 賦值運算符和賦值表達式
2.3.3 關系運算符和關系表達式
2.3.4 邏輯運算符和邏輯表達式
2.3.5 位運算符和位運算表達式
2.3.6 條件運算符和條件表達式
2.3.7 其他運算符
2.4 數(shù)據(jù)類型轉(zhuǎn)換
2.4.1 自動類型轉(zhuǎn)換
2.4.2 強制類型轉(zhuǎn)換
2.4.3 賦值表達式的類型轉(zhuǎn)換
2.5 基本輸入輸出
2.5.1 標準輸入流和標準輸出流
2.5.2 io流的格式控制
2.6 c++的語句類型
2.6.1 說明性語句
2.6.2 可執(zhí)行語句
本章小結
習題
第3章 c++控制語句
3.1 順序結構程序設計
3.2 分支結構程序設計
3.2.1 if分支語句
3.2.2 if語句的嵌套
3.2.3 switch語句
3.3 循環(huán)結構程序設計
3.3.1 while語句
3.3.2 do...while語句
3.3.3 for語句
3.3.4 3種循環(huán)語句的比較
3.3.5 循環(huán)嵌套
3.3.6 break和continue語句
3.4 程序舉例
本章小結
習題
第4章 數(shù)組
4.1 概述
4.2 一維數(shù)組
4.2.1 一維數(shù)組定義和初始化
4.2.2 一維數(shù)組元素的引用
4.3 二維數(shù)組
4.3.1 二維數(shù)組定義和初始化
4.3.2 二維數(shù)組元素的引用
4.4 字符數(shù)組與字符串
4.4.1 字符數(shù)組的定義和初始化
4.4.2 字符數(shù)組的引用
4.5 數(shù)組應用舉例
4.5.1 一維數(shù)組應用舉例
4.5.2 二維數(shù)組應用舉例
4.5.3 字符數(shù)組應用舉例
4.5.4 綜合應用舉例
本章小結
習題
第5章 函數(shù)與預處理
5.1 概述
5.1.1 函數(shù)簡介
5.1.2 函數(shù)的種類
5.2 函數(shù)定義及調(diào)用
5.2.1 函數(shù)的定義
5.2.2 函數(shù)的調(diào)用
5.2.3 函數(shù)參數(shù)傳遞與返回值
5.2.4 函數(shù)的嵌套調(diào)用
5.2.5 函數(shù)原型聲明
5.3 c++中的特殊函數(shù)
5.3.1 重載函數(shù)
5.3.2 內(nèi)聯(lián)函數(shù)
5.3.3 具有默認參數(shù)值的函數(shù)
5.4 函數(shù)模板
5.4.1 函數(shù)模板的定義
5.4.2 重載函數(shù)模板
5.5 局部變量和全局變量
5.5.1 局部作用域和局部變量
5.5.2 全局作用域和全局變量
5.6 變量的生存期和存儲類別
5.6.1 變量的生存期
5.6.2 變量的存儲類別
5.7 編譯預處理
5.7.1 宏定義
5.7.2 文件包含
5.7.3 條件編譯
本章小結
習題
第6章 指針和引用
6.1 指針的概念
6.1.1 指針和指針變量
6.1.2 指針變量的定義
6.1.3 指針的基本運算
6.1.4 指針作為函數(shù)參數(shù)
6.2 指針與數(shù)組
6.2.1 指針與一維數(shù)組
6.2.2 指針與二維數(shù)組
6.2.3 指向字符串的指針變量
6.2.4 指針數(shù)組
6.2.5 多級指針
6.3 指針和函數(shù)
6.3.1 指針型函數(shù)
6.3.2 用函數(shù)指針調(diào)用函數(shù)
6.3.3 用指向函數(shù)的指針作函數(shù)參數(shù)
6.3.4 帶參數(shù)的main()函數(shù)
6.4 動態(tài)存儲分配
6.4.1 內(nèi)存的動態(tài)分配
6.4.2 動態(tài)內(nèi)存分配操作符
6.5 引用
6.5.1 引用的概念
6.5.2 引用的操作
6.5.3 不能被定義引用的情況
6.5.4 函數(shù)參數(shù)中引用的傳遞
6.5.5 用引用返回多個值
6.5.6 用函數(shù)返回引用
6.5.7 const引用
本章小結
習題
第7章 其他自定義數(shù)據(jù)類型
7.1 結構體類型
7.1.1 結構體類型的定義
7.1.2 結構體類型變量的定義及其初始化
7.1.3 結構體類型的使用
7.2 枚舉類型
7.3 共用體類型
本章小結
習題
第8章 類與對象
8.1 類的概念
8.2 類的定義
8.3 對象的定義
8.4 類的成員函數(shù)
8.5 類的訪問屬性
8.6 對象的使用
8.6.1 對象指針
8.6.2 對象引用
8.6.3 this指針
8.6.4 對象數(shù)組
8.6.5 普通對象做函數(shù)參數(shù)
8.6.6 對象指針做函數(shù)參數(shù)
8.6.7 對象引用做函數(shù)參數(shù)
8.7 構造函數(shù)
8.8 析構函數(shù)
8.9 拷貝構造函數(shù)
8.1 淺拷貝和深拷貝
8.11 靜態(tài)成員
8.11.1 靜態(tài)成員數(shù)據(jù)
8.11.2 靜態(tài)成員函數(shù)
8.12 友元
8.12.1 友元函數(shù)
8.12.2 友元類
8.13 常對象
8.14 常成員
8.14.1 常成員數(shù)據(jù)
8.14.2 常成員函數(shù)
8.15 組合關系
8.16 類模板
本章小結
習題
第9章 繼承與派生
第10章 多態(tài)性與虛函數(shù)
第11章 運算符重載
第12章 標準模板庫
第13章 輸入輸出流
第14章 異常處理
附錄a c++語言中運算符的優(yōu)先級和結合性
附錄b ascii碼表
附錄c c++常用函數(shù)
參考文獻
面向過程程序設計方法又稱為結構化程序設計方法。其基本觀點是:使用3種基本結構(即順序結構、選擇結構和循環(huán)結構)強調(diào)模塊的單人和單出。
采用面向過程程序設計方法來認識現(xiàn)實世界問題,其基本的思維粒度是過程。所謂過程,指的是一個功能的完整描述。在沒有特別說明的情況下,本書中的過程和功能是等價的說法。例如,開發(fā)一個學生選課管理信息系統(tǒng)時,經(jīng)過需求調(diào)研后,發(fā)現(xiàn)該系統(tǒng)的基本功能如下。
教師信息的登記,例如,當學校新增教師時,需要該功能。
教師信息的修改,例如,當教師轉(zhuǎn)移工作崗位時,需要該功能。
教師信息的刪除,例如,當學校開除教師時,需要該功能。
教師信息的打印,例如,當學校存檔教師檔案時,需要該功能。
教師查詢學生名單,例如,當教師需要查看授課學生名單時,需要根據(jù)課程查詢學生名單的功能。
學生信息的登記,例如,當新生人學時,需要該功能。
學生信息的修改,例如,當學生轉(zhuǎn)系時,需要該功能。
學生信息的刪除,例如,當學生畢業(yè)時,需要該功能。
注意,這種刪除只是一種臨時性的刪除,經(jīng)過刪除后的學生信息可以實現(xiàn)歸檔處理。
學生信息的打印,例如,當學校存檔學生檔案時,需要該功能。
學生查詢教師名單,例如,當學生選課需要查看某個課程的授課教師時,需要該功能。
課程信息的增加,例如,當學校開設一門新課時,需要該功能。
課程信息的修改,例如,當需要變更課程名稱時,需要該功能。
課程信息的刪除,例如,當學校刪除一門舊課時,需要該功能。
課程信息的打印,例如,當學生需要某個課程詳細情況時,需要該功能。
查詢教師和學生名單,例如,當管理員需要根據(jù)課程獲知該課程的教師和學生的詳細信息時,需要該功能。
設定必修課,系統(tǒng)根據(jù)學生的專業(yè)和年級等信息設定其必修課。
選擇選修課,學生根據(jù)自己的愛好和發(fā)展等信息選擇其選修課。
選擇教師,學生根據(jù)自己的喜好選擇必修課和選修課的授課教師。
學生選課管理信息系統(tǒng)的功能結構,如圖1.2 所示。面向過程程序設計方法強調(diào)描述一個系統(tǒng)時以該系統(tǒng)包含的基本功能為基礎,一個過程對應一個功能。
……