C#程式設計經典300例

書本介紹


內容提要
C#是構建在.NET 框架上的一種面向對象的程式語言。其語法簡潔,類型安全,具有與其他語言良好的兼容性,以及完善的錯誤處理機制。
C#程式設計經典300例分4 篇共29 章,一共包含了300 個例子,主要介紹C#編程中幾種常用應用程式的創建方法、基本語法、面向對象的基礎知識、程式中常用的數據結構與算法、項目開發中常用的設計模式、Windows窗體編程、多執行緒的使用、檔案系統的管理、註冊表技術運用、資料庫的開發、Office 的訪問、GDI+繪圖技術、自定義控制項、Vista 的Aero 磨砂玻璃特效、圖像處理的常用算法、WPF 技術、網路通信技術、多進程編程、C/C++程式調用、系統管理以及LINQ 和並行處理等技術。
本書的每個實例不但有知識點的講解,而且還將這些知識靈活運用,最關鍵的是,根據筆者多年的編程經驗,還在實例中穿插了大量的編程技巧。
本書既適用於C#初學者對基礎知識的學習,也可以幫助中高級讀者進一步提高C#編程水平。

書本目錄

第一篇基礎篇

第1章開發環境 1
實例001創建控制台應用程式 1
難度指數★★☆☆☆☆占用時間 ?○○
實例002創建Windows窗體應用程式 4
難度指數★★☆☆☆☆占用時間 ?○○
實例003創建DLL動態程式庫6
難度指數★★☆☆☆☆占用時間 ?○○
第2章語法基礎 10
實例004從控制台輸出整數類型——整數類型 10
難度指數★★☆☆☆☆占用時間 ?○○
實例005從控制台輸出浮點類型——浮點類型 11
難度指數★★☆☆☆☆占用時間 ?○○
實例006判斷矩形是否為正方形——結構體和布爾型 12
難度指數★★☆☆☆☆占用時間 ?○○
實例007利用枚舉型描述動物類型——枚舉類型 13
難度指數★★☆☆☆☆占用時間 ?○○
實例008修改圓柱體的高度和底面半徑——引用類型 14
難度指數★★☆☆☆☆占用時間 ?○○
實例009計算圓形的面積——常量 16
難度指數★★☆☆☆☆占用時間 ?○○
實例010計算矩形的面積——變數 17
難度指數★★☆☆☆☆占用時間 ?○○
實例011實現簡單計算器——算術運算符 18
難度指數★★☆☆☆☆占用時間 ?○○
實例012輸出兩個數之間的關係——關係運算符 20
難度指數★★☆☆☆☆占用時間 ?○○
實例013按位元組提取整型數值——按位運算符 21
難度指數★★☆☆☆☆占用時間 ?○○
實例014對學生成績進行分類——條件運算符 22
難度指數★★☆☆☆☆占用時間 ?○○
實例015求三個數中的最大值——三元運算符 22
難度指數★★☆☆☆☆占用時間 ?○○
實例016將兩個數的值交換——函式的使用及引用傳遞 23
難度指數★★☆☆☆☆占用時間 ?○○
實例017求解正整數的階乘——函式的遞歸調用及值傳遞 24
難度指數★★☆☆☆☆占用時間 ?○○
實例018求解多個數的乘法運算——函式參數輸出 25
難度指數★★☆☆☆☆占用時間 ?○○
第3章程式流程 27
實例019模擬超市商品打折——if條件判斷語句 27
難度指數★★☆☆☆☆占用時間 ?○○
實例020判斷字元串各字元類型——if-else條件判斷語句 28
難度指數★★☆☆☆☆占用時間 ?○○
實例021將三個數從小到大輸出——if-else嵌套使用 29
難度指數★★☆☆☆☆占用時間 ?○○
實例022輸出酒店指定星期特價菜——switch選擇語句 30
難度指數★★☆☆☆☆占用時間 ?○○
實例023判斷1到10之間的素數和合數——多個case語句 32
難度指數★★☆☆☆☆占用時間 ?○○
實例024輸出1到20之間的整數——while循環語句 33
難度指數★★☆☆☆☆占用時間 ?○○
實例025輸出1到20之間的偶數——do-while循環語句 33
難度指數★★☆☆☆☆占用時間 ?○○
實例026求表達式1?2+3?4+…?100的值——for循環語句 34
難度指數★★☆☆☆☆占用時間 ?○○
實例027用符號*排列成三角形——for循環嵌套調用35
難度指數★★☆☆☆☆占用時間 ?○○
實例028百錢買百雞算法——for循環嵌套調用 36
難度指數★★☆☆☆☆占用時間 ?○○
實例029輸出字元串中的每個字元——foreach循環語句 37
難度指數★★☆☆☆☆占用時間 ?○○
實例030輸入數據不規範時捕獲異常——異常處理語句 38
難度指數★★☆☆☆☆占用時間 ?○○
第4章數組與集合 40
實例031存儲多個學生姓名——一維數組 40
難度指數★★☆☆☆☆占用時間 ?○○
實例032生成學生成績單——創建二維數組 41
難度指數★★☆☆☆☆占用時間 ?○○
實例033求學生總成績——讀取二維數組 42
難度指數★★☆☆☆☆占用時間 ?○○
實例034計算兩個矩陣乘法——二維數組運算 43
難度指數★★☆☆☆☆占用時間 ?○○
實例035按月存儲日期——交錯數組 44
難度指數★★☆☆☆☆占用時間 ?○○
實例036生成學生信息表——ArrayList的使用 46
難度指數★★☆☆☆☆占用時間 ?○○
實例037管理學生信息——List的使用 47
難度指數★★☆☆☆☆占用時間 ?○○
實例038生成省市信息表——Dictionary的使用 48
難度指數★★☆☆☆☆占用時間 ?○○
實例039簡單的列車售票系統——二維數組的套用 50
難度指數★★☆☆☆☆占用時間 ?○○
實例040模擬舞伴配對問題——Queue的使用 51
難度指數★★☆☆☆☆占用時間 ?○○
實例041括弧匹配檢測——Stack的使用 53
難度指數★★☆☆☆☆占用時間 ?○○
第5章字元串 55
實例042將古詩分行輸出——System.Char類型 55
難度指數★★☆☆☆☆占用時間 ?○○
實例043判斷古詩默寫是否正確——Equals方法56
難度指數★★☆☆☆☆占用時間 ?○○
實例044將古詩顛倒輸出——Reverse方法 57
難度指數★★☆☆☆☆占用時間 ?○○
實例045提取古詩中的關鍵字語——Substring方法 58
難度指數★★☆☆☆☆占用時間 ?○○
實例046將數字按指定格式輸出——格式化字元串 59
難度指數★★☆☆☆☆占用時間 ?○○
實例047將日期按指定格式輸出——格式化日期 60
難度指數★★☆☆☆☆占用時間 ?○○
實例048將古詩按標點分割成句——Split方法 61
難度指數★★☆☆☆☆占用時間 ?○○
實例049古詩填空——Insert方法 62
難度指數★★☆☆☆☆占用時間 ?○○
實例050修改錯誤的古詩——Remove方法 63
難度指數★★☆☆☆☆占用時間 ?○○
實例051拼接錯亂的古詩句——StringBuilder的 使用64
難度指數★★☆☆☆☆占用時間 ?○○
實例052驗證IP位址字元串格式——Regex正則表達式 66
難度指數★★☆☆☆☆占用時間 ?○○
實例053提取古詩中含有“明月”的詩句——Contains方法 67
難度指數★★☆☆☆☆占用時間 ?○○
實例054對古詩進行Base64編碼——Base64編碼 67
難度指數★★☆☆☆☆占用時間 ?○○
第6章數據結構與算法 69
實例055將學生信息表順序倒置——順序線性表 69
難度指數★★☆☆☆☆占用時間 ?○○
實例056將兩個學生信息表交叉合併——單鍊表 71
難度指數★★☆☆☆☆占用時間 ?○○
實例057將十進制數轉換為八進制數——鏈棧 73
難度指數★★☆☆☆☆占用時間 ?○○
實例058判斷一個字元串是否為回文——鏈佇列 74
難度指數★★☆☆☆☆占用時間 ?○○
實例059將學生信息存儲到二叉樹中——二叉樹 77
難度指數★★☆☆☆☆占用時間 ?○○
實例060遍歷城市網——圖 79
難度指數★★☆☆☆☆占用時間 ?○○
實例061對學生表的前10位學生成績排序——直接插入排序 81
難度指數★★☆☆☆☆占用時間 ?○○
實例062將學生按成績進行希爾排序——希爾排序 83
難度指數★★☆☆☆☆占用時間 ?○○
實例063求學生成績的實際範圍——雙向冒泡排序 84
難度指數★★☆☆☆☆占用時間 ?○○
實例064求成績合格的學生——快速排序 85
難度指數★★☆☆☆☆占用時間 ?○○
實例065求成績在前10名的學生——直接選擇排序 86
難度指數★★☆☆☆☆占用時間 ?○○
實例066將學生按成績從低到高排序——堆排序 87
難度指數★★☆☆☆☆占用時間 ?○○
實例067將學生按成績進行歸併排序——二路歸併排序 89
難度指數★★☆☆☆☆占用時間 ?○○
實例068將學生按年級和成績進行排序——基數排序 91
難度指數★★☆☆☆☆占用時間 ?○○
實例069查找指定姓名的學生信息——順序查找 93
難度指數★★☆☆☆☆占用時間 ?○○
實例070查找指定學號的學生信息——折半查找 94
難度指數★★☆☆☆☆占用時間 ?○○
實例071查詢指定成績的學生信息——二叉排序樹 95
難度指數★★☆☆☆☆占用時間 ?○○
實例072按學生成績構造哈希表——哈希表 97
難度指數★★☆☆☆☆占用時間 ?○○
第7章類與結構 99
實例073創建員工信息表——類與對象 99
難度指數★★☆☆☆☆占用時間 ?○○
實例074統計工廠生產汽車的數量——靜態類型與成員 101
難度指數★★☆☆☆☆占用時間 ?○○
實例075自定義日期類型——構造函式重載 102
難度指數★★☆☆☆☆占用時間 ?○○
實例076計算不同級別員工的工資——函式重載 103
難度指數★★☆☆☆☆占用時間 ?○○
實例077計算學生年級平均成績——索引器 104
難度指數★★☆☆☆☆占用時間 ?○○
實例078旅行社費用計算——屬性 106
難度指數★★☆☆☆☆占用時間 ?○○
實例079計算球、圓柱和圓錐的體積——繼承 107
難度指數★★☆☆☆☆占用時間 ?○○
實例080輸出不同員工的工作內容——繼承方法 109
難度指數★★☆☆☆☆占用時間 ?○○
實例081動物園給不同的動物餵食——基類構造函式 110
難度指數★★☆☆☆☆占用時間 ?○○
實例082計算圓柱體和圓錐體表面積——多態 111
難度指數★★☆☆☆☆占用時間 ?○○
實例083圖書館管理學生借書許可權——抽象類 113
難度指數★★☆☆☆☆占用時間 ?○○
實例084計算兩個數的加、減、乘、除——接口 114
難度指數★★☆☆☆☆占用時間 ?○○
實例085模擬電話來電提醒——事件 116
難度指數★★☆☆☆☆占用時間 ?○○
實例086重新計算圓形和矩形的面積——基類事件 118
難度指數★★☆☆☆☆占用時間 ?○○
實例087輸出學生表中男生的信息——委託 120
難度指數★★☆☆☆☆占用時間 ?○○
第8章常用設計模式 123
實例088果園種植水果——簡單工廠模式 123
難度指數★★☆☆☆☆占用時間 ?○○
實例089果園引進新品種——工廠方法模式 125
難度指數★★☆☆☆☆占用時間 ?○○
實例090開闢新的果園——抽象工廠模式 127
難度指數★★☆☆☆☆占用時間 ?○○
實例091建造不同的果園——建造者模式 130
難度指數★★☆☆☆☆占用時間 ?○○
實例092建造同樣的果園——原型模式 133
難度指數★★☆☆☆☆占用時間 ?○○
實例093果園噴灑殺蟲劑——單例模式 134
難度指數★★☆☆☆☆占用時間 ?○○
實例094種植不同種類的水果——外觀模式 135
難度指數★★☆☆☆☆占用時間 ?○○
實例095果園改變種植方式——適配器模式 137
難度指數★★☆☆☆☆占用時間 ?○○
實例096果園改進種植方法——裝飾者模式 139
難度指數★★☆☆☆☆占用時間 ?○○
實例097水果的銷售——代理模式 141
難度指數★★☆☆☆☆占用時間 ?○○
實例098果園實現統一的種植方法——橋接模式 143
難度指數★★☆☆☆☆占用時間 ?○○
實例099水果的分級採摘和銷售——組合模式 145
難度指數★★☆☆☆☆占用時間 ?○○
實例100不斷更新的種植方法——策略模式 147
難度指數★★☆☆☆☆占用時間 ?○○
實例101果園的監控——觀察者模式 149
難度指數★★☆☆☆☆占用時間 ?○○
實例102果園之間互換水果品種——中介者模式 150
難度指數★★☆☆☆☆占用時間 ?○○
實例103果農培育果樹——訪問者模式 153
難度指數★★☆☆☆☆占用時間 ?○○

第二篇窗體篇

第9章滑鼠和鍵盤 156
實例104獲取滑鼠窗體坐標和螢幕坐標 156
難度指數★★☆☆☆☆占用時間 ?○○
實例105滑鼠長時間按下事件 157
難度指數★★☆☆☆☆占用時間 ?○○
實例106根據區域設定滑鼠類型 158
難度指數★★☆☆☆☆占用時間 ?○○
實例107創建滑鼠圖示 159
難度指數★★☆☆☆☆占用時間 ?○○
實例108限制滑鼠活動範圍 160
難度指數★★☆☆☆☆占用時間 ?○○
實例109隱藏和顯示滑鼠指針 161
難度指數★★☆☆☆☆占用時間 ?○○
實例110利用滑鼠書寫漢字 162
難度指數★★☆☆☆☆占用時間 ?○○
實例111按下Ctrl+Enter組合鍵實現窗體全螢幕 163
難度指數★★☆☆☆☆占用時間 ?○○
實例112禁止Alt+F4組合鍵 164
難度指數★★☆☆☆☆占用時間 ?○○
實例113使用Shift+方向鍵調整窗體大小 165
難度指數★★☆☆☆☆占用時間 ?○○
實例114錄製並回放滑鼠移動軌跡 166
難度指數★★☆☆☆☆占用時間 ?○○
實例115模擬鍵盤輸入 168
難度指數★★☆☆☆☆占用時間 ?○○
第10章窗體設計 170
實例116特殊形狀的窗體 170
難度指數★★☆☆☆☆占用時間 ?○○
實例117自動調整窗體中的控制項 171
難度指數★★☆☆☆☆占用時間 ?○○
實例118窗體動態出現 172
難度指數★★☆☆☆☆占用時間 ?○○
實例119動態窗體背景 174
難度指數★★☆☆☆☆占用時間 ?○○
實例120窗體抖動 175
難度指數★★☆☆☆☆占用時間 ?○○
實例121窗體閃爍 176
難度指數★★☆☆☆☆占用時間 ?○○
實例122拖動無框線窗體 177
難度指數★★☆☆☆☆占用時間 ?○○
實例123實現多文檔窗體 179
難度指數★★☆☆☆☆占用時間 ?○○
第11章控制項套用 181
實例124動態添加按鈕——Button控制項 181
難度指數★★☆☆☆☆占用時間 ?○○
實例125限制文本框輸入內容——TextBox控制項 183
難度指數★★☆☆☆☆占用時間 ?○○
實例126省市選擇——ComboBox控制項 184
難度指數★★☆☆☆☆占用時間 ?○○
實例127突出顯示關鍵字——RichTextBox控制項 186
難度指數★★☆☆☆☆占用時間 ?○○
實例128數據批處理——ListBox控制項 186
難度指數★★☆☆☆☆占用時間 ?○○
實例129輸入選課信息——CheckBox控制項 188
難度指數★★☆☆☆☆占用時間 ?○○
實例130瀏覽磁碟目錄——TreeView控制項 189
難度指數★★☆☆☆☆占用時間 ?○○
實例131監控程式執行進度——ProgressBar控制項 190
難度指數★★☆☆☆☆占用時間 ?○○
實例132窗體和控制項的氣泡提示——ToolTip控制項 191
難度指數★★☆☆☆☆占用時間 ?○○
實例133通知區圖示動畫——NotifyIcon控制項 192
難度指數★★☆☆☆☆占用時間 ?○○
實例134瀏覽學生信息——ListView控制項 193
難度指數★★☆☆☆☆占用時間 ?○○
實例135窗體分塊顯示——SplitContainer控制項 195
難度指數★★☆☆☆☆占用時間 ?○○
實例136窗體分頁顯示——TabControl控制項 197
難度指數★★☆☆☆☆占用時間 ?○○
實例137功能選單退出程式——MenuStrip控制項 199
難度指數★★☆☆☆☆占用時間 ?○○
實例138通知區選單退出程式——ContextMenuStrip控制項 200
難度指數★★☆☆☆☆占用時間 ?○○
第12章組件套用 202
實例139製作時鐘——Timer組件 202
難度指數★★☆☆☆☆占用時間 ?○○
實例140讀寫系統日誌——EventLog組件 203
難度指數★★☆☆☆☆占用時間 ?○○
實例141向檔案中寫入數據——BackgroundWorker組件 204
難度指數★★☆☆☆☆占用時間 ?○○
實例142密碼錯誤提示——ErrorProvider組件 206
難度指數★★☆☆☆☆占用時間 ?○○
實例143打開控制台程式——Process組件 207
難度指數★★☆☆☆☆占用時間 ?○○
實例144製作動畫——ImageList組件 208
難度指數★★☆☆☆☆占用時間 ?○○
實例145改變窗體背景顏色——ColorDialog對話框 209
難度指數★★☆☆☆☆占用時間 ?○○
實例146載入窗體背景圖片——OpenFileDialog 對話框 210
難度指數★★☆☆☆☆占用時間 ?○○
實例147改變控制項字型——FontDialog對話框 212
難度指數★★☆☆☆☆占用時間 ?○○

第三篇套用篇

第13章多執行緒編程 214
實例148模擬群發祝福簡訊 214
難度指數★★☆☆☆☆占用時間 ?○○
實例149模擬鐵路售票系統 215
難度指數★★☆☆☆☆占用時間 ?○○
實例150生產者與消費者模型 217
難度指數★★☆☆☆☆占用時間 ?○○
實例151檢測用戶線上時間 218
難度指數★★☆☆☆☆占用時間 ?○○
實例152求海量數據最大值 220
難度指數★★☆☆☆☆占用時間 ?○○
實例153連線埠掃描工具 222
難度指數★★☆☆☆☆占用時間 ?○○
實例154查找本地檔案 223
難度指數★★☆☆☆☆占用時間 ?○○
實例155統計單詞詞頻 224
難度指數★★☆☆☆☆占用時間 ?○○
實例156簡單定時器工具 225
難度指數★★☆☆☆☆占用時間 ?○○
第14章檔案系統 227
實例157開啟檔案隱藏屬性 227
難度指數★★☆☆☆☆占用時間 ?○○
實例158開啟資料夾唯讀屬性 228
難度指數★★☆☆☆☆占用時間 ?○○
實例159輸出子資料夾路徑 229
難度指數★★☆☆☆☆占用時間 ?○○
實例160統計檔案數目 230
難度指數★★☆☆☆☆占用時間 ?○○
實例161批量重命名檔案 231
難度指數★★☆☆☆☆占用時間 ?○○
實例162分割檔案 232
難度指數★★☆☆☆☆占用時間 ?○○
實例163拼接檔案 233
難度指數★★☆☆☆☆占用時間 ?○○
實例164加密檔案 235
難度指數★★☆☆☆☆占用時間 ?○○
實例165解密檔案 236
難度指數★★☆☆☆☆占用時間 ?○○
實例166二進制比較檔案 238
難度指數★★☆☆☆☆占用時間 ?○○
實例167創建XML文檔 239
難度指數★★☆☆☆☆占用時間 ?○○
實例168讀寫XML文檔 241
難度指數★★☆☆☆☆占用時間 ?○○
實例169監控檔案 242
難度指數★★☆☆☆☆占用時間 ?○○
實例170壓縮檔案 243
難度指數★★☆☆☆☆占用時間 ?○○
實例171解壓縮檔案 244
難度指數★★☆☆☆☆占用時間 ?○○
第15章註冊表技術 246
實例172應用程式開機自動啟動 246
難度指數★★☆☆☆☆占用時間 ?○○
實例173禁止使用Windows任務管理器 248
難度指數★★☆☆☆☆占用時間 ?○○
實例174隱藏指定的磁碟驅動器 249
難度指數★★☆☆☆☆占用時間 ?○○
實例175禁止打開註冊表 251
難度指數★★☆☆☆☆占用時間 ?○○
實例176實現註冊表樹形視圖瀏覽器 253
難度指數★★☆☆☆☆占用時間 ?○○
實例177在註冊表中搜尋含有指定信息的項 255
難度指數★★☆☆☆☆占用時間 ?○○
第16章資料庫技術 258
實例178創建並連線學生資料庫 258
難度指數★★☆☆☆☆占用時間 ?○○
實例179創建學生信息表 259
難度指數★★☆☆☆☆占用時間 ?○○
實例180插入學生信息 261
難度指數★★☆☆☆☆占用時間 ?○○
實例181修改學生成績 262
難度指數★★☆☆☆☆占用時間 ?○○
實例182刪除指定年級的學生信息 263
難度指數★★☆☆☆☆占用時間 ?○○
實例183查詢成績合格的學生 265
難度指數★★☆☆☆☆占用時間 ?○○
實例184輸出全部學生信息 266
難度指數★★☆☆☆☆占用時間 ?○○
實例185在窗體上顯示學生信息 267
難度指數★★☆☆☆☆占用時間 ?○○
實例186增加性別欄位 267
難度指數★★☆☆☆☆占用時間 ?○○
實例187查詢女生信息 269
難度指數★★☆☆☆☆占用時間 ?○○
實例188分組統計學生信息 270
難度指數★★☆☆☆☆占用時間 ?○○
實例189查詢學生學號與姓名 271
難度指數★★☆☆☆☆占用時間 ?○○
第17章訪問Office 274
實例190創建Word文檔 274
難度指數★★☆☆☆☆占用時間 ?○○
實例191保存Word文檔 276
難度指數★★☆☆☆☆占用時間 ?○○
實例192向Word文檔中添加頁眉和頁腳 277
難度指數★★☆☆☆☆占用時間 ?○○
實例193向Word文檔中添加頁碼 278
難度指數★★☆☆☆☆占用時間 ?○○
實例194向Word文檔中添加文字 280
難度指數★★☆☆☆☆占用時間 ?○○
實例195向Word文檔中插入圖片 281
難度指數★★☆☆☆☆占用時間 ?○○
實例196向Word文檔中添加表格 282
難度指數★★☆☆☆☆占用時間 ?○○
實例197讀取Word文檔中的表格 284
難度指數★★☆☆☆☆占用時間 ?○○
實例198創建Excel表格 286
難度指數★★☆☆☆☆占用時間 ?○○
實例199保存Excel表格 288
難度指數★★☆☆☆☆占用時間 ?○○
實例200修改Excel表格 289
難度指數★★☆☆☆☆占用時間 ?○○
實例201讀取Excel表格 291
難度指數★★☆☆☆☆占用時間 ?○○

第四篇新技術篇

第18章GDI+繪圖技術 293
實例202在窗體上繪製各種形狀 293
難度指數★★☆☆☆☆占用時間 ?○○
實例203在窗體上繪製不同樣式的線段和矩形 296
難度指數★★☆☆☆☆占用時間 ?○○
實例204利用圖片作為紋理繪製矩形 298
難度指數★★☆☆☆☆占用時間 ?○○
實例205利用漸變畫刷繪製窗體背景 300
難度指數★★☆☆☆☆占用時間 ?○○
實例206在窗體上繪製文本 302
難度指數★★☆☆☆☆占用時間 ?○○
實例207在窗體上繪製圖像 304
難度指數★★☆☆☆☆占用時間 ?○○
實例208創建並在窗體上繪製點陣圖 306
難度指數★★☆☆☆☆占用時間 ?○○
第19章自定義控制項 308
實例209電子計時器控制項 308
難度指數★★☆☆☆☆占用時間 ?○○
實例210創建點陣圖按鈕 310
難度指數★★☆☆☆☆占用時間 ?○○
實例211可用滑鼠拖動的列表控制項 312
難度指數★★☆☆☆☆占用時間 ?○○
實例212可水平和垂直顯示的水晶按鈕 314
難度指數★★☆☆☆☆占用時間 ?○○
實例213帶滑動效果的滾動條 317
難度指數★★☆☆☆☆占用時間 ?○○
實例214類似開關的複選框 319
難度指數★★☆☆☆☆占用時間 ?○○
第20章圖像處理技術 322
實例215圖像區域分割與提取 322
難度指數★★☆☆☆☆占用時間 ?○○
實例216基於差分的邊緣檢測與提取 325
難度指數★★☆☆☆☆占用時間 ?○○
實例217利用中值濾波使圖像變得平滑 328
難度指數★★☆☆☆☆占用時間 ?○○
實例218增強圖像對比度 329
難度指數★★☆☆☆☆占用時間 ?○○
實例219目標提取與區域標記 331
難度指數★★☆☆☆☆占用時間 ?○○
實例220圖像的複雜變形 333
難度指數★★☆☆☆☆占用時間 ?○○
第21章Aero技術 336
實例221帶框線窗體實現Aero磨砂玻璃效果 336
難度指數★★☆☆☆☆占用時間 ?○○
實例222窗體指定區域實現Aero磨砂玻璃效果 339
難度指數★★☆☆☆☆占用時間 ?○○
實例223無框線窗體實現Aero磨砂玻璃效果 341
難度指數★★☆☆☆☆占用時間 ?○○
實例224不規則無框線窗體Aero磨砂玻璃效果 343
難度指數★★☆☆☆☆占用時間 ?○○
實例225Aero磨砂玻璃窗體實現雙快取繪圖 344
難度指數★★☆☆☆☆占用時間 ?○○
實例226用滑鼠拖動無框線Aero磨砂玻璃窗體 346
難度指數★★☆☆☆☆占用時間 ?○○
實例227用滑鼠調整無框線Aero磨砂玻璃窗體的大小 347
難度指數★★☆☆☆☆占用時間 ?○○
第22章WPF技術 349
實例228創建WPF應用程式 349
難度指數★★☆☆☆☆占用時間 ?○○
實例229通過按鈕修改窗體的顏色 352
難度指數★★☆☆☆☆占用時間 ?○○
實例230在窗體上顯示字元串資源 354
難度指數★★☆☆☆☆占用時間 ?○○
實例231實現文本控制項的互相綁定 356
難度指數★★☆☆☆☆占用時間 ?○○
實例232實現不同樣式的按鈕 357
難度指數★★☆☆☆☆占用時間 ?○○
實例233利用按鈕模板實現自定義按鈕 360
難度指數★★☆☆☆☆占用時間 ?○○
實例234利用數據模板顯示學生信息列表 362
難度指數★★☆☆☆☆占用時間 ?○○
實例235實現幾種不同單擊事件的按鈕 364
難度指數★★☆☆☆☆占用時間 ?○○
實例236利用畫刷實現絢麗的按鈕 365
難度指數★★☆☆☆☆占用時間 ?○○
實例237實現兩個形狀的多種組合 367
難度指數★★☆☆☆☆占用時間 ?○○
實例238實現滑鼠控制3D立方體 368
難度指數★★☆☆☆☆占用時間 ?○○
第23章反射 372
實例239動態載入程式集 372
難度指數★★☆☆☆☆占用時間 ?○○
實例240晚期綁定類型 373
難度指數★★☆☆☆☆占用時間 ?○○
實例241利用接口代替反射 374
難度指數★★☆☆☆☆占用時間 ?○○
實例242利用晚期綁定反射特性 376
難度指數★★☆☆☆☆占用時間 ?○○
實例243利用反射製作程式集瀏覽器 378
難度指數★★☆☆☆☆占用時間 ?○○
實例244序列化存取類實例 380
難度指數★★☆☆☆☆占用時間 ?○○
實例245利用反射讀取序列化類 383
難度指數★★☆☆☆☆占用時間 ?○○
第24章網路編程技術 385
實例246同步服務端 385
難度指數★★☆☆☆☆占用時間 ?○○
實例247同步客戶端 387
難度指數★★☆☆☆☆占用時間 ?○○
實例248異步服務端 389
難度指數★★☆☆☆☆占用時間 ?○○
實例249異步客戶端 392
難度指數★★☆☆☆☆占用時間 ?○○
實例250簡單聊天室服務端 394
難度指數★★☆☆☆☆占用時間 ?○○
實例251簡單聊天室客戶端 396
難度指數★★☆☆☆☆占用時間 ?○○
實例252實現區域網路廣播 398
難度指數★★☆☆☆☆占用時間 ?○○
實例253實現簡單瀏覽器 400
難度指數★★☆☆☆☆占用時間 ?○○
實例254實現檔案傳輸服務端 401
難度指數★★☆☆☆☆占用時間 ?○○
實例255實現檔案傳輸客戶端 403
難度指數★★☆☆☆☆占用時間 ?○○
實例256斷點續傳檔案 405
難度指數★★☆☆☆☆占用時間 ?○○
實例257傳送電子郵件 406
難度指數★★☆☆☆☆占用時間 ?○○
實例258接收電子郵件 408
難度指數★★☆☆☆☆占用時間 ?○○
實例259利用遠程過程調用實現遠程互動 411
難度指數★★☆☆☆☆占用時間 ?○○
第25章多進程編程 414
實例260主進程調用多個子進程 414
難度指數★★☆☆☆☆占用時間 ?○○
實例261設計簡單的系統任務管理器 415
難度指數★★☆☆☆☆占用時間 ?○○
實例262設計簡單的系統服務管理器 417
難度指數★★☆☆☆☆占用時間 ?○○
實例263禁止進程多次開啟 418
難度指數★★☆☆☆☆占用時間 ?○○
實例264實現進程間同步 420
難度指數★★☆☆☆☆占用時間 ?○○
實例265實現通用守護進程 421
難度指數★★☆☆☆☆占用時間 ?○○
第26章與C/C++的互動 424
實例266C/C++中的基本類型在C#中傳遞 424
難度指數★★☆☆☆☆占用時間 ?○○
實例267C/C++中的結構體在C#中傳遞428
難度指數★★☆☆☆☆占用時間 ?○○
實例268C/C++中的指針在C#中傳遞 429
難度指數★★☆☆☆☆占用時間 ?○○
實例269C/C++中的函式指針在C#中傳遞 431
難度指數★★☆☆☆☆占用時間 ?○○
實例270C/C++中指針的指針在C#中傳遞 432
難度指數★★☆☆☆☆占用時間 ?○○
實例271利用WIN32的API改變窗體屬性 433
難度指數★★☆☆☆☆占用時間 ?○○
實例272利用WIN32的API任意拖動窗體 434
難度指數★★☆☆☆☆占用時間 ?○○
第27章系統管理 436
實例273獲取作業系統版本號 436
難度指數★★☆☆☆☆占用時間 ?○○
實例274獲取邏輯磁碟信息 437
難度指數★★☆☆☆☆占用時間 ?○○
實例275獲取磁碟驅動器空間 438
難度指數★★☆☆☆☆占用時間 ?○○
實例276獲取螢幕解析度 439
難度指數★★☆☆☆☆占用時間 ?○○
實例277查詢並修改本地IP位址 440
難度指數★★☆☆☆☆占用時間 ?○○
實例278監視記憶體使用狀態 442
難度指數★★☆☆☆☆占用時間 ?○○
實例279監視CPU使用率 442
難度指數★★☆☆☆☆占用時間 ?○○
實例280利用硬體信息對程式加密 443
難度指數★★☆☆☆☆占用時間 ?○○
第28章LINQ技術 446
實例281查詢年齡大於20歲的學生信息 446
難度指數★★☆☆☆☆占用時間 ?○○
實例282輸出成績在指定範圍內的學生信息 449
難度指數★★☆☆☆☆占用時間 ?○○
實例283對學生成績進行排序 449
難度指數★★☆☆☆☆占用時間 ?○○
實例284按年級和性別分組查詢學生信息 450
難度指數★★☆☆☆☆占用時間 ?○○
實例285在資料庫中創建學生信息表 451
難度指數★★☆☆☆☆占用時間 ?○○
實例286查詢資料庫成績合格的男生信息 454
難度指數★★☆☆☆☆占用時間 ?○○
實例287從資料庫中刪除成績不合格的學生信息 455
難度指數★★☆☆☆☆占用時間 ?○○
實例288在資料庫中修改姓王的學生成績 456
難度指數★★☆☆☆☆占用時間 ?○○
實例289降序排列資料庫中各年級男生的成績 457
難度指數★★☆☆☆☆占用時間 ?○○
實例290統計各年級學生成績總分和平均年齡 458
難度指數★★☆☆☆☆占用時間 ?○○
實例291統計男生和女生成績的最高分和最低分 458
難度指數★★☆☆☆☆占用時間 ?○○
實例292查詢年齡在20歲以上和成績在60分以下的學生459
難度指數★★☆☆☆☆占用時間 ?○○
實例293查詢資料庫第11到第15條的學生信息460
難度指數★★☆☆☆☆占用時間 ?○○
第29章並行處理技術 462
實例294利用並行技術判斷素數 462
難度指數★★☆☆☆☆占用時間 ?○○
實例295並行計算中的中斷和跳出 464
難度指數★★☆☆☆☆占用時間 ?○○
實例296並行計算中的異常處理 465
難度指數★★☆☆☆☆占用時間 ?○○
實例297並行計算中的安全集合 466
難度指數★★☆☆☆☆占用時間 ?○○
實例298利用並行循環生成超長隨機數 468
難度指數★★☆☆☆☆占用時間 ?○○
實例299利用並行技術實現矩陣運算 469
實例300利用PLINQ實現集合的並行化查詢471
難度指數★★☆☆☆☆占用時間 ?○○

作者簡介

王騫
武漢大學計算機科學與技術專業博士,中國計算機學會會員,從事計算機視覺、模式識別、圖像處理和多媒體技術等方面的研究,在國際會議和期刊上發表過大量文章,擁有多項發明專利。同時還是一位軟體架構師和軟體研發人員,具備超過十年以上的軟體研發經驗,參與過大量項目的軟體系統架構和研發,兼任多家公司的軟體研發總監,同時還為公司員工提供C#語言和.NET技術培訓。
陳宇
武漢大學計算機科學與技術專業博士,系統分析師,架構師,從事十多年的軟體研發及相關工作。現為湖北第二師範學院計算機學院教師,專注於C、C++、C#以及Java等計算機程式語言課程的講授。此外,對嵌入式系統設計也有一定的研究。
管馬舟
武漢大學計算機科學與技術專業碩士,從事圖像處理和模式識別方面的研究。還從事過.NET程式開發多年,主要涉及窗體應用程式、WPF界面程式、計算機網路和資料庫編程等,有著豐富的編程實戰經驗。參與過多個大型項目,利用C#語言和.NET技術對這些項目的軟體進行研發,同時對.NET底層原理有著很深的理解。

前言

C#是構建在.NET框架上的一種面向對象的程式語言,其語法簡潔,類型安全,具有與其他語言良好的兼容性及完善的錯誤處理機制,再加上強大的.NET框架支撐,使它成為Windows應用程式開發的神兵利器。
本書為讀者精心設計的每一個實例均來自實際開發的項目,實例將.NET框架所提供的功能和C#編程技巧充分融合,不但使讀者提高了分析實際問題的能力,學會了如何將.NET框架提供的功能靈活地運用到實際問題中,而且還學會了如何利用C#編程技巧來提高程式的執行效率。

本書特點

本書最大的優點是在實例分析、框架運用和技巧講解的同時,將C#語言的基礎知識貫穿其中,使初學者能在實例中融會貫通基礎知識。本書全面介紹C#編程時所需的基礎知識,提供的實例內容涉及實際編程中的方方面面,將.NET框架所提供的絕大部分功能運用於實例中,編程技巧更是來自筆者多年的編程經驗。全書對實例的講解簡單明了,章節內容全面,知識點由淺入深,.NET框架功能由易到難。
本書在內容安排和實例講解上的主要特點如下。
? 涵蓋廣泛:本書通過300個經典實例,將C#語言的基礎知識和.NET框架所提供的絕大部分功能穿插其中。
? 知識套用:知識點與實例充分結合,使讀者不但能學會大量的知識點,還能將知識點融會貫通,靈活運用到應用程式開發之中。
? 技巧強大:根據筆者多年的項目開發經驗,每個實例在穿插知識點的同時還引入了程式開發中的一些編程技巧,這些技巧可以大大提高程式的安全性、穩定性和執行效率等。
? 算法對比:實例在介紹一些新算法和新技術的同時,還加入了對比實驗,讓讀者更好地理解新算法和新技術的優勢所在。
? 代碼分析:每個實例除了提供主要代碼外,還有詳細的代碼分析,不但有知識點的全面講解,還有一些在編程中的習慣用法和技巧的講解。
? 難易兼顧:實例中大部分知識點都是基礎知識點,但是在運用基礎知識點的同時,還會穿插一些不常見或是對初學者比較難懂的知識點,而恰恰是這些知識點能很好地解決問題,這樣,不管是初學者還是中高級程式開發者,都能學到知識。
? 基礎實用:本書中的實例大多數是項目開發中會遇到的一些算法和技術,讓讀者在理解基礎知識的同時,也為項目開發打下堅實的基礎。

本書慨括

第一篇基礎篇(第1章~第8章),主要介紹Visual Studio開發平台的使用以及C#語言的語法基礎。本篇包括103個實例,主要涉及幾類應用程式的創建、C#語言的語法基礎、數據結構以及常用設計模式。
第二篇窗體篇(第9章~第12章),主要介紹Windows窗體應用程式的編程。本篇包括44個實例,主要涉及滑鼠和鍵盤的事件處理與控制、窗體界面設計以及常用控制項和組件的使用。
第三篇套用篇(第13章~第17章),主要介紹.NET框架所提供的一些套用功能。本篇包括54個實例,主要涉及多執行緒的使用、檔案系統的管理、註冊表的訪問、資料庫的操作及Word和Excel檔案的讀寫。
第四篇新技術篇(第18章~第29章),主要介紹C#編程中的高級技術和.NET 4.0平台所提供的新功能。本篇包括99個實例,主要涉及GDI+繪圖技術、自定義控制項技術、圖像處理技術、Areo窗體設計、WPF窗體設計、反射編程技術、網路編程技術、多進程編程技術、與C++程式互動技術、系統管理技術、LINQ技術和並行處理技術。

本書約定

【實例描述】對實例所用到的技術以及實例所解決的問題做詳細的描述,並將實例程式運行效果以圖片的形式展現出來。
【實現過程】給出實例程式實現的關鍵步驟以及每個步驟中的關鍵代碼,並對重要變數和代碼中的關鍵性語句給出詳細的注釋,對具有界面操作的步驟,還給出了明確的截圖和關鍵區域標記。
【代碼解析】對實例代碼中所涉及的知識點進行詳細說明,對知識點之間複雜的聯繫進行深入剖析,對難以理解的算法進行分步講解,對知識點在實際問題中的套用進行舉一反三。
【說明/注意/技巧】對實例中難以理解的部分進行進一步說明,對實例代碼中需要引起讀者注意的地方進行特別說明,對編程過程中所用到的編程技巧進行詳細講解。

書籍讀者

? 對於沒有任何編程經驗的初學者。
? 對於有一定C++、Java或Visual Basic編程經驗的讀者。
? 對C#有一定基礎,想進一步深入學習C#的讀者。
? 大中專院校和培訓學校的師生。
? C#中級、高級程式設計師。
閱讀本書的建議
為了提高讀者的學習效率,增強學習效果,我們特別提出以下學習建議。
? 對於沒有任何編程經驗的初學者,請熟練掌握第一篇中的基礎知識後再學習後面的章節。
? 對於有一定其他程式語言經驗的讀者,可以快速閱讀第一篇中的基礎知識,了解C#與其他幾種程式語言的區別,然後針對自己感興趣的章節進行學習。
? 對於C#有一定基礎的讀者,可以對第一篇的基礎知識進行溫故,然後對後面的章節進行學習。
? 對於已經熟練掌握C#的程式設計師,可以重點學習實例的實現過程、算法的思想以及編程的技巧。
? 對於每一個實例,希望所有的讀者先自己思考一下實現的思路,然後再閱讀,最好能夠動手將實例程式在計算機上實現,這樣學習效果更好。
? 學會查閱MSDN(Microsoft DeveloperNetwork),在調試程式的過程中,遇到問題時能夠從網路上獲取相關信息並解決問題。
編 者

熱門詞條

聯絡我們