本書以Visual Studio 2015/2017為平臺,系統(tǒng)介紹C# 程序設(shè)計及其Windows應(yīng)用系統(tǒng)開發(fā)過程。在第2版的基礎(chǔ)上,對編程平臺及實驗部分進行了較大的修改和完善,在C# 操作SQL Server的基礎(chǔ)上,增加了 C# 操作 MySQL 數(shù)據(jù)庫的內(nèi)容,同時增加了多個源代碼文件,包括面向?qū)ο箢惥幊獭討B(tài)鏈接庫(DLL)及其使用,刪除了 C# 作為 ASP.NET 腳本的簡單介紹,不斷提升可讀性和可用性。全書包含實用教程、習(xí)題、實驗、綜合應(yīng)用實習(xí)和附錄,全面覆蓋 C#課程的理論基礎(chǔ)和實踐教學(xué)環(huán)節(jié)。習(xí)題部分突出基本編程語法和基本概念(附錄A提供習(xí)題參考答案);實驗部分主要鍛煉編程和應(yīng)用能力,讀者先跟著做,然后自己練習(xí);綜合應(yīng)用實習(xí)部分主要訓(xùn)練Windows應(yīng)用程序(采用C#)開發(fā)能力。本書配有教學(xué)課件、實例和綜合應(yīng)用實習(xí)源文件及數(shù)據(jù)庫文件,以方便教師教學(xué)和學(xué)生模仿練習(xí),可在華信教育資源網(wǎng)(http://www.hxedu.com.cn)免費注冊下載。本書可作為大學(xué)本科、高職高專相關(guān)專業(yè)C# 語言課程教材,也可供廣大C# 語言開發(fā)用戶學(xué)習(xí)參考。
鄭阿奇,副教授,就職于南京師范大學(xué)計算機科學(xué)與技術(shù)學(xué)院,江蘇省計算機學(xué)會高級會員。參加國家863計劃子項目、主持國家七五攻關(guān)項目子項目、主持江蘇省重點項目,主持大中型企業(yè)和國家機關(guān)網(wǎng)絡(luò)、數(shù)據(jù)庫、管理和控制項目多項。主編多個系列高等院校計算機教材。
第1部分 C#實用教程
第1章 C#概述 2
1.1 C#語言簡介 2
1.1.1 C#的優(yōu)勢 2
1.1.2 .NET框架 3
1.2 Visual C# ( 2015/2017 ) 開發(fā)環(huán)境 4
1.2.1 Visual C#環(huán)境安裝與設(shè)置 4
1.2.2 Visual Studio項目管理 8
1.2.3 Visual Studio IDE界面元素 9
1.3 最簡單的C#程序 17
1.3.1 C#項目的創(chuàng)建與分類 17
1.3.2 第一個控制臺應(yīng)用程序 17
1.3.3 第一個Windows窗體程序 19
第2章 C#語言基礎(chǔ) 21
2.1 數(shù)據(jù)類型 21
2.1.1 值類型 21
2.1.2 引用類型 22
2.1.3 兩者關(guān)系 23
2.2 變量與常量 25
2.2.1 常量 25
2.2.2 變量 27
2.2.3 使用舉例 27
2.3 運算符與表達式 28
2.3.1 算術(shù)運算符 29
2.3.2 關(guān)系運算符 29
2.3.3 邏輯運算符 30
2.3.4 位運算符 31
2.3.5 賦值運算符 33
2.3.6 條件運算符 34
2.3.7 運算符的優(yōu)先級與結(jié)合性 34
2.3.8 表達式中的類型轉(zhuǎn)換 35
2.4 C#語句的結(jié)構(gòu) 36
2.4.1 三種基本的結(jié)構(gòu)化流程 36
2.4.2 分支語句 36
2.4.3 循環(huán)語句 40
2.4.4 跳轉(zhuǎn)語句 42
2.5 數(shù)組 46
2.5.1 一維數(shù)組 46
2.5.2 多維數(shù)組 48
2.5.3 不規(guī)則數(shù)組 50
2.5.4 數(shù)組的遍歷 52
2.5.5 數(shù)組應(yīng)用舉例 53
2.6 類 55
2.6.1 類的聲明 55
2.6.2 類的成員 56
2.6.3 構(gòu)造函數(shù) 58
2.6.4 析構(gòu)函數(shù) 60
2.7 方法 61
2.7.1 方法的聲明 61
2.7.2 方法的參數(shù) 64
2.7.3 靜態(tài)方法與實例方法 70
2.8 接口 71
2.8.1 接口的概念 71
2.8.2 接口的實現(xiàn) 73
第3章 C#面向?qū)ο缶幊?75
3.1 什么是面向?qū)ο缶幊?75
3.1.1 思想淵源與編程哲學(xué) 75
3.1.2 面向?qū)ο蟪绦蛟O(shè)計三原則 76
3.2 類的封裝與繼承 78
3.2.1 屬性封裝 78
3.2.2 類的繼承 82
3.2.3 派生類的構(gòu)造函數(shù) 85
3.3 多態(tài)的實現(xiàn) 87
3.3.1 方法重載 87
3.3.2 運算符重載 89
3.3.3 虛方法與方法覆蓋 90
3.3.4 抽象類與抽象方法 95
3.4 C#系統(tǒng)的類型轉(zhuǎn)換 97
3.4.1 復(fù)合數(shù)據(jù)類型 97
3.4.2 數(shù)值轉(zhuǎn)換 101
3.4.3 枚舉轉(zhuǎn)換 103
3.4.4 引用轉(zhuǎn)換 105
3.4.5 使用Convert轉(zhuǎn)換 106
3.5 編程常用算法 107
3.5.1 C#語言對排序查找的支持 107
3.5.2 最常用的3種排序算法 109
3.5.3 迭代與遞歸算法 112
3.6 異常 115
3.6.1 異常與異常類 115
3.6.2 異常處理 116
3.7 綜合應(yīng)用實例 120
第4章 Windows應(yīng)用程序開發(fā)基礎(chǔ) 126
4.1 開發(fā)步驟演示 126
4.1.1 建立項目 126
4.1.2 界面設(shè)計 127
4.1.3 屬性設(shè)計 127
4.1.4 代碼設(shè)計 127
4.1.5 運行調(diào)試 128
4.2 窗體及其特性 128
4.2.1 窗體的外觀樣式 128
4.2.2 窗體可見性控制 129
4.2.3 窗體的定位 131
4.3 Windows常用控件 133
4.3.1 認識控件大家族 133
4.3.2 標簽控件 135
4.3.3 按鈕與文本框 137
4.3.4 圖片框 140
4.3.5 選擇控件及分組 142
4.3.6 列表類控件 144
4.3.7 狀態(tài)顯示控件 147
4.4 對話框應(yīng)用 149
4.4.1 消息框 149
4.4.2 模式對話框 150
4.4.3 通用對話框 150
4.4.4 應(yīng)用舉例 154
4.5 Windows文檔程序設(shè)計 155
4.5.1 菜單設(shè)計 155
4.5.2 單文檔界面(SDI) 157
4.5.3 多文檔界面(MDI) 160
4.5.4 文檔的打印 164
第5章 C#高級特性 166
5.1 集合與索引器 166
5.1.1 自定義集合 166
5.1.2 集合類 168
5.1.3 索引器 169
5.2 委托與事件 171
5.2.1 初識委托 171
5.2.2 為什么要使用委托 173
5.2.3 多播委托 179
5.2.4 事件 180
5.3 預(yù)處理命令 182
5.3.1 符號定義與條件編譯指令 183
5.3.2 警告錯誤指令 184
5.3.3 代碼塊標識指令 185
5.4 組件與程序集 185
5.4.1 組件 185
5.4.2 程序集 185
5.5 泛型 189
第6章 C#線程技術(shù) 192
6.1 引入線程的動機 192
6.1.1 進程的主線程 192
6.1.2 主線程的局限性 193
6.1.3 多線程編程思路 193
6.2 線程的創(chuàng)建及狀態(tài)控制 194
6.2.1 Thread類的使用 194
6.2.2 線程的創(chuàng)建、啟動和終止 196
6.2.3 線程的掛起與恢復(fù) 199
6.2.4 線程的狀態(tài)和優(yōu)先級 202
6.3 線程同步和通信 204
6.3.1 lock關(guān)鍵字 204
6.3.2 線程監(jiān)視器 206
6.3.3 線程間的通信 210
6.3.4 子線程訪問主線程的控件 212
6.4 線程的管理和維護 213
6.4.1 線程池 214
6.4.2 定時器 214
6.4.3 同步基元Mutex 214
6.5 線程的應(yīng)用 215
6.5.1 實時GUI 215
6.5.2 并發(fā)任務(wù) 217
第7章 C#圖形圖像編程 220
7.1 圖形設(shè)計基礎(chǔ) 220
7.1.1 GDI+簡介 220
7.1.2 繪圖坐標系 221
7.1.3 屏幕像素 221
7.2 畫圖工具及其使用 221
7.2.1 筆 221
7.2.2 畫刷 223
7.2.3 Graphics類 225
7.3 繪制圖形 226
7.3.1 線條定位與選型 226
7.3.2 畫空心形狀 229
7.3.3 圖形的填充 233
7.4 字體和圖像處理 235
7.4.1 定義字體 235
7.4.2 文本輸出 236
7.4.3 繪制圖像 237
7.4.4 圖像刷新 237
7.5 綜合應(yīng)用實例 238
第8章 文件操作 244
8.1 .NET的文件I/O模型 244
8.2 管理文件夾和目錄 245
8.2.1 操作文件夾 245
8.2.2 處理路徑字符串 247
8.2.3 讀取驅(qū)動器信息 248
8.3 文件的基本操作 249
8.3.1 文件的種類 249
8.3.2 創(chuàng)建文件 250
8.3.3 讀/寫文件 253
8.4 綜合應(yīng)用實例 258
第9章 數(shù)據(jù)庫應(yīng)用 265
9.1 數(shù)據(jù)庫基礎(chǔ) 265
9.1.1 關(guān)系模型 265
9.1.2 SQL語言 267
9.1.3 使用Visual Studio平臺創(chuàng)建SQL Server數(shù)據(jù)庫 268
9.2 ADO.NET原理 272
9.2.1 ADO.NET概述 272
9.2.2 ADO.NET對象模型 273
9.2.3 數(shù)據(jù)集與離線訪問 273
9.3 創(chuàng)建和測試連接 275
9.3.1 Connection連接字符串 275
9.3.2 使用Connection對象 276
9.3.3 連接的測試 278
9.4 在線操作數(shù)據(jù)庫 279
9.4.1 SQL命令的封裝 279
9.4.2 信息的即時呈現(xiàn) 280
9.4.3 數(shù)據(jù)庫在線訪問實例 281
9.5 數(shù)據(jù)庫的離線訪問 284
9.5.1 數(shù)據(jù)適配 284
9.5.2 數(shù)據(jù)集機制 285
9.5.3 數(shù)據(jù)庫離線訪問實例 288
9.6 訪問MySQL數(shù)據(jù)庫 291
9.6.1 C#引用MySQL庫 291
9.6.2 DataGridView設(shè)置 293
9.6.3 MySQL數(shù)據(jù)庫訪問實例 294
第10章 類與DLL庫開發(fā) 297
10.1 類對象操作功能 297
10.1.1 對象類設(shè)計 297
10.1.2 界面主程序設(shè)計 301
10.1.3 測試運行程序 304
10.2 DLL庫的開發(fā)與應(yīng)用 305
10.2.1 DLL庫的優(yōu)點 305
10.2.2 開發(fā)學(xué)生DLL庫 306
10.2.3 開發(fā)加載數(shù)據(jù)DLL 309
10.2.4 界面主程序設(shè)計 310
10.2.5 主程序使用DLL庫 311
第2部分 C#習(xí)題
第1章 C#概述 315
第2章 C#語言基礎(chǔ) 315
第3章 C#面向?qū)ο缶幊?321
第4章 Windows應(yīng)用程序開發(fā)基礎(chǔ) 325
第5章 C#高級特性 326
第6章 C#線程技術(shù) 327
第7章 C#圖形圖像編程 327
第8章 文件操作 328
第9章 數(shù)據(jù)庫應(yīng)用 329
第10章 類與DLL庫開發(fā) 330
第3部分 C# 實驗
實驗1 C#概述 332
實驗2 C#語言基礎(chǔ) 333
實驗3 C#面向?qū)ο缶幊?339
實驗4 Windows應(yīng)用程序開發(fā)基礎(chǔ) 348
實驗5 C#高級特性 352
實驗6 C#線程技術(shù) 355
實驗7 C#圖形圖像編程 357
實驗8 文件操作 360
實驗9 數(shù)據(jù)庫應(yīng)用 361
實驗10 類與DLL庫開發(fā) 363
第4部分 C#綜合應(yīng)用實習(xí)——學(xué)生成績管理系統(tǒng)
P.1 主界面及功能導(dǎo)航 366
P.2 學(xué)生信息查詢 369
P.3 學(xué)生信息修改 372
P.4 學(xué)生成績錄入 377
P.5 自己動手擴展系統(tǒng)功能 383
附錄A 習(xí)題參考答案