您的瀏覽器不支持JavaScript,請開啟后繼續(xù)
C++程序設(shè)計及互動多媒體開發(fā)

C++程序設(shè)計及互動多媒體開發(fā)

  • 作者
  • 羅立宏 主編

本書從C++與C語言的區(qū)別講起,循序漸進,由淺入深,介紹了C++的基本語法、圖形界面開發(fā)技術(shù)以及互動多媒體開發(fā)技術(shù)。本書分三大部分共10章:第一部分為C++基本語法知識,包括第1~4章;第二部分為C++圖形界面技術(shù),包括第5、6章的MFC和第7章的Qt技術(shù);第三部分為幾種典型的互動多媒體技術(shù),包括第8章音視頻開發(fā)、第9章Cocos2dX游戲引擎以及第10章虛幻引擎虛擬現(xiàn)實技...


  • ¥69.80

ISBN: 978-7-122-46006-6

版次: 1

出版時間: 2024-09-01

圖書信息

ISBN:978-7-122-46006-6

語種:漢文

開本:16

出版時間:2024-09-01

裝幀:平

頁數(shù):282

內(nèi)容簡介

本書從C++與C語言的區(qū)別講起,循序漸進,由淺入深,介紹了C++的基本語法、圖形界面開發(fā)技術(shù)以及互動多媒體開發(fā)技術(shù)。本書分三大部分共10章:第一部分為C++基本語法知識,包括第1~4章;第二部分為C++圖形界面技術(shù),包括第5、6章的MFC和第7章的Qt技術(shù);第三部分為幾種典型的互動多媒體技術(shù),包括第8章音視頻開發(fā)、第9章Cocos2dX游戲引擎以及第10章虛幻引擎虛擬現(xiàn)實技術(shù)。本書的講解理論結(jié)合實際,實例步驟詳細,選用的實例和代碼非常具有代表性和實用價值。
本書可供高等院校計算機類專業(yè)學(xué)生作教材使用,也可供希望在多媒體開發(fā)技術(shù)進階的程序開發(fā)人員閱讀參考。

編輯推薦

1.本書以C++23標準(2023年標準)為基礎(chǔ),對C++的新增語言及類型的基礎(chǔ)知識進行講解;介紹了C++的圖形界面應(yīng)用程序開發(fā)技術(shù),包括MFC對話框應(yīng)用程序及文檔視圖應(yīng)用程序、Qt應(yīng)用程序;著重講解FFMpeg、Cocos2d-X、UE5等基于C++語言的新技術(shù)及其綜合應(yīng)用。 2.書中的例題有詳細的操作步驟,且有代表性和實用價值,每章都有思考與練習(xí),幫助讀者更好地掌握相關(guān)知識。 3.隨書配套相關(guān)電子資源及程序源代碼,供讀者跟著本書練習(xí)使用。

圖書前言

在當(dāng)今的信息時代,計算機程序設(shè)計已經(jīng)成為與科技發(fā)展緊密相連的重要技能。而C++語言作為一門強大的編程語言,以其高效、靈活和可移植性強的特點,一直是許多計算機和軟件工程專業(yè)的首選語言。為了讓廣大學(xué)生、研究人員和開發(fā)人員更深入地掌握C++語言的精髓,我們特地編寫了本書。
本書不僅講解了如何編寫C++代碼,更是一本引領(lǐng)讀者理解編程思想、掌握編程技巧的指南。本書從C++語法開始,逐步深入到面向?qū)ο缶幊?、泛型編程以及圖形界面開發(fā)技術(shù),然后在這些基礎(chǔ)之上,再引導(dǎo)讀者進一步在互動多媒體技術(shù)方面進行實戰(zhàn)應(yīng)用與提高。本書每一章節(jié)的內(nèi)容都是精心設(shè)計的,旨在幫助讀者由淺入深地理解C++的各個方面。
C++語言已有悠長歷史,關(guān)于C++已有非常多的書籍和教材。然而,C++也是一門不斷發(fā)展的語言,自1998年公布第一版C++標準(C++98)以來,C++語言就沿著C++11、C++14、C++17等的路徑發(fā)展而來。2023年,C++標準委員會又發(fā)布了C++23標準。然而,市面上大多數(shù)C++書籍和教材并未反映這些發(fā)展和變化,要反映這些新發(fā)展和新變化,是筆者編寫本教材的其中一個動機。另外,C++的應(yīng)用領(lǐng)域廣泛繁多,尤其是近年來與很多其他新框架、新引擎相結(jié)合,又形成了新的技術(shù)。筆者注意到,市面上少有能反映近年C++互動多媒體開發(fā)技術(shù)新發(fā)展的教材,所以需要有一本反映音視頻開發(fā)、游戲開發(fā)、虛擬現(xiàn)實等領(lǐng)域C++互動多媒體開發(fā)新技術(shù)的教材,這也是筆者編寫本教材的另一個動機。
在編寫過程中,我們特別注重理論與實踐相結(jié)合。除了對C++語言特性的詳細解釋外,書中還提供了豐富的實例代碼和實際應(yīng)用場景。這些代碼和案例都是經(jīng)過精心挑選的,旨在幫助讀者更好地理解和應(yīng)用所學(xué)知識。同時,為了幫助讀者鞏固所學(xué)知識,還設(shè)置了豐富的思考與練習(xí)題。
本書的總體思路是:扎實打好基礎(chǔ),面向?qū)嶋H應(yīng)用,由淺入深,深入淺出。本書的特色體現(xiàn)在:使用C++最新標準,反映C++最新發(fā)展;面向互動多媒體開發(fā)的專業(yè)前沿,實戰(zhàn)例題豐富,講解深入;遵循學(xué)習(xí)者的思路習(xí)慣,講解步驟清晰,使讀者易于學(xué)習(xí)和操作。
本書適合作為高等學(xué)校計算機專業(yè)以及數(shù)字媒體、游戲開發(fā)、虛擬現(xiàn)實等專業(yè)的C++語言課程的教材,也適合要使用C++進行程序開發(fā)或從事多媒體應(yīng)用開發(fā)的人員參考。通過學(xué)習(xí)本書,讀者能夠掌握C++語言的基本語法、圖形界面開發(fā)技術(shù)以及互動多媒體開發(fā)的最新技術(shù),為使用C++語言進行通用程序開發(fā)或多媒體產(chǎn)品開發(fā)打下堅實的基礎(chǔ)。另外,想提醒讀者的是:本書是一門講解C++語言及進階應(yīng)用的教材,而一般C++的學(xué)習(xí)軌跡是先學(xué)習(xí)C語言,再學(xué)習(xí)C++語言及進階應(yīng)用,這樣才能取得最好的學(xué)習(xí)效果。因此,建議讀者在學(xué)習(xí)本書前,先掌握一定的C語言基礎(chǔ)知識。
本書主要由羅立宏負責(zé)各章的撰寫,崔宏峰參加了第10章的編寫,陳俊佳和林鑫參加了各章的修正和校對。
本書配有PPT課件與例題源碼,購買了本書的讀者可從配套電子資源中獲取,亦可向作者(luoleo98@***)或出版社索取。
本書為廣東省自然科學(xué)基金項目“室內(nèi)導(dǎo)航中的視覺定位幾何模型與AR導(dǎo)航關(guān)鍵技術(shù)”(2023A1515011706)和教育部人文社科項目“基于VR/AR的歷史文化展覽沉浸式可視化敘事構(gòu)架研究”(20YJAZH073)的階段性研究成果。同時,衷心感謝廣東工業(yè)大學(xué)、化學(xué)工業(yè)出版社對本書的支持與幫助。
由于筆者水平有限,書中難免存在缺點和疏漏之處,懇請讀者批評指正。

羅立宏
2024年2月

目錄

第1章概述1
1.1從C到C++1
1.1.1C和C++的發(fā)展歷史1
1.1.2C與C++的區(qū)別2
1.1.3面向?qū)ο蟮膬?yōu)點2
1.1.4C++的應(yīng)用領(lǐng)域3
1.2章節(jié)安排4
1.3基礎(chǔ)知識要求4
1.4關(guān)于編譯器5

第2章C++新增語言7
2.1控制臺程序的創(chuàng)建7
2.1.1使用Visual Studio 2022創(chuàng)建控制臺工程7
2.1.2使用Visual C++6.0創(chuàng)建控制臺工程10
2.2C++輸入輸出12
2.2.1cout輸出語句12
2.2.2命名空間13
2.2.3cin輸入語句14
2.3循環(huán)語句新特性16
2.3.1auto關(guān)鍵字16
2.3.2范圍for語句17
2.4動態(tài)內(nèi)存分配18
2.4.1關(guān)于動態(tài)內(nèi)存分配18
2.4.2new與delete運算符19
2.5函數(shù)新特性20
2.5.1inline內(nèi)聯(lián)函數(shù)20
2.5.2函數(shù)后置返回類型21
2.5.3引用參數(shù)21
2.5.4函數(shù)重載25
2.6異常27
2.6.1C++異常處理27
2.6.2C++標準異常28
思考與練習(xí)29

第3章類和對象30
3.1類和對象30
3.1.1類和對象的定義30
3.1.2對象的訪問32
3.1.3訪問特性34
3.1.4this指針35
3.2構(gòu)造函數(shù)和析構(gòu)函數(shù)35
3.2.1構(gòu)造函數(shù)36
3.2.2析構(gòu)函數(shù)37
3.3常成員與靜態(tài)成員39
3.3.1常成員函數(shù)39
3.3.2常數(shù)據(jù)成員39
3.3.3靜態(tài)數(shù)據(jù)成員40
3.3.4靜態(tài)成員函數(shù)41
3.4友元函數(shù)44
3.5繼承和派生45
3.5.1繼承和派生的概念45
3.5.2繼承方式和訪問特性47
3.5.3構(gòu)造函數(shù)和析構(gòu)函數(shù)48
3.5.4多繼承49
3.6虛函數(shù)與多態(tài)性54
3.6.1多態(tài)性54
3.6.2運算符重載54
3.6.3虛函數(shù)55
3.6.4純虛函數(shù)57
3.6.5抽象類57
3.6.6再說面向?qū)ο?9
思考與練習(xí)59

第4章C++新增類型61
4.1string類型61
4.1.1定義與初始化61
4.1.2string對象的操作62
4.2vector類型65
4.2.1定義與初始化65
4.2.2vector對象的操作66
4.3迭代器68
4.3.1迭代器簡介68
4.3.2迭代器的定義與使用69
4.3.3迭代器的操作69
4.3.4綜合舉例71
4.4模板與泛型72
4.4.1概述72
4.4.2函數(shù)模板74
4.4.3類模板76
4.5C++23新特性80
思考與練習(xí)82

第5章MFC對話框應(yīng)用程序83
5.1Windows編程基礎(chǔ)84
5.1.1Windows應(yīng)用程序84
5.1.2使用API函數(shù)85
5.1.3使用MFC類庫86
5.2基于對話框的應(yīng)用程序87
5.2.1開發(fā)過程88
5.2.2MFC類庫結(jié)構(gòu)92
5.2.3幾種常用控件的類結(jié)構(gòu)92
5.3靜態(tài)文本框、按鈕與編輯框93
5.3.1靜態(tài)文本框93
5.3.2按鈕94
5.3.3文本編輯框95
5.4框架、單選按鈕、復(fù)選框99
5.4.1框架99
5.4.2單選按鈕99
5.4.3復(fù)選框101
5.5列表框和組合框104
5.5.1列表框104
5.5.2組合框107
5.6滾動條109
思考與練習(xí)113

第6章MFC文檔視圖應(yīng)用程序114
6.1文檔/視圖結(jié)構(gòu)114
6.1.1文檔/視圖結(jié)構(gòu)的特點114
6.1.2文檔/視圖程序的開發(fā)過程115
6.2繪圖與文字117
6.2.1OnDraw函數(shù)117
6.2.2Graphics類118
6.2.3畫筆122
6.2.4畫刷123
6.2.5位圖125
6.2.6字體126
6.3定時器127
6.4鼠標與鍵盤消息處理134
6.4.1鼠標消息134
6.4.2鍵盤消息140
6.5菜單143
6.5.1菜單資源編輯143
6.5.2菜單響應(yīng)函數(shù)143
6.6工具欄146
6.6.1工具欄繪制147
6.6.2工具欄消息響應(yīng)147
6.7對話框148
6.7.1自定義對話框148
6.7.2模態(tài)與非模態(tài)148
6.7.3通用對話框155
思考與練習(xí)158

第7章Qt開發(fā)160
7.1Qt開發(fā)環(huán)境搭建160
7.1.1Qt簡介160
7.1.2Qt安裝160
7.1.3創(chuàng)建Hello World程序161
7.1.4程序發(fā)布166
7.2窗體167
7.2.1創(chuàng)建多窗口程序167
7.2.2登錄對話框171
7.2.3斷點調(diào)試174
7.2.4純代碼編寫175
7.3菜單、工具欄和狀態(tài)欄179
7.3.1菜單179
7.3.2工具欄182
7.3.3文本編輯器與布局182
7.3.4實現(xiàn)功能代碼183
7.3.5菜單響應(yīng)186
7.3.6狀態(tài)欄189
7.4鼠標與鍵盤190
7.4.1鼠標事件處理190
7.4.2鍵盤事件處理192
7.5簡單繪圖193
7.5.1繪圖常用類193
7.5.2創(chuàng)建簡單繪圖程序193
思考與練習(xí)195

第8章視頻與音頻196
8.1音視頻開發(fā)概述196
8.1.1音視頻開發(fā)應(yīng)用領(lǐng)域196
8.1.2常用的音視頻開發(fā)庫197
8.2FFMpeg音視頻播放198
8.2.1FFMpeg簡介198
8.2.2FFMpeg開發(fā)設(shè)置199
8.2.3FFMpeg視頻播放器199
8.2.4FFMpeg音頻播放器201
8.2.5音視頻同步201
思考與練習(xí)202

第9章Cocos2d-X游戲開發(fā)203
9.1開發(fā)環(huán)境搭建203
9.1.1軟件下載安裝203
9.1.2創(chuàng)建項目HelloCocos206
9.1.3HelloCocos程序閱讀207
9.2游戲案例——宇宙戰(zhàn)記210
9.2.1創(chuàng)建新項目211
9.2.2清除HelloWorld內(nèi)容211
9.2.3添加背景圖212
9.2.4添加主角戰(zhàn)機213
9.2.5添加敵機213
9.2.6發(fā)射子彈 215
9.2.7碰撞檢測217
9.2.8敵機發(fā)射子彈 220
9.2.9主角戰(zhàn)機中彈222
9.2.10切換場景 224
9.3安卓版發(fā)布227
9.3.1發(fā)布準備227
9.3.2導(dǎo)入Cocos的測試工程228
9.3.3導(dǎo)入SpaceWar工程228
思考與練習(xí)229

第10章虛擬現(xiàn)實應(yīng)用230
10.1虛擬現(xiàn)實概述230
10.1.1虛擬現(xiàn)實特性及應(yīng)用領(lǐng)域230
10.1.2虛擬現(xiàn)實開發(fā)方法231
10.1.3虛幻引擎簡介231
10.2虛幻引擎建?;A(chǔ)232
10.2.1創(chuàng)建新項目233
10.2.2場景視口操作234
10.2.3創(chuàng)建新關(guān)卡235
10.2.4放置物體235
10.2.5改變材質(zhì)240
10.2.6導(dǎo)入外部模型241
10.2.7執(zhí)行構(gòu)建過程245
10.2.8設(shè)置默認場景245
10.3虛幻引擎編程基礎(chǔ)246
10.3.1引擎編程機制247
10.3.2控制物體運動247
10.3.3 斷點調(diào)試與日志調(diào)試249
10.3.4增強輸入系統(tǒng)250
10.3.5UI設(shè)計與開發(fā)259
10.4虛擬博物館實例264
10.4.1模型構(gòu)建工作265
10.4.2數(shù)據(jù)結(jié)構(gòu)266
10.4.3程序代碼266
10.5沉浸式環(huán)境搭建267
10.5.1硬件環(huán)境安裝267
10.5.2使用藍圖搭建270
10.5.3使用C++搭建277
思考與練習(xí)281

參考文獻282

發(fā)送電子郵件聯(lián)系我們