1. Visual C++典型模塊與項目實戰大全的目錄
《visual c++典型模塊與項目實戰大全》
第1篇 visual c++項目開發基礎
第1章 vc++ 6.0程序設計簡介 2
教學視頻:11分鍾
1.1 visual c++ 6.0集成開發環境 2
1.1.1 vc++ 6.0集成開發環境菜單欄及工具欄簡介 3
1.1.2 vc++ 6.0集成開發環境工作區簡介 3
1.2 visual c++ 6.0的「hello world!」 4
1.2.1 vc++ 6.0可創建的工程簡介 5
1.2.2 創建基於win32 console application的「hello world!」 6
1.2.3 創建基於mfc app wizard(exe)的「hello world!」 7
1.3 vc++集成開發環境使用技巧 8
1.3.1 快速定位 8
1.3.2 快速格式化一段源代碼 9
1.3.3 從工程中徹底刪除一個類 10
1.3.4 在vc++中設置頭文件和庫文件 10
1.3.5 在工作區導入多個項目 10
1.4 vc++集成開發環境常見問題及解決方法 11
1.4.1 工程文件簡介 11
1.4.2 常見問題及解決方法 12
.1.5 小結 13
第2章 c++編程基礎 14
教學視頻:25分鍾
2.1 變數 14
2.1.1 標識 14
2.1.2 基本數據類型 15
2.1.3 變數的聲明 16
2.2 操作、運算符 16
2.2.1 賦值運算 16
2.2.2 算術運算 17
2.2.3 邏輯運算 18
2.2.4 關系運算 19
2.2.5 位操作運算 19
2.2.6 條件操作運算 20
2.2.7 其他操作運算 20
2.2.8 運算符優先順序 22
2.3 控制結構 22
2.3.1 條件控制結構 23
2.3.2 循環控制結構 23
2.3.3 選擇控制結構 25
2.3.4 分支跳轉控制結構 25
2.4 函數 26
2.5 類 26
2.5.1 類的成員變數和成員函數 27
2.5.2 類的繼承 28
2.6 小結 29
第2篇 典型模塊開發
第3章 桌面時鍾(gdi實現) 32
教學視頻:64分鍾
3.1 桌面時鍾界面簡介 32
3.2 桌面時鍾的功能簡介 33
3.2.1 桌面時鍾界面控制功能簡介 33
3.2.2 桌面時鍾時間設置功能簡介 36
3.3 控制項知識 37
3.4 實現桌面時鍾的關鍵技術 39
3.4.1 gdi基礎知識簡介 39
3.4.2 gdi編程基礎簡介 40
3.5 gdi的基礎類 40
3.5.1 cdc類 40
3.5.2 畫筆類(線色類) 41
3.5.3 畫刷類(面色類) 43
3.5.4 字體類 45
3.5.5 點類 46
3.5.6 大小類 47
3.5.7 矩形類 47
3.6 gdi繪制像素點的實際應用 49
3.7 gdi繪制線條的實際應用 50
3.7.1 gdi繪制直線的函數 50
3.7.2 用畫筆繪制線的步驟 52
3.7.3 繪制線條的示例 53
3.8 gdi繪制填充圖的實際應用 58
3.8.1 矩形填充圖 58
3.8.2 扇形填充圖 59
3.8.3 填充拖動矩形 60
3.8.4 填充區域 63
3.9 gdi輸出字體的實際應用 65
3.10 表盤模塊的設計與實現 66
3.10.1 表盤設置模塊 66
3.10.2 表盤的繪制模塊 68
3.11 表針模塊的設計與實現 73
3.11.1 表針設置模塊 73
3.11.2 表針繪制模塊 75
3.12 數字時鍾模塊的設計與實現 77
3.12.1 數字時鍾設置模塊 77
3.12.2 數字時鍾繪制模塊 79
3.13 數字日期模塊的設計與實現 82
3.14 背景模塊的設計與實現 86
3.15 鬧鈴模塊的設計與實現 87
3.15.1 蜂鳴器音樂選擇及播放模塊 88
3.15.2 鬧鈴設置主模塊 89
3.16 系統時間設置模塊的設計與實現 91
3.17 主界面模塊的設計與實現 92
3.17.1 主窗體界面模塊的設計與實現 92
3.17.2 主窗體功能模塊的設計與實現 94
3.17.3 主窗體控制模塊的設計與實現 97
3.18 小結 102
第4章 電子郵件收發管理器(jmail+自定義按鈕) 103
教學視頻:58分鍾
4.1 電子郵件收發管理器簡介 103
4.1.1 主程序簡介 103
4.1.2 郵箱設置信息功能簡介 104
4.1.3 收件箱功能簡介 104
4.1.4 發件箱功能簡介 105
4.1.5 資源管理器技術簡介 106
4.2 自定義的按鈕控制項 107
4.2.1 定義一個新類繼承於cbutton 107
4.2.2 定製按鈕的背景圖像 108
4.2.3 為按鈕添加聲音 115
4.2.4 重載滑鼠事件 117
4.3 定製具有個性背景圖像的對話框 120
4.4 實現電子郵件收發管理器的關鍵技術 122
4.4.1 jmail的基礎知識 122
4.4.2 接收郵件 123
4.4.3 發送郵件 124
4.5 電子郵件收發管理器的實現 126
4.5.1 主窗體的設計與實現 126
4.5.2 設置模塊的設計與實現 130
4.5.3 收件箱模塊的設計與實現 130
4.5.4 寫郵件模塊的設計與實現 135
4.6 小結 138
第5章 系統資源管理器(文件操作+文件檢索+多線程) 139
教學視頻:32分鍾
5.1 系統資源管理器簡介 139
5.1.1 樹形結構瀏覽系統文件資源 139
5.1.2 列表視圖顯示指定目錄下的文件資源 139
5.1.3 搜索文件 140
5.1.4 資源管理器的技術簡介 140
5.2 樹形視圖控制項 141
5.2.1 建立樹形視圖控制項工程 141
5.2.2 為樹形視圖添加名為「根節點」的節點 141
5.2.3 為樹形視圖插入多層節點 142
5.2.4 為樹形視圖添加圖像列表 143
5.2.5 設置樹形視圖的顯示風格 144
5.2.6 為樹形視圖添加項目選中處理函數 145
5.2.7 為樹形視圖添加項目展開處理函數 146
5.3 列表型視圖控制項 147
5.3.1 創建一個列表視圖工程 147
5.3.2 為列表型視圖添加圖像列表 147
5.3.3 為列表型視圖添加新項目 148
5.3.4 為列表型視圖添加項目雙擊事件 148
5.4 windows文件系統的基礎知識 149
5.5 shell命名空間中對象的標識方法 150
5.5.1 文件標識簡介 150
5.5.2 什麼是文件標識列表 150
5.5.3 什麼是文件標識列表指針 150
5.5.4 文件標識列表指針的常用處理函數 151
5.6 通過shell介面遍歷系統文件和文件夾 153
5.6.1 ishellfolder介面的主要方法 153
5.6.2 ienumidlist介面的主要方法 154
5.6.3 遍歷文件系統的步驟 155
5.7 系統資源管理器的實現過程簡介 155
5.8 主框架模塊的設計實現 156
5.8.1 為主框架訂制工具欄 156
5.8.2 分割視圖區 156
5.9 樹形視圖顯示文件系統 157
5.9.1 初始化樹形控制項 157
5.9.2 實現獲取itemidlist文件名稱的功能 158
5.9.3 實現填充樹形控制項的功能 160
5.9.4 實現展開樹形控制項節點的功能 162
5.9.5 實現樹形控制項節點切換的功能 163
5.9.6 實現獲取文件的系統圖標 164
5.10 列表視圖顯示系統文件 165
5.10.1 初始化列表視圖 165
5.10.2 實現樹形視圖項目添加的功能 165
5.10.3 執行滑鼠雙擊對象 168
5.11 路徑的前進、後退與向上操作的實現 170
5.11.1 路徑的前進、後退操作的實現 171
5.11.2 路徑的向上操作 174
5.12 文件查找模塊的實現 174
5.12.1 添加並實現文件查找類 174
5.12.2 文件查找界面設計與實現 178
5.12.3 文件查找控制項屬性 179
5.12.4 實現文件查找功能 179
5.13 小結 183
第6章 系統任務管理工具(系統監控+系統進程) 184
教學視頻:23分鍾
6.1 任務管理器簡介 184
6.1.1 應用程序管理模塊 184
6.1.2 進程管理模塊 184
6.1.3 性能監測模塊 185
6.1.4 任務管理器的技術簡介 185
6.2 控制項知識 186
6.2.1 tab控制項的使用 186
6.2.2 list控制項用作report 187
6.3 實現系統任務管理的關鍵技術 187
6.3.1 如何獲取應用程序信息 187
6.3.2 如何獲取系統進程信息 188
6.3.3 如何啟動、停止進程 189
6.3.4 如何獲取內存信息 190
6.3.5 如何獲取cpu信息 190
6.4 主框架模塊的設計實現 193
6.4.1 設計主窗體菜單欄 193
6.4.2 文件菜單功能實現 194
6.4.3 關機菜單功能實現 194
6.4.4 實現tab控制項的功能 196
6.5 應用程序監控模塊的實現 198
6.5.1 添加並設置列表控制項 198
6.5.2 檢測系統啟動的應用程序 198
6.5.3 實現應用程序實時監測功能 200
6.5.4 實現應用程序的控制功能 200
6.6 進程監控模塊的實現 202
6.6.1 添加並設置列表控制項 202
6.6.2 監測當前的進程信息 202
6.6.3 實現進程的實時監測 205
6.6.4 實現關閉指定進程的功能 206
6.7 內存監測模塊的實現 207
6.8 cpu監測模塊的實現 213
6.9 小結 217
第7章 ftp客戶端程序(internet會話+ftp技術) 218
教學視頻:29分鍾
7.1 ftp客戶端程序簡介 218
7.1.1 樹形結構瀏覽本地系統文件資源 218
7.1.2 列表視圖顯示ftp伺服器上的文件資源 218
7.1.3 拖放實現文件的上傳與下載 218
7.1.4 資源管理器的技術簡介 220
7.2 控制項知識 221
7.2.1 製作浮動對話框 221
7.2.2 為浮動對話框的控制項添加處理事件 222
7.2.3 樹形視圖項目的拖動 223
7.2.4 列表視圖項目的拖動 226
7.3 實現ftp客戶端的關鍵技術 228
7.3.1 cinternetsession類 228
7.3.2 ftpconnection類 229
7.4 ftp客戶端程序的模塊實現 230
7.4.1 ftp連接模塊的設計實現 230
7.4.2 獲取ftp當前路徑下的所有文件信息 233
7.4.3 ftp客戶端文件下載模塊 236
7.4.4 ftp客戶端文件上傳模塊 237
7.5 小結 238
第8章 音樂播放器(active movie control object控制項+不規則按鈕+托盤) 239
教學視頻:37分鍾
8.1 音樂播放器簡介 239
8.1.1 打開音樂文件 239
8.1.2 播放音樂的功能 240
8.1.3 暫停播放及停止播放功能 240
8.1.4 循環播放功能 241
8.1.5 調節音量大小 241
8.1.6 將播放器最小化到托盤 241
8.1.7 音頻播放器的技術簡介 241
8.2 slider控制項 242
8.2.1 用作標識進度的slider控制項 242
8.2.2 調節音量的slider控制項 243
8.3 定製不規則的按鈕控制項 244
8.3.1 自定義按鈕類 244
8.3.2 自定義按鈕的構造及析構的實現 246
8.3.3 創建不規則按鈕的方法 246
8.3.4 實現不規則按鈕的幾個重要方法 248
8.3.5 為不規則按鈕添加背景圖像 249
8.3.6 實現按鈕的狀態背景圖像 250
8.3.7 實現添加按鈕標題及邊框的功能 251
8.3.8 實現繪制按鈕的功能 253
8.3.9 處理按鈕的滑鼠事件 254
8.3.10 滑鼠狀態決斷及點測試功能的實現 255
8.3.11 自定義不規則按鈕的實現實例 256
8.4 實現音樂播放器的關鍵技術 258
8.4.1 active movie control object控制項 258
8.4.2 音樂播放器最小化到托盤的實現方法 260
8.5 音樂播放器的界面設計 262
8.5.1 創建播放器工程 262
8.5.2 設計並載入播放器背景圖像 263
8.5.3 定製並添加不規則按鈕 264
8.6 音樂播放器的功能設計與實現 265
8.6.1 設計播放器的屬性變數 265
8.6.2 利用向導添加功能函數 266
8.6.3 實現打開音頻文件的功能 266
8.6.4 實現開始播放音樂的功能 267
8.6.5 實現暫停播放音樂的功能 267
8.6.6 實現停止播放音樂的功能 268
8.6.7 實現循環播放音樂的功能 268
8.6.8 實現最小化播放器的功能 268
8.6.9 實現關閉播放器的功能 269
8.6.10 處理托盤圖標消息 269
8.6.11 實現播放器的拖動功能 270
8.6.12 實現播放器的音量控制功能 270
8.6.13 繪制播放器界面 271
8.6.14 監控音樂的播放器進度 273
8.7 小結 274
第9章 視頻播放器(directshow技術) 275
教學視頻:37分鍾
9.1 視頻播放器簡介 275
9.1.1 視頻播放器功能總述 275
9.1.2 打開視頻文件 276
9.1.3 播放控制功能簡介 276
9.1.4 視頻播放器的技術簡介 277
9.2 擴展cstatic控制項類 277
9.2.1 重寫presubclasswindow()函數 278
9.2.2 重寫defwindowproc()函數 279
9.2.3 實現控制項的拖曳功能 280
9.3 擴展csliderctrl控制項類 281
9.4 directshow在vc++ 6.0下的環境搭建 282
9.4.1 directshow的安裝環境 282
9.4.2 directshow的參考文檔 282
9.4.3 編譯baseclasses 282
9.4.4 配置directshow針對所有項目的環境 283
9.4.5 引入項目所需要的directshow庫文件 284
9.5 directshow簡介 284
9.5.1 directx組件簡介 285
9.5.2 directshow系統組成 285
9.5.3 directshow開發簡單媒體播放器的過程 287
9.6 directshow介面管理類 288
9.6.1 實例化過濾器圖表管理器 289
9.6.2 創建過濾器圖表 290
9.6.3 過濾器圖表中多媒體數據流方法的介面 290
9.6.4 處理過濾器圖表的事件介面 291
9.6.5 視頻特性設置介面 292
9.6.6 音頻流的音量和平衡控制介面 293
9.6.7 播放器窗口的屬性設置介面 294
9.6.8 搜索數據流位置和設置播放速率的介面 295
9.6.9 釋放介面指針 296
9.7 工具條及狀態欄模塊的實現 297
9.7.1 工具條及狀態欄模塊界面的設計與實現 298
9.7.2 添加界面控制項變數 298
9.7.3 綁定過濾器圖表管理器 298
9.7.4 初始化工具欄 299
9.7.5 調整工具欄的位置 300
9.7.6 繪制狀態欄 300
9.7.7 實現進度條功能 302
9.7.8 實現聲音控制功能 303
9.7.9 功能按鈕使能控制 303
9.8 播放器主窗體的設計與實現 303
9.8.1 播放器主窗體的界面設計與實現 304
9.8.2 主窗體初始化模塊的設計與實現 305
9.8.3 播放窗口消息處理模塊的設計與實現 307
9.8.4 菜單消息處理模塊的設計與實現 311
9.8.5 工具欄控制窗體消息處理模塊的實現 318
9.9 小結 318
第10章 區域網聊天工具(socket+tcp+自定義消息+圖像組合框) 319
教學視頻:33分鍾
10.1 區域網聊天工具簡介 319
10.1.1 視頻播放器功能簡介 319
10.1.2 視頻播放器技術簡介 320
10.2 控制項知識 321
10.2.1 點陣圖按鈕cbitmapbutton 321
10.2.2 ip編輯框 325
10.2.3 圖像列表控制項 328
10.2.4 圖像組合框 330
10.3 socket簡介 332
10.4 socket常用數據類型 332
10.4.1 socket類型數據 333
10.4.2 word類型數據 333
10.4.3 wsadata類型及lpwsadata類型 333
10.4.4 sockaddr_in及in_addr類型數據 334
10.4.5 sockaddr類型 334
10.5 socket常用函數 335
10.5.1 初始化socket環境 335
10.5.2 使用socket()函數實現創建套接字功能 335
10.5.3 使用setsockopt()函數實現設置socket的屬性功能 336
10.5.4 使用closesocket()函數實現關閉套接字功能 336
10.5.5 使用bind()函數實現地址綁定功能 336
10.5.6 使用listen()函數實現監聽埠功能 336
10.5.7 使用accept()函數實現接收連接功能 337
10.5.8 使用connect()函數實現連接伺服器功能 337
10.5.9 使用send()函數實現發送數據功能 338
10.5.10 使用rect()函數實現接收數據功能 338
10.6 csocket的封裝 339
10.7 伺服器端模塊的設計與實現 340
10.7.1 伺服器端模塊界面設計與實現 340
10.7.2 伺服器模塊的功能設計與實現 342
10.8 客戶端模塊的設計與實現 347
10.8.1 客戶端界面的設計與實現 348
10.8.2 客戶端功能的設計與實現 349
10.9 小結 353
第11章 截屏工具(動態鏈接庫+鍵盤鉤子+游標捕獲+類橡皮類crecttracker) 354
教學視頻:25分鍾
11.1 截屏工具簡介 354
11.1.1 主界面使用簡介 354
11.1.2 截圖模塊簡介 355
11.2 動態鏈接庫 356
11.2.1 dll技術簡介 356
11.2.2 vc++ 6.0開發dll實例 357
11.3 鉤子技術 359
11.3.1 鉤子技術簡介 359
11.3.2 鍵盤鉤子dll的實現 361
11.3.3 鍵盤鉤子dll的調用 363
11.4 crecttracker技術簡介 364
11.4.1 crecttracker類的常用數據變數 364
11.4.2 crecttracker類的常用成員函數 365
11.4.3 crecttracker類的應用實例 366
11.5 功能控制模塊的設計與實現 369
11.5.1 功能控制模塊的界面設計及實現 369
11.5.2 截屏模塊跳轉功能的實現 372
11.5.3 控制模塊最小化到托盤功能的實現 372
11.5.4 控制模塊在托盤中消息處理功能的實現 373
11.5.5 關閉截屏工具功能的實現 373
11.5.6 捕獲鍵盤鉤子消息功能的實現 374
11.6 截屏主功能模塊的設計與實現 375
11.6.1 信息提示框的設計與實現 375
11.6.2 截圖模塊主窗體的設計與實現 379
11.6.3 截圖功能的設計與實現 384
11.7 小結 389
第12章 掃雷游戲(定時器+gdi+數字時鍾) 390
教學視頻:41分鍾
12.1 掃雷游戲簡介 390
12.1.1 游戲界面簡介 390
12.1.2 游戲規則及方法簡介 391
12.2 游戲系統資源 392
12.2.1 菜單資源 392
12.2.2 點陣圖資源 392
12.2.3 聲音資源 394
12.3 游戲初始化及游戲界面繪制 394
12.3.1 初始化游戲變數 397
12.3.2 初始化游戲 400
12.3.3 繪制游戲界面 401
12.4 游戲功能控制及使用說明的實現 405
12.4.1 游戲菜單選項的功能實現 405
12.4.2 幫助菜單選項的功能實現 408
12.4.3 菜單選項的選中狀態控制函數 409
12.5 游戲與用戶的交互 411
12.5.1 滑鼠單擊事件的處理 411
12.5.2 滑鼠左鍵抬起事件的處理 412
12.5.3 滑鼠左右鍵同時按下事件的處理 415
12.5.4 滑鼠左右鍵同時按下後滑鼠抬起事件的處理 416
12.5.5 滑鼠右鍵按下事件的處理 417
12.5.6 滑鼠右鍵抬起事件的處理 418
12.6 游戲結果處理函數 419
12.7 掃雷英雄榜模塊的實現 421
12.7.1 注冊表簡介 421
12.7.2 vc++對注冊表的操作 421
12.7.3 注冊表在本實例中的應用 423
12.7.4 查詢英雄榜數據 425
12.7.5 英雄榜新紀錄的更新模塊 427
12.8 小結 428
第13章 串口調試器(串口編程+消息+多線程) 429
教學視頻:38分鍾
13.1 串口調試器簡介 429
13.1.1 串口調試器界面簡介 429
13.1.2 串口設置功能簡介 430
13.1.3 數據收發功能簡介 430
13.1.4 情景模式簡介 431
13.1.5 數據保存功能簡介 432
13.2 圖標工具欄 433
13.2.1 載入工具欄圖像資源 433
13.2.2 添加工具欄資源 434
13.2.3 創建工具欄實例 434
13.2.4 為工具欄添加圖像資源關聯 435
13.2.5 為工具欄添加提示信息 435
13.3 分組單選按鈕 437
13.3.1 創建單選按鈕測試工程 437
13.3.2 修改單選按鈕屬性 437
13.3.3 添加單選按鈕關聯變數 438
13.3.4 檢測單選按鈕效果 438
13.4 串口基礎知識 439
13.4.1 串口簡介 439
13.4.2 串口通信簡介 439
13.5 串口通信編程基礎 440
13.5.1 打開串口 441
13.5.2 配置串口 442
13.5.3 讀寫串口 445
13.5.4 關閉串口 448
13.6 自定義串口類 449
13.6.1 構造及析構函數的實現 450
13.6.2 串口打開函數的實現 451
13.6.3 processerrormessage()函數的實現 453
13.6.4 串口線程函數的實現 454
13.6.5 串口線程監控函數的實現 456
13.6.6 串口關閉函數的實現 457
13.6.7 讀取串口數據函數的實現 457
13.6.8 寫串口函數的實現 458
13.6.9 數據發送函數的實現 460
13.7 主窗體的界面設計 460
13.7.1 主界面布局設計 460
13.7.2 主界面菜單的設計 461
13.7.3 組合框顯示控制及初始化 462
13.7.4 單選按鈕的控制及初始化 462
13.7.5 復選框的控制及初始化 463
13.7.6 添加控制項關聯變數 463
13.8 配置窗體的設計與實現 463
13.8.1 配置窗體的界面設計 464
13.8.2 設置串口控制部分的組合框 464
13.8.3 控制項添加關聯變數 468
13.9 主窗體菜單及工具欄模塊的功能實現 469
13.9.1 串口開關控制功能的實現 469
13.9.2 串口的屬性設置 471
13.9.3 將接收到的數據保存到文件中 472
13.9.4 計數清零 473
13.10 接收數據模塊的功能實現 474
13.10.1 接收數據顯示控制模塊 474
13.10.2 接收數據處理模塊 476
13.11 發送數據模塊的功能實現 478
13.11.1 發送數據控制功能的實現 478
13.11.2 發送數據操作的控制功能 479
13.12 小結 482
第14章 列印工具(文檔視圖+設備環境上下文) 483
教學視頻:18分鍾
14.1 列印編程基礎知識 483
14.1.1 通用列印對話框 483
14.1.2 設備環境上下文 485
14.1.3 視圖列印 490
14.1.4 保存和維護列印作業 491
14.2 列印模塊設計及功能展示 493
14.2.1 列印工具模塊功能展示 493
14.2.2 列印工具程序的流程和原理 493
14.3 列印工具 495
14.3.1 創建列印模塊工程 496
14.3.2 創建各個功能類 496
14.3.3 控制列印對話框 497
14.3.4 創建列印視圖 501
14.3.5 創建列印預覽視圖 504
14.3.6 實現列印列表功能 505
14.4 小結 509
第15章 監控技術(進程+opencv) 510
教學視頻:26分鍾
15.1 監控技術背景相關知識 510
15.2 本地監控 510
15.2.1 windows常用系統性能計數器對象簡介 510
15.2.2 使用性能計數器對象 511
15.2.3 本地監控示例(cpu使用率) 512
15.2.4 本地監控示例——各進程cpu佔用率 514
15.3 遠程監控——遠程攝像頭實例 518
15.3.1 遠程監控實現原理與邏輯流程 518
15.3.2 遠程攝像頭——opencv安裝配置 518
15.3.3 封裝好的網路傳輸單元——類介紹 521
15.3.4 封裝好的網路傳輸單元——類使用(服務方) 522
15.3.5 封裝好的網路傳輸單元——類使用(客戶方) 523
15.3.6 遠程攝像頭——創建客戶方工程 524
15.3.7 遠程攝像頭——創建監控方工程 529
15.4 小結 531
第3篇 項目案例實戰
第16章 人事管理系統(odbc+sql server+多線程) 534
教學視頻:57分鍾
16.1 人事管理系統簡介 534
16.1.1 用戶登錄模塊簡介 534
16.1.2 主界面簡介 534
16.1.3 員工管理模塊簡介 535
16.1.4 保險管理模塊簡介 539
16.1.5 合同管理模塊簡介 539
16.1.6 部門管理模塊簡介 540
16.2 實現人事管理系統的關鍵技術 541
16.2.1 odbc簡介 541
16.2.2 創建odbc數據源 541
16.2.3 odbc在vc++中的應用 543
16.3 人事管理系統資料庫設計 547
16.3.1 需求分析 547
16.3.2 概要設計 548
16.3.3 資料庫設計 548
16.4 人事管理系統主界面的設計與實現 552
16.4.1 主界面的設計與實現 552
16.4.2 主界面的功能設計與實現 553
16.5 綜合信息管理模塊設計與實現 555
16.5.1 社保管理模塊的設計與實現 555
16.5.2 合同管理模塊的設計與實現 562
16.5.3 部門管理模塊的設計與實現 566
16.6 員工信息管理模塊設計與實現 566
16.6.1 員工管理主窗體的設計與實現 566
16.6.2 員工信息管理模塊的設計與實現 570
16.6.3 入職管理模塊的設計與實現 582
16.6.4 轉正管理模塊的設計與實現 584
16.6.5 離職管理模塊的設計與實現 587
16.6.6 借調管理及調動管理模塊的設計與實現 591
16.6.7 月末統計管理模塊的設計與實現 593
16.7 小結 597
第17章 電子相冊(雙緩繪圖+gdi+gdi+) 598
教學視頻:61分鍾
17.1 電子相冊簡介 598
17.1.1 相冊的管理模塊 598
17.1.2 新建相冊模塊 599
17.1.3 相冊瀏覽模塊 599
17.1.4 電子相冊的技術簡介 601
17.2 點陣圖按鈕 601
17.2.1 設置按鈕屬性 601
17.2.2 載入按鈕點陣圖資源 601
17.2.3 將點陣圖資源設置為按鈕的背景圖片 602
17.3 仿木質桌面的全屏對話框 602
17.3.1 設置對話框全屏顯示 602
17.3.2 為對話框設計並載入木質效果的背景圖資源 603
17.3.3 編碼實現圖像作為對話框的背景圖像 603
17.4 設計個性滑鼠游標 604
17.4.1 設計並載入游標資源 604
17.4.2 設置滑鼠左鍵按下時的游標 604
17.5 gdi+的基礎知識 605
17.6 vc++與gdi+開發環境的搭建 607
17.6.1 下載解壓gdi+開發包 607
17.6.2 設置include及lib目錄 607
17.6.3 添加相關的宏定義 607
17.6.4 添加相關的庫文件 608
17.6.5 測試gdi+搭建的環境 608
17.7 gdi+與gdi共同實現雙緩沖繪圖 610
17.7.1 重載窗體的onpaint()函數 610
17.7.2 無雙緩沖的效果 610
17.7.3 利用雙緩沖解決閃屏問題 611
17.8 利用gdi+實現翻頁效果 612
17.9 電子相冊的模塊分析 617
17.9.1 相冊管理模塊的設計與實現 617
17.9.2 新建相冊模塊的設計與實現 622
17.9.3 電子相冊瀏覽模塊的設計與實現 625
17.10 小結 640
第18章 超市管理系統(ado+sql+access) 641
教學視頻:60分鍾
18.1 超市管理系統簡介 641
18.1.1 用戶登錄模塊簡介 641
18.1.2 前台銷售模塊簡介 641
18.1.3 後台員工管理模塊簡介 642
18.1.4 後台倉庫管理模塊簡介 643
18.1.5 後台票據管理模塊簡介 643
18.1.6 後台貨物管理模塊簡介 643
18.1.7 後台營業統計管理模塊簡介 644
18.2 實現超市管理系統的關鍵技術 645
18.2.1 ado簡介 645
18.2.2 ado基礎 645
18.2.3 ado在vc++中的應用 646
18.2.4 ado的封裝類 649
18.3 超市管理系統資料庫設計 651
18.3.1 需求分析 652
18.3.2 概要設計 652
18.3.3 資料庫設計 653
18.4 超市管理系統前台銷售模塊設計與實現 655
18.4.1 登錄模塊的界面設計與實現 655
18.4.2 登錄模塊的功能設計與實現 656
18.4.3 銷售模塊的界面設計與實現 659
18.4.4 銷售模塊的功能設計與實現 662
18.5 超市管理系統後台管理模塊設計與實現 670
18.5.1 員工管理模塊的設計與實現 670
18.5.2 倉庫管理模塊的設計與實現 675
18.5.3 票據管理模塊的設計與實現 678
18.5.4 商品管理模塊的設計與實現 679
18.5.5 營業統計模塊的設計與實現 679
18.6 小結 681
2. java典型模塊與項目實戰大全的目錄
《java典型模塊與項目實戰大全》
第1篇 java開發必備基礎
第1章 搭建java開發環境 2
教學視頻:18分鍾
1.1 java的過去、現在和未來 2
1.1.1 java的歷史 2
1.1.2 java的語言特點 3
1.1.3 java api簡介 3
1.1.4 java未來發展 4
1.2 java程序設計環境 5
1.2.1 命令行工具——jdk 6.0 5
1.2.2 安裝工具包jdk 6
1.2.3 設置jdk環境 8
1.2.4 集成開發環境安裝——myeclipse 8.5 10
1.2.5 myeclipse的一些常用操作 11
1.3 創建和運行java程序 14
1.3.1 手工創建、編譯和運行java程序 14
1.3.2 在myeclipse 8.5中創建、運行、調試和管理java項目 15
1.4 小結 16
第2章 java面向對象編程 17
. 教學視頻:13分鍾
2.1 面向對象的一些概念 17
2.1.1 面向對象涉及的概念 17
2.1.2 類和對象 19
2.2 面向對象的一些特性 20
2.2.1 繼承特性 20
2.2.2 多態特性 21
2.2.3 封裝特性 22
2.3 java中實現的面向對象特性 22
2.3.1 定義類 22
2.3.2 創建對象 23
2.3.3 實現繼承 23
2.3.4 實現多態 24
2.3.5 實現封裝 26
2.4 小結 27
第3章 java新特性 28
教學視頻:29分鍾
3.1 java的一些簡單新特性 28
3.1.1 靜態導入 28
3.1.2 可變參數函數 30
3.1.3 增強版for循環 31
3.1.4 基本數據的拆、裝箱操作(autoboxing和unboxing) 32
3.2 枚舉 34
3.2.1 枚舉的實現原理 34
3.2.2 枚舉的簡單應用 36
3.2.3 枚舉的高級特性 37
3.3 反射 39
3.3.1 反射的基石——class類 39
3.3.2 反射的基本應用 41
3.3.3 反射的高級應用 46
3.4 標注 49
3.4.1 標注的簡單使用 49
3.4.2 jdk的內置標注 51
3.5 泛型 53
3.5.1 為什麼要使用泛型 54
3.5.2 泛型的一些特性 57
3.5.3 泛型的通配符 59
3.6 類載入器 62
3.6.1 什麼是類載入器 63
3.6.2 什麼是類載入器的委派模型 64
3.6.3 編寫一個自己的載入器 67
3.7 動態代理 73
3.7.1 什麼是代理 73
3.7.2 動態代理基礎類 74
3.7.3 invocationhandler介面 78
3.7.4 動態代理類的設計模式 81
3.8 小結 83
第2篇 線程開發
第4章 學生並發接水(線程thread) 86
教學視頻:9分鍾
4.1 學生並發接水原理 86
4.1.1 項目結構框架分析 86
4.1.2 項目功能業務分析 86
4.2 不排隊形式學生並發接水 87
4.2.1 水龍頭類 88
4.2.2 學生類 88
4.2.3 測試類 89
4.3 學生並發接水的其他形式 90
4.3.1 「排隊接水」水龍頭類 90
4.3.2 「接完水後一起回教室」水龍頭類 90
4.4 知識點擴展——線程的基礎知識 91
4.4.1 為什麼要使用線程 92
4.4.2 多線程程序的編寫方式 93
4.5 小結 98
第5章 模擬做飯場景(線程的join()方法) 99
教學視頻:7分鍾
5.1 做飯場景原理 99
5.1.1 項目結構框架分析 99
5.1.2 項目功能業務分析 99
5.2 紛亂的做飯場景 100
5.2.1 兒子的類 100
5.2.2 媽媽的類 101
5.2.3 做飯場景的類 102
5.2.4 修改後的媽媽類 102
5.3 知識點擴展——線程的狀態 103
5.3.1 線程的創建狀態 103
5.3.2 線程的暫停狀態 104
5.3.3 線程的結束狀態 106
5.4 小結 109
第6章 火車站售票系統(線程安全知識) 110
教學視頻:12分鍾
6.1 火車站售票系統原理 110
6.1.1 項目結構框架分析 110
6.1.2 項目功能業務分析 111
6.2 沒有實現線程安全的火車票售票系統 112
6.2.1 火車票的類 112
6.2.2 售票台的類 113
6.2.3 實現線程安全的火車票售票系統 113
6.3 知識點擴展——線程的同步知識 115
6.3.1 為什麼要使用同步機制 115
6.3.2 synchronized的同步塊 117
6.3.3 synchronized的同步方法 119
6.3.4 死鎖的問題 122
6.4 小結 124
第7章 生產者與消費者問題(線程通信知識) 125
教學視頻:10分鍾
7.1 生產者與消費者原理 125
7.1.1 項目結構框架分析 125
7.1.2 項目功能業務分析 125
7.2 無線程通信的生產者與消費者項目 126
7.2.1 生產者類 127
7.2.2 消費者類 128
7.2.3 儲存庫類 128
7.2.4 測試類 129
7.3 實現線程通信的生產者與消費者項目 130
7.3.1 生產者和消費者的類 130
7.3.2 儲存庫的類 131
7.4 知識點擴展——線程的通信知識 132
7.4.1 線程通信的基本知識 132
7.4.2 線程通信的具體實例 134
7.5 小結 136
第8章 關機工具(timer類+系統命令) 137
教學視頻:5分鍾
8.1 關機工具原理 137
8.1.1 項目結構框架分析 137
8.1.2 項目功能業務分析 137
8.2 關機工具的實現過程 139
8.2.1 關機工具的類 139
8.2.2 關機工具的工具類 143
8.3 知識點擴展——關機工具項目涉及的知識 144
8.3.1 timer和timertask類 144
8.3.2 shutdown命令 147
8.3.3 通過shutdown命令實現網路遠程關機 150
8.4 小結 152
第3篇 gui(圖形用戶界面)開發
第9章 典型的圖形用戶界面(各種組件) 154
教學視頻:15分鍾
9.1 label和button的用戶界面 154
9.1.1 分析按鈕和面板的用戶界面 154
9.1.2 按鈕和面板的用戶界面 155
9.1.3 組件button和label的基本知識 156
9.2 復選框的用戶界面 157
9.2.1 分析復選框的用戶界面 157
9.2.2 按鈕和面板的用戶界面 158
9.2.3 組件checkbox和checkboxgroup的基本知識 159
9.3 下拉菜單和列表的用戶界面 160
9.3.1 分析下拉菜單和列表的用戶界面 161
9.3.2 下拉菜單和列表的用戶界面 162
9.3.3 choice和list組件的基本知識 164
9.4 輸入的用戶界面 165
9.4.1 分析輸入的用戶界面 165
9.4.2 輸入的用戶界面 167
9.4.3 textfield和textarea組件的基本知識 169
9.5 滾動條的用戶界面 171
9.5.1 分析滾動條的用戶界面 171
9.5.2 滾動條的用戶界面 172
9.5.3 滾動組件的基本知識 174
9.6 菜單的用戶界面 175
9.6.1 分析菜單組件的用戶界面 175
9.6.2 菜單的用戶界面 177
9.6.3 菜單組件的基本知識 179
9.7 對話框的用戶界面 182
9.7.1 分析對話框和文件對話框的用戶界面 182
9.7.2 對話框的用戶界面 184
9.7.3 dialog和filedialog組件的基本知識 187
9.8 小結 188
第10章 計算器(布局管理器) 189
教學視頻:5分鍾
10.1 計算器原理 189
10.1.1 項目結構框架分析 189
10.1.2 項目功能業務分析 189
10.2 計算器的實現過程 191
10.3 知識點擴展——事件機制的高級知識 193
10.3.1 為什麼需要版面的配置 194
10.3.2 java語言中的各種布局管理器 195
10.4 小結 201
第11章 秒錶(事件+線程) 202
教學視頻:7分鍾
11.1 秒錶原理 202
11.1.1 項目結構框架分析 202
11.1.2 項目功能業務分析 202
11.2 秒錶的實現過程 203
11.2.1 秒錶類 203
11.2.2 測試秒錶的類 206
11.3 知識點擴展——事件機制的基礎知識 206
11.3.1 事件處理機制 206
11.3.2 window事件 208
11.3.3 mouse事件 210
11.3.4 key事件 213
11.3.5 其他底層事件 216
11.3.6 事件的高級編寫方法 217
11.4 小結 219
第12章 捉迷藏游戲(事件) 220
教學視頻:5分鍾
12.1 捉迷藏游戲原理 220
12.1.1 項目結構框架分析 220
12.1.2 項目功能業務分析 220
12.2 捉迷藏游戲的實現過程 221
12.2.1 捉迷藏游戲項目的原理 221
12.2.2 自定義按鈕類 222
12.2.3 測試的類 223
12.3 知識點擴展——事件機制的高級知識 223
12.3.1 事件多重應用 223
12.3.2 事件處理的詳細過程 228
12.4 小結 230
第13章 滑鼠繪直線(繪圖+事件) 231
教學視頻:8分鍾
13.1 滑鼠繪直線原理 231
13.1.1 項目結構框架分析 231
13.1.2 項目功能業務分析 231
13.2 滑鼠繪直線的實現過程 233
13.2.1 直線的類 233
13.2.2 實現窗口類——通過paint()方法 234
13.2.3 實現窗口類——通過雙緩沖技術 236
13.3 知識點擴展——畫圖的基礎知識 237
13.3.1 畫圖的基礎知識 237
13.3.2 各種類型對象的繪制 239
13.4 小結 245
第14章 指針時鍾項目(swing組件+時間演算法) 246
教學視頻:7分鍾
14.1 指針時鍾原理 246
14.1.1 項目結構框架分析 246
14.1.2 項目功能業務分析 247
14.2 指針時鍾的實現過程 247
14.2.1 指針時鍾的界面 247
14.2.2 繪制指針時鍾的類 249
14.3 知識點擴展——從awt到swing的過渡 253
14.3.1 窗口類jframe 253
14.3.2 按鈕類jbutton和面板類jlabel 254
14.3.3 單選按鈕和復選框組件 258
14.3.4 選擇框組件 261
14.3.5 輸入框組件 263
14.4 小結 265
第15章 控制動畫項目 (jslider和timer組件) 266
教學視頻:7分鍾
15.1 控制動畫原理 266
15.1.1 項目結構框架分析 266
15.1.2 項目功能業務分析 267
15.2 控制動畫的實現過程 267
15.2.1 控制動畫的主界面 267
15.2.2 控制動畫的邏輯 269
15.3 知識點擴展——jslider和timer組件的基礎知識 272
15.3.1 使用jslider組件創建無刻度的滑桿 272
15.3.2 使用jslider組件創建帶數字刻度的滑桿 275
15.3.3 使用jslider組件創建帶字元刻度的滑桿 277
15.3.4 jslider組件的高級應用 279
15.3.5 swing中的多線程 283
15.3.6 timer組件的基礎知識 288
15.3.7 timer組件的應用 289
15.4 小結 293
第16章 記事本(對話框組件) 294
教學視頻:54分鍾
16.1 記事本原理 294
16.1.1 項目結構框架分析 294
16.1.2 項目功能業務分析 294
16.2 記事本的實現過程 300
16.2.1 實現記事本的界面 300
16.2.2 實現菜單功能 303
16.2.3 文件類型的過濾 306
16.3 記事本的實現過程——字體設置對話框 307
16.3.1 字體設置對話框——主界面 307
16.3.2 字體設置對話框——jpanel1組件界面 310
16.3.3 字體設置對話框——其他組件 312
16.4 小結 313
第17章 拼圖游戲(gui綜合應用) 314
教學視頻:20分鍾
17.1 拼圖游戲原理 314
17.1.1 項目結構框架分析 314
17.1.2 項目功能業務分析 314
17.1.3 拼圖游戲項目的原理 316
17.2 拼圖游戲的實現過程 317
17.2.1 實現移動功能的按鈕類 317
17.2.2 主面板的類 318
17.2.3 主窗口的類 320
17.3 小結 322
第4篇 文件操作和訪問
第18章 文件屬性查看器(gui+文件操作) 324
教學視頻:6分鍾
18.1 文件屬性查看器原理 324
18.1.1 項目結構框架分析 324
18.1.2 項目功能業務分析 324
18.2 文件屬性查看器項目 326
18.2.1 實現顯示文件信息的自定義窗口 326
18.2.2 自定義窗口的顯示 329
18.3 知識點擴展——文件的操作和訪問 329
18.3.1 通過fileop類實現文件創建和刪除功能 329
18.3.2 通過filedir類實現列舉文件和目錄的功能 331
18.3.3 file類提供的屬性和方法 332
18.3.4 文件訪問的基本概念 334
18.3.5 文件的基本訪問方式——位元組方式 336
18.3.6 文件的基本訪問方式——字元方式 338
18.3.7 文件的高級訪問方式 339
18.4 小結 342
第19章 文件內容查看器(gui+文件訪問) 343
教學視頻:6分鍾
19.1 文件內容查看器原理 343
19.1.1 項目結構框架分析 343
19.1.2 項目功能業務分析 343
19.2 文件內容查看器項目 345
19.2.1 設計項目的界面——文件內容查看器輸入界面 345
19.2.2 「打開」菜單項的處理方法 348
19.2.3 單擊列表選項的處理方法 348
19.3 知識點擴展——管道的訪問 349
19.3.1 管道的訪問——位元組方式 350
19.3.2 管道的訪問——字元方式 351
19.4 知識點擴展——內存的訪問 353
19.4.1 內存的訪問——位元組方式 353
19.4.2 內存的訪問——字元和字元串方式 354
19.5 小結 356
第20章 日記簿(gui+文件訪問和操作) 357
教學視頻:30分鍾
20.1 日記簿原理 357
20.1.1 項目結構框架分析 357
20.1.2 項目功能業務分析 357
20.2 日記簿項目 359
20.2.1 設計項目的界面——日記薄輸入界面 360
20.2.2 「保存」按鈕的事件處理 363
20.2.3 「查看日記」按鈕的事件處理 364
20.2.4 設計項目的界面——日記列表界面 365
20.2.5 「查看」按鈕的事件處理 367
20.2.6 「刪除」按鈕的事件處理 368
20.3 知識點擴展——過濾流的基礎知識 368
20.3.1 過濾流的緩存(buffering)類 368
20.3.2 過濾流實現位元組和字元相互轉換類 372
20.3.3 過濾流特定數據類型類 374
20.3.4 過濾流對象序列化類 378
20.3.5 過濾流列印類 381
20.4 小結 383
第21章 查找和替換項目(gui+字元串處理) 384
教學視頻:10分鍾
21.1 查找和替換原理 384
21.1.1 項目結構框架分析 384
21.1.2 項目功能業務分析 384
21.2 查找和替換項目——利用awt組件 386
21.2.1 設計項目的界面——查找和替換輸入界面 386
21.2.2 各種按鈕的事件處理 389
21.2.3 字元串處理的類 391
21.3 查找和替換項目——利用swing組件 392
21.3.1 設計項目的界面——查找和替換輸入界面 392
21.3.2 各種按鈕的事件處理 394
21.4 小結 395
第5篇 applet程序開發
第22章 圖像輪顯動畫項目(顯示圖像+多線程) 398
教學視頻:5分鍾
22.1 圖像輪顯動畫原理 398
22.1.1 項目結構框架分析 398
22.1.2 項目功能業務分析 398
22.2 圖像輪顯動畫項目 400
22.3 知識點擴展——applet程序的基礎知識 402
22.3.1 applet程序的執行過程 402
22.3.2 applet程序的執行環境 402
22.3.3 applet程序的輸出 403
22.3.4 applet程序的標記 403
22.3.5 參數的傳遞 404
22.3.6 applet程序的相關方法 406
22.4 小結 409
第23章 applet事件監聽項目 (事件處理機制) 410
教學視頻:5分鍾
23.1 applet事件監聽原理 410
23.1.1 項目結構框架分析 410
23.1.2 項目功能業務分析 410
23.2 applet事件監聽項目 412
23.2.1 事件監聽的類 412
23.2.2 承載事件監聽的頁面 414
23.3 知識點擴展——myeclipse開發環境對applet程序的支持 414
23.3.1 myeclipse開發環境對applet項目的支持 415
23.3.2 myeclipse開發環境對jar的支持 419
23.4 小結 422
第24章 動畫播放項目(音頻操作+多線程) 423
教學視頻:5分鍾
24.1 動畫播放原理 423
24.1.1 項目結構框架分析 423
24.1.2 項目功能業務分析 423
24.2 動畫播放項目 425
24.2.1 動畫的類 425
24.2.2 控制動畫的類 427
24.3 知識點擴展——applet程序的高級知識 428
24.3.1 音頻播放 428
24.3.2 applet的上下文對象 430
24.4 小結 431
第6篇 網路編程
第25章 網路聊天室(udp協議+多線程) 434
教學視頻:6分鍾
25.1 網路聊天室原理 434
25.1.1 項目結構框架分析 434
25.1.2 項目功能業務分析 434
25.2 網路聊天室的實現過程 436
25.3 知識點擴展——網路編程和udp協議 438
25.3.1 網路編程涉及的基本概念 439
25.3.2 套接字(socket)機制 440
25.3.3 udp協議類 441
25.3.4 tcp協議類 445
25.3.5 tcp協議客戶端類 451
25.4 小結 452
第26章 ftp伺服器客戶端 (ftpclient+i/o處理) 453
教學視頻:8分鍾
26.1 ftp伺服器客戶端原理 453
26.1.1 項目結構框架分析 453
26.1.2 項目功能業務分析 454
26.2 ftp伺服器客戶端的實現過程 455
26.2.1 ftp伺服器操作的工具類 456
26.2.2 實現文件上傳的類 459
26.2.3 實現文件下載的類 459
26.3 知識點擴展——ftpclient類的相關知識 460
26.3.1 實現ftp伺服器相關操作類 460
26.3.2 相關jar包導入問題 462
26.4 小結 464
第27章 web伺服器(http協議) 465
教學視頻:8分鍾
27.1 web伺服器原理 465
27.1.1 項目結構框架分析 465
27.1.2 項目功能業務分析 465
27.2 web伺服器的實現過程 466
27.2.1 實現與瀏覽器通信的類 466
27.2.2 實現web伺服器的類 469
27.2.3 瀏覽器所請求的頁面 470
27.3 知識點擴展——http協議知識 470
27.3.1 http協議原理 470
27.3.2 實現http協議伺服器的原理 471
27.4 小結 471
第28章 qq聊天工具 (swing+多線程+網路編程) 472
教學視頻:39分鍾
28.1 qq聊天工具原理 472
28.1.1 項目結構框架分析 472
28.1.2 項目功能業務分析 473
28.2 qq項目——對象模型的類 476
28.2.1 信息的類 476
28.2.2 「用戶」的類 478
28.3 qq項目——登錄功能 478
28.3.1 qq伺服器界面的設計 479
28.3.2 qq伺服器後台程序 480
28.3.3 qq客戶端登錄界面的設計 481
28.3.4 qq客戶端後台程序 484
28.3.5 成員列表窗口 485
28.4 qq項目——聊天功能 487
28.4.1 伺服器端的信息轉發 488
28.4.2 客戶端信息的發送和接收 490
28.4.3 客戶端信息轉發類 492
28.5 小結 494
第7篇 項目案例實戰
第29章 人員信息管理項目 (介面設計模式+mysql資料庫) 496
教學視頻:30分鍾
29.1 人員信息管理原理 496
29.1.1 項目結構框架分析 496
29.1.2 項目功能業務分析 497
29.2 人員信息管理項目前期准備 502
29.2.1 設計資料庫 502
29.2.2 資料庫操作相關類 504
29.3 人員信息管理項目——層 505
29.3.1 實現數據連接操作()的介面 506
29.3.2 實現數據連接操作()的實現類 507
29.3.3 實現數據連接操作()的代理類 510
29.3.4 實現數據連接操作()的工廠類 512
29.4 人員信息管理項目——服務層和表示層 512
29.4.1 人員信息管理項目的服務層 512
29.4.2 人員信息管理項目的表示層 515
29.4.3 工具類 516
29.5 人員信息管理項目——代理類測試 517
29.5.1 測試實現業務功能的各種方法 518
29.5.2 人員信息管理入口類 520
29.6 知識點擴展——設計模式的基礎知識 521
29.6.1 工廠設計模式 521
29.6.2 代理設計模式 525
29.7 小結 527
第30章 中國象棋游戲(gui+游戲規則演算法) 528
教學視頻:37分鍾
30.1 象棋游戲原理 528
30.1.1 象棋游戲的基本規則 528
30.1.2 項目結構框架分析 529
30.1.3 項目功能業務分析 529
30.2 象棋游戲項目——象棋游戲的主類 534
30.2.1 實現象棋游戲的主界面 534
30.2.2 實現象棋游戲中添加棋子的功能 537
30.2.3 實現象棋游戲中棋子閃爍的功能 539
30.2.4 處理單擊棋子事件 539
30.2.5 處理單擊按鈕事件 543
30.3 象棋游戲項目——規則的內部類 546
30.3.1 實現卒移動和吃的方法 546
30.3.2 實現炮、車移動和吃的方法 550
30.3.3 實現馬移動和吃的方法 554
30.3.4 實現象移動和吃的方法 561
30.3.5 實現士移動和吃的方法 567
30.3.6 實現將移動和吃的方法 572
30.4 小結 578
第31章 俄羅斯方塊游戲網路版(swing+多線程+網路編程) 579
教學視頻:60分鍾
31.1 俄羅斯方塊游戲項目原理 579
31.1.1 基本原理 579
31.1.2 項目結構框架分析 580
31.1.3 項目功能業務分析 580
31.2 俄羅斯方塊游戲項目——初步設計涉及的對象 589
31.2.1 正方形類 589
31.2.2 俄羅斯方塊類 590
31.2.3 俄羅斯方塊游戲項目的top10分數對象 599
31.3 俄羅斯方塊游戲項目——伺服器端和客戶端 602
31.3.1 表示出俄羅斯方塊游戲項目的伺服器端 602
31.3.2 表示出俄羅斯方塊游戲項目的客戶端 605
31.4 俄羅斯方塊游戲項目——游戲主界面 607
31.4.1 俄羅斯方塊游戲的主界面 608
31.4.2 俄羅斯方塊游戲的事件處理類 612
31.4.3 俄羅斯方塊游戲的狀態工具欄 614
31.5 俄羅斯方塊游戲項目——其他界面的設計 616
31.5.1 「關於」面板 616
31.5.2 連接對方面板 618
31.5.3 分數報告面板 620
31.5.4 設置級別面板 624
31.5.5 警告面板和對話框 625
31.5.6 游戲結束面板和對話框 627
31.6 小結 630
第32章 圖書管理系統項目 (gui+oracle資料庫) 631
教學視頻:59分鍾
32.1 圖書管理系統原理 631
32.1.1 項目結構框架分析 631
32.1.2 項目功能業務分析 631
32.2 圖書管理系統項目——圖書的操作 640
32.2.1 實現添加圖書功能的類 640
32.2.2 實現修改圖書功能的類 644
32.2.3 實現瀏覽圖書信息的類 647
32.2.4 實現刪除圖書信息的類 650
32.3 圖書管理系統項目——用戶的操作 652
32.3.1 實現添加用戶功能的類 653
32.3.2 實現刪除用戶功能的類 656
32.3.3 實現修改用戶功能的類 658
32.3.4 實現用戶登錄功能的類 661
32.3.5 實現用戶列表功能的類 664
32.4 圖書管理系統項目——出借圖書的操作 665
32.4.1 出借圖書操作的類 665
32.4.2 借書列表方法 669
32.4.3 修改出借圖書信息方法 672
32.5 圖書管理系統項目——歸還圖書的操作 676
32.5.1 歸還圖書類 676
32.5.2 修改歸還圖書信息類 679
32.6 圖書管理系統項目——該項目的其他類 683
32.6.1 主窗口類 683
32.6.2 資料庫操作 689
32.7 小結 691
3. 求一本完整的(java)項目開發實戰書籍
推薦樓主《java典型模塊與項目實戰大全》PDF下面有介紹和這本書的目錄認真看完介紹
《java典型模塊與項目實戰大全》以實戰開發為原則,以java熱門開發技術與項目案例開發為主線,通過java開發中最常見的25個典型模塊和4個完整的項目案例,詳細介紹java語言的特性、線程開發、圖形用戶開發(gui)、文件i/o操作、applet程序、網路編程等知識。
《java典型模塊與項目實戰大全》附帶1張dvd光碟,內容為與本書配套的多媒體教學視頻與源代碼,以及免費贈送的java開發教學視頻等資料。尋求組織樓主可以先記下175順序寫下161最後填寫984合起來就是一個扣裙交流學習充分發揮這本書的作用
《java典型模塊與項目實戰大全》共32章,分為7篇。涵蓋的主要內容有搭建java開發環境、java面向對象編程、java新特性、學生並發接水、模擬做飯場景、火車站售票系統、生產者與消費者問題、關機工具、典型的圖形用戶界面、計算器、秒錶、捉迷藏游戲、滑鼠繪直線、指針時鍾項目、控制動畫項目、記事本、拼圖游戲、文件屬性查看器、文件內容查看器、日記簿、查找和替換項目、圖像輪顯動畫項目、applet事件監聽項目、動畫播放項目、網路聊天室、ftp伺服器客戶端、web伺服器、qq聊天工具、人員信息管理項目、中國象棋游戲、俄羅斯方塊游戲網路版、圖書管理系統項目等。
《java典型模塊與項目實戰大全》注重編程思想與實際開發相結合,書中的每個技術點都配備了具有典型性和實用價值的應用開發實例,適合想要學習java語言的人員閱讀,尤其適合有一定java語言基礎和想提高開發java語言經驗的程序員閱讀。
目錄:
第1篇 java開發必備基礎
第1章 搭建java開發環境 2
教學視頻:18分鍾
1.1 java的過去、現在和未來 2
1.1.1 java的歷史 2
1.1.2 java的語言特點 3
1.1.3 java api簡介 3
1.1.4 java未來發展 4
1.2 java程序設計環境 5
1.2.1 命令行工具——jdk 6.0 5
1.2.2 安裝工具包jdk 6
1.2.3 設置jdk環境 8
1.2.4 集成開發環境安裝——myeclipse 8.5 10
1.2.5 myeclipse的一些常用操作 11
1.3 創建和運行java程序 14
1.3.1 手工創建、編譯和運行java程序 14
1.3.2 在myeclipse 8.5中創建、運行、調試和管理java項目 15
1.4 小結 16
第2章 java面向對象編程 17
. 教學視頻:13分鍾
2.1 面向對象的一些概念 17
2.1.1 面向對象涉及的概念 17
2.1.2 類和對象 19
2.2 面向對象的一些特性 20
2.2.1 繼承特性 20
2.2.2 多態特性 21
2.2.3 封裝特性 22
2.3 java中實現的面向對象特性 22
2.3.1 定義類 22
2.3.2 創建對象 23
2.3.3 實現繼承 23
2.3.4 實現多態 24
2.3.5 實現封裝 26
2.4 小結 27
第3章 java新特性 28
教學視頻:29分鍾
3.1 java的一些簡單新特性 28
3.1.1 靜態導入 28
3.1.2 可變參數函數 30
3.1.3 增強版for循環 31
3.1.4 基本數據的拆、裝箱操作(autoboxing和unboxing) 32
3.2 枚舉 34
3.2.1 枚舉的實現原理 34
3.2.2 枚舉的簡單應用 36
3.2.3 枚舉的高級特性 37
3.3 反射 39
3.3.1 反射的基石——class類 39
3.3.2 反射的基本應用 41
3.3.3 反射的高級應用 46
3.4 標注 49
3.4.1 標注的簡單使用 49
3.4.2 jdk的內置標注 51
3.5 泛型 53
3.5.1 為什麼要使用泛型 54
3.5.2 泛型的一些特性 57
3.5.3 泛型的通配符 59
3.6 類載入器 62
3.6.1 什麼是類載入器 63
3.6.2 什麼是類載入器的委派模型 64
3.6.3 編寫一個自己的載入器 67
3.7 動態代理 73
3.7.1 什麼是代理 73
3.7.2 動態代理基礎類 74
3.7.3 invocationhandler介面 78
3.7.4 動態代理類的設計模式 81
3.8 小結 83
第2篇 線程開發
第4章 學生並發接水(線程thread) 86
教學視頻:9分鍾
4.1 學生並發接水原理 86
4.1.1 項目結構框架分析 86
4.1.2 項目功能業務分析 86
4.2 不排隊形式學生並發接水 87
4.2.1 水龍頭類 88
4.2.2 學生類 88
4.2.3 測試類 89
4.3 學生並發接水的其他形式 90
4.3.1 「排隊接水」水龍頭類 90
4.3.2 「接完水後一起回教室」水龍頭類 90
4.4 知識點擴展——線程的基礎知識 91
4.4.1 為什麼要使用線程 92
4.4.2 多線程程序的編寫方式 93
4.5 小結 98
第5章 模擬做飯場景(線程的join()方法) 99
教學視頻:7分鍾
5.1 做飯場景原理 99
5.1.1 項目結構框架分析 99
5.1.2 項目功能業務分析 99
5.2 紛亂的做飯場景 100
5.2.1 兒子的類 100
5.2.2 媽媽的類 101
5.2.3 做飯場景的類 102
5.2.4 修改後的媽媽類 102
5.3 知識點擴展——線程的狀態 103
5.3.1 線程的創建狀態 103
5.3.2 線程的暫停狀態 104
5.3.3 線程的結束狀態 106
5.4 小結 109
第6章 火車站售票系統(線程安全知識) 110
教學視頻:12分鍾
6.1 火車站售票系統原理 110
6.1.1 項目結構框架分析 110
6.1.2 項目功能業務分析 111
6.2 沒有實現線程安全的火車票售票系統 112
6.2.1 火車票的類 112
6.2.2 售票台的類 113
6.2.3 實現線程安全的火車票售票系統 113
6.3 知識點擴展——線程的同步知識 115
6.3.1 為什麼要使用同步機制 115
6.3.2 synchronized的同步塊 117
6.3.3 synchronized的同步方法 119
6.3.4 死鎖的問題 122
6.4 小結 124
4. 求一本php實例的書
《php典型模塊與項目實戰大全》以實戰開發為原則,以php典型模塊和項目開發為主線,通過12個高質量的php典型模塊和6個php大型應用,向讀者揭示了web開發的整體結構,並詳盡地介紹php開發與建站的技術要點。
《php典型模塊與項目實戰大全》附帶1張dvd,內容是作者為本書錄制的全程多媒體語音教學視頻及本書所涉及的源代碼。
《php典型模塊與項目實戰大全》共22章,分為3篇。第1篇是php開發基礎,涵蓋的內容有web開發基礎、開發環境的安裝與配置、php語言參考、php簡單實例;第2篇為典型模塊開發與應用,涵蓋的內容有留言板模塊芹帆、注冊及登錄驗證模塊、上傳與下載模塊、內容採集器模塊、日程表模塊、聊天室程序、計費系統模塊、充值平台模塊、在線調查模嫌稿雹塊、wap資訊模塊、廣告管理模塊、文件管理器模塊;第3篇為項目開發實戰,涵蓋的內容有敬稿內容管理系統、娛樂聯播軟體、寶藏游戲、圖片交易平台、在線購物平台、joomla擴展開發與快速建站。
《php典型模塊與項目實戰大全》內容全面、深入,既是優秀的學習教程,也可用作參考手冊。書中的大量實例和深入分析均來自於作者多年的實際工作經驗,對於解決開發人員在實際開發中所面臨的各種問題有重要的借鑒意義。本書適合各層次的php程序員、愛好者和web開發人員閱讀。
《細說PHP》全書共17章,每一章都是PHP獨立知識點的總結。講述的是目前PHP開發中最主流的技術,內容既實用又全面,輔以視頻教程,使讀者輕松掌握所學知識。不僅可以作為PHP開發的學慣用書,還可以作為從事Web開發的程序員的參考用書和必備手冊
5. Visual C++典型模塊與項目實戰大全(詳細)
題名: Visual C++典型模塊與項目實戰大全(詳細)
作者: 戴州顫晟暉, 楊國祥, 陳國建等編著
出版者: 清華大學出版社
日期: 2012
中悶虧圖法分類號冊罩敗: TP312C
ISBN: 978-7-302-25586-4,978-7-89444-521-6
是這個吧
6. Visual C++典型模塊與項目實戰大全的介紹
《visual c++典型模塊與項目實純納戰大全》一書是由戴晟暉 、楊國祥、陳國建等人豎則編著,主要以實戰為做纖沒主,分為各個框架。
7. Java web典型模塊與項目實戰大全,這個哪裡有下載啊,電驢上的沒有源啊小弟在這里萬分感謝了。QQ見補充
我有項目源碼。。已發送,請注意查收和給分。。。
8. PHP典型模塊與項目實戰大全:PHP能做什麼
PHP能做什麼
PHP初學者的一個主要疑問就是 PHP能用來做什麼?按照PHP手冊上的經典解釋就是 PHP能做任何事!
下面為讀者具體的介紹PHP主要的應用領域 PHP是運行於服務端的腳本程序 因此可以用其完成任何CGI(Common Gateway Interface)程序能夠完成的工作 CGI工作流程如圖 所示 CGI主要用於完成在B/S(Browser/Server)模式下的應用開發 例如 動態頁面輸出 獲取表單數據 創建或接收Session/Cookies
圖 CGI工作流程示意圖
PHP主要應用於以下 個領域
服務端腳本
伺服器腳本運行模式需要具備 個條件 PHP解析器(CGI或者伺服器模塊) Web伺服器 Web瀏覽器
具體執行流程 首先運行Web伺服器 然後安裝並配置PHP 最後可以用Web瀏覽器訪問PHP程序的輸出 即瀏覽服務端的PHP頁面(或數據輸出)
命令行腳本
通過命令行模式運行PHP腳本 這種模式下不需要伺服器的支持或者依賴瀏覽器的觸發 在命令行腳本模式下僅需要PHP解析器來執行 通常這種方法被用在Windows和Linux平台下做日常運行腳本使用 如某些守護程序等 當然這些腳本也可以用來處理簡單的文本
編寫桌面應用程序
PHP也許並不完全適合用來做圖形界面應用程序 但是開發人員同樣可以在客戶端程序應用某些PHP的高級特性 通過使用PHP GTK來編寫這些程序 PHP GTK是PHP的一個擴展 並不包含在標準的開發包中 開發人員需要單獨編譯它 通過PHP GTK可以建立獨立的GUI(用戶圖形界面)應用程序 例如 音頻播放器 文本編輯器 資料庫後台等
返回目錄 PHP典型模塊與項目實戰大全
編輯推薦
Java Web開發詳解
PHP Web開發學習實錄
lishixin/Article/program/PHP/201311/21535
9. PHP典型模塊與項目實戰大全:PHP文件下載的原理及實現
PHP文件下載的原理及實現
通常文件下載過程是十分簡單的 建立一個鏈接指向到目標文件就可以了 例如下面的鏈接
<a href=// xxx /xxx rar>點擊下載文件</a>
但是 實際情況可能會稍復雜 比如需要用戶填寫完整注冊信息後才可以下載該文件 這時最先想到的是使用Redirect的方式 下面介紹兩種方式
( )用Redirect方式 先檢查表格是否已經填寫完畢和完整 然後將鏈接指到該文件 這樣用戶就可以下載 請看下面的示例代碼
<?php
/*文件功能 檢查變數form是否完整*/
if($form){
//重新定向瀏覽器指向
Header( Location: // // xxx /xxx rar )
exit;
}
?>
( )根據下載文件的序號來查找 鏈接的形式如下
<a href= // xxx /download php?id= >點擊下載文件</a>
上面的鏈接使用ID方式接收要下載文件的編號 然後再用Redirect的方式連接到真實的文件鏈接
以上這兩種方法雖然實現了文件的下載功能 但是缺點是直接暴露了文件所屬的路徑 而且沒有防盜鏈的功能 所以上面的方式是簡單直接但存在安全隱患的文件下載方式 在PHP中 通常是利用header()函數和fread()函數來實現安全的文件下載
例如 需要下載的是一個文件名為xxx rar的文件 首先創建文件是download php的PHP文件 通過前面的例子很容易通過文件的ID號從資料庫中得到待下載文件的真實位置 在獲得文件的真實存儲位置後 可缺培悉以通過header()函數的location參數直接重定向到這個文件 但是這樣仍然是不安全的 因為某些下載軟體還是可以通過重定向分析獲得該文件的位置信息 因此需要用另外一種方法 就是PHP的文件處理API函數 它是通過fread()函數把文件直接輸出到瀏覽器提示用戶下載 這樣所有的處理都是在伺服器端完成的 因此用戶就無法獲得文件具體存儲位置信息的 示例代碼如下
<?
$file_name = xxx rar ; //下載文件名
$file_dir = /up/ ;中纖 //下載文件存放目錄
//檢查文件是否存在
if (! file_exists ( $file_dir $file_name )) {
echo 文件找不到 ;
exit ()
} else {
//打開文件
$file = fopen ( $file_dir $file_name r )
//輸入文件標簽
Header ( Content type: application/octet stream )
Header ( Accept Ranges: bytes )
Header ( Accept Length: filesize ( $file_dir $file_name ) )
Header ( Content Disposition: attachment; filename= $file_name )
//輸出文件內容
//讀取文件內容並直接輸出到瀏覽器
echo fread ( $file filesize ( $file_dir $file_name ) )
fclose ( $file )
exit ()
}
?>
【代碼解讀】
上述代碼中 程序發送Header信息是用來告訴Apache和瀏覽器下載文件的相關信息的 content type的含義代表文件MIME類型是文件流格式 如果在Apache配置裡面把文件的MIME類型設為application/octet stream(如add application/octet stream xxx rar) 那麼瀏覽器(客戶端伏乎)就會知道 這是一個文件流格式的文件並提示用戶下載 Accept Ranges是一個響應頭標 它允許伺服器指明將在給定的偏移和長度處 為資源組成部分的接受請求 該頭標的值被理解為請求范圍的度量單位 Content Length是指定包含於請求或響應中數據的位元組長度 例如 Content Length: Content Disposition:attachment是用來告訴瀏覽器 文件是可以當做附件被下載 下載後的文件名稱為$file_name該變數的值
運行download php文件 效果如圖 所示 從圖中可以看到文件按照預想的方式被提示下載 單擊 保存 按鈕將文件保存在本地
圖 PHP文件安全下載
返回目錄 PHP典型模塊與項目實戰大全
編輯推薦
Java Web開發詳解
PHP Web開發學習實錄
lishixin/Article/program/PHP/201311/21519
10. PHP典型模塊與項目實戰大全:客戶端數據存儲機制cookie[1]
客戶端數據存儲機制cookie
在實際的Web應用中經常需要在客戶端存儲一些客戶信息 一方面是為了改善用戶體驗(如存儲訪問密碼 歷史表單信息) 另一方面有效地減輕了伺服器數據讀取壓力 訪問者在第一次訪問頁面時設置cookie變數是存儲在客戶端計算機中 當下次瀏覽器請求某個頁面時 就可以讀取cookie中存儲的值 從而廳中實現客戶端數據存取
下面將通過一個例子展示一個客戶端數據存儲的實際應用 執行流程如下
( )創建一個存儲訪問者名字的cookie;
( )當訪問者首次訪問網站時 訪問者會被要求填寫姓名信息 該姓名信息會存儲於cookie中
( )當訪問者再次訪問網站時瀏覽器會顯示歡迎詞信息
在JavaScript創建cookie
創建一個可在cookie變數中存儲訪問者姓名的函數 代碼如下
function setCookie(c_name value expiredays)
{
var exdate=new Date() //實例化日期變數
exdate setDate(exdate getDate()+expiredays) //設置日期變數
document cookie=c_name+ = +escape(value)+
((expiredays==null) ? : ;expires= +exdate toGMTString())
}
【代碼解讀】
setCookie()函數的功能是設置cookie的名稱 值及失效時間 首先將獲取當前的日期轉換為有效的日期 然後設置cookie名稱 值及失效時間 並將該值存入document cookie對象
從JavaScript取回cookie的值
從JavaScript取回cookie的值 創建讀取客戶端cookie值的函數 同時判斷當前cookie的狀態 代碼如下
function getCookie(c_name)
{
if (document cookie length> ) //判斷當前cookie是否為空
{
c_start=document cookie indexOf(c_name + = )
if (c_start!= )
{
c_startc_start=c_start + c_name length+
c_end=document cookie indexOf( ; c_start)
if (碧伏凱c_end== ) c_end=document cookie length
return unescape(document cookie substring(c_start c_end))
//返回客戶端cookie的值
悔喚}
}
return
}
【代碼解讀】
getCookie()函數首先會判斷document cookie對象中是否存有cookie 如果document cookie對象存有某些cookie值 那麼會繼續檢查指定的cookie是否已儲存 如果滿足判斷條件就返回cookie存儲值 否則返回空字元串
JavaScript流程式控制制
當完成了cookie的創建和讀取之後 需要創建一個流程式控制制函數 這個函數的作用是 如果cookie已設置 則顯示歡迎詞 否則顯示提示框要求用戶輸入名字
function checkCookie() {
username=getCookie( username ) //獲得cookie中的用戶名變數
if (username != null && username != ) {
alert( Wele again +username+ ! ) //彈出歡迎信息
} else {
username=prompt( Please enter your name: )
if (username != null && username != ) {
setCookie( username username ) //設置cookie
}
}
}
客戶端數據存儲示例的完整代碼如下
lishixin/Article/program/PHP/201311/21526