關(guān)于我們
書單推薦
新書推薦
|
C++程序設(shè)計——思想與方法 慕課版(第3版)
本書主要內(nèi)容包括:程序的基本組成,分支程序設(shè)計,循環(huán)程序設(shè)計,批量數(shù)據(jù)處理——數(shù)組,過程封裝——函數(shù),間接訪問——指針,數(shù)據(jù)封裝——結(jié)構(gòu)體,模塊化開發(fā),創(chuàng)建新的類型,運(yùn)算符重載,組合與繼承,泛型機(jī)制——模板,輸入輸出與文件,異常處理,容器與迭代器。
《C++程序設(shè)計——思想與方法(第3版)》一書是上海交通大學(xué)資深教學(xué)型老師的傾力之作,為解決讀者在學(xué)習(xí)程序設(shè)計時遇到的諸多問題,作者將多年的教學(xué)經(jīng)驗,以及程序設(shè)計的思想和方法總結(jié)在本書中,并將書中的重點(diǎn)、難度、案例操作錄制了教學(xué)視頻,讀者在學(xué)習(xí)過程中,可掃描二維碼打開視頻,暢想名師的講解。
翁惠玉 博士, 現(xiàn)為上海交通大學(xué)副教授,從事計算機(jī)網(wǎng)絡(luò)和信息系統(tǒng)的研究,并長期擔(dān)任上海交通大學(xué)ACM試點(diǎn)班的程序設(shè)計、數(shù)據(jù)結(jié)構(gòu)和計算機(jī)網(wǎng)絡(luò)等課程的主講教師。程序設(shè)計2004年被評為上海市精品課程。在教學(xué)方面,翁老師曾多次獲***和上海市的教學(xué)成果獎,還多次獲得上海交通大學(xué)的優(yōu)秀教學(xué)獎。
俞勇,上海交通大學(xué)教授、博士生導(dǎo)師,國務(wù)院特殊津貼獲得者、全國模范教師。先后主持教育部教育教學(xué)改革項目2項、獲得***和上海市教學(xué)成果獎8項、上海市優(yōu)秀教材獎2項,并3次率隊奪得ACM國際大學(xué)生程序設(shè)計競賽全球總冠軍。
第1章 緒論 1
1.1 程序設(shè)計概述 1
1.2 計算機(jī)組成 1
1.2.1 計算機(jī)硬件 2
1.2.2 計算機(jī)軟件 3
1.3 程序設(shè)計語言 3
1.3.1 機(jī)器語言 3
1.3.2 匯編語言 4
1.3.3 高級語言 4
1.3.4 C++語言 5
1.4 程序設(shè)計過程 5
1.4.1 算法設(shè)計 5
1.4.2 編碼 8
1.4.3 編譯和鏈接 8
1.4.4 調(diào)試與維護(hù) 8
1.5 小結(jié) 9
1.6 習(xí)題 9
第2章 程序的基本組成 11
2.1 程序的基本結(jié)構(gòu) 11
2.1.1 注釋 12
2.1.2 預(yù)編譯 12
2.1.3 名字空間 13
2.1.4 主程序 13
2.2 常量與變量 14
2.2.1 變量定義 14
2.2.2 數(shù)據(jù)類型 16
2.2.3 常量與符號常量 21
*2.2.4 C++11的擴(kuò)展 24
2.3 數(shù)據(jù)的輸入/輸出 25
2.3.1 數(shù)據(jù)的輸入 25
2.3.2 數(shù)據(jù)的輸出 26
2.4 算術(shù)運(yùn)算 27
2.4.1 算術(shù)表達(dá)式 27
2.4.2 各種類型的數(shù)值間的混合運(yùn)算 27
2.4.3 強(qiáng)制類型轉(zhuǎn)換 27
2.4.4 數(shù)學(xué)函數(shù)庫 28
*2.4.5 C++11的擴(kuò)展 29
2.5 賦值運(yùn)算 29
2.5.1 賦值表達(dá)式 29
2.5.2 賦值的嵌套 30
2.5.3 復(fù)合賦值運(yùn)算 31
2.5.4 自增和自減運(yùn)算符 32
2.6 程序規(guī)范及常見錯誤 33
2.7 小結(jié) 34
2.8 習(xí)題 34
第3章 分支程序設(shè)計 37
3.1 關(guān)系表達(dá)式 37
3.2 邏輯表達(dá)式 38
3.3 if語句 39
3.3.1 if語句的格式 39
3.3.2 if語句的嵌套 43
3.3.3 條件表達(dá)式 44
3.4 switch語句及其應(yīng)用 46
3.5 編程規(guī)范及常見錯誤 52
3.6 小結(jié) 52
3.7 習(xí)題 53
第4章 循環(huán)程序設(shè)計 56
4.1 計數(shù)循環(huán) 56
4.1.1 for語句 56
4.1.2 for語句的進(jìn)一步討論 61
4.1.3 for循環(huán)的嵌套 61
*4.1.4 C++11的擴(kuò)展 62
4.2 break和continue語句 62
4.3 基于哨兵的循環(huán) 64
4.3.1 while語句 64
4.3.2 do-while語句 68
4.4 循環(huán)的中途退出 69
*4.5 枚舉法 70
*4.6 貪婪法 73
4.7 編程規(guī)范及常見錯誤 75
4.8 小結(jié) 75
4.9 習(xí)題 75
第5章 批量數(shù)據(jù)處理——數(shù)組 79
5.1 一維數(shù)組 79
5.1.1 一維數(shù)組的定義 79
5.1.2 一維數(shù)組元素的引用 80
5.1.3 一維數(shù)組的內(nèi)存映像 81
5.1.4 一維數(shù)組的應(yīng)用 81
*5.1.5 C++11的擴(kuò)展 83
5.2 查找 84
5.2.1 順序查找 84
5.2.2 二分查找 85
5.3 排序 87
5.3.1 直接選擇排序法 87
5.3.2 冒泡排序法 89
5.4 二維數(shù)組 90
5.4.1 二維數(shù)組的定義 91
5.4.2 二維數(shù)組元素的引用 91
5.4.3 二維數(shù)組的內(nèi)存映像 92
5.4.4 二維數(shù)組的應(yīng)用 92
5.5 字符串 96
5.5.1 字符串的存儲及初始化 96
5.5.2 字符串的輸入/輸出 97
5.5.3 字符串處理函數(shù) 97
5.5.4 字符串的應(yīng)用 98
5.6 編程規(guī)范及常見錯誤 100
5.7 小結(jié) 101
5.8 習(xí)題 101
第6章 過程封裝——函數(shù) 104
6.1 函數(shù)定義 105
6.1.1 函數(shù)的基本結(jié)構(gòu) 105
6.1.2 return語句 105
6.1.3 函數(shù)示例 105
6.2 函數(shù)的使用 108
6.2.1 函數(shù)原型的聲明 108
6.2.2 函數(shù)調(diào)用 109
6.2.3 將函數(shù)與主程序放在一起 109
6.2.4 函數(shù)調(diào)用過程 110
6.3 變量的作用域 113
6.4 變量的存儲類別 115
6.4.1 自動變量 115
6.4.2 靜態(tài)變量 115
6.4.3 寄存器變量 117
6.4.4 外部變量 117
6.5 數(shù)組作為函數(shù)參數(shù) 119
6.6 帶默認(rèn)值的函數(shù) 124
6.7 內(nèi)聯(lián)函數(shù) 125
6.8 重載函數(shù) 126
6.9 函數(shù)模板 128
6.10 遞歸函數(shù) 129
6.10.1 遞歸函數(shù)的基本概念 129
6.10.2 遞歸函數(shù)的應(yīng)用 131
*6.11 基于遞歸的算法 136
6.11.1 回溯法 136
6.11.2 分治法 140
6.11.3 動態(tài)規(guī)劃 143
*6.12 C++11的擴(kuò)展 146
6.12.1 constexpr函數(shù) 146
6.12.2 尾置返回類型 146
6.13 編程規(guī)范及常見錯誤 147
6.14 小結(jié) 147
6.15 習(xí)題 148
第7章 間接訪問——指針 151
7.1 指針的概念 151
7.1.1 指針與間接訪問 151
7.1.2 指針變量的定義 151
7.1.3 指針的基本操作 152
*7.1.4 C++11的擴(kuò)展 155
7.2 指針運(yùn)算與數(shù)組 155
7.2.1 指針運(yùn)算 155
7.2.2 用指針訪問數(shù)組 156
7.3 動態(tài)內(nèi)存分配 156
7.3.1 動態(tài)變量 156
7.3.2 動態(tài)變量的創(chuàng)建 157
7.3.3 動態(tài)變量的消亡 158
7.3.4 內(nèi)存泄漏 158
7.3.5 查找new操作的失誤 158
7.3.6 動態(tài)變量應(yīng)用 159
*7.3.7 C++11的擴(kuò)展 160
7.4 字符串再討論 161
7.5 指針與函數(shù) 161
7.5.1 指針作為形式參數(shù) 161
7.5.2 數(shù)組作為函數(shù)參數(shù)再討論 164
7.5.3 字符串作為函數(shù)的參數(shù) 166
7.5.4 返回指針的函數(shù) 166
7.6 引用類型與函數(shù) 167
7.6.1 引用類型 167
7.6.2 引用傳遞 169
7.6.3 返回引用的函數(shù) 171
*7.6.4 C++11的擴(kuò)展 171
7.7 指針數(shù)組與多級指針 172
7.7.1 指針數(shù)組 172
*7.7.2 main函數(shù)的參數(shù) 173
*7.7.3 多級指針 175
*7.7.4 動態(tài)二維數(shù)組 176
7.8 函數(shù)指針 177
7.8.1 指向函數(shù)的指針 177
7.8.2 函數(shù)指針作為函數(shù)參數(shù) 178
7.8.3 用于菜單選擇 180
*7.8.4 C++11的擴(kuò)展 181
7.9 編程規(guī)范及常見錯誤 183
7.10 小結(jié) 183
7.11 習(xí)題 184
第8章 數(shù)據(jù)封裝——結(jié)構(gòu)體 186
8.1 記錄的概念 186
8.2 記錄的使用 187
8.2.1 結(jié)構(gòu)體類型的定義 187
8.2.2 結(jié)構(gòu)體類型的變量的定義 188
8.2.3 結(jié)構(gòu)體類型的變量的使用 189
8.3 結(jié)構(gòu)體作為函數(shù)的參數(shù) 190
8.4 鏈表 192
8.4.1 鏈表的概念 192
8.4.2 單鏈表的存儲 193
8.4.3 單鏈表的操作 193
8.5 編程規(guī)范及常見錯誤 198
8.6 小結(jié) 198
8.7 習(xí)題 198
第9章 模塊化開發(fā) 200
9.1 結(jié)構(gòu)化程序設(shè)計 200
9.2 自頂向下分解 200
9.2.1 頂層分解 201
9.2.2 prn_instruction的實現(xiàn) 201
9.2.3 play函數(shù)的實現(xiàn) 201
9.2.4 get_call_from_user的實現(xiàn) 202
9.3 模塊劃分 203
9.4 設(shè)計自己的庫 209
9.5 編程規(guī)范及常見錯誤 214
9.6 小結(jié) 214
9.7 習(xí)題 214
第10章 創(chuàng)建新的類型 216
10.1 面向?qū)ο蟪绦蛟O(shè)計 216
10.1.1 抽象的過程 216
10.1.2 面向?qū)ο蟪绦蛟O(shè)計的特點(diǎn) 217
10.1.3 庫和類 218
10.2 類的定義 224
10.3 對象的使用 228
10.3.1 對象的定義 228
10.3.2 對象的操作 228
10.3.3 this指針 230
10.4 對象的構(gòu)造與析構(gòu) 231
10.4.1 對象的構(gòu)造 231
10.4.2 對象的析構(gòu) 235
10.4.3 類與對象應(yīng)用實例 237
*10.4.4 C++11的擴(kuò)展 240
10.5 const與類 242
10.5.1 常量數(shù)據(jù)成員 242
10.5.2 常量對象 243
10.5.3 常量成員函數(shù) 243
10.6 靜態(tài)成員 244
10.6.1 靜態(tài)數(shù)據(jù)成員 244
10.6.2 靜態(tài)成員函數(shù) 245
10.6.3 靜態(tài)常量成員 247
10.7 友元 248
10.8 編程規(guī)范及常見錯誤 250
10.9 小結(jié) 250
10.10 習(xí)題 251
第11章 運(yùn)算符重載 254
11.1 運(yùn)算符重載的意義 254
11.2 運(yùn)算符重載的方法 255
11.3 5個特殊運(yùn)算符的重載 259
11.3.1 賦值運(yùn)算符的重載 259
11.3.2 下標(biāo)運(yùn)算符的重載 260
11.3.3 函數(shù)調(diào)用運(yùn)算符的重載 261
11.3.4 ++和--運(yùn)算符的重載 262
11.3.5 輸入/輸出運(yùn)算符的重載 265
*11.3.6 C++11的擴(kuò)展 267
11.4 自定義類型轉(zhuǎn)換函數(shù) 267
11.4.1 內(nèi)置類型到類類型的轉(zhuǎn)換 268
11.4.2 類類型到其他類型的轉(zhuǎn)換 268
*11.4.3 C++11的擴(kuò)展 269
11.5 運(yùn)算符重載的應(yīng)用 269
11.5.1 完整的Rational類的定義和使用 269
11.5.2 完整的DoubleArray類的定義和使用 272
11.6 編程規(guī)范及常見錯誤 275
11.7 小結(jié) 276
11.8 習(xí)題 276
第12章 組合與繼承 279
12.1 組合 279
12.2 繼承 284
12.2.1 派生類的定義 285
12.2.2 繼承的應(yīng)用 288
12.2.3 重定義基類的函數(shù) 292
12.2.4 派生類對象的賦值 293
12.2.5 派生類作為基類 294
12.3 運(yùn)行時的多態(tài)性 295
12.3.1 將派生類對象隱式轉(zhuǎn)換為基類對象 295
12.3.2 多態(tài)性與虛函數(shù) 297
12.3.3 虛析構(gòu)函數(shù) 300
*12.3.4 C++11的擴(kuò)展 300
12.4 純虛函數(shù)和抽象類 301
12.4.1 純虛函數(shù) 301
12.4.2 抽象類 301
12.5 編程規(guī)范及常見錯誤 302
12.6 小結(jié) 302
12.7 習(xí)題 302
第13章 泛型機(jī)制——模板 305
13.1 類模板的定義 305
13.2 類模板的實例化 307
13.3 模板的編譯 308
13.4 非類型參數(shù)和參數(shù)的默認(rèn)值 308
13.5 類模板的友元 309
13.5.1 普通友元 309
13.5.2 模板的特定實例的友元 310
13.6 類模板作為基類 314
13.7 編程規(guī)范及常見錯誤 314
13.8 小結(jié) 315
13.9 習(xí)題 315
第14章 輸入/輸出與文件 316
14.1 流與標(biāo)準(zhǔn)庫 316
14.2 輸入/輸出緩沖 317
14.3 基于控制臺的輸入/輸出 318
14.3.1 輸出流 318
14.3.2 輸入流 320
14.3.3 格式化的輸入/輸出 323
14.4 基于文件的輸入/輸出 326
14.4.1 文件的概念 326
14.4.2 文件和流 327
14.4.3 文件的順序訪問 329
14.4.4 文件的隨機(jī)訪問 331
14.4.5 用流式文件處理含有記錄的文件 333
14.5 基于字符串的輸入/輸出 339
14.6 編程規(guī)范及常見錯誤 340
14.7 小結(jié) 340
14.8 習(xí)題 340
第15章 異常處理 343
15.1 傳統(tǒng)的異常處理方法 343
15.2 異常處理機(jī)制 343
15.2.1 異常拋出 344
15.2.2 異常捕獲 345
15.3 異常規(guī)格說明 350
15.4 編程規(guī)范及常見錯誤 351
15.5 小結(jié) 351
15.6 習(xí)題 351
第16章 容器和迭代器 353
16.1 容器 353
16.2 迭代器 353
16.3 容器和迭代器的設(shè)計示例 354
16.3.1 用數(shù)組實現(xiàn)的容器 354
16.3.2 用鏈表實現(xiàn)的容器 357
16.4 小結(jié) 359
16.5 習(xí)題 360
參考文獻(xiàn) 361
你還可能感興趣
我要評論
|