C++編程兵書

C++編程兵書

本書由淺入深,全面、系統地介紹了Visual C++開發技術。本書提供了大量實例,供讀者實戰演練。本書涉及面廣,從基本操作到高級技術和核心管理,再到項目開發,幾乎涉及C++開發的所有重要知識。另外,作者為幫助讀者更好地學習本書內容,將書中的示例原始碼收錄於本書的配書光碟中。全書共分17章。主要內容有C++入門、安裝和配置Visual C++ 6.0、變數和基本數據類型、運算符和表達式、程式控制結構、數組、函式、函式的高級套用、編譯預處理、指針、構造數據類型、類、類的初始化和賦值及析構、模板、進行面向對象程式設計、人事管理系統、點歌管理系統。

基本介紹

內容簡介

《C++編程兵書》由淺入深,全面、系統地介紹了VisualC++開發技術。全書提供了大量實例,供讀者實戰演練。《C++編程兵書》涉及面廣,從基本操作到高級技術和核心管理,再到項目開發,幾乎涉及C++開發的所有重要知識。另外,作者為幫助讀者更好地學習《C++編程兵書》內容,將書中的示例原始碼收錄於此書的配書光碟中。

作者簡介

亓永剛,畢業於中國石油大學計算機套用技術專業。從事軟體開發多年,現就職於國家衛星氣象中心。曾經參與了石化管理幹部學院網路、計算機維護及系統改進;2009年主持了露天礦剝、采、排與土地復墾綜合預控系統中的虛擬展示子系統的開發;參與國家863項目。

圖書目錄

第1章概覽全局:C++入門1
1.1C++概述2
1.1.1C++的歷史沿革2
1.1.2C++與面向對象2
1.1.3從C到C++3
1.2程式設計方法4
1.2.1結構化程式設計4
1.2.2面向對象程式設計5
1.2.3程式設計方法比較6
1.3C++開發環境——VisualC++6.07
1.3.1工作區8
1.3.2編輯區9
1.3.3輸出視窗9
1.3.4選單欄、工具列和狀態欄10
1.4C++源程式組成元素16
1.4.1基本組成16
1.4.2基本符號17
1.4.3標識符17
1.4.4保留字18
1.4.5分隔設定18
1.5VisualC++6.0項目中檔案類型的說明18
1.6小結19
1.7習題20
第2章裝備拾取:安裝、配置VisualC++6.021
2.1在Windows7中安裝VisualC++6.022
2.1.1系統要求22
2.1.2在Windows7中安裝VisualC++6.0和Installshield22
2.1.3徹底解決Windows7下安裝VisualC++6.0的兼容性問題33
2.2配置VisualC++6.037
2.2.1環境設定(EnvironmentSettings)37
2.2.2工作區域設定(WorkspaceSettings)39
2.2.3工程設定(ProjectSettings)41
2.2.4快捷鍵(Shortcut—key)43
2.3第一個C++程式—HelloWorld44
2.4小結50
2.5習題51
第3章樁步必練:變數和基本數據類型52
3.1常量53
3.1.1字面值常量53
3.1.2符號常量(#define)55
3.1.3常值變數56
3.1.4常量的套用57
3.2變數62
3.2.1聲明變數62
3.2.2變數的命名規則63
3.2.3變數的存儲時間和作用域65
3.2.4變數的套用69
3.3基本數據類型70
3.3.1整型71
3.3.2字元型73
3.3.3浮點型75
3.3.4布爾型76
3.4類型轉換78
3.4.1隱式轉換78
3.4.2顯式轉換79
3.4.3C++的4種數據類型轉換操作符81
3.5知識深化84
3.6小結88
3.7習題88
第4章樁步進階:運算符和表達式90
4.1運算符91
4.1.1算術運算符91
4.1.2賦值運算符94
4.1.3關係運算符95
4.1.4邏輯運算符97
4.1.5條件運算符98
4.1.6逗號運算符100
4.1.7位運算符100
4.1.8sizeof運算符106
4.1.9運算符的優先權107
4.2表達式109
4.2.1算術表達式109
4.2.2關係表達式110
4.2.3邏輯表達式111
4.2.4條件表達式112
4.2.5賦值表達式113
4.2.6逗號表達式115
4.3語句115
4.3.1語句中的空格116
4.3.2空語句117
4.3.3聲明語句117
4.3.4賦值語句117
4.4小結118
4.5習題118
第5章初養內力:程式控制結構121
5.1順序結構122
5.1.1表達式語句122
5.1.2輸入語句123
5.1.3輸出語句124
5.1.4格式控制符125
5.1.5套用示例129
5.2選擇結構130
5.2.1if語句130
5.2.2ifelse語句131
5.2.3多重if
5.2.4switch語句135
5.2.5套用示例138
5.3循環結構140
5.3.1for語句140
5.3.2while語句141
5.3.3dowhile語句143
5.3.4多重循環144
5.3.5套用示例145
5.4轉向語句147
5.5小結148
5.6習題149
第6章小有功底:數組151
6.1數組概述152
6.1.1數組的基本概念152
6.1.2一維數組153
6.1.3二維數組153
6.2數組的聲明及初始化154
6.2.1聲明一維數組154
6.2.2初始化一維數組154
6.2.3聲明二維數組156
6.2.4初始化二維數組156
6.3引用數組元素158
6.3.1引用一維數組元素158
6.3.2引用二維數組元素161
6.3.3套用示例162
6.4字元串163
6.4.1字元數組163
6.4.2字元串164
6.4.3字元數組與字元串的區別166
6.5字元串處理函式167
6.5.1strcmp()函式—字元串比較167
6.5.2strcpy()函式—字元串複製168
6.5.3strcat()函式—字元串連線169
6.5.4strlen()函式—計算字元串長度171
6.5.5gets()和puts()函式—字元串輸入/輸出172
6.6數組綜合套用173
6.7小結176
6.8習題177
第7章一招一式:函式180
7.1函式概述181
7.1.1函式的基本概念181
7.1.2函式的分類182
7.1.3函式的組成183
7.2函式的聲明和定義183
7.2.1聲明函式183
7.2.2定義函式185
7.2.3頭檔案和實現檔案的分離186
7.3函式參數傳遞189
7.3.1形參和實參189
7.3.2值傳遞190
7.3.3地址傳遞192
7.4函式的調用193
7.4.1函式調用過程193
7.4.2無參函式的調用194
7.4.3帶參函式的調用195
7.4.4默認形參值的函式調用197
7.4.5嵌套調用199
7.5遞歸201
7.5.1直接遞歸201
7.5.2間接遞歸203
7.6main()函式205
7.6.1不帶參數的main()函式205
7.6.2帶參數的main()函式206
7.7內聯函式208
7.8函式綜合套用209
7.9小結212
7.10習題212
第8章內外相形:函式的高級套用215
8.1數組作為函式參數216
8.1.1傳遞一維數組參數216
8.1.2傳遞多維數組參數217
8.2查找的函式實現219
8.2.1順序查找的函式實現219
8.2.2折半查找的函式實現221
8.3排序的函式實現223
8.3.1冒泡排序的函式實現223
8.3.2快速排序的函式實現225
8.4函式模板227
8.4.1引入函式模板227
8.4.2定義函式模板228
8.4.3實例化函式模板229
8.4.4套用示例231
8.5函式重載232
8.5.1函式重載概述232
8.5.2參數類型不同的函式重載233
8.5.3參數個數不同的函式重載235
8.5.4套用示例236
8.6函式高級套用238
8.7小結240
8.8習題240
第9章排除雜念:編譯預處理242
9.1預處理命令243
9.2宏243
9.2.1宏概述243
9.2.2不帶參數的宏定義244
9.2.3取消宏245
9.2.4宏嵌套247
9.2.5帶參數的宏定義248
9.2.6內聯函式253
9.2.7宏與函式的區別254
9.3檔案包含256
9.3.1#include命令256
9.3.2合理使用檔案包含257
9.4條件編譯258
9.4.1#ifdef形式259
9.4.2#ifndef形式260
9.4.3#if形式261
9.5其他命令262
9.5.1#error命令262
9.5.2#line命令263
9.6小結263
9.7習題264
第10章遊刃沙場:指針267
10.1指針概述268
10.1.1指針是什麼268
10.1.2定義指針269
10.1.3指針的初始化269
10.2指針的運算271
10.2.1取地址與取值運算271
10.2.2指針的算術運算273
10.2.3指針的關係運算275
10.2.4指針的賦值運算276
10.2.5void指針和const指針277
10.3指針與數組278
10.3.1訪問數組元素的方法279
10.3.2多維數組元素的訪問281
10.3.3數組指針與指針數組282
10.4指針與函式284
10.4.1指針作為函式參數284
10.4.2指針型函式286
10.4.3函式指針287
10.5指針與字元串289
10.6二級指針291
10.7小結292
10.8習題292
第11章合眾家之長:構造數據類型294
11.1結構體295
11.1.1結構體概述295
11.1.2結構體類型聲明296
11.1.3定義結構體類型變數297
11.1.4初始化結構體變數299
11.1.5引用結構體成員變數301
11.1.6結構體作為函式參數303
11.2共用體304
11.2.1共用體類型聲明304
11.2.2定義共用體類型變數305
11.2.3引用共用體成員變數306
11.3枚舉308
11.3.1定義枚舉類型308
11.3.2定義枚舉類型變數310
11.3.3引用枚舉類型變數311
11.4類型重定義typedef312
11.5位域315
11.5.1定義位域變數315
11.5.2使用位域316
11.6小結318
11.7習題318
第12章法門初觸:類320
12.1類的定義321
12.1.1數據成員321
12.1.2成員函式322
12.1.3成員訪問323
12.1.4友元324
12.1.5類聲明和類定義326
12.2類與對象326
12.3類成員函式328
12.3.1內聯成員函式328
12.3.2const對象和const成員函式330
12.4隱含的this指針332
12.5靜態類成員335
12.5.1靜態數據成員335
12.5.2靜態成員函式336
12.6指向類成員的指針337
12.6.1指向數據成員的指針337
12.6.2指向成員函式的指針338
12.7局部類340
12.8嵌套類340
12.9小結342
12.10習題342
第13章小有成就:類的初始化、賦值和析構344
13.1類的初始化345
13.2類的構造函式346
13.2.1預設構造函式347
13.2.2限制對象創建351
13.2.3拷貝構造函式352
13.2.4深拷貝和淺拷貝356
13.2.5構造函式調用順序358
13.3類的析構359
13.3.1一般析構函式359
13.3.2虛析構函式361
13.4小結364
13.5習題364
第14章以一敵百:模板368
14.1模板的概念369
14.2函式模板與模板函式370
14.2.1函式模板370
14.2.2模板函式372
14.3類模板375
14.3.1類模板375
14.3.2模板類377
14.3.3類模板實例化379
14.3.4類模板的成員函式382
14.3.5類模板中的友元聲明384
14.4小結386
14.5習題387
第15章形神合一:進行面向對象程式設計392
15.1什麼是面向對象程式設計393
15.1.1面向對象程式設計的優點393
15.1.2面向對象程式設計的基本概念395
15.2數據的抽象與封裝399
15.2.1類的抽象400
15.2.2類的封裝400
15.3派生與繼承402
15.3.1派生類的概念402
15.3.2派生類的構造和析構405
15.3.3基類成員在派生類中的訪問許可權409
15.3.4多重繼承與繼承鏈411
15.3.5二義性問題415
15.4多態性420
15.4.1多態的概念420
15.4.2函式重載421
15.4.3運算符重載422
15.4.4虛函式426
15.5小結433
15.6習題434
第16章實戰提高一:人事管理系統440
16.1開發背景441
16.2系統分析441
16.2.1需求分析441
16.2.2項目人員分配441
16.3系統設計442
16.3.1系統目標442
16.3.2系統模組結構442
16.3.3開發環境與運行環境444
16.3.4系統預覽444
16.4資料庫設計447
16.4.1資料庫分析447
16.4.2管理系統E—R圖448
16.4.3資料庫、表的設計449
16.4.4數據表的關係圖452
16.5職工模組設計453
16.5.1職工模組功能分析453
16.5.2職工模組技術分析453
16.5.3職工添加的實現454
16.5.4職工刪除的實現459
16.5.5職工修改的實現463
16.5.6職工查詢的實現464
16.6考勤模組設計465
16.6.1考勤功能分析465
16.6.2考勤技術分析465
16.6.3考勤管理的實現466
16.6.4考勤的統計、查詢與刪除469
16.7工資模組設計473
16.7.1工資模組功能分析473
16.7.2工資模組技術分析473
16.7.3工資計算的實現473
16.7.4工資基本信息的設定475
16.7.5工資統計查詢479
16.8系統模組設計483
16.8.1系統模組功能分析483
16.8.2系統模組技術分析483
16.8.3用戶添加的實現484
16.8.4用戶註銷的實現486
16.8.5資料庫備份的實現487
16.8.6資料庫還原的實現488
16.9系統部署和運行490
16.9.1系統安裝配置490
16.9.2資料庫建立及用戶參數定製490
16.10開發注意點總結490
16.11小結491
第17章實戰提高二:點歌管理系統492
17.1開發背景493
17.2系統分析493
17.2.1需求分析493
17.2.2可行性分析493
17.2.3項目人員分配494
17.3系統設計495
17.3.1系統目標495
17.3.2系統模組結構495
17.3.3開發環境與運行環境496
17.3.4點歌管理系統預覽496
17.4資料庫設計501
17.4.1資料庫分析501
17.4.2管理系統E—R圖501
17.4.3資料庫、表的設計502
17.4.4數據表的關係圖505
17.5系統框架設計506
17.5.1系統框架功能分析506
17.5.2系統框架技術分析506
17.5.3系統框架界面的設計506
17.5.4系統框架界面的實現507
17.6歌曲單擊設計511
17.6.1歌曲單擊功能分析511
17.6.2歌曲單擊技術分析512
17.6.3各模組界面的設計512
17.6.4開戶點歌的實現513
17.6.5按歌手查詢的實現516
17.6.6按拼音查詢的實現520
17.6.7按歌曲名字數查詢的實現521
17.6.8按歌曲類別查詢的實現524
17.7播放控制模組設計524
17.7.1播放控制模組功能分析525
17.7.2播放控制模組技術分析525
17.7.3播放控制模組界面設計525
17.7.4播放控制模組的實現525
17.8後台模組設計530
17.8.1後台模組功能分析530
17.8.2後台模組技術分析531
17.8.3後台模組界面設計531
17.8.4歌曲屬性數據獲取的實現532
17.8.5管理員密碼修改的實現537
17.9結賬模組設計540
17.9.1結賬模組功能分析540
17.9.2結賬模組技術分析540
17.9.3結賬模組界面設計540
17.9.4歌曲計費的實現541
17.9.5列印回單的實現542
17.10系統部署和運行542
17.10.1系統安裝配置542
17.10.2資料庫建立及用戶參數定製543
17.11知識點匯總543
17.12小結544

序言

20世紀80年代初期,美國貝爾實驗室在C語言的基礎上發明並實現了C++(最初這種語言被稱為“C with Classes”)。C++現在已成為面向對象程式設計的首選語言,也是當前十分流行和實用的一種程式設計語言。
在這期間,Visual Studio以其高效的特點在Windows平台的開發環境中經久不衰。它是目前Windows平台下最流行的C++開發工具之一,尤其適合開發有關作業系統、通信組件、圖形處理、音頻處理等技術含量較高的程式。
筆者結合自己多年的C++開發經驗和心得體會,利用Visual Studio 6.0平台,花費了一年多的時間寫作本書。希望讀者能在本書的引領下跨入Visual C++的開發大門,並成為一名開發高手。本書全面、系統、深入地介紹了C++基礎知識和開發技術,並以大量示例貫穿於全書的講解之中,最後還詳細介紹了人事管理系統項目案例的開發。學習完本書後,讀者應該可以進行獨立的項目開發。
本書特色
1.講解由淺入深,循序漸進,適合各個層次的讀者閱讀
本書從 C++的基礎開始講解,逐步深入到C++的高級開發技術及套用,內容從易到難,講解由淺入深,循序漸進,適合各個層次的讀者閱讀。
2.貫穿大量的開發示例和技巧,迅速提升開發水平
本書在講解知識點時貫穿了大量短小精悍的典型示例,並給出了大量的開發技巧,以便讀者更好地理解各種概念和開發技術,體驗實際編程,迅速提高開發水平。這些示例原始碼收錄於配書光碟中。
3.詳解典型項目案例開發,提高實戰水平
本書詳細介紹了人事管理系統項目案例的開發。通過這個項目案例,可以提高讀者的軟體項目開發水平,從而具備獨立進行項目開發的能力。
本書內容及體系結構
第1章 概覽全局:C++入門
本章主要內容包括:C++的歷史沿革、C++的編譯環境Visual C++ 2010、C++源程式的基本組成和基本元素及程式設計方法。通過本章的學習,讀者可以了解C++的歷史及其特點,掌握C++編譯環境,熟悉C++源程式的基本組成和組成元素。
第2章 裝備拾取:安裝、配置Visual C++ 6.0
本章主要內容包括:Visual C++ 6.0及InstallShield的安裝配置方法,如何使用Visual C++ 6.0創建和管理Visual C++控制台項目,其中還介紹了一些注意事項。通過本章的學習,讀者可以掌握Visual C++ 6.0的安裝過程及安裝後C++環境的配置方法。
第3章 樁步必練:變數和基本數據類型
本章主要內容包括:對C++中的常量、變數和數據類型做詳細介紹。通過本章的學習,讀者可以掌握C++中的常量、變數及其定義,掌握C++中數據類型及其轉換。
第4章 樁步進階:運算符和表達式
本章主要內容包括:C++的運算符類型、優先權、結合規則及表達式等基本內容,並且就變數和數據類型做詳細介紹。通過本章的學習,讀者可以掌握C++支持的各種運算符及其套用,掌握C++支持的由各種運算符、常量和變數構成的表達式、語句及其套用。
第5章 初養內力:程式控制結構
本章主要內容包括:4種流程控制結構(順序結構、選擇結構、循環結構、轉向結構),在C++中的流程控制語句及其實現。通過本章的學習,讀者可以了解C++面向過程的結構化設計方法,熟練掌握C++支持的3種程式結構(順序結構、選擇結構和循環結構),掌握轉向語句的功能及其使用。
第6章 小有功底:數組
本章主要內容包括:數組的概念、數組的聲明及其初始化、數組元素的引用、字元串及字元串處理函式、數組綜合套用,重點講解了較為常用的二維數組的聲明和引用數組元素等內容。通過本章的學習,讀者可以熟練掌握數組的聲明、初始化和引用等。
第7章 一招一式:函式
本章主要內容包括:函式的概念、分類和組成,函式的定義和聲明,函式參數傳遞,函式的調用和遞歸調用,main()函式,內聯函式的套用,函式的綜合套用。通過本章的學習,讀者可以掌握函式的基礎知識,通過在函式中將變數、常量、表達式和語句等程式的基本要素結合在一起,完成一定的功能。
第8章 內外相形:函式的高級套用
本章主要內容包括:數組作為函式參數、查找及排序的函式實現、函式模板的定義和套用、函式重載的套用。通過本章的學習,讀者可以對函式及其套用有比較完整的認識,嘗試設計更加複雜、功能更加完善的函式,看懂函式參數。
第9章 排除雜念:編譯預處理
本章主要內容包括:預處理命令的功能、檔案包含的使用、常用的編譯預處理命令;結合C++中使用較多的地方,對宏及其相關套用做了詳細講解,依次介紹了宏的定義、調用、無參宏和帶參宏的定義調用,以及宏與函式的區別等。通過本章的學習,讀者可以對編譯器編譯C++源程式的過程有一定的理解,並了解如何最佳化程式的部分方法。
第10章 遊刃沙場:指針
本章主要內容包括:指針的概念和作用;指針的運算,包括通過指針取值(*)、取地址(&)、指針的算術運算和關係運算等;指針的套用,主要包括指針在數組中的套用、在函式中的套用、在字元串中的套用和指向指針的套用;動態記憶體分配和引用。通過本章的學習,讀者可以了解指針的概念,熟練掌握指針的定義和運算,掌握指針與數組、函式和字元串的運算,掌握指向指針的指針的使用。
第11章 合眾家之長:構造數據類型
本章主要內容包括: C++中的結構體、共用體、枚舉和用戶自定義等幾種數據類型的說明、定義及使用。通過本章的學習,讀者可以掌握C++中幾種常見的構造數據類型(結構體、共用體和枚舉類型)的定義和使用,了解類型重定義符的使用及位域的套用。
第12章 法門初觸:類
本章主要內容包括:類的定義、類與對象、類成員函式、隱含的this指針、靜態類成員、指向類成員的指針、嵌套類、局部類。通過本章的學習,讀者可以實現類的聲明和類的定義,以及類裡面包含的成員函式和成員數據的聲明和定義、友元函式和友元類、成員函式和成員數據的訪問許可權控制;了解函式指針、嵌套類、局部類的概念。
第13章 小有成就:類的初始化、賦值和析構
本章主要內容包括:類對象的自動初始化、賦值和析構。通過本章的學習,讀者可以掌握類的構造函式、類的析構函式的默認及自定義,了解構造和析構的過程。
第14章 以一敵百:模板
本章主要內容包括:模板的概念;函式模板與模板函式;類模板,包括類模板的定義、實例化、調用等。通過本章的學習,讀者可以掌握模板的概念、實例化、調用。
第15章 形神合一:進行面向對象程式設計
本章主要內容包括:面向對象程式設計概念、數據的抽象與封裝、C++繼承與派生、C++多態性。通過本章的學習,讀者可以掌握面向對象程式設計、繼承、封裝、多態性的概念,為以後實現工程性的面向對象程式設計打下基礎。
第16章 實戰提高一:人事管理系統
本章主要內容包括:通過一個綜合示例,具體介紹C++如何實現套用系統的編寫,特別是需求分析、系統設計、系統實現、系統集成4個過程。通過本章的學習,讀者可以掌握C++如何實現套用系統的編寫。
第17章 實戰提高二:點歌管理系統
本章主要內容包括:管理系統的完整開發過程,其中主要套用了ADO資料庫連線、ADO對象運算元據庫的技術,介紹了列表框、單選按鈕及視頻外掛程式控制項的使用方法,實現了對音/視頻檔案屬性的讀取操作,基於對話框應用程式中各數據報表的列印輸出。通過本章的學習,讀者可以掌握C++如何實現套用系統的分析與設計、各個模組的設計重點、難點技術、設計思想。
本書讀者對象
● C++初學者。
● 想全面學習C++開發技術的人員。
● C++專業開發人員。
● 利用Visual C++做開發的工程技術人員。
● C++開發愛好者。
● 大中專院校的學生。
● 社會培訓班學員。
● 需要一本案頭必備手冊的程式設計師。

相關詞條

相關搜尋

熱門詞條

聯絡我們