程序設計基礎及應用(C&C++語言 )(第2版)

陳春麗、王振華

  • 程序設計基礎及應用(C&C++語言 )(第2版)-preview-1
  • 程序設計基礎及應用(C&C++語言 )(第2版)-preview-2
  • 程序設計基礎及應用(C&C++語言 )(第2版)-preview-3
  • 程序設計基礎及應用(C&C++語言 )(第2版)-preview-4
  • 程序設計基礎及應用(C&C++語言 )(第2版)-preview-5
  • 程序設計基礎及應用(C&C++語言 )(第2版)-preview-6
  • 程序設計基礎及應用(C&C++語言 )(第2版)-preview-7
程序設計基礎及應用(C&C++語言 )(第2版)-preview-1

商品描述

"本書是一本密切結合計算機語言**發展的程序設計入門教材,專為初學者量身打造。全書系統闡述了C&C++語言程序設計的基本內容、常用算法設計及應用。 全書共12章,內容涵蓋了C&C++語言的3種控制結構、函數、數組、字符串、自定義數據類型、文件操作和基本的面向對象程序設計。同時,本書還介紹了常用的順序與鏈表結構、通用算法和C++ STL。本書案例習題豐富,並配有在線課程與實驗。 本書符合C99標準和C++11標準,同時適當拓展了更高版本知識點,以培養讀者的計算思維為目標,註重編程能力的訓練。通過數據處理和工程應用中的實際案例,引出相關知識點,有助於讀者理解程序設計的思想和方法,為進一步學習C語言底層嵌入式應用程序編程以及C++語言進行大型應用軟件系統的開發奠定基礎。 本書是對“新工科”教學實踐的探索,是國家級一流本科課程的配套教材。面向零編程基礎的讀者,適合作為高校各專業低年級學生學習程序設計的入門教材。 "

目錄大綱

目錄

第1章計算機語言程序設計概述1

1.1程序設計語言發展1

1.1.1機器語言到高級語言1

1.1.2高級語言翻譯成機器語言2

1.2C&C++語言概述3

1.2.1C&C++語言的發展3

1.2.2C&C++語言的特點3

1.3算法簡介3

1.3.1算法的特點與描述3

1.3.2算法的評價5

1.3.3數據結構與算法“一題多解”6

1.4三大程序設計思想7

1.4.1面向過程程序設計7

1.4.2面向對象程序設計8

1.4.3函數式程序設計8

1.5認識C&C++源程序8

1.5.1程序示例8

1.5.2程序代碼說明10

1.6C&C++開發環境13

1.6.1常用的編譯器及IDE13

1.6.2AI助力編程14

1.7實用知識: 常見的編譯和運行錯誤14

1.7.1常見的編譯錯誤14

1.7.2常見的運行錯誤15

1.8練習與思考16

第2章順序結構與數學表達式18

2.1順序結構18〖3〗程序設計基礎及應用(C&C++語言)第2版目錄〖3〗2.2基本數據類型與變量19

2.2.1基本數據類型簡介19

2.2.2變量與內存的關系19

2.2.3變量定義與初始化20

2.2.4賦值運算符與自增/自減運算符20

2.2.5陷阱: 變量定義與賦值的常見問題22

2.3常量24

2.3.1字面常量24

2.3.2符號常量25

2.3.3#define宏定義26

2.3.4sizeof運算符28

2.4數學運算符與表達式28

2.4.1算術運算符28

2.4.2算術表達式及優先級29

2.4.3復合賦值運算符29

2.4.4逗號運算符29

2.4.5陷阱: 算術運算的常見問題30

2.5位運算符和表達式31

2.5.1位運算符及功能31

2.5.2位運算的應用32

2.6類型轉換33

2.6.1隱式類型轉換33

2.6.2顯式類型轉換33

2.6.3C++的類型推導34

2.7輸入與輸出34

2.7.1C++的cin和cout35

2.7.2庫函數scanf和printf38

2.7.3C++20的format格式化40

2.7.4一個字符的輸入與輸出41

2.8實用知識: 常用的數學庫函數42

2.8.1歐氏距離計算兩個坐標點距離42

2.8.2半正矢法計算兩個經緯度點的距離43

2.9簡單程序算法及應用44

2.9.1交換兩個整數的值44

2.9.2字母加密45

2.10練習與思考46

第3章選擇結構及相關表達式48

3.1選擇結構48

3.2關系運算符和關系表達式49

3.2.1關系運算符49

3.2.2關系表達式及應用49

3.2.3陷阱: 關系表達式的常見問題50

3.3邏輯運算符和邏輯表達式50

3.3.1邏輯運算符50

3.3.2邏輯表達式及應用51

3.4if語句52

3.4.1標準if…else…語句52

3.4.2簡單的if語句53

3.4.3復雜的if…else if…else語句53

3.4.4if語句的嵌套55

3.4.5條件運算符及條件表達式55

3.5switch語句56

3.5.1switch語句實現多分支結構56

3.5.2break語句的合理使用57

3.5.3if與switch的混用57

3.6實用知識: 通用工具函數58

3.6.1生成隨機數函數58

3.6.2進程控制函數59

3.7選擇結構算法及應用60

3.7.1判斷整數m是否能被n整除60

3.7.2大寫字母轉換成小寫字母60

3.7.3簡單的四則運算器61

3.8練習與思考62

第4章自定義函數與封裝66

4.1函數與結構化程序設計66

4.2自定義函數的聲明與定義68

4.2.1函數的聲明68

4.2.2函數的定義69

4.2.3函數返回值70

4.2.4陷阱: 函數定義的常見問題71

4.3函數的調用72

4.3.1函數調用的格式72

4.3.2陷阱: 函數調用的常見問題73

4.3.3函數的嵌套調用74

4.3.4調用內聯函數76

4.4函數的參數傳遞76

4.4.1參數的值傳遞76

4.4.2C++的引用傳遞77

4.4.3const修飾引用形參79

4.5變量的作用域與生存期79

4.5.1局部變量的作用域與生存期79

4.5.2全局變量的作用域與生存期80

4.5.3靜態變量的作用域與生存期81

4.6C++的函數重載與默認參數82

4.6.1C++的函數重載82

4.6.2C++的默認參數83

4.6.3陷阱: 函數重載的二義性84

4.7遞歸思想——遞歸函數85

4.7.1遞歸函數的定義85

4.7.2遞歸函數的調用過程86

4.7.3遞歸調用中的“棧”88

4.8實用知識: C++函數高級特性88

4.8.1返回類型推導89

4.8.2返回類型後置89

4.8.3匿名函數(Lambda)89

4.9自定義函數的應用90

4.9.1獲得用戶選擇的購物菜單90

4.9.2遞歸求快速冪問題91

4.10練習與思考92

第5章疊代與循環結構95

5.1循環結構95

5.2循環控制語句96

5.2.1while語句96

5.2.2for語句98

5.2.3do…while語句100

5.2.4陷阱: 循環的常見問題101

5.3循環和疊代的提前結束102

5.3.1break語句102

5.3.2continue語句退出疊代104

5.4循環結構的嵌套105

5.4.1循環嵌套的語句105

5.4.2多種循環的優化107

5.5循環與遞歸108

5.6實用知識: 循環讀入與出錯處理110

5.6.1循環讀入直到滿足特定條件110

5.6.2控制多行輸入直到EOF結束110

5.6.3忽略輸入錯誤的輸入控制111

5.7循環結構的算法及應用113

5.7.1數學表達式的求解113

5.7.2多種方法求一組數的平均值114

5.7.3循環執行用戶選擇菜單功能115

5.8練習與思考116

第6章數值型數組與數據處理119

6.1一維數組119

6.1.1一維數組的定義與存儲119

6.1.2數組元素的使用121

6.1.3基於範圍的for循環123

6.2一維數組與指針124

6.2.1指針與指針變量124

6.2.2函數參數的址傳遞126

6.2.3使用指針變量訪問數組128

6.2.4陷阱: 數組越界問題129

6.3一維數組與函數129

6.3.1一維數組作為函數的形參129

6.3.2返回指針的函數133

6.4實用知識: 數據處理的實用算法133

6.4.1中值與方差(標準差)計算134

6.4.2返回數組的最大值/最小值及下標134

6.4.3順序查找與折半查找136

6.4.4冒泡排序與選擇排序137

6.4.5插入與刪除139

6.5二維數組與多維數組141

6.5.1二維數組的定義與存儲141

6.5.2二維數組元素的使用142

6.5.3二維數組與指針143

6.5.4二維數組與函數144

6.5.5多維數組145

6.6指針數組與二級指針145

6.6.1指針數組146

6.6.2二級指針147

6.7數據處理與工程應用147

6.7.1實現購物菜單的結賬子功能147

6.7.2接收不定個數的整數148

6.7.3計算日平均溫度與最大溫差150

6.7.4動態規劃算法應用實例151

6.8練習與思考152

第7章字符型數組與字符串處理155

7.1字符數組的定義與初始化155

7.1.1字符數組的定義155

7.1.2字符數組的初始化156

7.1.3字符數組元素的使用156

7.1.4陷阱: 字符串使用=和==的問題157

7.2字符數組的輸入與輸出157

7.2.1接收一個單詞給字符數組157

7.2.2接收一行句子給字符數組158

7.2.3輸出字符串159

7.2.4陷阱: 混合輸入字符串和數字的問題160

7.3字符數組與函數160

7.3.1字符數組作為函數的形參160

7.3.2數組作為函數的返回值163

7.3.3字符串數組164

7.4字符串與數值型的轉換函數165

7.4.1利用sprintf函數將數值轉換為字符串165

7.4.2利用sscanf 函數將字符串轉換為數值165

7.5實用知識: 字符串處理函數165

7.5.1常用函數166

7.5.2字符或子串查找與替換167

7.5.3字符串分割168

7.5.4內存處理函數168

7.6字符串處理綜合應用169

7.6.1所有單詞首字母大寫169

7.6.2合並兩個有序字符串170

7.6.3身份證號碼是否合法170

7.7練習與思考171

第8章文件與數據處理173

8.1文件概述173

8.1.1文件存儲類型173

8.1.2文件對象173

8.2C++文件打開與關閉174

8.2.1文件的打開174

8.2.2文件的關閉176

8.3C++的文件讀寫176

8.3.1fstream類的常用檢查方法176

8.3.2文本文件的讀寫177

8.3.3二進制文件的讀寫180

8.3.4隨機讀寫181

8.4C語言的文件操作183

8.4.1C語言的文件打開與關閉183

8.4.2C語言的文件讀寫184

8.5實用知識: 帶參數的main函數186

8.6文件應用示例187

8.6.1密碼文件的讀寫187

8.6.2學生成績分段統計效果圖188

8.6.3溫度周報文件的讀寫190

8.7練習與思考190

第9章自定義數據類型192

9.1C++的類與對象192

9.1.1類的定義192

9.1.2創建和使用對象195

9.1.3構造函數和析構函數197

9.1.4對象數組199

9.1.5運算符重載200

9.2C++類的進一步定義202

9.2.1C++類的繼承性202

9.2.2C++類的多態性206

9.2.3命名空間210

9.3typedef類型與using210

9.3.1typedef211

9.3.2using211

9.4結構體211

9.4.1結構體類型的定義211

9.4.2結構體類型變量212

9.4.3結構體類型的數組215

9.5聯合體216

9.5.1聯合體的定義與應用216

9.5.2位段的定義與應用217

9.6枚舉類型218

9.6.1枚舉類型的定義與使用218

9.6.2C++的枚舉類220

9.7實用知識: C++的string類220

9.7.1string類對象的定義220

9.7.2string 類成員函數221

9.7.3string 類的運算符222

9.7.4string類對象的輸入與輸出222

9.7.5string與其他類型轉換223

9.7.6C++正則表達式224

9.8自定義類型的綜合應用226

9.8.1自定義日期類226

9.8.2自定義類型數據的文件讀寫 228

9.9練習與思考229

第10章指針進階應用232

10.1void指針232

10.2函數指針與函數對象233

10.2.1函數指針233

10.2.2函數對象234

10.3動態內存分配與回收235

10.3.1棧內存與堆內存235

 10.3.2在C++中動態分配內存236

10.3.3含有動態內存分配成員的類238

10.3.4malloc與free函數239

10.4C++的智能指針240

10.4.1unique_ptr240

10.4.2shared_ptr240

10.4.3weak_ptr241

10.5鏈式數據結構241

10.5.1單鏈表242

10.5.2單鏈表的訪問243

10.5.3單鏈表結點的插入243

10.5.4單鏈表結點的刪除245

10.6實用知識: 通用算法函數246

10.6.1改變序列的算法247

10.6.2不修改序列的算法247

10.6.3有序範圍的操作249

10.6.4for_each函數249

10.7鏈表與算法的應用250

10.7.1鏈表的應用250

10.7.2算法的應用251

10.8練習與思考252

第11章泛型編程與C++標準模板庫254

11.1模板與泛型編程機制254

11.1.1C++的函數模板254

11.1.2C++中的類模板255

11.1.3C++的可變參數模板256

11.1.4C11的泛型宏257

11.2C++模板類pair與tuple257

11.2.1pair257

11.2.2tuple258

11.2.3比較pair與tuple259

11.3C++ STL組件259

11.3.1容器類型259

11.3.2疊代器260

11.4C++順序容器261

11.4.1array與vector261

11.4.2list與forward_list263

11.5C++關聯容器264

11.5.1set與multiset集合265

11.5.2map與multimap映射265

11.6C++容器適配器266

11.6.1stack266

11.6.2queue與priority_queue266

11.7實用知識: C++數值計算268

11.7.1數值界限268

11.7.2泛型數值計算算法268

11.7.3線性代數運算269

11.8數據處理與統計分析270

11.8.1數據分類匯總及Top n排名270

11.8.2統計頻次最高的前n個單詞271

11.9練習與思考272

第12章軟件工程項目開發應用技術274

12.1程序設計的多文件結構274

12.1.1多文件工程274

12.1.2條件編譯指令276

12.2靜態鏈接庫276

12.2.1創建靜態鏈接庫277

12.2.2部署靜態鏈接庫278

12.3異常處理278

12.4GUI與可視化設計279

12.4.1GUI框架和工具279

12.4.2C++語言的GUI程序279

12.4.3EasyX繪圖實例280

12.5練習與思考282

最後瀏覽商品 (1)