本書以Visual Studio 2015/2017為平臺(tái),系統(tǒng)介紹C# 程序設(shè)計(jì)及其Windows應(yīng)用系統(tǒng)開發(fā)過程。在第2版的基礎(chǔ)上,對(duì)編程平臺(tái)及實(shí)驗(yàn)部分進(jìn)行了較大的修改和完善,在C# 操作SQL Server的基礎(chǔ)上,增加了 C# 操作 MySQL 數(shù)據(jù)庫(kù)的內(nèi)容,同時(shí)增加了多個(gè)源代碼文件,包括面向?qū)ο箢惥幊、?dòng)態(tài)鏈接庫(kù)(DLL)及其使用,刪除了 C# 作為 ASP.NET 腳本的簡(jiǎn)單介紹,不斷提升可讀性和可用性。全書包含實(shí)用教程、習(xí)題、實(shí)驗(yàn)、綜合應(yīng)用實(shí)習(xí)和附錄,全面覆蓋 C#課程的理論基礎(chǔ)和實(shí)踐教學(xué)環(huán)節(jié)。習(xí)題部分突出基本編程語法和基本概念(附錄A提供習(xí)題參考答案);實(shí)驗(yàn)部分主要鍛煉編程和應(yīng)用能力,讀者先跟著做,然后自己練習(xí);綜合應(yīng)用實(shí)習(xí)部分主要訓(xùn)練Windows應(yīng)用程序(采用C#)開發(fā)能力。本書配有教學(xué)課件、實(shí)例和綜合應(yīng)用實(shí)習(xí)源文件及數(shù)據(jù)庫(kù)文件,以方便教師教學(xué)和學(xué)生模仿練習(xí),可在華信教育資源網(wǎng)(http://www.hxedu.com.cn)免費(fèi)注冊(cè)下載。本書可作為大學(xué)本科、高職高專相關(guān)專業(yè)C# 語言課程教材,也可供廣大C# 語言開發(fā)用戶學(xué)習(xí)參考。
鄭阿奇,副教授,就職于南京師范大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,江蘇省計(jì)算機(jī)學(xué)會(huì)高級(jí)會(huì)員。參加國(guó)家863計(jì)劃子項(xiàng)目、主持國(guó)家七五攻關(guān)項(xiàng)目子項(xiàng)目、主持江蘇省重點(diǎn)項(xiàng)目,主持大中型企業(yè)和國(guó)家機(jī)關(guān)網(wǎng)絡(luò)、數(shù)據(jù)庫(kù)、管理和控制項(xiàng)目多項(xiàng)。主編多個(gè)系列高等院校計(jì)算機(jī)教材。
第1部分 C#實(shí)用教程
第1章 C#概述 2
1.1 C#語言簡(jiǎn)介 2
1.1.1 C#的優(yōu)勢(shì) 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項(xiàng)目管理 8
1.2.3 Visual Studio IDE界面元素 9
1.3 最簡(jiǎn)單的C#程序 17
1.3.1 C#項(xiàng)目的創(chuàng)建與分類 17
1.3.2 第一個(gè)控制臺(tái)應(yīng)用程序 17
1.3.3 第一個(gè)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 運(yùn)算符與表達(dá)式 28
2.3.1 算術(shù)運(yùn)算符 29
2.3.2 關(guān)系運(yùn)算符 29
2.3.3 邏輯運(yùn)算符 30
2.3.4 位運(yùn)算符 31
2.3.5 賦值運(yùn)算符 33
2.3.6 條件運(yùn)算符 34
2.3.7 運(yùn)算符的優(yōu)先級(jí)與結(jié)合性 34
2.3.8 表達(dá)式中的類型轉(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)方法與實(shí)例方法 70
2.8 接口 71
2.8.1 接口的概念 71
2.8.2 接口的實(shí)現(xiàn) 73
第3章 C#面向?qū)ο缶幊?75
3.1 什么是面向?qū)ο缶幊?75
3.1.1 思想淵源與編程哲學(xué) 75
3.1.2 面向?qū)ο蟪绦蛟O(shè)計(jì)三原則 76
3.2 類的封裝與繼承 78
3.2.1 屬性封裝 78
3.2.2 類的繼承 82
3.2.3 派生類的構(gòu)造函數(shù) 85
3.3 多態(tài)的實(shí)現(xiàn) 87
3.3.1 方法重載 87
3.3.2 運(yùn)算符重載 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#語言對(duì)排序查找的支持 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)用實(shí)例 120
第4章 Windows應(yīng)用程序開發(fā)基礎(chǔ) 126
4.1 開發(fā)步驟演示 126
4.1.1 建立項(xiàng)目 126
4.1.2 界面設(shè)計(jì) 127
4.1.3 屬性設(shè)計(jì) 127
4.1.4 代碼設(shè)計(jì) 127
4.1.5 運(yùn)行調(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 認(rèn)識(shí)控件大家族 133
4.3.2 標(biāo)簽控件 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 對(duì)話框應(yīng)用 149
4.4.1 消息框 149
4.4.2 模式對(duì)話框 150
4.4.3 通用對(duì)話框 150
4.4.4 應(yīng)用舉例 154
4.5 Windows文檔程序設(shè)計(jì) 155
4.5.1 菜單設(shè)計(jì) 155
4.5.2 單文檔界面(SDI) 157
4.5.3 多文檔界面(MDI) 160
4.5.4 文檔的打印 164
第5章 C#高級(jí)特性 166
5.1 集合與索引器 166
5.1.1 自定義集合 166
5.1.2 集合類 168
5.1.3 索引器 169
5.2 委托與事件 171
5.2.1 初識(shí)委托 171
5.2.2 為什么要使用委托 173
5.2.3 多播委托 179
5.2.4 事件 180
5.3 預(yù)處理命令 182
5.3.1 符號(hào)定義與條件編譯指令 183
5.3.2 警告錯(cuò)誤指令 184
5.3.3 代碼塊標(biāo)識(shí)指令 185
5.4 組件與程序集 185
5.4.1 組件 185
5.4.2 程序集 185
5.5 泛型 189
第6章 C#線程技術(shù) 192
6.1 引入線程的動(dòng)機(jī) 192
6.1.1 進(jìn)程的主線程 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)建、啟動(dòng)和終止 196
6.2.3 線程的掛起與恢復(fù) 199
6.2.4 線程的狀態(tài)和優(yōu)先級(jí) 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 線程的管理和維護(hù) 213
6.4.1 線程池 214
6.4.2 定時(shí)器 214
6.4.3 同步基元Mutex 214
6.5 線程的應(yīng)用 215
6.5.1 實(shí)時(shí)GUI 215
6.5.2 并發(fā)任務(wù) 217
第7章 C#圖形圖像編程 220
7.1 圖形設(shè)計(jì)基礎(chǔ) 220
7.1.1 GDI+簡(jiǎn)介 220
7.1.2 繪圖坐標(biāo)系 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)用實(shí)例 238
第8章 文件操作 244
8.1 .NET的文件I/O模型 244
8.2 管理文件夾和目錄 245
8.2.1 操作文件夾 245
8.2.2 處理路徑字符串 247
8.2.3 讀取驅(qū)動(dòng)器信息 248
8.3 文件的基本操作 249
8.3.1 文件的種類 249
8.3.2 創(chuàng)建文件 250
8.3.3 讀/寫文件 253
8.4 綜合應(yīng)用實(shí)例 258
第9章 數(shù)據(jù)庫(kù)應(yīng)用 265
9.1 數(shù)據(jù)庫(kù)基礎(chǔ) 265
9.1.1 關(guān)系模型 265
9.1.2 SQL語言 267
9.1.3 使用Visual Studio平臺(tái)創(chuàng)建SQL Server數(shù)據(jù)庫(kù) 268
9.2 ADO.NET原理 272
9.2.1 ADO.NET概述 272
9.2.2 ADO.NET對(duì)象模型 273
9.2.3 數(shù)據(jù)集與離線訪問 273
9.3 創(chuàng)建和測(cè)試連接 275
9.3.1 Connection連接字符串 275
9.3.2 使用Connection對(duì)象 276
9.3.3 連接的測(cè)試 278
9.4 在線操作數(shù)據(jù)庫(kù) 279
9.4.1 SQL命令的封裝 279
9.4.2 信息的即時(shí)呈現(xiàn) 280
9.4.3 數(shù)據(jù)庫(kù)在線訪問實(shí)例 281
9.5 數(shù)據(jù)庫(kù)的離線訪問 284
9.5.1 數(shù)據(jù)適配 284
9.5.2 數(shù)據(jù)集機(jī)制 285
9.5.3 數(shù)據(jù)庫(kù)離線訪問實(shí)例 288
9.6 訪問MySQL數(shù)據(jù)庫(kù) 291
9.6.1 C#引用MySQL庫(kù) 291
9.6.2 DataGridView設(shè)置 293
9.6.3 MySQL數(shù)據(jù)庫(kù)訪問實(shí)例 294
第10章 類與DLL庫(kù)開發(fā) 297
10.1 類對(duì)象操作功能 297
10.1.1 對(duì)象類設(shè)計(jì) 297
10.1.2 界面主程序設(shè)計(jì) 301
10.1.3 測(cè)試運(yùn)行程序 304
10.2 DLL庫(kù)的開發(fā)與應(yīng)用 305
10.2.1 DLL庫(kù)的優(yōu)點(diǎn) 305
10.2.2 開發(fā)學(xué)生DLL庫(kù) 306
10.2.3 開發(fā)加載數(shù)據(jù)DLL 309
10.2.4 界面主程序設(shè)計(jì) 310
10.2.5 主程序使用DLL庫(kù) 311
第2部分 C#習(xí)題
第1章 C#概述 315
第2章 C#語言基礎(chǔ) 315
第3章 C#面向?qū)ο缶幊?321
第4章 Windows應(yīng)用程序開發(fā)基礎(chǔ) 325
第5章 C#高級(jí)特性 326
第6章 C#線程技術(shù) 327
第7章 C#圖形圖像編程 327
第8章 文件操作 328
第9章 數(shù)據(jù)庫(kù)應(yīng)用 329
第10章 類與DLL庫(kù)開發(fā) 330
第3部分 C# 實(shí)驗(yàn)
實(shí)驗(yàn)1 C#概述 332
實(shí)驗(yàn)2 C#語言基礎(chǔ) 333
實(shí)驗(yàn)3 C#面向?qū)ο缶幊?339
實(shí)驗(yàn)4 Windows應(yīng)用程序開發(fā)基礎(chǔ) 348
實(shí)驗(yàn)5 C#高級(jí)特性 352
實(shí)驗(yàn)6 C#線程技術(shù) 355
實(shí)驗(yàn)7 C#圖形圖像編程 357
實(shí)驗(yàn)8 文件操作 360
實(shí)驗(yàn)9 數(shù)據(jù)庫(kù)應(yīng)用 361
實(shí)驗(yàn)10 類與DLL庫(kù)開發(fā) 363
第4部分 C#綜合應(yīng)用實(shí)習(xí)——學(xué)生成績(jī)管理系統(tǒng)
P.1 主界面及功能導(dǎo)航 366
P.2 學(xué)生信息查詢 369
P.3 學(xué)生信息修改 372
P.4 學(xué)生成績(jī)錄入 377
P.5 自己動(dòng)手?jǐn)U展系統(tǒng)功能 383
附錄A 習(xí)題參考答案