C++語言程序設計教程與實驗(第4版)
溫秀梅、祁愛華、孫皓月
相關主題
商品描述
目錄大綱
目 錄
第1章 緒論 1
1.1 程序設計概述 1
1.1.1 電腦程序設計語言的發展 1
1.1.2 程序設計的發展歷程 2
1.1.3 結構化程序設計 3
1.1.4 面向對象程序設計 4
1.2 C++語言發展史簡介 6
1.3 C++語言的基本語法成分 7
1.3.1 字符集 7
1.3.2 標識符 8
1.3.3 關鍵字 8
1.3.4 運算符 9
1.3.5 分隔符 9
1.3.6 空白符 9
1.4 C++程序的開發步驟和結構 10
1.4.1 C++程序開發步驟 10
1.4.2 C++程序的結構 10
習題 14
第2章 基本數據類型、運算符與表達式 15
2.1 數據類型概述 15
2.2 常量與變量 16
2.2.1 常量 16
2.2.2 變量 17
2.3 基本數據類型 18
2.3.1 整型 18
2.3.2 實型 20
2.3.3 字符型 21
2.3.4 布爾類型 23
2.3.5 void類型 24
2.4 運算符和表達式 24
2.4.1 賦值運算符和賦值表達式 24
2.4.2 算術運算符和算術表達式 26
2.4.3 關系運算符和關系表達式 28
2.4.4 邏輯運算符和邏輯表達式 29
2.4.5 條件運算符和條件表達式 30
2.4.6 逗號運算符和逗號表達式 31
2.4.7 位運算符 31
2.5 類型轉換 32
2.5.1 自動類型轉換 32
2.5.2 強制類型轉換 34
習題 34
第3章 結構化程序設計 36
3.1 C++語言輸入輸出流 36
3.1.1 C++語言無格式輸入輸出 36
3.1.2 C++語言格式輸入輸出 38
3.2 結構化程序設計概述 44
3.3 順序結構程序設計 45
3.3.1 順序結構 45
3.3.2 程序舉例 46
3.4 選擇結構程序設計 48
3.4.1 用if語句實現選擇結構設計 48
3.4.2 用switch語句實現選擇結構設計 52
3.5 循環結構程序設計 56
3.5.1 while語句 57
3.5.2 do-while語句 58
3.5.3 for語句 59
3.5.4 跳轉語句break和continue 62
3.5.5 循環的嵌套 64
3.6 程序設計舉例 66
習題 69
第4章 數組 72
4.1 一維數組 72
4.1.1 一維數組的定義 72
4.1.2 一維數組元素的引用 73
4.1.3 一維數組的初始化 74
4.1.4 一維數組程序設計舉例 75
4.2 二維數組 78
4.2.1 二維數組的定義 78
4.2.2 二維數組元素的引用 79
4.2.3 二維數組的初始化 80
4.2.4 二維數組程序設計舉例 82
4.3 字符數組 83
4.3.1 字符數組的定義 83
4.3.2 字符數組的初始化 83
4.3.3 字符數組的使用 85
4.3.4 字符數組程序設計舉例 87
4.3.5 字符串處理函數 88
4.3.6 字符串程序設計舉例 90
習題 91
第5章 函數 92
5.1 函數的定義 92
5.1.1 定義函數 92
5.1.2 函數原型 94
5.2 函數的調用 96
5.2.1 調用函數 96
5.2.2 參數傳遞機制 98
5.2.3 函數返回值 102
5.2.4 函數調用中的數據流 103
5.3 函數的嵌套調用 104
5.4 遞歸函數 108
5.5 作用域與生命期 111
5.5.1 作用域 111
5.5.2 全局變量和局部變量 114
5.5.3 生命期 118
5.6 函數的其他特性 123
5.6.1 內聯(inline)函數 123
5.6.2 帶默認參數的函數 124
5.6.3 函數重載 125
5.6.4 函數模板 127
習題 130
第6章 指針 133
6.1 指針的基本概念 133
6.1.1 指針的概念 133
6.1.2 指針變量的定義 134
6.1.3 指針變量運算符 135
6.1.4 指針變量的初始化與賦值 137
6.1.5 指針的運算 140
6.2 指針與數組 143
6.2.1 指向數組的指針 143
6.2.2 指針與字符數組 146
6.2.3 多級指針與指針數組 149
6.2.4 指針與多維數組 153
6.2.5 數組指針 156
6.3 指針與函數 157
6.3.1 指針作為函數參數 157
6.3.2 函數調用中數組的傳遞 160
6.3.3 函數指針 161
習題 164
第7章 編譯預處理命令 165
7.1 宏定義 165
7.1.1 不帶參數的宏定義 165
7.1.2 帶參數的宏定義 167
7.2 文件包含 168
7.3 條件編譯 170
習題 172
第8章 結構體、共享體和枚舉類型 173
8.1 結構體類型 173
8.2 定義結構體類型變量 174
8.2.1 先定義結構體類型再定義變量 174
8.2.2 定義結構體類型的同時定義變量 175
8.2.3 直接定義結構體類型變量 175
8.2.4 結構體類型變量的初始化 177
8.3 結構體類型變量成員的引用 178
8.4 結構體數組 180
8.4.1 結構體數組的定義 180
8.4.2 結構體數組的初始化 180
8.4.3 結構體數組應用舉例 181
8.5 結構體指針 182
8.5.1 指向結構體類型變量的指針 182
8.5.2 指向結構體數組的指針 183
8.5.3 用結構體變量和結構體指針作為函數參數 184
8.6 用指針處理鏈表 185
8.6.1 鏈表的概述 185
8.6.2 動態內存分配 185
8.6.3 建立單向動態鏈表 187
8.6.4 輸出鏈表 189
8.6.5 對鏈表的刪除操作 189
8.6.6 對鏈表的插入操作 190
8.7 共享體 193
8.7.1 共享體的概念 193
8.7.2 共享體類型和共享體類型變量的定義 193
8.7.3 共享體成員的引用方式 194
8.7.4 共享體類型的特點 194
8.8 枚舉類型 195
8.8.1 枚舉類型及枚舉變量的定義 195
8.8.2 枚舉元素的引用 196
8.8.3 用typedef聲明類型 197
習題 197
第9章 面向對象程序設計基礎 199
9.1 面向對象程序設計概述 199
9.1.1 面向對象方法是軟件方法學的返璞歸真 199
9.1.2 面向對象程序設計語言的四大家族 199
9.1.3 面向對象程序分析(OOA)與設計(OOD)的基本步驟 200
9.2 類和對象 201
9.2.1 類 201
9.2.2 對象 205
9.2.3 名字解析和this指針 207
9.3 帶默認參數的成員函數和重載成員函數 207
9.4 構造函數和析構函數 209
9.4.1 構造函數 209
9.4.2 析構函數 217
9.5 對象成員和靜態成員 219
9.5.1 對象成員 219
9.5.2 靜態成員 220
9.6 友元 222
9.7 類模板 226
習題 229
第10章 繼承與派生 230
10.1 單一繼承 230
10.1.1 繼承與派生 230
10.1.2 派生類的定義 230
10.1.3 類的繼承方式 232
10.1.4 派生類的構造函數和析構函數 238
10.2 多重繼承 241
10.2.1 多重繼承的概念和定義 241
10.2.2 二義性和支配規則 241
10.2.3 賦值兼容規則 243
10.3 虛基類 243
10.3.1 虛基類的概念 243
10.3.2 多重繼承的構造函數和析構函數 245
習題 247
第11章 多態性與虛函數 249
11.1 運算符重載 249
11.1.1 什麽是運算符重載 249
11.1.2 用成員函數重載運算符 250
11.1.3 用友元函數重載運算符 251
11.1.4 幾個常用運算符的重載 255
11.2 虛函數 258
11.2.1 為什麽要引入虛函數 258
11.2.2 虛函數的定義與使用 260
11.3 純虛函數和抽象類 263
11.3.1 純虛函數的概念 263
11.3.2 抽象類的概念 263
11.4 虛析構函數 265
習題 266
第12章 輸入輸出流 268
12.1 標準輸入輸出流 268
12.1.1 輸入輸出流的概念 268
12.1.2 C++語言所有輸入輸出類的繼承關系 268
12.2 文件輸入輸出流 272
12.2.1 文件的打開與關閉 272
12.2.2 文件的讀寫操作 275
習題 279
附錄A 程序的調試與運行 280
A.1 程序的編輯、編譯、連接、運行和調試 280
A.2 Visual C++ 2010學習版集成開發環境 280
A.2.1 Visual C++ 2010學習版的安裝 281
A.2.2 Visual Studio 2010的首次使用及選項設置 284
A.2.3 Win32控制台應用程序的創建與執行 288
A.2.4 調試程序 292
附錄B 標準字符ASCII表 294
附錄C 實驗 296
實驗1 順序結構程序設計 296
實驗2 選擇結構程序設計 296
實驗3 循環結構程序設計 297
實驗4 結構化程序設計綜合實驗 297
實驗5 數組 298
實驗6 函數 298
實驗7 指針、指針數組 299
實驗8 指針、數組與函數 299
實驗9 結構體 300
實驗10 面向對象程序設計 300
參考文獻 301