第1章 緒論 1
本章目標 1
1.1 計算機處理 2
1.1.1 軟件的分類 3
1.1.2 數(shù)字計算機 4
1.1.3 二進制數(shù) 5
1.2 硬件組件 7
1.2.1 計算機體系結構 7
1.2.2 輸入/輸出設備 9
1.2.3 主存儲器和輔助存儲器 9
1.2.4 中央處理單元 12
1.3 網絡 13
1.3.1 網絡連接 13
1.3.2 局域網和廣域網 14
1.4 C#編程語言 17
1.4.1 一個C#程序 18
1.4.2 調試:啟動程序和單步調試 20
1.4.3 程序結構 20
1.4.4 注釋 21
1.4.5 標識符和保留字 22
1.5 C#的標識符 24
空白 24
1.6 程序開發(fā) 26
1.6.1 編程語言級別 26
1.6.2 編輯器、編譯器和解釋器 28
1.6.3 開發(fā)環(huán)境 29
1.6.4 語法和語義 30
1.6.5 錯誤 30
1.7 面向對象編程 31
1.7.1 問題求解 32
1.7.2 面向對象軟件原理 33
關鍵概念總結 35
自測題 36
習題 37
編程項目 39
自測題解答 40
第2章 數(shù)據和表達式 43
本章目標 43
2.1 字符串 44
2.1.1 Write和WriteLine方法 44
2.1.2 字符串連接 45
2.1.3 轉義序列 48
2.2 變量和賦值 49
2.2.1 變量 49
2.2.2 賦值語句 50
2.2.3 常量 52
2.3 原始數(shù)據類型 53
2.3.1 整數(shù)和浮點數(shù) 53
2.3.2 有符號整數(shù)和無符號整數(shù) 54
2.3.3 十進制數(shù)據類型 55
2.3.4 字符型 55
2.3.5 布爾型 56
2.4 表達式 56
2.4.1 算術運算符 57
2.4.2 運算符優(yōu)先級 57
2.4.3 增量和減量運算符 60
2.4.4 賦值運算符 60
2.5 數(shù)據轉換 61
轉換技術 63
2.6 交互式程序 64
調試:斷點和查看變量的內容 66
2.7 基于Windows的程序 67
2.7.1 基于事件的編程 67
2.7.2 處理事件 68
2.7.3 圖形用戶界面(GUI) 68
2.8 圖形模型 69
2.8.1 坐標系統(tǒng) 69
2.8.2 表示顏色 70
2.9 第1個GUI程序 71
2.9.1 在程序中添加代碼 74
2.9.2 Einstein應用程序的分析 75
2.10 繪制形狀 76
Graphics類 76
關鍵概念總結 80
自測題 80
習題 80
編程項目 82
自測題解答 83
第3章 使用類和對象 85
本章目標 85
3.1 創(chuàng)建對象 86
3.1.1 字符串概述 86
3.1.2 別名 88
3.2 深入String和StringBuilder類 90
3.3 .NET體系結構和基類庫 94
3.3.1 基類庫 95
3.3.2 using聲明 95
3.4 Random類 96
3.5 Math類 98
3.6 格式化輸出 100
3.6.1 標準的數(shù)值格式化 100
3.6.2 定制的數(shù)值格式化 103
3.6.3 組合格式化 105
3.7 枚舉類型 107
3.8 組件和容器 109
3.8.1 窗體 110
3.8.2 載入窗體 111
3.8.3 創(chuàng)建新窗體 111
3.8.4 在窗體設計器中訪問窗體控件 112
3.8.5 在窗體中放置控件 112
3.8.6 顯示和關閉Copyright窗體 113
3.8.7 顯示Copyright窗體和使用Load事件 114
3.9 繪制線和Pen(畫筆)的樣式 114
3.9.1 Visual Studio中的枚舉 115
3.9.2 Pens示例程序 116
3.9.3 客戶矩形和設置屏幕高度 118
3.10 圖像 118
標簽示范程序 119
關鍵概念總結 120
自測題 120
習題 120
編程項目 121
自測題解答 122
第4章 編寫類 123
本章目標 123
4.1 創(chuàng)建對象 124
4.1.1 在項目中增加類 124
4.1.2 實例數(shù)據 129
4.1.3 UML類圖 129
4.2 封裝 130
4.2.1 可見性修飾符 131
4.2.2 取值器和賦值器 132
4.3 方法的解析 132
4.3.1 return語句 133
4.3.2 參數(shù) 134
4.3.3 局部數(shù)據 135
4.3.4 銀行賬戶示例 135
4.4 屬性 139
編碼標準 140
4.5 再論構造函數(shù) 140
4.5.1 調試:查看對象變量的內容 141
4.5.2 調試:Step Into、Step Out和Step Over 142
4.6 為圖形化的圖像使用類 142
4.7 BRUSH(畫刷) 146
4.7.1 Hatch Brush(陰影刷) 147
4.7.2 Gradient Brush(梯度刷) 147
4.8 圖形用戶界面 148
4.9 按鈕 149
4.9.1 在源文件中查找代碼 150
4.9.2 手動添加事件 151
4.9.3 AcceptButton和CancelButton按鈕 152
4.10 文本字段 152
4.10.1 代碼中文本框的光標控制和選擇部分 154
4.10.2 多行文本框 155
4.10.3 文本框中的控制字符 155
4.11 設置Tab鍵順序 155
關鍵概念總結 156
自測題 157
習題 157
編程項目 157
自測題解答 158
第5章 條件語句和循環(huán) 159
本章目標 159
5.1 創(chuàng)建對象 162
5.1.1 相等運算符和關系運算符 163
5.1.2 邏輯運算符 164
5.2 if語句 165
5.2.1 if-else語句 167
5.2.2 使用塊語句 171
5.2.3 條件語句運算符 173
5.2.4 嵌套if語句 173
5.3 比較數(shù)據 175
5.3.1 比較浮點數(shù) 175
5.3.2 比較字符 176
5.3.3 比較對象 176
5.4 switch語句 177
5.5 while語句 180
5.5.1 無限循環(huán) 183
5.5.2 嵌套循環(huán) 184
5.5.3 其他循環(huán)控制 187
5.6 do語句 187
5.7 for語句 189
5.8 foreach語句和數(shù)組的介紹 193
5.8.1 簡單的文件I/O 194
5.8.2 比較循環(huán) 195
5.8.3 調試:Watch窗口 196
5.8.4 調試:Command窗口 196
5.9 用循環(huán)和條件語句繪圖 197
5.10 判斷事件源 199
5.11 對話框 201
5.11.1 使用對話框結果 203
5.11.2 MessageBox:系統(tǒng)提供的對話框 203
5.12 更多的按鈕組件 205
5.12.1 復選框 205
5.12.2 單選按鈕 208
5.12.3 文本框檢驗 210
5.12.4 事件處理程序的無限循環(huán) 212
關鍵概念總結 212
自測題 212
習題 213
編程項目 216
自測題解答 219
第6章 面向對象設計 221
本章目標 221
6.1 軟件開發(fā)活動 222
6.2 確定類和對象 223
分配職責 224
6.3 靜態(tài)類成員 224
6.3.1 靜態(tài)變量 224
6.3.2 靜態(tài)方法 225
6.4 類的關系 227
6.4.1 依賴性 227
6.4.2 同一個類的對象之間的依賴性 228
6.4.3 聚集 233
6.4.4 this引用 236
6.5 接口 237
IComparable接口 242
6.6 方法設計 242
6.6.1 方法分解 242
6.6.2 再論方法參數(shù) 246
6.6.3 ref關鍵字 249
6.6.4 out關鍵字 251
6.7 方法重載 251
6.8 類中的運算符重載 253
創(chuàng)建類庫 253
6.9 Object Browse(對象瀏覽器) 259
6.10 測試 260
6.10.1 評審 260
6.10.2 缺陷測試 260
6.10.3 調試:模塊級測試和改變程序順序 262
6.10.4 調試:跟蹤問題和Output窗口 262
6.11 GUI設計 264
6.12 面板和圖片框 265
6.12.1 面板 265
6.12.2 圖片框 266
6.12.3 在控件上繪圖 266
6.13 選項卡控件 270
關鍵概念總結 271
自測題 271
習題 271
編程項目 272
自測題解答 274
第7章 數(shù)組 275
本章目標 275
7.1 數(shù)組元素 276
7.2 聲明和使用數(shù)組 276
7.2.1 邊界檢查 278
7.2.2 初始化列表 282
7.2.3 數(shù)組作為參數(shù) 283
7.3 對象數(shù)組 284
7.4 命令行參數(shù) 291
7.5 可變長度參數(shù)列表 293
7.6 二維數(shù)組 296
多維數(shù)組 299
7.7 ArrayList類 299
7.7.1 指定ArrayList元素類型 302
7.7.2 ArrayList的效率 302
7.8 foreach循環(huán) 303
7.9 多邊形和折線 304
7.9.1 Point和PointF類 304
7.9.2 Size和SizeF類 305
7.9.3 Rectangle和RectangleF類 305
7.9.4 為Size、Point和Rectangle使用ArrayList 305
7.9.5 用Point、PointF、Rectangle、RectangleF和Arrays繪圖 306
7.10 鼠標事件 310
7.11 鍵事件 315
7.12 窗體特殊事件 318
關鍵概念總結 319
自測題 320
習題 320
編程項目 321
自測題解答 323
團隊項目 324
第8章 繼承 327
本章目標 327
8.1 創(chuàng)建子類 328
8.1.1 protected修飾符 331
8.1.2 base引用 332
8.1.3 多重繼承 335
8.2 重寫方法 335
影子變量 338
8.3 類層次 338
8.3.1 Object類 339
8.3.2 抽象類 340
8.3.3 接口繼承 341
8.4 可見性 342
8.5 繼承設計 344
限制繼承 345
8.6 組件類繼承 345
8.7 重寫事件處理程序 347
8.8 擴展GUI組件 350
8.9 Timer類 356
關鍵概念總結 359
自測題 360
習題 360
編程項目 360
自測題解答 362
團隊項目 362
第9章 多態(tài) 365
本章目標 365
9.1 晚綁定 366
9.2 使用繼承的多態(tài) 366
9.3 使用接口的多態(tài) 375
9.4 排序 377
9.4.1 選擇排序 377
9.4.2 插入排序 382
9.4.3 排序算法比較 383
9.5 查找 384
9.5.1 線性查找 384
9.5.2 二分查找 386
9.5.3 查找算法比較 388
9.6 多態(tài)的設計 388
9.7 系統(tǒng)支持的對話框 389
9.7.1 打開文件對話框(OpenFileDialog) 392
9.7.2 保存文件對話框(SaveFileDialog) 393
9.7.3 文件夾瀏覽對話框(FolderBrowserDialog) 393
9.7.4 顏色對話框(ColorDialog) 393
9.7.5 字體對話框(FontDialog) 393
9.7.6 頁面設置對話框(PageSetupDialog) 394
9.7.7 打印對話框(PrintDialog) 394
9.8 滑塊和數(shù)值上下調節(jié)計數(shù)器 395
9.9 系統(tǒng)注冊表操作 397
關鍵概念總結 400
自測題 401
習題 401
編程項目 401
自測題解答 402
第10章 異常 403
本章目標 403
10.1 異常處理 404
10.2 未捕獲的異常 404
10.3 try-catch語句 406
finally子句 409
10.4 異常傳播 409
10.5 異常類層次 412
10.6 I/O異常 415
10.7 產生定制事件 418
10.7.1 創(chuàng)建委托(Delegate) 418
10.7.2 定義事件 418
10.7.3 產生事件 419
10.7.4 處理事件 419
10.7.5 回顧事件處理 420
10.8 工具提示和助記符 426
10.8.1 工具提示 426
10.8.2 助記符(快捷鍵) 427
10.8.3 禁用組件 427
10.9 列表框和組合框 429
各種控件示例 430
10.10 日歷控件 433
10.11 狀態(tài)欄 435
10.12 菜單 436
10.13 串行化 444
10.14 帶滾動條的面板 445
10.15 帶滾動條的文本框 447
10.16 拆分窗格 449
10.17 其他示例程序 452
關鍵概念總結 453
自測題 453
習題 453
編程項目 454
自測題解答 454
團隊項目 455
第11章 遞歸 457
本章目標 457
11.1 遞歸地思考 459
11.1.1 無限遞歸 459
11.1.2 數(shù)學中的遞歸 460
11.2 遞歸編程 460
11.2.1 遞歸與迭代 461
11.2.2 直接遞歸與間接遞歸 462
11.3 使用遞歸 462
11.3.1 遍歷迷宮 462
11.3.2 漢諾塔 466
11.4 圖形中的遞歸 470
11.4.1 平鋪圖片 470
11.4.2 分形 472
11.5 打印 477
11.5.1 Print文檔(PrintDocument) 477
11.5.2 打印機設置(PrinterSettings) 478
11.5.3 使用預覽對話框(PrintPreviewDialog) 478
11.5.4 打印頁 479
11.5.5 PrintPage事件處理程序 479
11.5.6 打印示例 480
關鍵概念總結 483
自測題 483
習題 484
編程項目 484
自測題解答 486
團隊項目 487
第12章 集合和數(shù)據結構 489
本章目標 489
12.1 集合和數(shù)據結構 490
接口和實現(xiàn)分離 490
12.2 動態(tài)表示 490
12.2.1 動態(tài)結構 491
12.2.2 動態(tài)鏈表 491
12.2.3 其他動態(tài)列表表示 495
12.3 線性數(shù)據結構 496
12.3.1 隊列 496
12.3.2 棧 498
12.4 非線性數(shù)據結構 500
12.4.1 樹 500
12.4.2 圖 501
12.5 C#集合類 501
12.6 為類添加定制索引器 505
關鍵概念總結 506
自測題 507
習題 507
編程項目 508
自測題解答 510
附錄A 數(shù)值系統(tǒng) 513
A.1 位值 513
A.2 比10大的基 514
A.3 轉換 516
A.4 快捷轉換 517
附錄B Unicode字符集 519
附錄C 編碼標準、軟件工程和相關主題 521
C.1 質量問題 521
C.2 命名常規(guī) 522
C.3 編碼規(guī)范 524
C.4 內部文檔和樣式 525
附錄D Visual Studio安裝指南 527
D.1 從Web上安裝Visual Studio 527
D.2 Visual Studio的安裝 529
D.3 啟動Visual Studio 531
D.4 將Visual Studio的圖標增加到桌面 532
D.5 設置命令行提示 533