《C #學習手冊》是2011年出版的一本圖書,作者是明日科技、蘇素芳、趙會東、王小科。該書以初學者為核心,全面介紹了使用C#語言進行程式開發的各種技術。
基本介紹
- 書名:C #學習手冊
- 作者:明日科技 蘇素芳 趙會東 王小科 等
- ISBN:978-7-121-13041-0
- 頁數:520頁
- 定價:59.00元(含DVD光碟1張)
- 出版時間:2011年5月出版
- 開本:16開
宣傳語,內 容 簡 介,前 言,本書內容,本書特色,超值DVD光碟,本書適用人群,本書參與作者,目 錄,
宣傳語
編程成功之路從此開始!
內 容 簡 介
在內容排列上由淺入深,讓讀者循序漸進地掌握編程技術;在內容講解上結合豐富的圖解和形象的比喻,幫助讀者理解“晦澀難懂”的技術;在內容形式上附有大量的提示、技巧、說明、情景套用、實戰練習等欄目,夯實讀者編程技術,豐富編程經驗。全書共分4篇23章,其中,第一篇為基礎篇,主要包括認識C#語言、熟悉C#程式開發環境、掌握C#語言基礎、掌握C#控制語句、熟悉字元和字元串、熟悉數組和集合、掌握C#面向對象程式設計、處理程式異常等內容;第二篇為核心篇,主要包括介紹WinForm窗體、使用WinForm常用控制項編程、熟悉高級控制項、組件及自定義控制項、套用ADO.技術運算元據庫、掌握C#面向對象高級技術等內容;第三篇為高級篇,主要包括操作檔案及數據流、使用GDI+技術繪圖、列印和製作報表、套用執行緒技術編程、熟悉網路通信技術、操作註冊表、調試和打包應用程式、了解C# 3.0新技術等內容;第四篇為實戰篇,主要包括文檔管理系統和進銷存管理系統兩個實戰項目。
本書附有配套光碟,光碟中提供有本書所有程式的原始碼、重點難點的實例視頻錄像、編程詞典體驗版學習軟體。其中,原始碼全部經過精心測試,能夠在Windows 2000、Windows XP、Windows 2003、Windows 7編譯和運行。
本書適用於C#的愛好者、初學者和中級開發人員,也可以作為大中專院校和培訓機構的教材。
前 言
讓想要學習編程的人員都能夠學會編程!
我可以學會編程嗎?
當然可以!即使你沒有基礎,即使你是非計算機專業畢業,即使你已過而立之年,甚至是只有國中畢業。我國最早的計算機反病毒專家、江民防毒軟體創始人王江民,國中畢業,38歲開始學習計算機,因為英語基礎不好,很多人認為他根本沒有學會編程的可能。但王江民沒有感覺自己不行,硬是克服各種困難,成為我國最成功的程式開發人員之一。
王江民學習編程的訣竅是什麼?
是實踐。王江民說:“計算機是實踐性非常強的學科。我搞計算機是用計算機,不是學計算機。” 王江民首先學的是BASIC語言。當時,為了輔導上國小的孩子,對軟體一片空白的王江民竟然決定編寫程式代替家長輔導。短短3個月,王江民就邊學邊實踐,編好了一套數學語文教學軟體,試過後效果奇佳,參加電腦報軟體交流,被評為第二名,譽為“教育軟體第一”。因為這次成功,極大激發了王江民對編程的興趣,使他從此把精力轉到了軟體領域。
所以說:實踐,是學習編程的最好方法,也是培養編程樂趣、捕獲發展機遇的最佳途徑。值得注意的是,不要等學完全部知識才去實踐,要隨時學習,隨時實踐,哪怕只學了一點點。
這本書適合我嗎?
非常適合!本書是學習C#編程的最佳選擇。所講內容通俗易懂,易於學習,貼近實踐。對於學習中的難點、重點,注意結合實際開發,採用情景套用的方式進行介紹和練習。本書光碟提供了完整的視頻講座,可以對照本書內容循序漸進進行學習。利用本書,不但可以學會編程,更能激發學習者理論聯繫實際的熱情,開發出符合市場需求的軟體和項目。
本書內容
本書分為基礎篇、核心篇、高級篇和實戰篇,總計23章內容。內容安排按照從零起步、循序漸進的學習順序,全面提高讀者學、練、用的能力。本書知識結構如下圖所示。
本書特色
最基礎、最易學
為了讓初學者易於學習,本書力求內容通俗易懂,講解寓教於樂。對於初學者難理解的專業術語,本書都進行了形象的解釋,有些還提供了例圖。書後附錄中又單獨將專業術語提煉出來,供讀者學習時參考。初學人員學習編程的另一個障礙是對抽象技術的理解,例如,介紹ADO.對象模型時,書中通過現實世界中的水庫中的各種裝置來做鮮明的對照,如下圖所示。
語音視頻講座
為了方便讀者學習本書內容,本書附贈光碟中提供了22小時視頻講座。其講解細緻、層次清楚、互動性強,不但可以加深對書中內容的理解,還可以引導學習者掌握“是什麼”、“為什麼”、“怎么辦”、“應注意些什麼”的編程思維能力。視頻不僅對書中的內容進行了詳細介紹,還對相關技術進行了有效擴展,對開發中易犯的各種錯誤給出了視頻解決方案。
注重實用性
初學者經常會遇到這樣的情況,書中講解的技術能夠理解,但不知道如何套用。例如,在學習抽象類時,讀者能夠自己定義抽象類並且能夠從抽象類派生子類,但是不知道抽象類能夠做什麼,在哪裡套用抽象類。本書在介紹技術時,注意強調技術的實用性,並且通過實例突出技術的套用價值。對於一些典型的套用,書中通過“情景套用”欄目進行重點介紹。
實戰互動練習
要掌握一項技術,最佳的方式就是多練習、多實踐。本書每章都提供了多個供讀者實踐的實例任務,讀者可以對照檢驗對知識的掌握情況。每個實例任務都分為“題目描述”、“技術指導”和“緊急救援”3部分。其中“題目描述”給出了實例功能的詳細描述和效果圖,“技術指導”給出了開發思路和關鍵技術,“緊急救援”提供了下載實例原始碼和開發文檔的地址連結。
思想與激勵
本書每章都提供了一個與軟體行業相關的勵志故事,主要有兩個目的:一是讀者在學習疲憊的時候,可以閱讀這些人物故事,放鬆一下;二是希望讀者能從這些人物事跡中有所感悟。這些人物都具有一些共同的特徵,它們都能將學習與實踐完美結合;都能發現生活中的一些小機會,藉以發揚光大;都具有專注、堅持不懈的精神……希望這些故事能成為你編程路上的精神食糧,伴您度過編程學習的日日夜夜。
超值DVD光碟
為了幫助讀者學習和使用書中的實例,本書附贈DVD光碟,裡面不僅提供了書中所有實例項目的原始碼、素材、光碟使用說明書,還提供了22小時視頻專題錄像及5個項目源碼。光碟目錄如下圖所示。
本書適用人群
本書是一部零基礎編程圖書,非常適合以下人員閱讀:
? 零基礎的初學編程人員 國中級程式開發人員
編程愛好者 想學編程的各企事業在職人員
大、中專院校的老師和學生 相關培訓機構的老師和學員
本書參與作者
本書由明日科技組織編寫,參加編寫的人員有趙會東、王小科、王軍、董大永、李繼業、尹強、張磊、房大偉、呂雙、劉雲峰、劉彬彬、王國輝、賽奎春、鞏建華、顧麗麗等。由於作者水平有限,疏漏和不足之處在所難免,歡迎廣大讀者提出寶貴意見。
非學無以廣才,非志無以成學。
祝大家讀書快樂!
明日科技
目 錄
第1篇 基礎篇
第1章 認識C#語言 17
1.1 簡介C#語言 18
1.1.1 介紹C#語言產生背景 18
1.1.2 比較C#與其他語言的
技術優勢 19
1.1.3 了解C#語言的優良特性 19
1.1.4 縱觀C#語言發展趨勢 20
1.1.5 列舉C#語言開發的成功案例 21
1.1.6 使用C#語言開發的領域 21
1.2 學好C#語言的方法 22
1.3 本章小結 23
第2章 熟悉C#程式開發環境 24
2.1 介紹C#程式開發工具 25
2.2 簡介.NET Framework框架 26
2.2.1 認識.NET Framework 26
2.2.2 討論C#與.NET的關係 27
2.3 安裝集成開發環境Microsoft Visual Studio 2008 27
2.3.1 安裝和卸載Microsoft Visual Studio 2008 27
2.3.2 安裝Microsoft Visual Studio 2008 MSDN幫助 30
2.3.3 如何使用MSDN幫助 32
2.4 熟悉Visual Studio 2008開發環境 33
2.4.1 啟動Visual Studio 2008開發平台 33
2.4.2 創建控制台應用程式 34
2.4.3 創建Windows應用程式 35
2.4.4 主視窗 36
2.4.5 選單欄 37
2.4.6 工具列 38
2.4.7 “工具箱”視窗 39
2.4.8 “解決方案資源管理器”視窗 40
2.4.9 “屬性”視窗 40
2.4.10 “窗體設計”視窗 40
2.4.11 “錯誤列表”視窗 41
2.4.12 “輸出”視窗 41
2.5 本章小結 42
第3章 掌握C#語言基礎 43
3.1 編寫第一個C#應用程式 44
3.2 認識C#程式的基本構成 45
3.2.1 使用命名空間組織C#程式 45
3.2.2 認識什麼是類 47
3.2.3 入口方法Main 48
3.2.4 標識符及關鍵字 48
3.2.5 C#語句 49
3.2.6 注釋程式代碼 50
3.3 數據類型 50
3.3.1 數據類型的分類 51
3.3.2 使用值類型 51
3.3.3 使用引用類型 54
3.4 常量與變數 55
3.4.1 聲明和使用常量 55
3.4.2 聲明變數 57
3.4.3 定義變數的作用域 58
3.4.4 給變數賦值 58
3.5 轉換數據類型 59
3.5.1 隱式類型轉換 59
3.5.2 顯式類型轉換 60
3.5.3 什麼是裝箱和拆箱 61
3.5.4 套用裝箱和拆箱操作 61
3.6 使用運算符進行計算 63
3.6.1 使用算術運算符 63
3.6.2 使用賦值運算符 66
3.6.3 使用關係運算符 67
3.6.4 使用布爾邏輯運算符 71
3.6.5 使用條件邏輯運算符 73
3.6.6 使用位移運算符 75
3.6.7 使用其他運算符 77
3.6.8 運算符優先權 79
3.6.9 情景套用:製作用戶登錄程式 80
3.7 實戰練習 81
3.7.1 用“+”運算符進行加法和串連字元串 81
3.7.2 使用“?:”運算符判斷奇偶數 82
3.8 本章小結 82
第4章 掌握C#控制語句 83
4.1 選擇語句 84
4.1.1 使用if語句實現單分支選擇結構 84
4.1.2 使用if…else語句實現雙分支選擇結構 85
4.1.3 使用if…else if…else語句實現多分支選擇結構 86
4.1.4 嵌套if語句或if…else語句的使用 87
4.1.5 使用switch語句實現多分支選擇 89
4.1.6 情景套用:使用if…else語句判斷付款方式 91
4.2 循環語句 92
4.2.1 使用while語句循環執行語句 92
4.2.2 使用do…while語句至少執行一次循環 93
4.2.3 使用for語句實現代碼循環 94
4.2.4 使用foreach語句遍歷集合 97
4.3 跳轉語句 97
4.3.1 使用break語句實現程式跳轉 98
4.3.2 使用continue語句實現程式跳轉 99
4.3.3 使用return語句實現程式跳轉 100
4.4 實戰練習 101
4.4.1 把數字1~7轉換成星期 101
4.4.2 使用while語句計算前N個自然數之和 101
4.5 本章小結 102
第5章 熟悉字元和字元串 103
5.1 Char字元類 104
5.1.1 定義一個字元 104
5.1.2 套用Char類 104
5.1.3 使用轉義字元 106
5.2 String字元串類 107
5.2.1 簡述String類 107
5.2.2 套用String類 108
5.2.3 比較字元串 109
5.2.4 格式化字元串 111
5.2.5 截取字元串 112
5.2.6 情景套用:截取檔案的名稱及路徑 113
5.3 StringBuilder字元串類 113
5.3.1 簡述StringBuilder類 114
5.3.2 套用StringBuilder類 114
5.3.3 區分StringBuilder類與String類 115
5.4 實戰練習 116
5.4.1 顛倒輸出字元串中的每個字元 116
5.4.2 去掉字元串中的所有空格 116
5.5 本章小結 117
第6章 熟悉數組和集合 118
6.1 認識數組 119
6.2 靜態數組 119
6.2.1 聲明一維數組 119
6.2.2 調用一維數組元素 120
6.2.3 聲明二維數組 121
6.2.4 調用二維數組元素 122
6.3 動態數組 123
6.3.1 聲明動態數組 123
6.3.2 調用動態數組 124
6.4 運算元組 125
6.4.1 輸入與輸出數組 125
6.4.2 定位數組 126
6.4.3 遍歷數組 127
6.4.4 排序數組 128
6.4.5 情景套用:拆分一個二維數組 131
6.5 ArrayList集合類 132
6.5.1 簡述ArrayList類 132
6.5.2 添加ArrayList元素 133
6.5.3 刪除ArrayList元素 135
6.5.4 查找ArrayList元素 137
6.5.5 遍歷ArrayList集合 137
6.6 實戰練習 138
6.6.1 把在控制台輸入的數字存入數組 138
6.6.2 添加數組元素到ArrayList集合中 139
6.7 本章小結 139
第7章 掌握C#面向對象程式設計 140
7.1 學習面向對象編程 141
7.1.1 認識什麼是面向對象編程 141
7.1.2 了解面向對象編程的特點 141
7.2 使用類封裝成員 142
7.2.1 介紹類的概念 142
7.2.2 聲明一個類 142
7.2.3 訪問類的成員 143
7.2.4 情景套用:使用類來封裝藥品信息 144
7.3 創建和使用對象 145
7.3.1 創建一個對象 145
7.3.2 論述類與對象的關係 146
7.4 使用構造方法和析構方法 147
7.4.1 使用構造方法創建對象 147
7.4.2 使用析構方法銷毀對象 148
7.5 使用方法封裝功能 149
7.5.1 聲明一個方法 149
7.5.2 使用靜態和非靜態方法 151
7.5.3 方法的重載 152
7.6 使用欄位、屬性和索引器存儲數據 154
7.6.1 使用欄位存儲數據 154
7.6.2 使用屬性存儲數據 155
7.6.3 使用索引器存儲數據 158
7.7 理解封裝、繼承和多態 159
7.7.1 套用封裝特性隱藏實現細節 159
7.7.2 套用繼承特性擴展已存在類 161
7.7.3 套用多態特性減少程式緊耦合 163
7.7.4 情景套用:通過多態增加程式的靈活性 165
7.8 使用結構和枚舉類型 166
7.8.1 使用結構類型封裝成員 166
7.8.2 使用枚舉類型改善程式 167
7.9 實戰練習 169
7.9.1 使用屬性記錄用戶編號和姓名 169
7.9.2 使用繼承特性實現計算梯形面積 170
7.10 本章小結 170
第8章 處理程式異常 171
8.1 概述異常處理 172
8.2 異常處理語句 172
8.2.1 使用try…catch語句捕獲並處理異常 173
8.2.2 使用throw語句拋出異常 174
8.2.3 使用try…catch…finally語句捕獲並處理異常 176
8.2.4 情景套用:捕獲數學四則運算中的異常 177
8.3 實戰練習 178
8.3.1 捕獲除數為0的異常 178
8.3.2 捕獲數組越界異常 179
8.4 本章小結 179
第2篇 核心篇
第9章 介紹WinForm窗體 181
9.1 創建WinForm窗體 182
9.1.1 簡述WinForm窗體 182
9.1.2 添加和刪除窗體 183
9.1.3 使用多個窗體 184
9.1.4 設定窗體的屬性 184
9.1.5 顯示與隱藏窗體 187
9.1.6 觸發窗體的事件 187
9.1.7 情景套用一:設計一個系統登錄窗體 189
9.1.8 情景套用二:製作啟動歡迎界面 190
9.2 創建MDI窗體 191
9.2.1 簡述MDI窗體 191
9.2.2 如何設定MDI窗體 191
9.2.3 排列MDI子窗體 192
9.3 創建模態窗體和非模態窗體 194
9.3.1 創建模態窗體 194
9.3.2 創建非模態窗體 195
9.4 通過繼承創建窗體 195
9.4.1 簡述繼承窗體 196
9.4.2 使用編程方式創建繼承窗體 196
9.4.3 使用繼承選擇器創建繼承窗體 197
9.4.4 在繼承窗體中修改繼承的控制項屬性 197
9.5 實戰練習 198
9.5.1 製作半透明漸顯窗體 198
9.5.2 製作標題欄文字右對齊的窗體 199
9.6 本章小結 199
第10章 使用WinForm常用控制項編程 200
10.1 簡述控制項 201
10.2 操作控制項 201
10.2.1 添加控制項 202
10.2.2 對齊控制項 202
10.2.3 鎖定控制項 202
10.2.4 刪除控制項 203
10.3 文本類控制項 203
10.3.1 使用標籤控制項(Label控制項)顯示文字 203
10.3.2 使用文本框控制項(TextBox控制項)輸入數據 204
10.3.3 使用有格式文本控制項(RichTextBox控制項)輸入數據 206
10.3.4 情景套用:製作圖片和文字混合編輯工具 209
10.4 動作類控制項 210
10.5 選擇類控制項 211
10.5.1 使用下拉組合框控制項(ComboBox控制項)選擇數據 211
10.5.2 使用複選框控制項(CheckBox控制項)選擇選項 213
10.5.3 使用單選按鈕控制項(RadioButton控制項)選擇唯一選項 214
10.5.4 使用數值選擇控制項(NumericUpDown控制項)顯示數據 216
10.5.5 使用列表控制項(ListBox控制項)顯示多項數據 218
10.5.6 情景套用:使用ComboBox控制項選擇職位 220
10.6 容器類控制項 220
10.6.1 使用容器控制項(Panel控制項)劃分窗體 221
10.6.2 使用分組框控制項(GroupBox控制項)對控制項分組 222
10.6.3 使用選項卡控制項(TabControl控制項)把窗體設計成多頁 222
10.7 選單、工具列和狀態欄控制項 225
10.7.1 使用MenuStrip控制項創建選單 226
10.7.2 使用ToolStrip控制項創建工具列 227
10.7.3 使用StatusStrip控制項創建狀態欄 228
10.8 公共對話框 229
10.8.1 “打開”對話框 229
10.8.2 “另外儲存為”對話框 230
10.8.3 “瀏覽資料夾”對話框 232
10.9 實戰練習 233
10.9.1 在Button中顯示人性化圖示 233
10.9.2 在TextBox中只允許輸入數字 234
10.10 本章小結 234
第11章 熟悉高級控制項、組件及自定義控制項 235
11.1 ImageList控制項(存儲圖像控制項) 236
11.1.1 在ImageList控制項中添加圖像 236
11.1.2 在ImageList控制項中移除圖像 237
11.2 ListView控制項(列表視圖控制項) 238
11.2.1 在ListView控制項中添加或移除項目 239
11.2.2 選擇ListView控制項中的項目 241
11.2.3 為ListView控制項中的項目添加圖示 242
11.2.4 在ListView控制項中啟用平鋪視圖 243
11.3 TreeView控制項(樹控制項) 244
11.3.1 添加和刪除樹節點 244
11.3.2 獲取樹控制項中選中的節點 246
11.3.3 設定樹控制項中節點的圖示 247
11.3.4 情景套用:使用TreeView顯示部門結構 248
11.4 DateTimePicker控制項(日期控制項) 249
11.4.1 使用DateTimePicker控制項顯示時間 250
11.4.2 使用DateTimePicker控制項以自定義格式顯示日期 251
11.4.3 返回DateTimePicker控制項中選擇的日期 252
11.5 ProgressBar控制項(進度條控制項) 253
11.6 Windows組件 254
11.6.1 使用ErrorProvider組件驗證文本框輸入 254
11.6.2 使用HelpProvider組件調用幫助檔案 256
11.6.3 使用Timer組件設定時間間隔 257
11.6.4 情景套用:製作鬧鐘計時器 258
11.7 自定義控制項 261
11.8 實戰練習 263
11.8.1 在ListView中添加書名目錄 263
11.8.2 仿製Windows資源管理器 263
11.9 本章小結 264
第12章 套用ADO.技術運算元據庫 265
12.1 介紹ADO.技術 266
12.1.1 簡述ADO. 266
12.1.2 ADO.訪問資料庫的模式 266
12.2 使用Connection對象連線資料庫 267
12.2.1 簡述Connection對象 267
12.2.2 創建資料庫連線 268
12.2.3 關閉資料庫連線 269
12.3 使用Command對象運算元據庫 271
12.3.1 簡述Command對象 271
12.3.2 設定數據源類型 271
12.3.3 執行SQL語句 273
12.3.4 情景套用一:獲取SQL Server伺服器日期 275
12.3.5 情景套用二:保存任意檔案到SQL Server資料庫 276
12.4 使用DataReader對象讀取數據 277
12.4.1 簡述DataReader對象 277
12.4.2 判斷查詢結果中是否有值 278
12.4.3 讀取數據 279
12.5 使用DataAdapter對象運算元據 279
12.5.1 簡述DataAdapter對象 280
12.5.2 填充DataSet數據集 280
12.5.3 更新數據源 281
12.6 使用DataSet對象查詢數據 283
12.6.1 簡述DataSet對象 283
12.6.2 合併DataSet內容 284
12.6.3 複製DataSet內容 285
12.7 使用DataGridView控制項運算元據 286
12.7.1 簡述DataGridView控制項 286
12.7.2 使用DataGridView控制項顯示數據 287
12.7.3 獲取DataGridView控制項中的當前單元格 288
12.8 實戰練習 289
12.8.1 實現向資料庫中插入員工信息 289
12.8.2 實現修改資料庫中的員工信息 290
12.9 本章小結 290
第13章 掌握C#面向對象高級技術 291
13.1 接口和抽象類 292
13.1.1 聲明接口 292
13.1.2 定義接口的成員 293
13.1.3 使用兩種方式實現接口 294
13.1.4 聲明抽象類 296
13.1.5 聲明抽象方法 297
13.1.6 實現抽象類及抽象方法 298
13.1.7 區分抽象類與接口 299
13.1.8 情景套用:使用接口作為方法參數編程 299
13.2 使用泛型將類型參數化 300
13.2.1 簡述泛型 300
13.2.2 如何定義類型參數T 301
13.2.3 使用泛型 301
13.3 使用疊代器遍歷數據 303
13.3.1 簡述疊代器 303
13.3.2 創建疊代器 304
13.3.3 使用疊代器 304
13.4 內部類、分部類和密封類 305
13.4.1 聲明和使用內部類 305
13.4.2 聲明和使用分部類 306
13.4.3 聲明和使用密封類 307
13.5 實戰練習 310
13.5.1 通過實現接口計算矩形面積 310
13.5.2 通過實現抽象類計算圓形面積 311
13.6 本章小結 311
第3篇 高級篇
第14章 操作檔案及數據流 313
14.1 System.命名空間 314
14.1.1 簡述System.命名空間 314
14.1.2 File類和Directory類 314
14.1.3 FileInfo類和
DirectoryInfo類 317
14.2 檔案的基本操作 320
14.2.1 判斷檔案是否存在 320
14.2.2 創建檔案 321
14.2.3 複製或移動檔案 323
14.2.4 刪除檔案 325
14.2.5 獲取檔案基本信息 326
14.3 資料夾的基本操作 327
14.3.1 判斷資料夾是否存在 327
14.3.2 創建資料夾 328
14.3.3 移動資料夾 330
14.3.4 刪除資料夾 331
14.3.5 遍歷資料夾 332
14.4 數據流操作檔案 334
14.4.1 簡述流操作 335
14.4.2 使用檔案流讀寫檔案 335
14.4.3 讀寫文本檔案 338
14.4.4 讀寫二進制檔案 340
14.4.5 情景套用:比較兩個檔案內容是否相同 343
14.5 實戰練習 344
14.5.1 實現批量複製檔案 344
14.5.2 刪除資料夾中所有檔案和子目錄 345
14.6 本章小結 346
第15章 使用GDI+技術繪圖 347
15.1 創建基本繪圖對象 348
15.1.1 簡述GDI+技術 348
15.1.2 創建Graphics對象 348
15.1.3 創建Font對象 349
15.1.4 創建Pen對象 349
15.1.5 創建Brush對象 349
15.2 使用GDI+繪製基本圖形 351
15.2.1 繪製直線 352
15.2.2 繪製矩形 353
15.2.3 繪製橢圓 353
15.2.4 繪製圓弧 354
15.2.5 繪製扇形 355
15.2.6 繪製多邊形 356
15.2.7 繪製文本 356
15.2.8 繪製圖形 357
15.2.9 情景套用:繪製柱形圖 358
15.3 實戰練習 360
15.3.1 使用GDI+繪製波形圖 360
15.3.2 在圖片中寫入文字 361
15.4 本章小結 361
第16章 列印和製作報表 362
16.1 Windows列印控制項 363
16.1.1 使用PageSetupDialog控制項設定頁面 363
16.1.2 使用PrintDialog控制項設定印表機 364
16.1.3 使用PrintDocument控制項設定列印文檔 365
16.2 簡述水晶報表 367
16.3 .NET中的水晶報表 367
16.3.1 簡述水晶報表設計器 367
16.3.2 劃分水晶報表區域 368
16.3.3 列舉水晶報表數據源 368
16.3.4 水晶報表的數據訪問模式 369
16.4 操作水晶報表 369
16.4.1 創建水晶報表及連線數據源 369
16.4.2 分組、排序及篩選水晶報表中的數據 372
16.4.3 在水晶報表中繪製圖表 374
16.4.4 情景套用:設計一個信封標籤報表 375
16.5 實戰練習 376
16.5.1 使用水晶報表顯示考生信息 376
16.5.2 使用水晶報表統計銷售百分比 376
16.6 本章小結 377
第17章 套用執行緒技術編程 378
17.1 簡述執行緒 379
17.1.1 簡述單執行緒 379
17.1.2 簡述多執行緒 379
17.1.3 執行緒的生命周期 380
17.2 執行緒調度 381
17.2.1 簡述Thread類 381
17.2.2 創建執行緒 383
17.2.3 掛起與恢複線程 384
17.2.4 執行緒休眠 385
17.2.5 終止與阻止執行緒 385
17.2.6 情景套用:使用多執行緒製作連線埠掃描工具 387
17.3 執行緒同步 390
17.3.1 簡述執行緒同步機制 391
17.3.2 使用lock關鍵字實現執行緒同步 391
17.3.3 使用Monitor類實現執行緒同步 392
17.4 實戰練習 393
17.4.1 創建執行緒來連線並運算元據庫 393
17.4.2 創建執行緒複製檔案並顯示進度條 394
17.5 本章小結 395
第18章 熟悉網路通信技術 396
18.1 計算機網路基礎 397
18.1.1 區域網路與網際網路 397
18.1.2 網路協定 397
18.1.3 連線埠及套接字 400
18.2 網路編程技術 400
18.2.1 System.命名空間 400
18.2.2 System.Sockets命名空間 404
18.2.3 System.Mail命名空間 409
18.2.4 情景套用:製作區域網路聊天程式 411
18.3 實戰練習 413
18.3.1 建立TCP伺服器 413
18.3.2 建立TCP客戶端 414
18.4 本章小結 414
第19章 操作註冊表 415
19.1 註冊表基礎知識 416
19.1.1 簡述註冊表 416
19.1.2 展示註冊表的結構 416
19.2 操作註冊表 417
19.2.1 讀取註冊表中信息 417
19.2.2 創建和修改註冊表信息 419
19.2.3 刪除註冊表中信息 421
19.2.4 情景套用:利用註冊表設計註冊軟體 424
19.3 實戰練習 425
19.3.1 添加“用記事本打開”快捷選單項 425
19.3.2 控制軟體的試用次數 426
19.4 本章小結 427
第20章 調試和打包應用程式 428
20.1 簡述程式調試 429
20.2 調試應用程式 429
20.2.1 設定斷點調試程式 429
20.2.2 開始、中斷和停止程式的
執行 430
20.2.3 使用單步執行調試程式 431
20.2.4 運行到程式的指定位置 432
20.3 打包應用程式 432
20.3.1 簡介Windows Installer 432
20.3.2 創建Windows安裝項目 433
20.3.3 製作Windows安裝程式 434
20.4 本章小結 438
第21章 了解C#3.0新技術 439
21.1 簡述C# 3.0的新技術 440
21.2 列舉C# 3.0的新特性 440
21.2.1 使用隱式類型var聲明變數 440
21.2.2 使用對象初始化器創建對象 441
21.2.3 使用集合初始化器創建集合對象 442
21.2.4 使用擴展方法向現有類型中添加新方法 443
21.2.5 使用匿名類型創建對象 444
21.2.6 使用Lambda 表達式過濾數據 445
21.2.7 定義自動實現的屬性 447
21.2.8 使用LINQ技術運算元據 449
21.2.9 情景套用:使用查詢表達式判斷用戶登錄 451
21.3 實戰練習 453
21.3.1 使用初始化器封裝學生信息 453
21.3.2 使用Lambda 表達式獲取學生信息 454
21.4 本章小結 454
第4篇 實戰篇
第22章 文檔管理系統 456
22.1 系統分析 457
22.1.1 需求分析 457
22.1.2 開發工具選擇 457
22.2 總體設計 457
22.2.1 項目規劃 457
22.2.2 系統業務流程分析 458
22.2.3 系統功能結構 458
22.3 系統設計 458
22.3.1 設計目標 458
22.3.2 開發及運行環境 459
22.3.3 資料庫設計 459
22.4 技術準備 460
22.4.1 檔案的複製、修改和刪除 461
22.4.2 資料夾的複製、修改和刪除 461
22.5 公共模組設計 462
22.5.1 檔案及資料夾模組設計 462
22.5.2 公共類設計 463
22.6 主要功能模組設計 483
22.6.1 主窗體設計 483
22.6.2 資料夾和資料集操作窗體 487
22.6.3 檔案操作窗體 490
22.6.4 導入/導出窗體 496
22.7 疑難問題分析與解決 498
22.7.1 獲取本地計算機的驅動器名稱 498
22.7.2 資料夾的複製 498
22.8 程式調試與錯誤處理 500
22.9 技術、經驗總結 501
22.9.1 技術總結 502
22.9.2 經驗總結 502
第23章 進銷存管理系統 503
23.1 系統分析 504
23.1.1 需求分析 504
23.1.2 開發工具選擇 504
23.2 總體設計 504
23.2.1 項目規劃 504
23.2.2 系統業務流程分析 505
23.2.3 系統功能結構 505
23.3 系統設計 505
23.3.1 設計目標 506
23.3.2 開發及運行環境 506
23.3.3 資料庫設計 506
23.4 技術準備 509
23.4.1 水晶報表的配置 509
23.4.2 水晶報表的使用 510
23.5 公共模組設計 510
23.5.1 檔案及資料夾模組設計 510
23.5.2 公共類設計 510
23.6 主要功能模組設計 511
23.6.1 系統登錄設計 511
23.6.2 採購進貨管理設計 511
23.6.3 庫存調撥管理設計 511
23.6.4 員工信息報表設計 512
23.6.5 商品進貨分析報表設計 512
23.6.6 系統用戶設計 512
23.7 疑難問題分析與解決 513
23.8 程式調試與錯誤處理 514
23.9 技術、經驗總結 514
23.9.1 技術總結 515
23.9.2 經驗總結 515
附錄A 專業術語表 516