C/C++語言程序設計(第2版)
內容描述
本書針對教學研究型和教學應用型大學的學生綜合素質特點,結合新工科改革的需要,基於CDIO的工程教育理念,結合需要掌握的程序設計知識點,從國內外C/C++語言程序設計的最新教材和經典應用實例,選取了智能ATM自動取款機綜合應用實例貫穿全書,並比較分析電腦程序語言與自然語言的相互對應關系,形象化解釋程序語言的相關概念,更深層次理解程序語言的特性,進一步增強了電腦相關領域的應用知識點和程序設計語言間的對應關系。
目錄大綱
目錄
第1章C語言及程序設計概述1
1.1C語言簡介1
1.1.1C語言的發展過程1
1.1.2C語言的主要特點1
1.2C語言程序的結構3
1.2.1C語言程序的結構及其主要特點3
1.2.2標識符與關鍵字5
1.3C語言編譯工具簡介7
1.3.1C語言程序實現的步驟7
1.3.2Turbo C 2.0編譯工具簡介7
1.3.3Visual C++ 6.0編譯工具簡介11
1.4如何學習C語言15
1.4.1學習C語言的理由15
1.4.2學好C語言的步驟17
1.5編程實踐18
任務1: 輸出金字塔圖案18
任務2: 打印輸出華氏和攝氏的溫度對照表19
習題20第2章數據類型、運算符與表達式22
2.1常量和變量22
2.1.1常量22
2.1.2變量25
2.2基本數據類型27
2.2.1整數類型27
2.2.2字符型28
2.2.3實數類型29
2.3數據類型的轉換30
2.3.1自動類型轉換31
2.3.2強制類型轉換33
2.4運算符和表達式34
2.4.1算術運算符和算術表達式34
2.4.2關系運算符和關系表達式39
2.4.3邏輯運算符和邏輯表達式42
2.4.4賦值運算符和賦值表達式43
2.4.5位運算符與位運算45
2.4.6條件運算符與條件表達式49
2.4.7逗號運算符與逗號表達式50
2.4.8求字節數運算符51
2.4.9特殊運算符52
2.5運算符的優先級和結合性52
2.5.1運算符的優先級52
2.5.2運算符的結合性53
2.6編程實踐55
任務: 分析MD5散列算法的基本運算55
習題56第3章算法概念與順序結構程序設計64
3.1算法簡介64
3.1.1算法的概念64
3.1.2算法的常用描述方法65
3.2C語句概述67
3.3C語言的基本輸入與輸出69
3.3.1字符輸入輸出函數69
3.3.2格式輸入輸出函數71
3.4順序結構程序設計80
3.4.1順序結構程序設計思想80
3.4.2順序結構程序設計舉例80
3.5編程實踐82
任務: 計算正弦函數的面積82
習題83第4章選擇結構程序設計87
4.1if語句87
4.1.1單分支if語句87
4.1.2雙分支if語句88
4.1.3多分支if語句89
4.1.4if 語句的嵌套91
4.1.5條件運算符和條件表達式93
4.2switch語句93
4.2.1switch語句93
4.2.2switch語句的嵌套96
4.3選擇結構程序設計舉例97
4.4編程實踐99
任務: 計算個人所得稅99
習題100第5章循環結構程序設計113
5.1while和dowhile循環結構113
5.1.1while語句的一般形式113
5.1.2while語句使用說明114
5.1.3dowhile語句的一般形式115
5.1.4dowhile語句使用說明 116
5.2for循環結構和循環的嵌套116
5.2.1for循環語句的一般形式117
5.2.2for循環語句使用說明118
5.2.3循環嵌套的形式119
5.2.4嵌套循環的說明119
5.3流程轉向語句120
5.3.1goto語句120
5.3.2break語句121
5.3.3continue語句122
5.4循環結構程序設計舉例123
5.4.1確定循環次數與不確定循環次數123
5.4.2選擇循環語句125
5.4.3提前結束循環127
5.4.4其他應用舉例127
5.5編程實踐128
任務: 驗證哥德巴赫猜想128
習題129第6章數組136
6.1一維數組136
6.1.1一維數組的定義136
6.1.2一維數組元素的引用136
6.1.3一維數組的初始化137
6.1.4一維數組應用舉例 138
6.2多維數組140
6.2.1二維數組的定義140
6.2.2二維數組元素的引用141
6.2.3二維數組的初始化142
6.2.4二維數組使用舉例142
6.3字符數組145
6.3.1字符數組的定義145
6.3.2字符數組的初始化146
6.3.3字符串與字符串結束標志147
6.3.4字符數組的引用與輸入輸出147
6.3.5字符串處理函數148
6.3.6字符數組使用舉例153
6.4數組應用舉例155
6.5編程實踐158
任務: 多規格打印萬年歷158
習題160第7章函數165
7.1函數的定義165
7.1.1函數概述165
7.1.2函數類型165
7.1.3函數定義168
7.2函數參數和返回值170
7.2.1形式參數和實際參數170
7.2.2函數的返回值174
7.3函數的調用175
7.3.1函數調用175
7.3.2函數聲明175
7.4函數的嵌套調用和遞歸調用176
7.4.1函數的嵌套調用176
7.4.2函數的遞歸調用178
7.5變量的作用域181
7.6變量的存儲類別184
7.7編程實踐186
任務1: 正(餘)弦曲線演示器186
任務2: 楊輝三角形188
習題190第8章指針196
8.1指針和地址196
8.2指針變量197
8.2.1指針變量的定義197
8.2.2指針變量賦值198
8.2.3指針運算符與指針表達式200
8.2.4指針變量的引用 202
8.2.5指針變量作為函數的參數202
8.3指針和數組206
8.3.1指向數組的指針206
8.3.2通過指針引用數組元素207
8.3.3數組名作為函數參數209
8.3.4指向多維數組的指針和指針變量212
8.4指針和字符串216
8.4.1字符串的表示216
8.4.2字符串指針作為函數參數218
8.4.3字符數組與字符串指針的區別219
8.5指針和函數221
8.5.1函數的指針221
8.5.2用指向函數的指針作為函數參數222
8.5.3返回指針值的函數224
8.6指向指針的指針225
8.6.1指向指針的指針簡介225
8.6.2指針數組226
8.6.3指針數組作為main函數的參數228
8.7編程實踐229
任務1: 黑白棋子交換229
任務2: 班乾部值日安排231
習題234第9章結構體和共享體239
9.1結構體239
9.1.1結構體類型的定義239
9.1.2結構體變量的定義241
9.1.3結構體變量的引用243
9.1.4結構體變量的賦值244
9.2結構體數組與結構體指針246
9.2.1結構體數組246
9.2.2指向結構體的指針249
9.2.3結構體作為函數的參數252
9.2.4結構體舉例256
9.3鏈表258
9.3.1鏈表概述258
9.3.2處理動態鏈表所需的函數259
9.3.3鏈表的基本操作262
9.4共享體266
9.4.1共享體類型的定義267
9.4.2共享體類型變量的定義267
9.4.3共享體變量的引用268
9.4.4共享體變量的初始化268
9.5枚舉類型和自定義類型270
9.5.1枚舉類型的定義271
9.5.2枚舉變量的定義和初始化271
9.5.3枚舉數據的運算272
9.5.4枚舉數據的輸入輸出273
9.5.5枚舉變量舉例274
9.5.6用typedef定義類型276
9.6編程實踐279
任務1: 三天打魚兩天曬網279
任務2: 航班訂票系統280
習題289第10章文件294
10.1文件概述294
10.1.1文件的分類294
10.1.2文件的編碼形式294
10.1.3文件的讀寫方式295
10.2文件的基本操作296
10.2.1文件的打開與關閉296
10.2.2文件的讀和寫298
10.3文件操作舉例303
10.4編程實踐310
任務: 精挑細選310
習題312第11章預處理命令314
11.1宏定義314
11.1.1無參宏定義314
11.1.2帶參數的宏定義318
11.2“文件包含”處理322
11.3條件編譯323
11.4編程實踐325
任務: 串化運算325
習題326第12章C++語言的特性331
12.1從C到C++331
12.2C++程序基本結構332
12.3面向對象編程(OOP)思想334
12.4C++對C的擴充335
12.4.1C++的輸入輸出335
12.4.2用const定義常變量337
12.4.3函數原型聲明337
12.4.4函數的重載338
12.4.5函數模板340
12.4.6變量的定義341
12.4.7有默認參數的函數341
12.4.8內置函數342
12.4.9作用域運算符342
12.4.10變量的引用342
12.4.11運算符new和delete343
12.4.12命名空間namespace344
12.4.13using聲明和using編譯指令344
12.4.14C++增強的特性345
12.5面向對象編程特性347
12.5.1封裝性347
12.5.2繼承和派生351
12.5.3多態和虛函數357
12.6編程實踐360
任務: 學生成績管理程序360
習題369第13章綜合案例實訓373
13.1五子棋游戲項目實訓373
13.1.1功能模塊設計373
13.1.2數據結構設計374
13.1.3函數功能描述374
13.1.4系統數據流程圖376
13.1.5程序實現377
13.1.6程序運行398
13.2ATM(自動取款機)案例實訓398
13.2.1功能模塊399
13.2.2數據結構分析399
13.2.3函數功能描述399
13.2.4系統數據流程圖400
13.2.5代碼實現400
13.2.6運行結果416附錄A常用字符與ASCII對照表417附錄BC語言常用語法提要418
B.1標識符418
B.2常量418
B.3表達式418
B.4數據定義419
B.5函數定義420
B.6變量的初始化420
B.7語句420
B.8預處理命令421附錄CC語言的常用庫函數422
C.1輸入輸出函數422
C.2數學函數423
C.3字符函數和字符串函數424
C.4動態存儲分配函數425參考文獻426