C++程序設計(第二版)
-
【作 者】主編 楊長興 劉衛國
【I S B N 】978-7-5084-9364-0
【責任編輯】李炎
【適用讀者群】本專通用
【出版時間】2012-01-01
【開 本】16開
【裝幀信息】平裝(光膜)
【版 次】第1版第1次印刷
【頁 數】316
【千字數】480
【印 張】19.75
【定 價】¥35
【叢 書】普通高等教育“十二五”規劃教材
【備注信息】
簡介
本書特色
前言
章節列表
精彩閱讀
下載資源
相關圖書
本書以程序設計零基礎為起點,全面介紹包括面向過程和面向對象的C++程序設計方法。全書共10章,包括C++基礎知識、程序控制結構、函數與編譯預處理、數組與指針、自定義數據類型、類與對象、重載與模板、繼承與派生、多態性與虛函數、輸入輸出流。各章節內容由淺入深、相互銜接、前后呼應、循序漸進。
為了提高讀者對程序設計思想方法的理解,本書將程序設計語言模型與人類自然語言模型相比較,讓讀者對程序設計語言模型及其內容的理解有了完整的參照對象。全書各章節選用大量程序設計經典實例來講解基本概念和程序設計方法,同時配有大量習題供讀者練習。本書的配套教材《C++程序設計實踐教程》(第二版)提供了本課程的實踐內容、上機指導及習題參考答案。
本書語言表達嚴謹,文字流暢,內容通俗易懂、重點突出、實例豐富。適合作為高等院校各專業程序設計課程的教材,還適合作為廣大計算機愛好者的自學參考用書。
編寫原則:加強基礎、注重實踐、突出應用、勇于創新。
教學理念:教思想、教方法,真正做到“授人以魚,不如授人以漁”。
本書以程序設計零基礎為起點,介紹包括面向過程和面向對象的C++程序設計方法。內容安排注重由淺入深、相互銜接、前后呼應、循序漸進,語言表達嚴謹,文字流暢,內容通俗易懂、重點突出,實例豐富。
本書作者長期從事程序設計課程的教學工作,并利用C/C++/Visual C++開發了許多軟件項目,具有豐富的教學經驗和較強的科研能力。
為了提高讀者的編程技巧,選用了大量的經典例題,有些例題還備有多種可能的解答,以期拓展讀者的解題思路。本書所給出的程序示例均在Visual C++ 6.0環境下進行了調試和運行。
為了幫助讀者更好地學習C++,編者還編寫了配套教材《C++程序設計實踐教程(第二版)》一書,該配套教材提供了本課程的實踐內容、上機指導及習題參考答案。
目前,隨著計算機技術的普及與提高,高校計算機基礎教學的內容也在不斷改革與發展。程序設計課程是大學生必須掌握的計算機基本知識。選用某種程序設計語言作為高校大學生程序設計課程的語言環境,是各校計算機基礎教學工作者改革研究的課題之一。過去很長一段時間,許多高校選用C語言作為程序設計課程的語言。但隨著軟件工程技術的不斷發展,面向對象的程序設計方法已成為當今軟件開發的重要手段之一,尤其是Visual C++的出現,進一步推動了面向對象與可視化編程技術的發展與應用。因此,掌握面向對象的程序設計方法已經成為大學生計算機應用與軟件開發能力的要求之一。由于C++兼容了C語言的功能強、效率高、風格簡潔、滿足包括系統程序設計和應用程序設計的大多數任務的特點,又擴充了面向對象部分,即支持類、繼承、派生、多態性等,解決了其代碼的重用問題,C++實際上是既支持面向過程的結構化程序設計又支持面向對象的程序設計的語言。所以,我們根據多年的實際教學經驗,在程序設計課程教學改革研究時,選用C++作為程序設計課程的語言環境。對于本書內容的選擇,我們力求面向讀者,以程序設計零基礎為起點,全面介紹了包括面向過程和面向對象的C++程序設計方法。讓讀者首先接受面向對象的程序設計的思想方法,并理解面向對象的程序設計是需要以面向過程的程序設計方法作為基礎的。
全書共分為10章,第1章介紹C++的基礎知識;第2章介紹程序控制結構;第3章介紹函數;第4章介紹數組與指針;第5章介紹自定義數據類型;第6章介紹類與對象;第7章介紹重載與模板;第8章介紹繼承與派生;第9章介紹多態性與虛函數;第10章介紹輸入輸出流。從全書組織結構來看,首先定位C++是兼顧面向過程和面向對象的程序設計語言,面向對象的程序設計是以面向過程的程序設計為基礎的。因此,在第1~5章以介紹面向過程的程序設計為主;在第6~10章以介紹面向對象的基本思想與方法為主。
本書編者長期從事程序設計課程的教學工作,并利用C/C++/Visual C++開發了許多軟件項目,具有豐富的教學經驗和較強的科學研究能力。編者本著加強基礎、注重實踐、突出應用、勇于創新的原則,力求使本書達到有較強的可讀性、適用性和先進性。我們的教學理念是:教學是教思想、教方法,真正做到“授人以魚,不如授人以漁”。為了加強讀者對程序設計思想方法的理解,本書將程序設計語言模型與人類自然語言模型相比較,讓讀者對程序設計語言模型及其內容的理解有了完整的參照對象。為了提高讀者的編程技巧,選用了大量的經典例題,這些例題與相應章節的基本內容是完全吻合的,而且讀者對這些例題的自然解法是相當熟悉的。例題還備有多種可能的解答,以期拓展讀者的解題思路。為了便于讀者自學,在全書的內容組織、編排上注重由淺入深、深入淺出、循序漸進。因此,本書適合作為高等院校各專業程序設計課程的教材,也適合作廣大計算機愛好者的自學參考用書。如教師選用本書作為大學生程序設計課程的教材,可根據實際教學課時數調整或取舍內容。
本書所給出的程序示例均在Visual C++ 6.0環境下進行了調試和運行。為了幫助讀者更好地學習C++,編者還編寫了配套教材《C++程序設計實踐教程》(第二版)一書,該配套教材提供了本課程的實踐內容、上機指導及習題參考答案。
本書由楊長興、劉衛國任主編,負責全書的總體策劃、統稿和定稿工作。曹岳輝、李利明任副主編,協助主編完成統稿、定稿工作。各章編寫工作分工如下:第1章由楊長興編寫,第2章由周春艷編寫,第3章由朱從旭編寫,第4章由周欣然編寫,第5章由李小蘭編寫,第6章由劉衛國編寫,第7章由曹岳輝編寫,第8章由呂格莉編寫,第9章由李利明編寫,第10章由蔡旭暉編寫。
本書的編寫得到了中南大學信息科學與工程學院施榮華等教授的大力支持與幫助,在此表示衷心的感謝。在本書的編寫過程中,王小玲、嚴暉、周肆清、舒衛真、田琪、邵自然、羅芳、楊莉軍等老師參與了大綱的討論和文稿校對工作,本書吸收了他(她)們許多寶貴的意見,在此一并表示感謝。編者在編寫本書的過程中參考了大量的文獻資料,在此也向這些文獻資料的作者表示衷心感謝。
由于本書編者水平所限,成稿時間倉促,書中如有疏漏及不妥之處,敬請讀者不吝賜教。
第1章 C++基礎知識 1
1.1 程序設計語言的基本概念 1
1.2 C++程序的基本結構 3
1.2.1 C++程序結構 3
1.2.2 C++程序的書寫格式 4
1.3 一個應用程序的開發過程 5
1.3.1 Visual C++ 6.0開發環境 5
1.3.2 一個應用程序的開發過程 5
1.4 C++的詞法規則 9
1.4.1 C++的字符集組成 9
1.4.2 C++的單詞及其構詞規則 10
1.5 C++基本數據類型 11
1.6 常量與變量 12
1.6.1 常量 12
1.6.2 變量 15
1.7 運算符與表達式 18
1.7.1 算術運算符與算術表達式 18
1.7.2 關系運算符與關系表達式 20
1.7.3 邏輯運算符與邏輯表達式 21
1.7.4 位運算符與位運算表達式 22
1.7.5 賦值運算符與賦值表達式 23
1.7.6 三目運算符與三目條件表達式 25
1.7.7 逗號運算符與逗號表達式 26
1.7.8 指針運算 26
1.7.9 運算符的優先級和結合性 27
1.7.10 類型轉換 29
習題1 30
第2章 程序控制結構 33
2.1 順序結構 33
2.1.1 定義語句 33
2.1.2 表達式語句 34
2.1.3 復合語句 34
2.1.4 空語句 34
2.1.5 基本輸入輸出 34
2.2 選擇結構 37
2.2.1 if語句 38
2.2.2 switch語句 43
2.3 循環結構 45
2.3.1 while語句 45
2.3.2 do…while語句 47
2.3.3 for語句 49
2.3.4 多重循環 51
2.4 控制轉向語句 53
2.4.1 break語句 53
2.4.2 continue 語句 54
2.4.3 goto語句 55
2.5 程序實例 56
習題2 61
第3章 函數與編譯預處理 64
3.1 函數的概念 64
3.2 函數的定義與調用 67
3.2.1 函數的定義 67
3.2.2 函數的聲明 67
3.2.3 函數的返回值 69
3.2.4 函數的調用 70
3.3 函數的參數傳遞 71
3.3.1 參數的值傳遞 72
3.3.2 參數的地址傳遞 73
3.3.3 帶默認值的參數 74
3.4 函數的嵌套調用與遞歸調用 75
3.4.1 函數的嵌套調用 75
3.4.2 函數的遞歸調用 76
3.5 內置函數 81
3.6 變量和函數的屬性 83
3.6.1 變量的作用域 83
3.6.2 變量的生存期 87
3.6.3 內部函數和外部函數 91
3.7 編譯預處理 93
3.7.1 宏定義 93
3.7.2 文件包含 95
3.7.3 條件編譯 96
習題3 98
第4章 數組與指針 102
4.1 數組及其應用 102
4.1.1 數組的概念 102
4.1.2 一維數組 103
4.1.3 二維數組 107
4.1.4 數組作為函數的參數 110
4.2 指針及其應用 113
4.2.1 指針的概念 113
4.2.2 指針變量的定義及初始化 114
4.2.3 指針的運算 115
4.2.4 指針作函數參數 116
4.2.5 返回指針值的函數 118
4.2.6 指向函數的指針 119
4.3 指針與數組 121
4.3.1 指針與一維數組 121
4.3.2 一維數組名和指針作函數參數的
進一步討論 123
4.3.3 指針與二維數組 123
4.4 字符串 125
4.4.1 字符串的概念 126
4.4.2 字符串的存儲表示法 126
4.4.3 字符串的輸入與輸出 128
4.4.4 字符串處理處理函數 128
4.4.5 字符串的簡單應用舉例 130
4.5 指針數組與多級指針 132
4.5.1 指針數組 132
4.5.2 多級指針 133
4.5.3 帶形參的main函數 134
4.6 引用 135
4.6.1 變量的引用 135
4.6.2 引用作函數參數 136
4.6.3 引用作函數返回值 137
習題4 137
第5章 自定義數據類型 141
5.1 結構體類型 141
5.1.1 結構體類型的定義 141
5.1.2 結構體變量的定義 142
5.1.3 結構體變量的引用與初始化 143
5.1.4 結構體數組 145
5.1.5 結構體與函數 147
5.1.6 鏈表 149
5.2 共用體類型 154
5.2.1 共用體類型與變量的定義 154
5.2.2 共用體變量的引用 155
5.2.3 共用體與結構體的聯合使用 156
5.3 枚舉類型 158
5.4 自定義類型 159
思考與擴充 160
5.5 位段結構 160
習題5 164
第6章 類與對象 167
6.1 面向對象程序設計的基本概念 167
6.2 類與對象的定義 169
6.2.1 C++面向對象程序的結構 170
6.2.2 類的定義 171
6.2.3 對象的定義與使用 174
6.2.4 類與結構體的區別 175
6.3 對象的初始化 176
6.3.1 構造函數 176
6.3.2 析構函數 179
6.3.3 復制構造函數 181
6.4 對象數組與對象指針 184
6.4.1 對象數組 184
6.4.2 對象指針 185
6.4.3 指向類成員的指針 186
6.4.4 this指針 188
6.5 友元 189
6.5.1 友元函數 189
6.5.2 友元類 190
6.6 類成員的共享與保護 191
6.6.1 靜態成員 192
6.6.2 常對象和常成員 194
6.7 程序實例 197
習題6 201
第7章 重載與模板 206
7.1 重載 206
7.1.1 函數重載 207
7.1.2 運算符重載 211
7.2 模板 227
7.2.1 函數模板 227
7.2.2 類模板 229
7.3 應用實例 230
習題7 239
第8章 繼承和派生 241
8.1 繼承和派生的概念 241
8.1.1 基類與派生類 241
8.1.2 繼承與派生的作用 242
8.1.3 派生類的聲明 243
8.2 派生類成員的訪問控制 244
8.2.1 派生類成員訪問控制簡介 244
8.2.2 private、protected與public
類成員 244
8.2.3 三種派生方式的定義 246
8.2.4 派生類成員訪問控制規則 251
8.3 派生類的構造函數和析構函數 251
8.3.1 派生類的構造函數和析構函數
的聲明 251
8.3.2 派生類的構造函數和析構函數
的構造規則 253
8.3.3 派生類的構造函數和析構函數
的調用順序 253
8.4 多重繼承 254
8.4.1 多重繼承的聲明 254
8.4.2 多重繼承的幾點說明 256
8.4.3 虛基類 256
8.5 基類和派生類的轉換 260
8.5.1 什么是基類和派生類的轉換 260
8.5.2 基類與派生類的轉換方法 261
8.6 繼承與組合 261
習題8 262
第9章 多態性與虛函數 264
9.1 多態性的概念 264
9.1.1 編譯時的多態性 265
9.1.2 運行時的多態性 267
9.2 虛函數 268
9.2.1 虛函數的作用 269
9.2.2 虛函數的使用 271
9.2.3 多重繼承與虛函數 273
9.2.4 虛析構函數 275
9.3 純虛函數與抽象類 277
9.3.1 純虛函數 277
9.3.2 抽象類 278
9.4 抽象類實例 278
習題9 282
第10章 輸入輸出流 285
10.1 C++的輸入輸出 285
10.1.1 C++流的概念 285
10.1.2 C++流類庫 286
10.1.3 與iostream類庫有關的頭文件 287
10.1.4 插入與提取運算符的重載 287
10.2 格式化輸入輸出 288
10.2.1 標準輸入輸出流類 288
10.2.2 數據輸入輸出成員函數 289
10.2.3 格式控制成員函數 291
10.3 文件輸入輸出 293
10.3.1 文件的概念 293
10.3.2 文本文件的讀寫 295
10.3.3 二進制文件的讀寫 296
10.3.4 文件的隨機讀寫 299
10.4 字符串流 301
10.4.1 字符串流的概念 301
10.4.2 字符串流的輸出操作 301
10.4.3 字符串流的輸入操作 302
習題10 303
參考文獻 305
- C程序設計實踐教程 [劉衛國]
- C程序設計(慕課版) [劉衛國]
- 程序設計基礎實踐教程(C/C++語言版) [張桂芬 葛麗娜]
- C++案例項目精講 [主編 楊國興]
- SwiftUI完全開發 [李智威 著]
- MySQL數據庫項目式教程 [陳亞峰]
- C語言程序設計習題與實驗指導(第二版) [主編 甄增榮 張賓]
- C語言程序設計(第二版) [主編 甄增榮 田云霞]
- Unity3D虛擬現實應用開發實踐 [主 編 劉龍]
- Python程序設計 [主編 姜春磊 陳虹潔]
- C語言程序設計實踐教程(活頁式) [主編 鄭茵 陳巍 滕泓虬]
- 面向對象程序設計 [主編 張勇 張平華 趙小龍]
- Python程序設計基礎及實戰 [主編 劉健]
- C語言程序設計 [姜雪]
- Python程序設計實踐教程 [王鶴琴 蔡正保]
- C++程序設計實踐教程(第三版) [主編 劉衛國 曹岳輝]
- C++程序設計(第三版) [主編 曹岳輝 劉衛國]
- C語言程序設計項目化教程(活頁式) [主編 張利華 潘曉利]
- 機器人流程自動化(RPA)實戰——基于UiPath [主編 金鑫]
- Python 語言程序設計實踐指導 [主編 張雙獅]
- Python程序設計案例教程 [主編 毛錦庚 鐘肖英 周賢來 ]
- 基于.NET Core框架的分布式系統架構設計 [湯佳 著]
- Python語言程序設計教程 [郭其標 房宜汕]
- C語言同步案例習題精解 [主編 肖朝暉]
- Python程序設計 [李國燕 王新強 劉佳 等編著]
- Python程序設計項目化教程(活頁式) [主編 盧鳳偉]
- Java編程基礎案例式教程 [主編 陳艷華 唐春蘭]
- Python語言同步案例習題精解 [主編 肖朝暉]
- Unity應用開發與實戰(微課版) [主 編 程永恒]
- PHP程序設計項目化教程 [主 編 杜海穎]