C#程序設計(慕課版 第3版)AIGC高效編程
呂雲山 艾靜 成誌偉
商品描述
本書系統全面地介紹有關C#程序開發的各類知識。全書共13章,內容包括.NET與C#基礎、C#編程基礎、面向對象編程基礎、面向對象編程進階、Windows應用程序開發、GDI+編程、文件操作、數據庫應用、LINQ技術、網絡編程、多線程編程、綜合案例——騰龍進銷存管理系統、課程設計——桌面提醒工具。全書每章內容都與實例緊密結合,有助於讀者理解知識、應用知識,使讀者學以致用。
近年來,AIGC技術高速發展,成為各行各業高質量發展和生產效率提升的重要推動力。本書緊跟AIGC技術的發展現狀,將AIGC技術融入理論學習、實例編寫、復雜系統開發等環節,以期讓讀者更好、更快掌握相應技能。
本書既可以作為高等院校“C#程序設計”課程的教材,又可以作為從事C#程序設計工作的編程人員的參考用書。
作者簡介
明日科技
已經在我社出版多本程序設計類書籍,包括“技術方案寶典”、“開發技術大全”、“自學手冊”、“參考大全”等多個系列,大都取得比較好的市場反響。
目錄大綱
第 1章 .NET與C#基礎 1
1.1 C#語言簡介 1
1.1.1 C#的發展歷史 1
1.1.2 C#的特點 1
1.2 .NET開發平臺 2
1.2.1 .NET概述 2
1.2.2 VS 2022的集成開發環境 3
1.2.3 第 一個C#程序 6
1.2.4 C#程序的基本結構 7
1.3 Visual C#開發環境 10
1.3.1 新建Windows窗體應用程序 10
1.3.2 標題欄 11
1.3.3 菜單欄 12
1.3.4 工具欄 18
1.3.5 工具箱 19
1.3.6 窗口 20
小 結 23
上機指導 23
習 題 24
第 2章 C#編程基礎 25
2.1 基本數據類型 25
2.1.1 值類型 26
2.1.2 引用類型 27
2.1.3 值類型與引用類型的區別 28
實例:演示值類型和引用類型使用區別
2.2 常量和變量 30
2.2.1 常量的聲明和使用 30
2.2.2 變量的聲明和使用 31
2.3 表達式與運算符 31
2.3.1 算術運算符 32
2.3.2 自增自減運算符 32
2.3.3 賦值運算符 33
2.3.4 關系運算符 34
實例:比較3個int變量的大小關系
2.3.5 邏輯運算符 35
2.3.6 位運算符 36
2.3.7 移位運算符 37
2.3.8 條件運算符 38
2.3.9 運算符的優先級與結合性 38
2.3.10 表達式中的類型轉換 39
2.4 選擇語句 42
2.4.1 if語句 42
實例:判斷用戶輸入的年份是不是閏年
2.4.2 switch語句 46
實例:判斷用戶的操作權限
2.5 循環語句 48
2.5.1 while循環語句 48
2.5.2 do…while循環語句 49
2.5.3 for循環語句 50
實例:實現1——100的累加
2.6 跳轉語句 50
2.6.1 break語句 51
2.6.2 continue語句 51
2.6.3 goto語句 52
2.7 數組 52
2.7.1 一維數組 53
2.7.2 多維數組 53
2.7.3 不規則數組 54
2.7.4 數組與System.Array 55
實例:打印楊輝三角
2.7.5 常用數組操作 56
實例:冒泡排序算法的實現
2.7.6 使用foreach語句遍歷數組 59
實例:遍歷進銷存管理系統的主要功能模塊
小 結 60
上機指導 60
習 題 61
第3章 面向對象編程基礎 62
3.1 面向對象概念 62
3.1.1 對象、類、實例化 62
3.1.2 面向對象程序設計語言的三大原則 64
3.2 類 66
3.3.1 類的概念 66
3.3.2 類的聲明 66
3.3.3 類的成員 67
3.3.4 構造函數和析構函數 70
3.3.5 對象的創建及使用 71
實例:顯示庫存商品信息
3.3.6 this關鍵字 74
3.3.7 類與對象的關系 74
3.3 方法 75
3.3.1 方法的聲明 75
3.3.2 方法的參數 76
3.3.3 靜態方法與實例方法 79
3.3.4 方法的重載 80
實例:定義一個加法運算的重載方法
小 結 81
上機指導 81
習 題 83
第4章 面向對象編程進階 84
4.1 類的繼承與多態 84
4.1.1 繼承 84
實例:模擬實現進銷存管理系統的進貨信息並輸出
4.1.2 多態 87
實例:通過多態實現不同交通工具的運行狀態
4.2 結構與接口 92
4.2.1 結構 92
實例:定義結構存儲職工的信息
4.2.2 接口 93
實例:通過繼承接口輸出進貨信息和銷售信息
4.3 集合與索引器 97
4.3.1 集合 97
實例:使用自定義集合存儲商品信息
4.3.2 索引器 101
4.4 異常處理 102
4.4.1 異常處理類 102
4.4.2 異常處理語句 103
實例:捕獲除數為0的異常信息
4.5 委托和匿名方法 105
4.5.1 委托 105
4.5.2 匿名方法 106
4.6 事件 107
4.6.1 委托的發布和訂閱 107
4.6.2 事件的發布和訂閱 109
4.6.3 EventHandler類 110
實例:模擬學生對上下課鈴聲做出的響應動作
4.6.4 Windows事件概述 112
4.7 預處理指令 112
4.7.1 #region和#endregion 113
4.7.2 #define和#undef 113
4.7.3 #if、#elif、#else和#endif 114
實例:判斷當前測試的是哪種操作系統的版本
4.7.4 #warning和#error 115
4.7.5 #line 115
4.8 泛型 116
4.8.1 類型參數T 116
4.8.2 泛型接口 117
4.8.3 泛型方法 117
實例:計算商品銷售額
小 結 119
上機指導 119
習 題 121
第5章 Windows應用程序開發 122
5.1 開發應用程序的步驟 122
實例:創建進銷存管理系統的登錄窗體
5.2 Windows窗體介紹 125
5.2.1 添加窗體 125
5.2.2 設置啟動窗體 125
5.2.3 設置窗體屬性 126
5.2.4 窗體常用方法 128
5.2.5 窗體常用事件 128
5.3 Windows控件的使用 129
5.3.1 Control基類 129
5.3.2 Label控件 131
5.3.3 Button控件 131
實例:制作“登錄”和“退出”按鈕
5.3.4 TextBox控件 132
實例:創建“密碼”文本框
5.3.5 CheckBox控件 133
實例:設置用戶操作權限
5.3.6 RadioButton控件 134
實例:選擇用戶登錄身份
5.3.7 RichTextBox控件 135
5.3.8 ComboBox控件 137
實例:選擇用戶職位
5.3.9 ListBox控件 138
實例:在ListBox控件中添加和移除商品
5.3.10 GroupBox控件 139
5.3.11 ListView控件 139
實例:為ListView項設置圖標並分組
5.3.12 TreeView控件 142
實例:使用TreeView控件顯示部門結構
5.3.13 ImageList組件 144
5.3.14 Timer組件 145
實例:倒計時程序
5.4 菜單、工具欄與狀態欄 147
5.4.1 MenuStrip控件 147
5.4.2 ToolStrip控件 148
5.4.3 StatusStrip控件 149
實例:設計進銷存管理系統的狀態欄
5.5 對話框 151
5.5.1 消息框 151
5.5.2 窗體對話框 153
5.5.3 打開對話框控件 153
5.5.4 另存為對話框控件 154
5.5.5 瀏覽文件夾對話框控件 155
5.5.6 顏色對話框控件 156
5.5.7 字體對話框控件 157
5.6 多文檔界面(MDI) 158
5.6.1 MDI窗體的概念 158
5.6.2 設置MDI窗體 159
5.6.3 排列MDI子窗體 159
實例:顯示並排列MDI窗體
5.7 打印與打印預覽 161
5.7.1 PageSetupDialog組件 161
5.7.2 PrintDialog組件 161
5.7.3 PrintPreviewDialog組件 162
5.7.4 PrintDocument組件 162
實例:打印古詩
小 結 163
上機指導 164
習 題 166
第6章 GDI+編程 167
6.1 GDI+繪圖基礎 167
6.1.1 坐標系 167
6.1.2 像素 168
6.1.3 Graphics類 168
6.2 繪圖 170
6.2.1 畫筆 170
6.2.2 畫刷 171
6.2.3 繪制直線 171
實例:繪制坐標軸
6.2.4 繪制矩形 172
實例:繪制柱形圖分析商品銷售情況
6.2.5 繪制橢圓 174
實例:繪制空心橢圓和實心橢圓
6.2.6 繪制圓弧 175
6.2.7 繪制扇形 176
實例:繪制餅形圖分析商品銷售情況
6.2.8 繪制多邊形 178
實例:繪制空心五角星和實心五角星
6.3 顏色 180
6.4 文本輸出 181
6.4.1 字體 181
6.4.2 輸出文本 181
實例:為“商品銷售柱形圖”添加標題
6.5 圖像處理 182
6.5.1 繪制圖像 182
實例:繪制公司Logo
6.5.2 刷新圖像 183
小 結 184
上機指導 184
習 題 186
第7章 文件操作 187
7.1 文件概述 187
7.2 System.IO命名空間 188
7.3 文件與目錄類 189
7.3.1 File 和FileInfo類 189
實例:創建文件並顯示文件詳細信息
7.3.2 Directory和DirectoryInfo類 191
實例:遍歷指定驅動器下的所有文件夾及文件名稱
7.3.3 Path類 194
7.3.4 DriveInfo類 195
實例:獲取本地計算機上的所有磁盤驅動器
7.4 數據流基礎 197
7.4.1 流操作類介紹 197
7.4.2 文件流 197
實例:使用不同的方式打開文件
7.4.3 文本文件的讀寫 200
實例:模擬記錄進銷存管理系統的登錄日誌
7.4.4 二進制文件的讀寫 202
小 結 204
上機指導 204
習 題 206
第8章 數據庫應用 207
8.1 數據庫基礎 207
8.1.1 數據庫概述 207
8.1.2 數據庫的創建及刪除 208
實例:創建進銷存管理系統數據庫
8.1.3 數據表的創建及刪除 210
實例:創建商品信息表
8.1.4 結構化查詢語言(SQL) 211
8.2 ADO.NET概述 215
8.2.1 ADO.NET對象模型 215
8.2.2 數據訪問命名空間 216
8.3 Connection數據連接對象 217
8.3.1 熟悉Connection對象 217
8.3.2 數據庫連接字符串 217
8.3.3 應用SqlConnection對象連接數據庫 218
實例:使用SqlConnection對象連接SQL Server 2008數據庫
8.4 Command命令執行對象 219
8.4.1 熟悉Command對象 219
8.4.2 應用Command對象操作數據 220
實例:使用SQL語句添加數據
8.4.3 應用Command對象調用存儲過程 221
實例:使用存儲過程添加數據
8.5 DataReader數據讀取對象 222
8.5.1 DataReader對象概述 222
8.5.2 使用DataReader對象檢索數據 223
實例:使用DataReader獲取數據表中的所有商品信息
8.6 DataSet對象和DataAdapter操作對象 224
8.6.1 DataSet對象 224
8.6.2 DataAdapter對象 228
8.6.3 填充DataSet數據集 229
實例:使用DataSet獲取數據表中的所有商品信息
8.6.4 DataSet對象與DataReader對象的區別 229
8.7 數據操作控件 230
8.7.1 DataGridView控件 230
8.7.2 BindingSource組件 232
實例:分頁查看數據表中的信息
小 結 235
上機指導 235
習 題 238
第9章 LINQ技術 239
9.1 LINQ基礎 239
9.1.1 LINQ概述 239
9.1.2 LINQ查詢 240
實例:使用LINQ查詢表達式查找數組中長度小於7的所有項
9.1.3 使用var創建隱型局部變量 242
9.1.4 Lambda表達式的使用 243
實例:查找數組中包含“C#”的字符串
9.2 LINQ查詢表達式 244
9.2.1 獲取數據源 244
9.2.2 篩選 244
9.2.3 排序 244
9.2.4 分組 245
9.2.5 聯接 245
9.2.6 選擇(投影) 245
9.3 LINQ操作SQL Server數據庫 246
9.3.1 使用LINQ查詢SQL Server數據庫 246
實例:使用LINQ查詢商品信息
9.3.2 使用LINQ更新SQL Server數據庫 250
實例:使用LINQ對庫存商品信息表進行增、刪、改操作
小 結 256
上機指導 256
習 題 258
第 10章 網絡編程 259
10.1 計算機網絡基礎 259
10.1.1 局域網與因特網介紹 259
10.1.2 網絡協議介紹 260
10.1.3 端口及套接字介紹 261
10.2 網絡編程基礎 262
10.2.1 System.Net命名空間及相關類的使用 262
實例:獲取本地計算機名、IP地址
10.2.2 System.Net.Sockets命名空間及相關類的使用 269
實例:簡單聊天器
10.2.3 System.Net.Mail命名空間及相關類的使用 275
實例:發送郵件
小 結 277
上機指導 278
習 題 280
第 11章 多線程編程 281
11.1 線程概述 281
11.1.1 多線程工作方式 281
11.1.2 何時使用多線程 282
11.2 線程的基本操作 282
11.2.1 線程的創建與啟動 283
實例:創建並啟動一個新線程
11.2.2 線程的掛起與恢復 284
11.2.3 線程休眠 285
11.2.4 終止線程 285
11.2.5 線程的優先級 287
實例:使用線程實現大容量數據的計算
11.3 線程同步 289
11.3.1 lock關鍵字 289
實例:模擬用戶轉賬操作
11.3.2 線程監視器——Monitor 290
實例:同時向同一用戶轉賬
11.3.3 子線程訪問主線程的控件 291
11.4 線程池和定時器 293
11.4.1 線程池 293
11.4.2 定時器 294
11.5 互斥對象——Mutex 294
小 結 296
上機指導 296
習 題 298
第 12章 綜合案例——騰龍進銷存管理系統 299
12.1 需求分析 299
12.2 總體設計 300
12.2.1 系統目標 300
12.2.2 構建開發環境 300
12.2.3 系統功能結構 300
12.2.4 業務流程圖 301
12.3 數據庫設計 302
12.3.1 數據庫概要說明 302
12.3.2 數據庫E-R圖 303
12.3.3 數據表結構 305
12.4 公共類設計 307
12.4.1 DataBase公共類 307
12.4.2 BaseInfo公共類 310
12.5 系統主要模塊開發 314
12.5.1 系統主窗體設計 314
12.5.2 庫存商品管理模塊設計 316
12.5.3 進貨管理模塊概述 321
12.5.4 商品銷售排行模塊概述 327
12.6 運行項目 329
12.7 小結 331
第 13章 課程設計
——桌面提醒工具 332
13.1 課程設計目的 332
13.2 功能描述 332
13.3 總體設計 333
13.3.1 構建開發環境 333
13.3.2 程序預覽 333
13.4 數據庫設計 335
13.5 公共類設計 336
13.5.1 封裝數據值和顯示值的類 336
13.5.2 綁定和顯示數據的類 336
13.6 實現過程 337
13.6.1 提醒設置 337
13.6.2 計劃錄入 339
13.6.3 計劃查詢 344
13.7 課程設計總結 347
13.7.1 技術總結 347
13.7.2 經驗總結 348