商品簡介
名人/編輯推薦
目次
書摘/試閱
相關商品
商品簡介
《零基礎學Visual C++(第3版)(附DVD光盤1張)》內容簡介:《零基礎學Visual C++(第3版)(附DVD光盤1張)》站在零基礎學習的角度,使初學者能盡快掌握VisualC++程序設計的精髓。在講解知識點時,筆者采用從無到有、由淺入深的逐級遞進學習方式。
《零基礎學Visual C++(第3版)(附DVD光盤1張)》涵蓋了VisualC++的所有語法知識,包括基礎數據類型、類與對象、函數與模板、繼承與多態、標準模板庫、文件讀寫等。關于MFC類庫應用,本書還詳細介紹了菜單、控件、消息映射、工具欄、狀態欄、通用類、文本、圖形、動態鏈接庫、多線程、網絡編程、數據庫編程等高級知識。本書對VisualC++的每個知識點的講解均通過最基本、最常用的方案實現,并輔以簡單易懂而貼近工程應用的實例來闡明。本書還附贈1張DVD,內容為筆者為本書錄制的全程多媒體語音教學視頻及本書所涉及的源代碼。
《零基礎學Visual C++(第3版)(附DVD光盤1張)》可作為VisualC++的基礎教程,適合于VisualC++的初學者,特別是大中專院校剛學習完C++語言的低年級學生。
《零基礎學Visual C++(第3版)(附DVD光盤1張)》涵蓋了VisualC++的所有語法知識,包括基礎數據類型、類與對象、函數與模板、繼承與多態、標準模板庫、文件讀寫等。關于MFC類庫應用,本書還詳細介紹了菜單、控件、消息映射、工具欄、狀態欄、通用類、文本、圖形、動態鏈接庫、多線程、網絡編程、數據庫編程等高級知識。本書對VisualC++的每個知識點的講解均通過最基本、最常用的方案實現,并輔以簡單易懂而貼近工程應用的實例來闡明。本書還附贈1張DVD,內容為筆者為本書錄制的全程多媒體語音教學視頻及本書所涉及的源代碼。
《零基礎學Visual C++(第3版)(附DVD光盤1張)》可作為VisualC++的基礎教程,適合于VisualC++的初學者,特別是大中專院校剛學習完C++語言的低年級學生。
名人/編輯推薦
《零基礎學Visual C++(第3版)(附DVD光盤1張)》完全從一個VISUALC++初學者的角度出發,通過大量的實例講解相關開發知識點,對每個實例均按照開發順序給出了完整的開發過程,易學易用。《零基礎學Visual C++(第3版)(附DVD光盤1張)》注重基礎、精選實例、循序漸漸、知識速查、內容全面。
目次
前言
第一篇 Visual C++與C++基礎篇
第1章 Visual C++ 6.0開發環境和應用程序框架 1
1.1 安裝并測試Visual C++ 6.0 1
1.1.1 Visual C++ 6.0的安裝 1
1.1.2 Visual C++ 6.0開發環境 5
1.1.3 Visual C++ 6.0應用程序向導和項目創建 5
1.2 Visual C++ 6.0簡介 7
1.2.1 C/C++編譯器 7
1.2.2 編輯器 8
1.2.3 資源編輯器和資源符號 8
1.2.4 連接器和調試器 9
1.2.5 Visual C++6.0的主要菜單項功能 10
1.2.6 項目和解決方案 15
1.2.7 本機幫助和聯機幫助 15
1.3 Win32基本應用程序的創建 15
1.3.1 使用AppWizard應用程序向導 15
1.3.2 Win32應用程序的生成 17
1.3.3 Visual C++ 6.0的調試:變量跟蹤和函數調用棧 20
1.4 Microsoft應用程序框架 22
1.4.1 全局對象 22
1.4.2 MFC的消息映射和消息分類 22
1.5 實例:編寫第一個C++程序—Hello, C++! 23
1.6 實例:創建第一個MFC程序—Hello, MFC! 25
1.7 小結 25
1.8 上機實踐練習 26
第2章 C++語法基礎 27
2.1 C++簡介 27
2.2 數據類型定義和使用 28
2.2.1 簡單變量 28
2.2.2 算術運算符 32
2.2.3 枚舉、指針和數組 33
2.2.4 string類和C風格字符串 36
2.2.5 結構體類型 38
2.2.6 類類型 39
2.2.7 實例:成績管理系統(1.0版) 43
2.3 運算符、表達式和語句 46
2.3.1 幾種常用的運算符 46
2.3.2 循環語句:for語句、while語句和do...while語句 48
2.3.3 判斷語句:if語句和switch語句 50
2.3.4 實例:成績管理系統(2.0版) 53
2.4 函數定義和調用 57
2.4.1 定義函數和函數原型 57
2.4.2 函數通過指針來調用數組 58
2.4.3 函數指針 59
2.4.4 具有引用參數的函數 59
2.4.5 函數重載 62
2.4.6 函數模板的定義和使用 64
2.4.7 實例:成績管理系統(3.0版) 65
2.5 類的定義和對象構造 67
2.5.1 自然界中的類型和C++的類定義 67
2.5.2 實現類成員函數 69
2.5.3 實例化類對象并使用 71
2.5.4 類的構造函數和析構函數 71
2.5.5 運算符重載與this指針的使用 74
2.5.6 友元函數和友元類 75
2.5.7 實例:成績管理系統(4.0版) 78
2.6 類繼承 82
2.6.1 is-a關系 82
2.6.2 多態公有繼承 84
2.6.3 protected訪問控制 86
2.6.4 抽象基類 88
2.6.5 私有繼承和保護繼承 88
2.6.6 多繼承 89
2.6.7 類模板 90
2.7 C++異常機制 91
2.7.1 異常處理類型 91
2.7.2 exception類 93
2.8 標準模板庫(STL) 93
2.8.1 auto_ptr類的使用 93
2.8.2 vector模板類的定義和使用 94
2.8.3 通用算法 95
2.8.4 實例:使用STL和通用算法開發成績管理系統(5.0版) 97
2.9 I/O流和文件 102
2.9.1 C++的輸入和輸出 102
2.9.2 文件輸入和輸出 102
2.9.3 實例:在Visual C++ 6.0創建C++源文件,使用磁盤文件讀寫 103
2.10 小結 104
2.11 上機實踐練習 105
第3章 Windows編程與MFC基礎 106
3.1 Windows編程基礎 106
3.1.1 Windows API函數 106
3.1.2 窗口與句柄 106
3.1.3 事件與消息 107
3.1.4 常用的Windows數據類型 108
3.2 Windows應用程序分析 108
3.2.1 WinMain函數 109
3.2.2 創建窗口 109
3.2.3 消息循環 110
3.2.4 WinProc窗口函數 111
3.2.5 Windows編程實例 112
3.3 MFC基礎 114
3.3.1 MFC概述 114
3.3.2 MFC基礎類及其層次結構 114
3.3.3 MFC中的全局函數 116
3.4 MFC應用程序框架分析 116
3.4.1 入口函數 116
3.4.2 應用程序對象 117
3.4.3 InitInstance函數 118
3.4.4 Run函數 119
3.4.5 MFC的消息映射 121
3.4.6 MFC消息分類 121
3.5 小結 123
3.6 上機實踐練習 123
第二篇 Visual C++常用類、控件、資源篇
第4章 基本輸入—鍵盤和鼠標消息 125
4.1 鍵盤消息及其處理 125
4.1.1 鍵盤消息 125
4.1.2 鍵盤消息處理 126
4.1.3 按鍵消息的處理 126
4.1.4 按鍵消息處理函數 128
4.1.5 字符消息的處理 131
4.1.6 創建鍵盤插入符 134
4.2 鼠標消息及其處理 137
4.2.1 鼠標消息 137
4.2.2 鼠標消息處理函數 137
4.2.3 鼠標消息處理實例 138
4.2.4 鼠標光標的創建與使用 141
4.2.5 捕捉鼠標 143
4.2.6 鎖定鼠標的作用區域 143
4.3 小結 144
4.4 上機實踐練習 144
第5章 菜單、工具欄和狀態欄編程 146
5.1 菜單及其相關資源的使用 146
5.1.1 菜單的種類及開發步驟 146
5.1.2 菜單的創建與編輯 147
5.1.3 菜單消息 149
5.1.4 菜單命令消息的處理 149
5.1.5 菜單更新消息的處理 151
5.1.6 為菜單項設置快捷鍵 154
5.1.7 彈出菜單的創建與使用 155
5.2 工具欄的使用 158
5.2.1 工具欄的創建 159
5.2.2 編輯工具欄 161
5.2.3 工具欄命令處理 162
5.2.4 工具欄類CToolBar的簡單介紹 162
5.3 狀態欄的使用 163
5.3.1 狀態欄的創建 163
5.3.2 狀態欄編程 164
5.3.3 狀態欄類CStatusBar的簡單介紹 167
5.4 小結 168
5.5 上機實踐練習 168
第6章 使用Windows標準控件 170
6.1 Windows標準控件 170
6.1.1 Windows控件簡介 171
6.1.2 使用對話框編輯器創建控件 171
6.1.3 控件類的基類CWnd 173
6.1.4 控件的消息及其處理 175
6.2 按鈕控件 175
6.2.1 按鈕控件簡介 176
6.2.2 按鈕控件類CButton 176
6.2.3 按鈕控件的屬性與消息 177
6.2.4 按鈕狀態的確定 178
6.2.5 按鈕控件使用實例 179
6.3 靜態控件與編輯控件 184
6.3.1 靜態控件的創建與使用 184
6.3.2 靜態控件類CStatic 185
6.3.3 編輯控件的創建 185
6.3.4 編輯控件類CEdit 186
6.3.5 編輯控件的消息 188
6.3.6 編輯控件的應用實例 188
6.4 列表框控件和組合框控件 190
6.4.1 列表框控件的創建 190
6.4.2 列表框控件類CListBox 191
6.4.3 列表框控件的消息 193
6.4.4 列表框控件實例 193
6.4.5 組合框控件的創建 196
6.4.6 組合框控件類CComboBox 197
6.4.7 組合框控件的消息 198
6.5 微調控件、滑塊控件和進度條 198
6.5.1 微調控件的創建 198
6.5.2 微調控件的使用 199
6.5.3 滑塊控件的創建 201
6.5.4 滑塊控件的使用 202
6.5.5 進度條控件的創建及使用 203
6.5.6 微調控件、滑塊控件和進度條編程實例 204
6.6 列表視圖控件和樹形視圖控件 206
6.6.1 列表視圖控件的創建 206
6.6.2 列表視圖控件類CListCtrl 207
6.6.3 列表視圖控件的通知消息 209
6.6.4 樹形視圖控件的創建 209
6.6.5 樹形視圖控件類CTreeCtrl 210
6.6.6 樹形視圖控件的消息 212
6.6.7 列表視圖和樹形視圖編程實例 213
6.7 ActiveX控件的使用 216
6.7.1 ActiveX控件的結構 217
6.7.2 Visual C++中的組件和控件庫 218
6.7.3 MFC程序中ActiveX控件的使用 218
6.7.4 ActiveX控件使用實例 219
6.8 小結 224
6.9 上機實踐練習 224
第7章 MFC常用的通用類 225
7.1 字符串類(CString) 225
7.1.1 CString對象的創建 225
7.1.2 CString類的成員函數 226
7.1.3 CString類的常用操作 227
7.1.4 CString的格式化與類型轉換 229
7.2 MFC的集合類 230
7.2.1 數組類 231
7.2.2 數組類的使用實例 231
7.2.3 鏈表類 233
7.2.4 鏈表類的使用實例 235
7.3 日期、時間類 237
7.3.1 CTime類 238
7.3.2 CTime對象的格式化 239
7.3.3 CTimeSpan類 240
7.3.4 計時器的使用 241
7.4 MFC文件操作類(CFile) 242
7.4.1 構造文件對象并打開文件 242
7.4.2 文件的讀寫操作 243
7.4.3 文件的定位操作 244
7.4.4 文件的管理操作 245
7.4.5 使用CFile類進行文件操作實例 246
7.5 MFC異常類 248
7.5.1 MFC異常類簡介 248
7.5.2 文件異常類CFileException 249
7.5.3 異常的捕獲 250
7.6 小結 251
7.7 上機實踐練習 252
第8章 文本、圖形輸出 253
8.1 基礎知識 253
8.1.1 GDI繪圖的實現 253
8.1.2 MFC圖形對象類 254
8.1.3 庫存GDI對象 255
8.1.4 與圖形繪制有關的簡單數據類型 256
8.1.5 MFC應用程序框架中的圖形繪制與刷新 258
8.2 MFC設備描述表(CDC類) 258
8.2.1 CDC及其派生類 258
8.2.2 文本輸出 260
8.2.3 CDC的常用繪圖函數 262
8.3 使用畫筆和畫刷進行繪圖 265
8.3.1 畫筆對象及其使用 265
8.3.2 使用畫筆繪圖實例 266
8.3.3 畫刷對象及其使用 267
8.3.4 使用畫刷繪圖實例 268
8.4 字體對象 270
8.4.1 字體對象的創建 270
8.4.2 獲取字體信息 272
8.4.3 字體對象使用實例 273
8.5 位圖和區域對象 274
8.5.1 設備相關位圖(DDB) 274
8.5.2 CBitmap應用實例 276
8.5.3 設備無關位圖(DIB) 277
8.5.4 區域對象(CRgn) 278
8.5.5 CRgn應用實例 279
8.6 坐標系統與映射模式 281
8.6.1 坐標系統 281
8.6.2 映射模式 281
8.6.3 自定義映射模式 283
8.6.4 坐標映射使用實例 283
8.7 小結 285
8.8 上機實踐練習 285
第三篇 Visual C++基本應用程序開發篇
第9章 文檔/視圖結構的應用程序開發 287
9.1 文檔/視圖結構 287
9.1.1 文檔/視圖結構概述 287
9.1.2 文檔/視圖結構的分類 288
9.2 文檔/視圖結構應用程序框架分析 289
9.2.1 利用AppWizard創建單文檔程序框架 289
9.2.2 程序框架中的主要類及相互關系 292
9.2.3 文檔類、視圖類核心函數及作用 294
9.2.4 新建、保存和打開的實現 295
9.2.5 多文檔應用程序框架 296
9.3 文檔/視圖結構應用程序的開發 298
9.3.1 實現目標 298
9.3.2 創建基本的程序框架 298
9.3.3 創建文檔數據 300
9.3.4 在視圖類中實現繪圖操作 300
9.3.5 文檔的序列化 304
9.3.6 對例程數據進行序列化 308
9.3.7 讓文檔程序支持滾動條 311
9.4 窗口分割與多視圖 313
9.4.1 窗口分割基礎知識 313
9.4.2 動態分割窗口的實現 315
9.4.3 靜態分割窗口與多視圖的實現 317
9.5 小結 321
9.6 上機實踐練習 321
第10章 對話框的應用 322
10.1 對話框的工作方式、種類和創建方法 322
10.1.1 對話框在應用程序中的工作方式 322
10.1.2 對話框的種類 322
10.1.3 對話框模板的創建與編輯 324
10.2 對話框與程序連接 326
10.2.1 創建對話框類 326
10.2.2 為對話框類添加成員變量 326
10.2.3 對話框數據交換與驗證 328
10.2.4 對話框控件通知消息的處理 330
10.3 對話框的創建與顯示 332
10.3.1 創建模態對話框 332
10.3.2 創建非模態對話框 334
10.3.3 非模態對話框創建實例 335
10.3.4 基于對話框的應用程序 339
10.4 屬性表對話框 342
10.4.1 屬性表對話框的創建 342
10.4.2 屬性表對話框的運行機制 345
10.5 消息對話框與公用對話框 347
10.5.1 消息對話框 347
10.5.2 顏色對話框 350
10.5.3 文件對話框 351
10.5.4 字體對話框 352
10.5.5 查找、替換對話框 354
10.5.6 打印對話框 356
10.5.7 公用對話框使用實例 358
10.6 小結 363
10.7 上機實踐練習 363
第11章 動態鏈接庫編程 364
11.1 基本概念 364
11.1.1 動態鏈接庫的概念 364
11.1.2 動態鏈接庫的優點 365
11.1.3 Visual C++ 6.0可開發的DLL 366
11.1.4 DLL文件的組成 366
11.2 DLL的創建與調用 367
11.2.1 Win32 DLL的創建 367
11.2.2 DLL的導出 368
11.2.3 應用程序鏈接DLL 369
11.3 MFC常規DLL的創建與使用 373
11.3.1 基本概念 373
11.3.2 MFC常規DLL的創建 374
11.3.3 MFC常規DLL創建實例 375
11.3.4 MFC常規DLL的調用 377
11.4 MFC擴展DLL的創建與使用 378
11.4.1 MFC擴展DLL的創建 378
11.4.2 MFC擴展DLL的創建實例 379
11.4.3 MFC擴展DLL的調用 383
11.5 DLL的查看與調試 384
11.5.1 使用Depends工具查看DLL接口 384
11.5.2 DLL的調試 384
11.6 小結 386
11.7 上機實踐練習 386
第四篇 Visual C++程序開發提高篇
第12章 多線程程序開發 389
12.1 多線程的引入 389
12.1.1 單線程程序的不足 389
12.1.2 問題的解決 390
12.2 多線程編程的基礎知識 391
12.2.1 進程和線程 391
12.2.2 Spy++工具 391
12.2.3 Win32 API對多線程編程的支持 392
12.2.4 MFC對多線程編程的支持 395
12.3 多線程程序開發 399
12.3.1 使用Win32 API函數開發多線程程序 399
12.3.2 MFC用戶界面線程的開發 402
12.3.3 MFC工作者線程的開發 405
12.4 線程間的通信 406
12.4.1 使用全局變量實現線程間的通信 406
12.4.2 使用自定義的消息實現線程間的通信 409
12.5 線程的同步 412
12.5.1 等待函數 412
12.5.2 CEvent類實現線程同步 414
12.5.3 使用CEvent類實現線程同步實例 415
12.5.4 CCriticalSection類實現線程同步 417
12.5.5 CCriticalSection類實現線程同步實例 418
12.5.6 CSemaphore類實現線程同步 421
12.5.7 CSemaphore類實現線程同步實例 422
12.6 小結 423
12.7 上機實踐練習 423
第13章 Visual C++網絡編程 425
13.1 網絡通信及開發基礎 425
13.1.1 TCP/IP協議 425
13.1.2 TCP/IP協議 427
13.1.3 Windows Sockets基礎 427
13.1.4 客戶端/服務器模式 428
13.2 基本網絡通信開發 428
13.2.1 CAsyncSocket類及常用成員函數的使用 428
13.2.2 使用WinSock進行無連接的通信 433
13.2.3 無連接通信實例 433
13.2.4 使用WinSock進行有連接的通信 438
13.2.5 有連接通信實例 438
13.3 網絡程序設計與開發 443
13.3.1 網絡程序的一些概念 443
13.3.2 Socket事件 443
13.3.3 Socket事件的激發控制 444
13.3.4 Socket信息的獲取與處理 445
13.3.5 網絡程序開發實例 447
13.4 WinInet開發Internet客戶端程序 455
13.4.1 MFC WinInet開發包 455
13.4.2 WinInet開發客戶端程序的流程 457
13.4.3 WinInet開發HTTP客戶端程序實例 457
13.5 簡單的Web瀏覽器開發 459
13.5.1 CHtmlView視圖類簡介 459
13.5.2 瀏覽器開發實例 461
13.6 小結 465
13.7 上機實踐練習 465
第14章 Visual C++數據庫編程 467
14.1 數據庫基礎 467
14.1.1 數據庫的基本概念 467
14.1.2 數據庫管理系統(DBMS) 468
14.1.3 結構化查詢語言(SQL) 468
14.2 數據庫開發技術簡介 471
14.2.1 ODBC API/MFC ODBC技術 471
14.2.2 DAO技術 473
14.2.3 ADO技術 473
14.3 在Visual C++中使用ADO開發數據庫應用程序 475
14.3.1 Visual C++對ADO的支持 475
14.3.2 創建數據庫與實例工程 476
14.3.3 引入ADO對象 479
14.3.4 連接數據源 479
14.3.5 開發技術—連接對象(Connection) 480
14.3.6 創建表并添加數據 482
14.3.7 開發技術—ADO對象命令的執行 483
14.3.8 開發技術—Recordset對象 485
14.3.9 遍歷、刪除、編輯記錄的實現 491
14.4 使用ODBC數據源連接數據庫 495
14.4.1 手動實現設置ODBC數據源 495
14.4.2 ADO連接ODBC數據源 497
14.4.3 Visual C++程序實現設置ODBC數據源 497
14.4.4 使用Visual C++程序設置ODBC數據源實例 498
14.5 小結 499
14.6 上機實踐練習 500
第15章 使用Visual C++ 6.0開發家庭財務管理系統 502
15.1 提出問題:設計一個家庭財務管理系統 502
15.1.1 功能概述 502
15.1.2 界面需求 503
15.2 數據庫設計 503
15.2.1 數據關系分析 503
15.2.2 E-R圖設計 504
15.2.3 數據庫表的生成 505
15.3 算法設計 506
15.3.1 連接數據庫 506
15.3.2 添加數據 507
15.3.3 修改數據庫內容 508
15.3.4 統計數據庫信息 508
15.4 軟件項目開發過程 508
15.4.1 開發家庭財務管理系統項目的流程 508
15.4.2 根據E-R圖創建數據庫表 508
15.4.3 功能研發的準備工作 510
15.4.4 實現算法設計 514
15.4.5 測試 517
15.5 小結 517
第16章 常見的面試題及解答技巧 519
16.1 理論基礎知識:數學、智力題 519
面試題1:請把一盒蛋糕切成8份,分給8個人,但蛋糕盒里還必須留有一份 519
面試題2:小貓奔跑問題 519
面試題3:4、4、10和7這4個數只使用一次,運用加、減、乘、除,怎么得出24 519
面試題4:為什么下水道的蓋子是圓的 520
面試題5:美國有多少輛私家車 520
面試題6:為什么鏡子中的影像可以顛倒左右,卻不能顛倒上下 520
面試題7:請估算一下密西西比河的水的總質量 520
16.2 程序設計面試題 520
面試題8:如何理解面向對象和面向過程?用C++編寫的程序就是面向對象程序嗎 520
面試題9:在C/C++程序設計中,局部變量能否和全局變量重名 521
面試題10:如何引用一個已經定義過的全局變量 521
面試題11:全局變量是否可以定義在可被多個.C文件包含的頭文件中 521
面試題12:static全局變量與普通的全局變量有什么區別 521
面試題13:對于一個頻繁使用的短小函數,在C和C++語言中分別用什么 521
面試題14:關鍵字const有什么含義 521
面試題15:虛函數和普通函數有什么不同 521
面試題16:抽象基類不能實例化,為什么還有抽象基類這個語法特性 522
面試題17:在C++程序設計語言中,vector和數組有何不同 522
面試題18:C++編譯器自動完成和調用了哪些函數 522
面試題19:為什么要定義拷貝構造函數 522
面試題20:名稱空間有何作用 522
面試題21:在構造函數中初始化和使用初始化列表有什么不同 523
面試題22:為什么要避免將數據成員放在公共域中 523
面試題23:為什么要盡量定義const 523
面試題24:C和C++的注釋風格有何不同,為什么盡量選擇C++風格的注釋 523
面試題25:程序編譯時編譯器會有一些警告信息,你如何看待這些警告信息 524
16.3 計算機理論知識題 524
面試題26:基本的數據結構有哪些類型 524
面試題27:什么是平衡二叉樹(AVL樹) 525
面試題28:給出一系列的二進制碼,如何判斷這些編碼是前綴碼 525
面試題29:什么是左式堆 525
面試題30:請簡單闡述3NF(第三范式)和BCNF(巴克斯范式)的基本概念 525
面試題31:數據庫并發操作可能會帶來什么問題?如何防止這些問題 525
面試題32:簡述CMM和CMMI 526
面試題33:在一個查詢中,使用哪一個關鍵字能夠除去重復列值 526
面試題34:什么是快照?它的作用是什么 526
面試題35:簡述存儲過程和觸發器的相關概念 526
面試題36:SQL Server 2000是否支持行級鎖定,有什么好處 526
面試題37:事務是什么?事務具備哪些特性 527
面試題38:事前觸發和事後觸發有何區別?語句級觸發和行級觸發有何區別 527
面試題39:解決死鎖的方法有哪些 527
面試題40:提高數據庫運行效率的辦法有哪些 527
面試題41:以你的工作經驗,簡述數據庫的設計過程 528
面試題42:在為視圖創建索引前,視圖本身必須滿足哪些條件 528
面試題43:什么是SQL Server的確定性函數和不確定性函數 528
面試題44:哪類視圖是可以更新的?哪類視圖是不可更新的?各舉一例說明 529
面試題45:所有的視圖是否都可以更新?為什么 529
面試題46:什么是基本表?什么是視圖 529
面試題47:數據庫中為什么要有視圖?試述視圖的優點 529
16.4 程序設計與算法題 529
面試題48:使用C++,輸入一個字符串,將其逆序後輸出 529
面試題49:判斷給定代碼是否有問題 530
面試題50:用C++編寫判斷操作系統是16位還是32位的程序,不能用sizeof函數 530
面試題51:在不用第三方參數的情況下,交換兩個參數的值 530
面試題52:程序解讀,判斷問題 531
面試題53:使用SQL語句進行數據庫建表與查詢 531
面試題54:編寫一個算法,利用棧的基本運算返回指定棧的棧底元素 532
面試題55:寫出兩種中序遍歷二叉樹的方法 532
面試題56:簡述哈夫曼樹的意義及其創建過程 533
16.5 小結 534
第一篇 Visual C++與C++基礎篇
第1章 Visual C++ 6.0開發環境和應用程序框架 1
1.1 安裝并測試Visual C++ 6.0 1
1.1.1 Visual C++ 6.0的安裝 1
1.1.2 Visual C++ 6.0開發環境 5
1.1.3 Visual C++ 6.0應用程序向導和項目創建 5
1.2 Visual C++ 6.0簡介 7
1.2.1 C/C++編譯器 7
1.2.2 編輯器 8
1.2.3 資源編輯器和資源符號 8
1.2.4 連接器和調試器 9
1.2.5 Visual C++6.0的主要菜單項功能 10
1.2.6 項目和解決方案 15
1.2.7 本機幫助和聯機幫助 15
1.3 Win32基本應用程序的創建 15
1.3.1 使用AppWizard應用程序向導 15
1.3.2 Win32應用程序的生成 17
1.3.3 Visual C++ 6.0的調試:變量跟蹤和函數調用棧 20
1.4 Microsoft應用程序框架 22
1.4.1 全局對象 22
1.4.2 MFC的消息映射和消息分類 22
1.5 實例:編寫第一個C++程序—Hello, C++! 23
1.6 實例:創建第一個MFC程序—Hello, MFC! 25
1.7 小結 25
1.8 上機實踐練習 26
第2章 C++語法基礎 27
2.1 C++簡介 27
2.2 數據類型定義和使用 28
2.2.1 簡單變量 28
2.2.2 算術運算符 32
2.2.3 枚舉、指針和數組 33
2.2.4 string類和C風格字符串 36
2.2.5 結構體類型 38
2.2.6 類類型 39
2.2.7 實例:成績管理系統(1.0版) 43
2.3 運算符、表達式和語句 46
2.3.1 幾種常用的運算符 46
2.3.2 循環語句:for語句、while語句和do...while語句 48
2.3.3 判斷語句:if語句和switch語句 50
2.3.4 實例:成績管理系統(2.0版) 53
2.4 函數定義和調用 57
2.4.1 定義函數和函數原型 57
2.4.2 函數通過指針來調用數組 58
2.4.3 函數指針 59
2.4.4 具有引用參數的函數 59
2.4.5 函數重載 62
2.4.6 函數模板的定義和使用 64
2.4.7 實例:成績管理系統(3.0版) 65
2.5 類的定義和對象構造 67
2.5.1 自然界中的類型和C++的類定義 67
2.5.2 實現類成員函數 69
2.5.3 實例化類對象并使用 71
2.5.4 類的構造函數和析構函數 71
2.5.5 運算符重載與this指針的使用 74
2.5.6 友元函數和友元類 75
2.5.7 實例:成績管理系統(4.0版) 78
2.6 類繼承 82
2.6.1 is-a關系 82
2.6.2 多態公有繼承 84
2.6.3 protected訪問控制 86
2.6.4 抽象基類 88
2.6.5 私有繼承和保護繼承 88
2.6.6 多繼承 89
2.6.7 類模板 90
2.7 C++異常機制 91
2.7.1 異常處理類型 91
2.7.2 exception類 93
2.8 標準模板庫(STL) 93
2.8.1 auto_ptr類的使用 93
2.8.2 vector模板類的定義和使用 94
2.8.3 通用算法 95
2.8.4 實例:使用STL和通用算法開發成績管理系統(5.0版) 97
2.9 I/O流和文件 102
2.9.1 C++的輸入和輸出 102
2.9.2 文件輸入和輸出 102
2.9.3 實例:在Visual C++ 6.0創建C++源文件,使用磁盤文件讀寫 103
2.10 小結 104
2.11 上機實踐練習 105
第3章 Windows編程與MFC基礎 106
3.1 Windows編程基礎 106
3.1.1 Windows API函數 106
3.1.2 窗口與句柄 106
3.1.3 事件與消息 107
3.1.4 常用的Windows數據類型 108
3.2 Windows應用程序分析 108
3.2.1 WinMain函數 109
3.2.2 創建窗口 109
3.2.3 消息循環 110
3.2.4 WinProc窗口函數 111
3.2.5 Windows編程實例 112
3.3 MFC基礎 114
3.3.1 MFC概述 114
3.3.2 MFC基礎類及其層次結構 114
3.3.3 MFC中的全局函數 116
3.4 MFC應用程序框架分析 116
3.4.1 入口函數 116
3.4.2 應用程序對象 117
3.4.3 InitInstance函數 118
3.4.4 Run函數 119
3.4.5 MFC的消息映射 121
3.4.6 MFC消息分類 121
3.5 小結 123
3.6 上機實踐練習 123
第二篇 Visual C++常用類、控件、資源篇
第4章 基本輸入—鍵盤和鼠標消息 125
4.1 鍵盤消息及其處理 125
4.1.1 鍵盤消息 125
4.1.2 鍵盤消息處理 126
4.1.3 按鍵消息的處理 126
4.1.4 按鍵消息處理函數 128
4.1.5 字符消息的處理 131
4.1.6 創建鍵盤插入符 134
4.2 鼠標消息及其處理 137
4.2.1 鼠標消息 137
4.2.2 鼠標消息處理函數 137
4.2.3 鼠標消息處理實例 138
4.2.4 鼠標光標的創建與使用 141
4.2.5 捕捉鼠標 143
4.2.6 鎖定鼠標的作用區域 143
4.3 小結 144
4.4 上機實踐練習 144
第5章 菜單、工具欄和狀態欄編程 146
5.1 菜單及其相關資源的使用 146
5.1.1 菜單的種類及開發步驟 146
5.1.2 菜單的創建與編輯 147
5.1.3 菜單消息 149
5.1.4 菜單命令消息的處理 149
5.1.5 菜單更新消息的處理 151
5.1.6 為菜單項設置快捷鍵 154
5.1.7 彈出菜單的創建與使用 155
5.2 工具欄的使用 158
5.2.1 工具欄的創建 159
5.2.2 編輯工具欄 161
5.2.3 工具欄命令處理 162
5.2.4 工具欄類CToolBar的簡單介紹 162
5.3 狀態欄的使用 163
5.3.1 狀態欄的創建 163
5.3.2 狀態欄編程 164
5.3.3 狀態欄類CStatusBar的簡單介紹 167
5.4 小結 168
5.5 上機實踐練習 168
第6章 使用Windows標準控件 170
6.1 Windows標準控件 170
6.1.1 Windows控件簡介 171
6.1.2 使用對話框編輯器創建控件 171
6.1.3 控件類的基類CWnd 173
6.1.4 控件的消息及其處理 175
6.2 按鈕控件 175
6.2.1 按鈕控件簡介 176
6.2.2 按鈕控件類CButton 176
6.2.3 按鈕控件的屬性與消息 177
6.2.4 按鈕狀態的確定 178
6.2.5 按鈕控件使用實例 179
6.3 靜態控件與編輯控件 184
6.3.1 靜態控件的創建與使用 184
6.3.2 靜態控件類CStatic 185
6.3.3 編輯控件的創建 185
6.3.4 編輯控件類CEdit 186
6.3.5 編輯控件的消息 188
6.3.6 編輯控件的應用實例 188
6.4 列表框控件和組合框控件 190
6.4.1 列表框控件的創建 190
6.4.2 列表框控件類CListBox 191
6.4.3 列表框控件的消息 193
6.4.4 列表框控件實例 193
6.4.5 組合框控件的創建 196
6.4.6 組合框控件類CComboBox 197
6.4.7 組合框控件的消息 198
6.5 微調控件、滑塊控件和進度條 198
6.5.1 微調控件的創建 198
6.5.2 微調控件的使用 199
6.5.3 滑塊控件的創建 201
6.5.4 滑塊控件的使用 202
6.5.5 進度條控件的創建及使用 203
6.5.6 微調控件、滑塊控件和進度條編程實例 204
6.6 列表視圖控件和樹形視圖控件 206
6.6.1 列表視圖控件的創建 206
6.6.2 列表視圖控件類CListCtrl 207
6.6.3 列表視圖控件的通知消息 209
6.6.4 樹形視圖控件的創建 209
6.6.5 樹形視圖控件類CTreeCtrl 210
6.6.6 樹形視圖控件的消息 212
6.6.7 列表視圖和樹形視圖編程實例 213
6.7 ActiveX控件的使用 216
6.7.1 ActiveX控件的結構 217
6.7.2 Visual C++中的組件和控件庫 218
6.7.3 MFC程序中ActiveX控件的使用 218
6.7.4 ActiveX控件使用實例 219
6.8 小結 224
6.9 上機實踐練習 224
第7章 MFC常用的通用類 225
7.1 字符串類(CString) 225
7.1.1 CString對象的創建 225
7.1.2 CString類的成員函數 226
7.1.3 CString類的常用操作 227
7.1.4 CString的格式化與類型轉換 229
7.2 MFC的集合類 230
7.2.1 數組類 231
7.2.2 數組類的使用實例 231
7.2.3 鏈表類 233
7.2.4 鏈表類的使用實例 235
7.3 日期、時間類 237
7.3.1 CTime類 238
7.3.2 CTime對象的格式化 239
7.3.3 CTimeSpan類 240
7.3.4 計時器的使用 241
7.4 MFC文件操作類(CFile) 242
7.4.1 構造文件對象并打開文件 242
7.4.2 文件的讀寫操作 243
7.4.3 文件的定位操作 244
7.4.4 文件的管理操作 245
7.4.5 使用CFile類進行文件操作實例 246
7.5 MFC異常類 248
7.5.1 MFC異常類簡介 248
7.5.2 文件異常類CFileException 249
7.5.3 異常的捕獲 250
7.6 小結 251
7.7 上機實踐練習 252
第8章 文本、圖形輸出 253
8.1 基礎知識 253
8.1.1 GDI繪圖的實現 253
8.1.2 MFC圖形對象類 254
8.1.3 庫存GDI對象 255
8.1.4 與圖形繪制有關的簡單數據類型 256
8.1.5 MFC應用程序框架中的圖形繪制與刷新 258
8.2 MFC設備描述表(CDC類) 258
8.2.1 CDC及其派生類 258
8.2.2 文本輸出 260
8.2.3 CDC的常用繪圖函數 262
8.3 使用畫筆和畫刷進行繪圖 265
8.3.1 畫筆對象及其使用 265
8.3.2 使用畫筆繪圖實例 266
8.3.3 畫刷對象及其使用 267
8.3.4 使用畫刷繪圖實例 268
8.4 字體對象 270
8.4.1 字體對象的創建 270
8.4.2 獲取字體信息 272
8.4.3 字體對象使用實例 273
8.5 位圖和區域對象 274
8.5.1 設備相關位圖(DDB) 274
8.5.2 CBitmap應用實例 276
8.5.3 設備無關位圖(DIB) 277
8.5.4 區域對象(CRgn) 278
8.5.5 CRgn應用實例 279
8.6 坐標系統與映射模式 281
8.6.1 坐標系統 281
8.6.2 映射模式 281
8.6.3 自定義映射模式 283
8.6.4 坐標映射使用實例 283
8.7 小結 285
8.8 上機實踐練習 285
第三篇 Visual C++基本應用程序開發篇
第9章 文檔/視圖結構的應用程序開發 287
9.1 文檔/視圖結構 287
9.1.1 文檔/視圖結構概述 287
9.1.2 文檔/視圖結構的分類 288
9.2 文檔/視圖結構應用程序框架分析 289
9.2.1 利用AppWizard創建單文檔程序框架 289
9.2.2 程序框架中的主要類及相互關系 292
9.2.3 文檔類、視圖類核心函數及作用 294
9.2.4 新建、保存和打開的實現 295
9.2.5 多文檔應用程序框架 296
9.3 文檔/視圖結構應用程序的開發 298
9.3.1 實現目標 298
9.3.2 創建基本的程序框架 298
9.3.3 創建文檔數據 300
9.3.4 在視圖類中實現繪圖操作 300
9.3.5 文檔的序列化 304
9.3.6 對例程數據進行序列化 308
9.3.7 讓文檔程序支持滾動條 311
9.4 窗口分割與多視圖 313
9.4.1 窗口分割基礎知識 313
9.4.2 動態分割窗口的實現 315
9.4.3 靜態分割窗口與多視圖的實現 317
9.5 小結 321
9.6 上機實踐練習 321
第10章 對話框的應用 322
10.1 對話框的工作方式、種類和創建方法 322
10.1.1 對話框在應用程序中的工作方式 322
10.1.2 對話框的種類 322
10.1.3 對話框模板的創建與編輯 324
10.2 對話框與程序連接 326
10.2.1 創建對話框類 326
10.2.2 為對話框類添加成員變量 326
10.2.3 對話框數據交換與驗證 328
10.2.4 對話框控件通知消息的處理 330
10.3 對話框的創建與顯示 332
10.3.1 創建模態對話框 332
10.3.2 創建非模態對話框 334
10.3.3 非模態對話框創建實例 335
10.3.4 基于對話框的應用程序 339
10.4 屬性表對話框 342
10.4.1 屬性表對話框的創建 342
10.4.2 屬性表對話框的運行機制 345
10.5 消息對話框與公用對話框 347
10.5.1 消息對話框 347
10.5.2 顏色對話框 350
10.5.3 文件對話框 351
10.5.4 字體對話框 352
10.5.5 查找、替換對話框 354
10.5.6 打印對話框 356
10.5.7 公用對話框使用實例 358
10.6 小結 363
10.7 上機實踐練習 363
第11章 動態鏈接庫編程 364
11.1 基本概念 364
11.1.1 動態鏈接庫的概念 364
11.1.2 動態鏈接庫的優點 365
11.1.3 Visual C++ 6.0可開發的DLL 366
11.1.4 DLL文件的組成 366
11.2 DLL的創建與調用 367
11.2.1 Win32 DLL的創建 367
11.2.2 DLL的導出 368
11.2.3 應用程序鏈接DLL 369
11.3 MFC常規DLL的創建與使用 373
11.3.1 基本概念 373
11.3.2 MFC常規DLL的創建 374
11.3.3 MFC常規DLL創建實例 375
11.3.4 MFC常規DLL的調用 377
11.4 MFC擴展DLL的創建與使用 378
11.4.1 MFC擴展DLL的創建 378
11.4.2 MFC擴展DLL的創建實例 379
11.4.3 MFC擴展DLL的調用 383
11.5 DLL的查看與調試 384
11.5.1 使用Depends工具查看DLL接口 384
11.5.2 DLL的調試 384
11.6 小結 386
11.7 上機實踐練習 386
第四篇 Visual C++程序開發提高篇
第12章 多線程程序開發 389
12.1 多線程的引入 389
12.1.1 單線程程序的不足 389
12.1.2 問題的解決 390
12.2 多線程編程的基礎知識 391
12.2.1 進程和線程 391
12.2.2 Spy++工具 391
12.2.3 Win32 API對多線程編程的支持 392
12.2.4 MFC對多線程編程的支持 395
12.3 多線程程序開發 399
12.3.1 使用Win32 API函數開發多線程程序 399
12.3.2 MFC用戶界面線程的開發 402
12.3.3 MFC工作者線程的開發 405
12.4 線程間的通信 406
12.4.1 使用全局變量實現線程間的通信 406
12.4.2 使用自定義的消息實現線程間的通信 409
12.5 線程的同步 412
12.5.1 等待函數 412
12.5.2 CEvent類實現線程同步 414
12.5.3 使用CEvent類實現線程同步實例 415
12.5.4 CCriticalSection類實現線程同步 417
12.5.5 CCriticalSection類實現線程同步實例 418
12.5.6 CSemaphore類實現線程同步 421
12.5.7 CSemaphore類實現線程同步實例 422
12.6 小結 423
12.7 上機實踐練習 423
第13章 Visual C++網絡編程 425
13.1 網絡通信及開發基礎 425
13.1.1 TCP/IP協議 425
13.1.2 TCP/IP協議 427
13.1.3 Windows Sockets基礎 427
13.1.4 客戶端/服務器模式 428
13.2 基本網絡通信開發 428
13.2.1 CAsyncSocket類及常用成員函數的使用 428
13.2.2 使用WinSock進行無連接的通信 433
13.2.3 無連接通信實例 433
13.2.4 使用WinSock進行有連接的通信 438
13.2.5 有連接通信實例 438
13.3 網絡程序設計與開發 443
13.3.1 網絡程序的一些概念 443
13.3.2 Socket事件 443
13.3.3 Socket事件的激發控制 444
13.3.4 Socket信息的獲取與處理 445
13.3.5 網絡程序開發實例 447
13.4 WinInet開發Internet客戶端程序 455
13.4.1 MFC WinInet開發包 455
13.4.2 WinInet開發客戶端程序的流程 457
13.4.3 WinInet開發HTTP客戶端程序實例 457
13.5 簡單的Web瀏覽器開發 459
13.5.1 CHtmlView視圖類簡介 459
13.5.2 瀏覽器開發實例 461
13.6 小結 465
13.7 上機實踐練習 465
第14章 Visual C++數據庫編程 467
14.1 數據庫基礎 467
14.1.1 數據庫的基本概念 467
14.1.2 數據庫管理系統(DBMS) 468
14.1.3 結構化查詢語言(SQL) 468
14.2 數據庫開發技術簡介 471
14.2.1 ODBC API/MFC ODBC技術 471
14.2.2 DAO技術 473
14.2.3 ADO技術 473
14.3 在Visual C++中使用ADO開發數據庫應用程序 475
14.3.1 Visual C++對ADO的支持 475
14.3.2 創建數據庫與實例工程 476
14.3.3 引入ADO對象 479
14.3.4 連接數據源 479
14.3.5 開發技術—連接對象(Connection) 480
14.3.6 創建表并添加數據 482
14.3.7 開發技術—ADO對象命令的執行 483
14.3.8 開發技術—Recordset對象 485
14.3.9 遍歷、刪除、編輯記錄的實現 491
14.4 使用ODBC數據源連接數據庫 495
14.4.1 手動實現設置ODBC數據源 495
14.4.2 ADO連接ODBC數據源 497
14.4.3 Visual C++程序實現設置ODBC數據源 497
14.4.4 使用Visual C++程序設置ODBC數據源實例 498
14.5 小結 499
14.6 上機實踐練習 500
第15章 使用Visual C++ 6.0開發家庭財務管理系統 502
15.1 提出問題:設計一個家庭財務管理系統 502
15.1.1 功能概述 502
15.1.2 界面需求 503
15.2 數據庫設計 503
15.2.1 數據關系分析 503
15.2.2 E-R圖設計 504
15.2.3 數據庫表的生成 505
15.3 算法設計 506
15.3.1 連接數據庫 506
15.3.2 添加數據 507
15.3.3 修改數據庫內容 508
15.3.4 統計數據庫信息 508
15.4 軟件項目開發過程 508
15.4.1 開發家庭財務管理系統項目的流程 508
15.4.2 根據E-R圖創建數據庫表 508
15.4.3 功能研發的準備工作 510
15.4.4 實現算法設計 514
15.4.5 測試 517
15.5 小結 517
第16章 常見的面試題及解答技巧 519
16.1 理論基礎知識:數學、智力題 519
面試題1:請把一盒蛋糕切成8份,分給8個人,但蛋糕盒里還必須留有一份 519
面試題2:小貓奔跑問題 519
面試題3:4、4、10和7這4個數只使用一次,運用加、減、乘、除,怎么得出24 519
面試題4:為什么下水道的蓋子是圓的 520
面試題5:美國有多少輛私家車 520
面試題6:為什么鏡子中的影像可以顛倒左右,卻不能顛倒上下 520
面試題7:請估算一下密西西比河的水的總質量 520
16.2 程序設計面試題 520
面試題8:如何理解面向對象和面向過程?用C++編寫的程序就是面向對象程序嗎 520
面試題9:在C/C++程序設計中,局部變量能否和全局變量重名 521
面試題10:如何引用一個已經定義過的全局變量 521
面試題11:全局變量是否可以定義在可被多個.C文件包含的頭文件中 521
面試題12:static全局變量與普通的全局變量有什么區別 521
面試題13:對于一個頻繁使用的短小函數,在C和C++語言中分別用什么 521
面試題14:關鍵字const有什么含義 521
面試題15:虛函數和普通函數有什么不同 521
面試題16:抽象基類不能實例化,為什么還有抽象基類這個語法特性 522
面試題17:在C++程序設計語言中,vector和數組有何不同 522
面試題18:C++編譯器自動完成和調用了哪些函數 522
面試題19:為什么要定義拷貝構造函數 522
面試題20:名稱空間有何作用 522
面試題21:在構造函數中初始化和使用初始化列表有什么不同 523
面試題22:為什么要避免將數據成員放在公共域中 523
面試題23:為什么要盡量定義const 523
面試題24:C和C++的注釋風格有何不同,為什么盡量選擇C++風格的注釋 523
面試題25:程序編譯時編譯器會有一些警告信息,你如何看待這些警告信息 524
16.3 計算機理論知識題 524
面試題26:基本的數據結構有哪些類型 524
面試題27:什么是平衡二叉樹(AVL樹) 525
面試題28:給出一系列的二進制碼,如何判斷這些編碼是前綴碼 525
面試題29:什么是左式堆 525
面試題30:請簡單闡述3NF(第三范式)和BCNF(巴克斯范式)的基本概念 525
面試題31:數據庫并發操作可能會帶來什么問題?如何防止這些問題 525
面試題32:簡述CMM和CMMI 526
面試題33:在一個查詢中,使用哪一個關鍵字能夠除去重復列值 526
面試題34:什么是快照?它的作用是什么 526
面試題35:簡述存儲過程和觸發器的相關概念 526
面試題36:SQL Server 2000是否支持行級鎖定,有什么好處 526
面試題37:事務是什么?事務具備哪些特性 527
面試題38:事前觸發和事後觸發有何區別?語句級觸發和行級觸發有何區別 527
面試題39:解決死鎖的方法有哪些 527
面試題40:提高數據庫運行效率的辦法有哪些 527
面試題41:以你的工作經驗,簡述數據庫的設計過程 528
面試題42:在為視圖創建索引前,視圖本身必須滿足哪些條件 528
面試題43:什么是SQL Server的確定性函數和不確定性函數 528
面試題44:哪類視圖是可以更新的?哪類視圖是不可更新的?各舉一例說明 529
面試題45:所有的視圖是否都可以更新?為什么 529
面試題46:什么是基本表?什么是視圖 529
面試題47:數據庫中為什么要有視圖?試述視圖的優點 529
16.4 程序設計與算法題 529
面試題48:使用C++,輸入一個字符串,將其逆序後輸出 529
面試題49:判斷給定代碼是否有問題 530
面試題50:用C++編寫判斷操作系統是16位還是32位的程序,不能用sizeof函數 530
面試題51:在不用第三方參數的情況下,交換兩個參數的值 530
面試題52:程序解讀,判斷問題 531
面試題53:使用SQL語句進行數據庫建表與查詢 531
面試題54:編寫一個算法,利用棧的基本運算返回指定棧的棧底元素 532
面試題55:寫出兩種中序遍歷二叉樹的方法 532
面試題56:簡述哈夫曼樹的意義及其創建過程 533
16.5 小結 534
書摘/試閱
第1章 VisualC++6.0開發環境和應用程序框架
編程語言要在某計算機系統下運行,必定要經過編譯或解析成為機器語言,才能被計算機理解并執行。高級語言按照翻譯方式可以分為兩類:編譯型和解釋型。C++是一種編譯型的高級語言,其過程嚴格按照6個步驟進行:語法分析、詞法分析、語義分析、中間代碼生成、優化代碼和目標代碼生成。VisualC++6.0是當今主流的C/C++集成開發環境,除集編輯、編譯和運行于一體外,還提供了豐富的控件、菜單和類定義自動處理功能。
本章涉及的知識點有:
?VisualC++6.0的安裝過程和軟件項目創建過程。
?VisualC++6.0簡介。通過學習,讀者可以熟悉VisualC++6.0的界面、各菜單項的功能,可以理解高級語言的編譯原理過程,并學會掌握使用幫助功能來解決在軟件開發過程中遇到的特殊問題。
?MFC、Win32的創建。通過學習,讀者可以學會MFC、Win32程序的創建、編譯和執行,并可以學會使用VisualC++調試器在程序運行時對變量或函數調用順序進行跟蹤,提高程序排錯的效率。
?Microsoft應用程序框架。通過學習,讀者可以掌握MFC應用程序框架結構和消息傳遞相關知識,為本書第二篇和第三篇的學習打下基礎。
?實踐練習。通過學習,可以學會創建自己的程序,并進行簡單修改。
1.1 安裝并測試VisualC++6.0
本節首先介紹VisualC++6.0的安裝過程,然後簡要介紹VisualC++6.0開發環境的相關技術背景,最後使用VisualC++6.0應用程序向導創建一個項目,以測試VisualC++6.0是否安裝成功。
1.1.1 VisualC++6.0的安裝
VisualC++6.0(簡稱VC6.0)是Microsoft公司研發的基于Windows操作系統的C++集成開發環境。較早期程序設計的各個階段都要用不同的軟件來進行處理,如先用字處理軟件編輯源程序,然後用鏈接程序進行函數、模塊連接,再用編譯程序進行編譯,開發者必須在幾種軟件間來回切換操作。在這種開發條件下,軟件研發是非常繁瑣的,而且大多數浪費時間的繁瑣手續對軟件研發沒有任何幫助。而集成開發環境是將這些繁瑣工作流程集中在一個軟件環境中,通過這個軟件環境即可完成所有的軟件研發步驟,無須切換不同的開發工具。高級語言編程的學習主要分為兩個方面:語言理論和開發工具。VisualC++6.0作為一個集成開發環境,是初學者學習的重點。本書所使用的全部實例都在WindowsXP操作系統和VisualC++6.0開發環境下通過編譯。讀者未必都要使用WindowsXP操作系統,但安裝一個VisualC++6.0是必要的。
編程語言要在某計算機系統下運行,必定要經過編譯或解析成為機器語言,才能被計算機理解并執行。高級語言按照翻譯方式可以分為兩類:編譯型和解釋型。C++是一種編譯型的高級語言,其過程嚴格按照6個步驟進行:語法分析、詞法分析、語義分析、中間代碼生成、優化代碼和目標代碼生成。VisualC++6.0是當今主流的C/C++集成開發環境,除集編輯、編譯和運行于一體外,還提供了豐富的控件、菜單和類定義自動處理功能。
本章涉及的知識點有:
?VisualC++6.0的安裝過程和軟件項目創建過程。
?VisualC++6.0簡介。通過學習,讀者可以熟悉VisualC++6.0的界面、各菜單項的功能,可以理解高級語言的編譯原理過程,并學會掌握使用幫助功能來解決在軟件開發過程中遇到的特殊問題。
?MFC、Win32的創建。通過學習,讀者可以學會MFC、Win32程序的創建、編譯和執行,并可以學會使用VisualC++調試器在程序運行時對變量或函數調用順序進行跟蹤,提高程序排錯的效率。
?Microsoft應用程序框架。通過學習,讀者可以掌握MFC應用程序框架結構和消息傳遞相關知識,為本書第二篇和第三篇的學習打下基礎。
?實踐練習。通過學習,可以學會創建自己的程序,并進行簡單修改。
1.1 安裝并測試VisualC++6.0
本節首先介紹VisualC++6.0的安裝過程,然後簡要介紹VisualC++6.0開發環境的相關技術背景,最後使用VisualC++6.0應用程序向導創建一個項目,以測試VisualC++6.0是否安裝成功。
1.1.1 VisualC++6.0的安裝
VisualC++6.0(簡稱VC6.0)是Microsoft公司研發的基于Windows操作系統的C++集成開發環境。較早期程序設計的各個階段都要用不同的軟件來進行處理,如先用字處理軟件編輯源程序,然後用鏈接程序進行函數、模塊連接,再用編譯程序進行編譯,開發者必須在幾種軟件間來回切換操作。在這種開發條件下,軟件研發是非常繁瑣的,而且大多數浪費時間的繁瑣手續對軟件研發沒有任何幫助。而集成開發環境是將這些繁瑣工作流程集中在一個軟件環境中,通過這個軟件環境即可完成所有的軟件研發步驟,無須切換不同的開發工具。高級語言編程的學習主要分為兩個方面:語言理論和開發工具。VisualC++6.0作為一個集成開發環境,是初學者學習的重點。本書所使用的全部實例都在WindowsXP操作系統和VisualC++6.0開發環境下通過編譯。讀者未必都要使用WindowsXP操作系統,但安裝一個VisualC++6.0是必要的。
主題書展
更多
主題書展
更多書展今日66折
您曾經瀏覽過的商品
購物須知
大陸出版品因裝訂品質及貨運條件與台灣出版品落差甚大,除封面破損、內頁脫落等較嚴重的狀態,其餘商品將正常出貨。
特別提醒:部分書籍附贈之內容(如音頻mp3或影片dvd等)已無實體光碟提供,需以QR CODE 連結至當地網站註冊“並通過驗證程序”,方可下載使用。
無現貨庫存之簡體書,將向海外調貨:
海外有庫存之書籍,等候約45個工作天;
海外無庫存之書籍,平均作業時間約60個工作天,然不保證確定可調到貨,尚請見諒。
為了保護您的權益,「三民網路書店」提供會員七日商品鑑賞期(收到商品為起始日)。
若要辦理退貨,請在商品鑑賞期內寄回,且商品必須是全新狀態與完整包裝(商品、附件、發票、隨貨贈品等)否則恕不接受退貨。