圖書介紹
ISBN:978-7-122-40590-6
語種:漢文
開本:16
出版時間:2022-06-01
裝幀:平
頁數:381
內容簡介
本書從零基礎讀者的角度出發,通過通俗易懂的語言、豐富多彩的實例,循序漸進地讓讀者在實踐中學習C#編程知識,並提升自己的實際開發能力。 全書共分為5篇21章,內容包括搭建C#開發環境、第一個C#程式、數據類型、運算符、條件語句、循環語句、數組、字元串、面向對象編程基礎、繼承與多態、集合與索引器、委託與事件、泛型、程式調試與異常處理、Windows窗體編程、Windows控制項的使用、使用C#運算元據庫、Entity Framework編程、檔案及資料夾操作、貪吃蛇大作戰、人事工資管理系統等。書中知識點講解細緻,側重介紹每個知識點的使用場景,涉及的代碼給出了詳細的注釋,可以使讀者輕鬆領會C#程式開發的精髓,快速提高開發技能。同時,本書配套了大量教學視頻,掃碼即可觀看,還提供所有程式源檔案,方便讀者實踐。 本書適合C#初學者、軟體開發入門者自學使用,也可用作高等院校相關專業的教材及參考書。
目錄
第1篇 C#基礎知識篇
第1章 搭建C#開發環境 2 視頻講解:3節,49分鐘
1.1 C#語言入門 3
1.1.1 C#語言的發展 3
1.1.2 C#語言的特點 3
1.1.3 認識.NET Framework 3
1.1.4 C#與.NET Framework 4
1.1.5 C#的套用領域 4
1.2 Visual Studio 2019的安裝與卸載 4
1.2.1 安裝Visual Studio 2019必備條件 4
1.2.2 下載Visual Studio 2019 5
1.2.3 安裝Visual Studio 2019 5
1.2.4 卸載Visual Studio 2019 8
1.3 熟悉Visual Studio 2019開發環境 9
1.3.1 創建項目 9
1.3.2 選單欄 11
1.3.3 工具列 11
1.3.4 解決方案資源管理器 11
1.3.5 “工具箱”視窗 12
1.3.6 “屬性”視窗 12
1.3.7 “錯誤列表”視窗 13
本章知識思維導圖 13
第2章 第一個C#程式 14 視頻講解:9節,77分鐘
2.1 編寫第一個C#程式 15
【實例2.1】 輸出“人因夢想而偉大” 17
2.2 C#程式結構預覽 18
2.2.1 命名空間 18
2.2.2 類 20
2.2.3 關鍵字與標識符 21
2.2.4 Main方法 22
2.2.5 C#語句 23
2.2.6 注釋 24
2.2.7 一個完整的C#程式 26
【實例2.2】 輸出軟體啟動頁 26
2.3 程式編寫規範 27
2.3.1 代碼編寫規則 27
2.3.2 命名規範 28
本章知識思維導圖 30
第3章 數據類型 31 視頻講解:4節,136分鐘
3.1 數據類型及變數 32
3.1.1 為什麼要使用變數 32
3.1.2 變數是什麼 32
3.1.3 聲明變數 32
3.1.4 簡單數據類型 33
【實例3.1】 根據身高體重計算BMI指數 36
【實例3.2】 字元類Char的常用方法套用 38
【實例3.3】 輸出Windows系統目錄 40
3.1.5 變數的初始化 41
3.1.6 變數的作用域 42
【實例3.4】 使用變數記錄用戶登錄名 43
3.2 引用類型 43
3.2.1 引用類型分類 43
3.2.2 引用類型舉例 45
【實例3.5】 引用類型的使用 45
3.2.3 值類型與引用類型的區別 46
【實例3.6】 值類型與引用類型的區別舉例 46
3.3 常量 47
3.3.1 常量是什麼 48
3.3.2 常量的分類 48
3.4 數據類型轉換 49
3.4.1 隱式類型轉換 49
3.4.2 顯式類型轉換 50
3.4.3 使用Convert類進行轉換 50
本章知識思維導圖 52
第4章 運算符 53 視頻講解:9節,99分鐘
4.1 算術運算符 54
【實例4.1】 計算學生成績的分差及平均分 54
4.2 自增自減運算符 55
4.3 賦值運算符 56
4.4 關係運算符 58
【實例4.2】 使用關係運算符比較大小關係 58
4.5 邏輯運算符 59
【實例4.3】 參加麵包店的打折活動 60
4.6 位運算符 60
4.7 移位運算符 62
4.8 條件運算符 62
【實例4.4】 判斷人的年齡所處階段 63
4.9 運算符優先權與結合性 64
本章知識思維導圖 66
第5章 條件語句 67 視頻講解:2節,61分鐘
5.1 if條件語句 68
5.1.1 決策分支 68
5.1.2 if語句 68
【實例5.1】 判斷輸入是不是奇數 69
【實例5.2】 根據分數劃分是否優秀 71
【實例5.3】 根據分數劃分優秀等級 73
【實例5.4】 判斷輸入的年份是不是閏年 75
5.2 switch多分支語句 76
5.2.1 switch語句 76
【實例5.5】 查詢高考錄取分數線 77
5.2.2 switch與if…else if…else的區別 78
本章知識思維導圖 79
第6章 循環語句 80 視頻講解:5節,63分鐘
6.1 while循環 81
【實例6.1】 數學家高斯的故事 81
6.2 do…while循環 82
6.2.1 do…while循環的使用 82
【實例6.2】 使用do…while循環挑戰數據家高斯 83
6.2.2 while和do…while語句的區別 83
6.3 for循環 83
6.3.1 for循環的一般形式 83
【實例6.3】 使用for循環挑戰數據家高斯 84
6.3.2 for循環的變體 85
6.3.3 for循環中逗號的套用 86
6.4 循環的嵌套 86
【實例6.4】 列印九九乘法表 88
6.5 跳轉語句 88
6.5.1 break語句 88
【實例6.5】 使用break跳出循環 89
6.5.2 continue語句 89
【實例6.6】 使用continue語句實現1到100之間的偶數和 89
6.5.3 goto語句 90
【實例6.7】 使用goto語句實現1到100的累加 90
6.5.4 continue和break語句的區別 91
本章知識思維導圖 92
第7章 數組 93 視頻講解:5節,75分鐘
7.1 一維數組 94
7.1.1 數組概述 94
7.1.2 一維數組的創建 94
7.1.3 一維數組的初始化 96
7.1.4 一維數組的使用 96
【實例7.1】 輸出一年中每個月的天數 96
7.2 二維數組 97
7.2.1 二維數組的創建 97
7.2.2 二維數組的初始化 99
7.2.3 二維數組的使用 100
【實例7.2】 模擬客車售票系統 100
7.2.4 不規則數組的定義 101
7.2.5 獲取二維數組的列數 101
7.3 數組與Array類 102
【實例7.3】 列印楊輝三角 102
7.4 數組的基本操作 103
7.4.1 數組的輸入與輸出 103
【實例7.4】 一維數組的輸入與輸出 103
【實例7.5】 二維數組的輸入與輸出舉例 104
7.4.2 使用foreach語句遍歷數組 105
【實例7.6】 輸出狼人殺遊戲主要角色 105
7.4.3 對數組進行排序 106
7.5 數組排序算法 107
7.5.1 冒泡排序算法 107
【實例7.7】 冒泡排序算法排序 108
7.5.2 選擇排序算法 109
【實例7.8】 選擇排序算法排序 110
本章知識思維導圖 112
第8章 字元串 113 視頻講解:20節,156分鐘
8.1 字元串的聲明與初始化 114
8.1.1 聲明字元串 114
8.1.2 字元串的初始化 114
8.2 提取字元串信息 115
8.2.1 獲取字元串長度 116
8.2.2 獲取指定位置的字元 116
8.2.3 獲取子字元串索引位置 116
【實例8.1】 查找“r”在“We are the world”中出現的位置 117
8.2.4 判斷字元串首尾內容 118
8.3 字元串操作 119
8.3.1 字元串的拼接 120
8.3.2 比較字元串 120
【實例8.2】 驗證用戶名和密碼是否正確 121
8.3.3 字元串的大小寫轉換 122
8.3.4 格式化字元串 122
【實例8.3】 格式化不同的數值類型數據 124
【實例8.4】 輸出不同形式的日期時間 125
8.3.5 截取字元串 126
【實例8.5】 從完整檔案名稱中獲取檔案名稱和擴展名 126
8.3.6 分割字元串 126
【實例8.6】 學習編程的最終目標 127
8.3.7 插入及填充字元串 127
【實例8.7】 對字元串進行填充 128
8.3.8 刪除字元串 128
8.3.9 去除空白內容 129
8.3.10 複製字元串 129
8.3.11 替換字元串 131
【實例8.8】 字元串的替換 131
8.4 可變字元串類 132
8.4.1 StringBuilder類的定義 132
8.4.2 StringBuilder類的使用 133
【實例8.9】 StringBuilder類中幾種方法的套用 133
8.4.3 StringBuilder類與string類的區別 134
【實例8.10】 對比string和StringBuilder的執行效率 135
本章知識思維導圖 137
第2篇 面向對象編程篇
第9章 面向對象編程基礎 140 視頻講解:5節,133分鐘
9.1 認識面向對象 141
9.1.1 對象 141
9.1.2 類 142
9.1.3 面向對象技術的基本思想 143
9.1.4 面向對象程式設計的特點 143
9.1.5 了解面向過程編程 144
9.2 類 145
9.2.1 類的聲明 145
9.2.2 類的成員 145
【實例9.1】 使用屬性控制用戶年齡輸入 147
【實例9.2】 設計表示星期的枚舉 149
9.2.3 許可權修飾符 150
9.2.4 構造函式 151
【實例9.3】 對比靜態構造函式和實例構造函式的執行 153
9.2.5 析構函式 154
9.3 方法 154
9.3.1 方法的聲明 155
9.3.2 方法的參數 155
【實例9.4】 計算兩個數的和 156
【實例9.5】 值參數對引用類型的影響 157
【實例9.6】 ref參數的套用 157
【實例9.7】 使用out參數記錄運算結果 158
【實例9.8】 使用params參數計算不定數的和 159
9.3.3 方法的重載 160
【實例9.9】 使用重載方法計算不同類型數的和 160
9.4 類的靜態成員 161
9.5 對象的創建及使用 161
9.5.1 對象的創建 161
9.5.2 訪問對象的屬性和行為 162
【實例9.10】 使用屬性控制用戶年齡輸入 163
9.5.3 對象的銷毀 163
9.5.4 this關鍵字 164
9.5.5 類與對象的關係 165
本章知識思維導圖 165
第10章 繼承與多態 166 視頻講解:3節,42分鐘
10.1 繼承 167
10.1.1 使用繼承 167
【實例10.1】 模擬實現進銷存管理系統的進貨信息並輸出 168
10.1.2 base關鍵字 169
【實例10.2】 使用base關鍵字調用父類方法 170
10.1.3 繼承中的構造函式與析構函式 171
【實例10.3】 演示繼承中構造函式與析構函式的執行順序 171
10.2 多態 172
10.2.1 虛方法的重寫 172
【實例10.4】 通過重寫虛方法實現多態 173
10.2.2 抽象類與抽象方法 174
【實例10.5】 模擬“去商場買衣服”場景 175
10.2.3 密封類與密封方法 176
【實例10.6】 密封類的使用 176
10.3 接口 177
10.3.1 接口的概念及聲明 177
10.3.2 接口的實現與繼承 178
【實例10.7】 通過繼承接口實現輸出進貨信息和銷售信息 178
10.3.3 顯式接口成員實現 180
【實例10.8】 顯式接口成員的實現舉例 180
10.3.4 抽象類與接口 182
本章知識思維導圖 183
第11章 集合與索引器 184 視頻講解:3節,14分鐘
11.1 集合 185
11.1.1 自定義集合 185
【實例11.1】 自定義集合存儲商品信息 186
11.1.2 使用集合類 187
【實例11.2】 使用ArrayList集合存儲商品信息 188
11.2 索引器 188
【實例11.3】 使用索引器操作字元串數組 189
本章知識思維導圖 190
第12章 委託與事件 191 視頻講解:3節,27分鐘
12.1 委託與多路廣播委託 192
12.1.1 委託 192
12.1.2 多路廣播委託 194
【實例12.1】 多路廣播委託操作 195
12.2 匿名方法 196
【實例12.2】 匿名方法和命名方法的對比 196
12.3 事件 197
12.3.1 委託的發布和訂閱 197
【實例12.3】 通過委託來實現學生們對鈴聲所做出的回響 198
12.3.2 事件的發布和訂閱 199
12.3.3 EventHandler類 200
12.3.4 Windows事件概述 201
本章知識思維導圖 202
第13章 泛型 203 視頻講解:1節,14分鐘
13.1 為什麼要使用泛型 204
13.2 泛型類型參數 204
【實例13.1】 使用泛型解決參數類型不確定的問題 205
13.3 泛型方法 205
13.4 泛型類 206
13.5 泛型接口 206
13.6 泛型約束 206
13.7 兩種特殊的泛型委託 207
本章知識思維導圖 209
第14章 程式調試與異常處理 210 視頻講解:3節,20分鐘
14.1 程式調試 211
14.1.1 Visual Studio編輯器調試 211
14.1.2 Visual Studio調試器調試 212
14.2 異常處理 215
14.2.1 try…catch語句 216
【實例14.1】 未將對象引用設定到對象的實例 217
14.2.2 try…catch…finally語句 218
【實例14.2】 捕捉將字元串轉換為整型數據時的異常 218
14.2.3 throw語句 219
【實例14.3】 拋出除數為0的異常 219
14.2.4 異常的使用原則 220
本章知識思維導圖 221
第3篇 Windows窗體編程篇
第15章 Windows窗體編程 224 視頻講解:3節,35分鐘
15.1 開發Windows窗體程式的步驟 225
15.2 Form窗體 228
15.2.1 添加和刪除窗體 228
15.2.2 多窗體的使用 230
15.2.3 窗體的屬性 230
15.2.4 窗體的顯示與隱藏 233
15.2.5 窗體的事件 234
15.3 MDI窗體 236
15.3.1 MDI窗體的概念 236
15.3.2 如何設定MDI窗體 236
15.3.3 排列MDI子窗體 237
【實例15.1】 排列MDI父窗體中的多個子窗體 237
本章知識思維導圖 239
第16章 Windows控制項的使用 240 視頻講解:25節,143分鐘
16.1 控制項基礎 241
16.1.1 控制項概述 241
16.1.2 控制項的相關操作 241
16.2 文本類控制項 242
16.2.1 Label:標籤 242
16.2.2 TextBox:文本框 243
16.2.3 RichTextBox:有格式文本框 244
【實例16.1】 在RichTextBox中設定超連結 245
16.3 按鈕類控制項 246
16.3.1 Button:按鈕 246
【實例16.2】 製作登錄窗體中的登錄和退出按鈕 246
16.3.2 RadioButton:單選按鈕 247
【實例16.3】 選擇用戶登錄身份 247
16.3.3 CheckBox:複選框 248
【實例16.4】 設定用戶操作許可權 249
16.4 列表類控制項 249
16.4.1 ComboBox:下拉組合框 249
【實例16.5】 選擇員工的職位 250
16.4.2 NumericUpDown:數值選擇 250
【實例16.6】 動態顯示選擇的數值 251
16.4.3 ListBox:列表 251
【實例16.7】 在ListBox中添加和移除項 252
【實例16.8】 在ListBox中顯示滾動條 252
【實例16.9】 在ListBox中選擇多項 253
16.4.4 ListView控制項:列表視圖 254
16.5 圖片類控制項 256
16.5.1 PictureBox:圖片 256
16.5.2 ImageList:圖片列表 257
【實例16.10】 使用ImageList載入和移除圖像 258
16.6 容器控制項 259
16.6.1 GroupBox:分組框 259
16.6.2 Panel:容器 259
16.6.3 TabControl:選項卡 259
【實例16.11】 動態添加和刪除選項卡 261
16.7 TreeView:樹控制項 261
【實例16.12】 使用樹控制項顯示部門結構 263
16.8 Timer:計時器 264
【實例16.13】 模擬雙色球選號 265
16.9 ProgressBar:進度條 266
16.10 選單、工具列和狀態欄 266
16.10.1 MenuStrip:選單 266
16.10.2 ToolStrip:工具列 267
16.10.3 StatusStrip:狀態欄 268
【實例16.14】 在狀態欄中顯示登錄用戶及時間 268
16.11 訊息框 270
16.12 對話框 271
16.12.1 “打開”對話框 271
16.12.2 “另外儲存為”對話框 273
16.12.3 “瀏覽資料夾”對話框 273
本章知識思維導圖 274
第4篇 資料庫及檔案篇
第17章 使用C#運算元據庫 276 視頻講解:7節,67分鐘
17.1 SQL語句基礎 277
17.1.1 SQL語言簡介 277
17.1.2 簡單SQL語句的套用 277
17.2 ADO.NET概述 281
17.2.1 ADO.NET對象模型 281
17.2.2 數據訪問命名空間 281
17.3 Connection數據連線對象 282
17.3.1 熟悉Connection對象 282
17.3.2 資料庫連線字元串 282
17.3.3 套用SqlConnection對象連線資料庫 284
【實例17.1】 使用SqlConnection對象連線SQL Server資料庫 284
17.4 Command命令執行對象 285
17.4.1 熟悉Command對象 285
17.4.2 套用Command對象運算元據 286
【實例17.2】 向數據表中添加編程詞典價格信息 286
17.4.3 套用Command對象調用存儲過程 286
【實例17.3】 使用存儲過程向數據表中添加編程詞典價格信息 286
17.5 DataReader數據讀取對象 287
17.5.1 DataReader對象概述 287
17.5.2 使用DataReader對象檢索數據 288
【實例17.4】 獲取編程詞典信息並分列顯示 289
17.6 DataSet對象和DataAdapter操作對象 290
17.6.1 DataSet對象 290
17.6.2 DataAdapter對象 290
17.6.3 填充DataSet數據集 291
【實例17.5】 填充DataSet數據集並顯示 292
17.6.4 DataSet對象與DataReader對象的區別 292
17.7 DataGridView控制項的使用 292
【實例17.6】 DataGridView表格的使用 293
本章知識思維導圖 295
第18章 Entity Framework編程 296 視頻講解:1節,22分鐘
18.1 什麼是Entity Framework 297
18.2 Entity?Framework實體數據模型 297
18.3 創建實體數據模型 298
18.4 通過EF對數據表進行增刪改查操作 300
【實例18.1】 通過EF對數據表進行增刪改查操作 301
18.5 EF相對於ADO.NET的優勢 302
本章知識思維導圖 303
第19章 檔案及資料夾操作 304 視頻講解:4節,70分鐘
19.1 System.IO命名空間 305
19.2 檔案基本操作 306
19.2.1 File類 306
19.2.2 FileInfo類 307
19.2.3 判斷檔案是否存在 307
19.2.4 創建檔案 308
19.2.5 複製檔案 309
19.2.6 移動檔案 310
19.2.7 刪除檔案 310
19.2.8 獲取檔案基本信息 311
【實例19.1】 獲取選定檔案的詳細信息 311
19.3 資料夾基本操作 312
19.3.1 Directory類 312
19.3.2 DirectoryInfo類 312
19.3.3 判斷資料夾是否存在 313
19.3.4 創建資料夾 313
19.3.5 移動資料夾 314
19.3.6 刪除資料夾 315
19.3.7 遍歷資料夾 315
【實例19.2】 獲取資料夾中的所有子資料夾及檔案信息 316
19.4 I/O數據流基礎 318
19.4.1 流概述 318
19.4.2 檔案流 319
【實例19.3】 使用不同的方式打開檔案 320
19.4.3 文本檔案的讀寫 321
【實例19.4】 文本檔案中寫入和讀取名人名言 322
本章知識思維導圖 324
第5篇 項目開發篇
第20章 貪吃蛇大作戰 326 視頻講解:1節,3分鐘
20.1 遊戲描述 327
20.2 設計思路 327
20.3 開發過程 328
20.3.1 創建項目並導入資源檔案 328
20.3.2 設計主窗體 329
20.3.3 初始化遊戲場景及蛇身 331
20.3.4 控制遊戲的開始、暫停和結束 332
20.3.5 移動貪吃蛇並控制其速度 333
本章知識思維導圖 334
第21章 人事工資管理系統 335 視頻講解:1節,3分鐘
21.1 需求分析 336
21.2 系統設計 336
21.2.1 系統功能結構 336
21.2.2 業務流程圖 336
21.2.3 編碼規則 336
21.2.4 程式運行環境 337
21.2.5 系統預覽 337
21.3 資料庫設計 339
21.3.1 資料庫分析 339
21.3.2 資料庫概念設計 339
21.3.3 資料庫邏輯結構設計 341
21.4 資料夾組織結構 342
21.4.1 資料夾組織結構圖 343
21.4.2 程式檔案組織結構圖 343
21.5 公共類設計 344
21.5.1 DBConnection公共類 344
21.5.2 DBOperate公共類 345
21.6 登錄模組設計 348
21.6.1 登錄模組概述 348
21.6.2 登錄模組實現過程 349
21.7 主窗體設計 350
21.7.1 主窗體概述 350
21.7.2 主窗體實現過程 351
21.8 檔案管理模組設計 352
21.8.1 檔案管理模組概述 352
21.8.2 檔案管理模組實現過程 352
21.9 獎罰管理模組設計 359
21.9.1 獎罰管理模組概述 359
21.9.2 獎罰管理模組實現過程 360
本章知識思維導圖 364
附錄 資料庫基礎 365