本教材根據最新頒布的全國計算機等級考試(二級C++語言程序設計)大綱的要求,結合目前C++語言程序設計的廣泛使用,全書以“工作過程引領”和“項目驅動”形式,圍繞“學生成績管理系統”為主線的實戰演練,并融入作者多年從事C++語言程序設計的實踐經驗編寫而成。
全書共分為10章,由淺入深地介紹了C++語言概述;C++語言的數據類型、表達式和基本運算符;程序設計;數組、指針和引用、函數和預處理;類、對象和友元;派生和繼承;多態性和虛函數;運算符重載;模板。全書除了針對各個知識點利用例題講解以外,還將2002年以來國家計算機等級(二級C++)考試的典型試題以練習題的形式附在各個章節之后,并進行了解釋說明,同時還將讀者容易犯的錯誤以列舉的形式進行了詳細闡述,以方便讀者進行更正。每章后都附有實驗指導,方便讀者上機實際操作。
國家人力資源和社會保障部、國家工業和信息化部信息專業技術人才知識更新工程指定教材。全國軟件專業人才設計與開發大賽指定參考教材。教育部高職高專計算機類專業教學指導委員會高職高專計算機類專業2010年度立項課題“校企合作下的計算機類專業人才培養方案研究”課題成果教材(課題編號:jzw59011081)。網絡課程、教學課件、電子教案、習題答案、練習素材等立體化教學資源支持,選用此教材的任課老師可獲贈考試系統一套(含題庫)。
第1章 C++語言概述
1.1 C++語言的發展過程
1.2 C++語言的特點
1.3 C++語言的基本語法\\t
1.3.1 C++程序的構成\\t
1.3.2 書寫程序時應遵循的規則\\t
1.3.3 C++語言的字符集\\t
1.3.4 C++語言詞匯\\t
1.4 面向對象的程序設計技術\\t
1.5 Visual C++6.0開發環境及C++上機過程\\t
1.5.1 Visual C++6.0簡介\\t
1.5.2 Visual C++6.0主界面\\t
1.5.3 在Visual C++6.0開發環境中開發C++程序
1.6 本章小結及常見錯誤例舉\\t
1.6.1 本章小結
1.6.2 常見錯誤例舉
1.7 實戰演練
習題\\t
第2章 C++語言的數據類型、表達式和基本運算符
2.1 數據類型
2.1.1 基本數據類型\\t
2.1.2 非基本數據類型\\t
2.1.3 應用舉例
練習1
2.2 常量與變量\\t
練習2
2.3 整型數據\\t
2.4 實型數據\\t
2.5 字符型數據\\t
2.6 變量賦初值和類型轉換\\t
練習3
2.7 運算符簡介\\t
2.8 算術運算符和算術表達式
2.9 關系運算符和關系表達式\\t
2.10 邏輯運算符和邏輯表達式\\t
2.11 賦值運算符和賦值表達式\\t
2.12 強制類型轉換運算符
2.13 自增、自減運算符
2.14 位運算符
練習4
2.15 本章小結及常見錯誤列舉\\t
2.16 實戰演練
習題\\t
第3章 程序設計
3.1 基本語句\\t
3.2 順序控制語句及實例\\t
3.2.1 輸入cin
3.2.2 輸出cout\\t
練習1
3.2.3 putchar()
3.2.4 getchar()
3.2.5 輸入/輸出格式操作符
3.2.6 順序結構程序設計舉例
3.3 選擇控制語句及實例\\t
3.3.1 簡單if語句
3.3.2 if-else語句
3.3.3 if else if語句
練習2
3.3.4 嵌套的if語句\\t
3.3.5 switch語句\\t
3.4 循環控制語句
3.4.1 while語句
練習3
3.4.2 do-while語句
練習4
3.4.3 for語句
練習5
3.4.4 goto、continue、break和return語句
3.4.5 四種循環語句的比較
3.4.6 循環的嵌套
3.4.7 應用舉例
練習6
3.5 綜合程序設計
3.6 本章小結及常見錯誤列舉
3.6.1本章小結
3.6.2常見錯誤列舉
3.7 實戰演練
習題\\t
第4章 數組、指針和引用
4.1 一維數組\\t
4.1.1 一維數組的定義
4.1.2 一維數組的初始化
4.1.3 一維數組應用舉例\\t
4.2 二維數組\\t
4.2.1 二維數組的一般定義形式\\t
4.2.2 二維數組初始化\\t
4.2.3 二維數組應用舉例\\t
4.3 數組與字符串
4.3.1 字符數組
4.3.2 字符數組的使用\\t
4.3.3 字符串處理函數\\t
4.4 指針\\t
4.4.1 指針的概念
4.4.2 指針的使用
4.4.3 指針的運算
4.5 指針與數組\\t
4.5.1 指針與數組的關系\\t
4.5.2 數組指針與指針數組\\t
4.6 動態內存分配\\t
4.6.1 new操作符\\t
4.6.2 delete\\t操作符
4.7 指針與函數\\t
4.7.1 指針作為函數參數\\t
4.7.2 函數指針
4.8 引用
4.8.1引用的定義
4.8.2 函數參數的引用傳遞方式\\t
4.9 本章小結及常見錯誤例舉\\t
4.9.1本章小結
4.9.2常見錯誤列舉\\t
4.10 實戰演練
習題\\t
第5章 函數和預處理
5.1 函數的定義和調用
5.1.1 函數的概述\\t
5.1.2 函數的定義\\t
5.1.3 函數的調用\\t
練習1
5.2 函數的參數傳遞、返回值及函數聲明\\t
5.2.1 函數的參數傳遞及傳值調用\\t
5.2.2 函數返回值\\t
5.2.3 函數聲明\\t
練習2
5.3 全局變量和局部變量\\t
5.3.1 變量的存儲機制與C++的內存布局\\t
5.3.2 全局變量\\t
5.3.3 局部變量\\t
5.4 函數的調用機制\\t
5.5 作用域與標識符的可見必性\\t
5.5.1 存儲類型與標識符的生命期\\t
5.5.2 存儲類型\\t
5.5.3 生命期\\t
練習3
5.6 函數的遞歸調用
5.7 函數的重載、內聯及默認參數\\t
5.7.1 函數重載\\t
5.7.2 默認參數\\t
5.7.3 內聯函數\\t
練習4
5.8 頭文件與多文件結構\\t
5.8.1 頭文件\\t
5.8.2 多文件結構\\t
5.9 編譯預處理\\t
5.9.1 宏定義命令
5.9.2 文件包含命令
5.9.3 條件編譯命令
練習5
5.10 本章小結及常見錯誤例舉\\t
5.10.1 本章小結
5.10.2 常見錯誤列舉
5.11 實戰演練
習題\\t
第6章 類、對象和友元
6.1 類
6.1.1 類的一般結構
6.1.2 成員函數的定義\\t
6.1.3 類作用域\\t
6.2 對象\\t
6.3 構造函數和析構函數\\t
6.3.1 構造函數\\t
6.3.2 拷貝構造函數\\t
6.3.3 析構函數\\t\\t
6.4 靜態成員\\t
6.4.1 靜態數據成員\\t
6.4.2 靜態成員函數\\t
6.5 類對象作為成員
6.6 對象數組
6.7 this指針\\t
6.8 友元\\t
6.8.1 友元函數\\t
6.8.2 友元的使用\\t\\t
6.9 本章小結及常見錯誤例舉\\t
6.9.1 本章小結
6.9.2 常見錯誤列舉\\t
6.10 實戰演練
習題\\t
第7章 派生和繼承
7.1 派生類
7.1.1 派生類的定義格式
7.1.2 派生類生成過程\\t
7.2 訪問控制\\t
7.2.1 公有繼承\\t
7.2.2 私有繼承\\t
7.2.3 保護繼承\\t
練習1
7.3 派生類的構造函數和析構函數\\t
7.3.1 構造函數\\t
7.3.2 析構函數\\t
練習2
7.4 虛基類\\t
7.4.1 作用域分辨符\\t
7.4.2 虛基類說明\\t
7.4.3 保虛基的初始化\\t
練習3
7.4.4 派生和繼承實例\\t
7.5 本章小結及常見錯誤例舉\\t
7.5.1 本章小結
7.5.2 常見錯誤列舉
7.6 實戰演練
習題\\t
第8章 多態性和虛函數
8.1 靜態聯編和動態聯編
練習1
8.2 虛函數
8.2.1 虛函數的說明\\t
8.2.2 多繼承中的虛函數\\t
8.2.3 虛函數的限制
練習2
8.3 純虛函數和抽象類\\t
8.3.1 純虛函數\\t
8.3.2 抽象類\\t
練習3
8.4 抽象類的實例
練習4\\t
8.5 本章小結及常見錯誤例舉\\t
8.5.1 本章小結
8.5.2 常見錯誤列舉
練習5
8.6 實戰演練
習題\\t
第9章 運算符重載
9.1 運算符重載概述\\t
練習1
9.2 單目運算符重載\\t
練習2
9.3 雙目運算符重載\\t
練習3
9.4 關系運算符重載\\t
9.5 賦值運算符重載\\t
9.5.1 復合賦值運算符重載\\t
9.5.2 直接賦值運算符重載\\t
9.6 下標運算符重載\\t
9.7 運算符new和delete重載\\t
9.8 逗號運算符重載\\t
9.9 類型轉換運算符重載\\t
9.10 運算符重載應用實例
練習10
9.11 本章小結及常見錯誤例舉\\t
9.11.1 本章小結
9.11.2 常見錯誤列舉
練習11
9.12 實戰演練
習題\\t
第10章 模板
10.1 模板的概念\\t
10.2 函數模板
10.2.1 函數模板定義\\t
10.2.2 函數模板的使用\\t
練習10-1
10.3 類模板\\t
10.3.1 類模板定義\\t
10.3.2 類模板的使用
練習10-2
10.4本章小結及常見錯誤例舉\\t
10.4.1 本章小結
10.4.2 常見錯誤列舉
10.5 實戰演練
習題\\t
第11章 C++流和文件流
11.1 什么是流
11.1.1 預定義流
11.1.2 C++的流類庫
11.2 格式化I/O\\t
11.2.1 使用iso成員函數
11.2.2 使用I/O操縱符\\t
11.3 重載I/O運算符\\t
11.3.1 重載輸出運算符“<<”
11.3.2 重載輸入運算符“>>”
11.4 文件流\\t
11.4.1 文件流的打開與關閉\\t
11.4.2 文件的讀寫\\t
練習11-1
11.5 本章小結及常見錯誤例舉\\t
11.5.1 本章小結
11.5.2 常見錯誤列舉
11.6 實戰演練
習題\\t
第12章 異常處理
12.1 異常處理概述\\t
12.2 C++異常處理的實現\\t
12.2.1 異常處理的語法\\t
12.2.2 捕獲所有類型的異常\\t
12.2.3 帶有異常說明的函數原型
12.3 異常處理中對象的構造與析構
12.4 本章小結
習題
1.4 面向對象的程序設計技術
C++稱為“帶類的C”,就是在C語言的基礎上引入面向對象的機制而形成的一門程序設計語言,而C語言是面向過程的程序設計語言。C++幾乎繼承了C語言的所有特點,同時添加了面向對象的特征。C++既支持面向過程的程序設計,又支持面向對象的程序設計。面向過程的程序設計語言是基于功能分析的,以算法為中心的程序設計方法;面向對象的程序設計語言是基于結構分析的,以數據為中心的程序設計方法。面向對象的程序設計方法具有三大特征:封裝性、繼承性和多態性,其基本思想是盡可能模擬人類的自然思維方式來構造軟件系統,不僅可以提高對用戶需求的適應性,而且支持軟件復用。掌握面向對象的程序設計方法,首先要了解面向對象是C++的主要概念。
1.對象
對象是一個實體,可以是現實世界中具體的物理實體或概念化的抽象實體。一個學校是對象,桌、椅是對象,規章制度也是對象。對象是一個封裝數據(屬性,靜態特征)和操作(服務,動態特征)的實體,是構成系統的基本單元。
2.類
類是具有相同屬性和相同操作的對象的集合,是抽象數據類型的實現。類是創建對象的模