您的浏览器不支持JavaScript,请开启后继续
C++程序设计及互动多媒体开发

C++程序设计及互动多媒体开发

  • 作者
  • 罗立宏 主编

本书从C++与C语言的区别讲起,循序渐进,由浅入深,介绍了C++的基本语法、图形界面开发技术以及互动多媒体开发技术。本书分三大部分共10章:第一部分为C++基本语法知识,包括第1~4章;第二部分为C++图形界面技术,包括第5、6章的MFC和第7章的Qt技术;第三部分为几种典型的互动多媒体技术,包括第8章音视频开发、第9章Cocos2dX游戏引擎以及第10章虚幻引擎虚拟现实技...


  • ¥69.80

ISBN: 978-7-122-46006-6

版次: 1

出版时间: 2024-09-01

图书信息

ISBN:978-7-122-46006-6

语种:汉文

开本:16

出版时间:2024-09-01

装帧:平

页数:282

内容简介

本书从C++与C语言的区别讲起,循序渐进,由浅入深,介绍了C++的基本语法、图形界面开发技术以及互动多媒体开发技术。本书分三大部分共10章:第一部分为C++基本语法知识,包括第1~4章;第二部分为C++图形界面技术,包括第5、6章的MFC和第7章的Qt技术;第三部分为几种典型的互动多媒体技术,包括第8章音视频开发、第9章Cocos2dX游戏引擎以及第10章虚幻引擎虚拟现实技术。本书的讲解理论结合实际,实例步骤详细,选用的实例和代码非常具有代表性和实用价值。
本书可供高等院校计算机类专业学生作教材使用,也可供希望在多媒体开发技术进阶的程序开发人员阅读参考。

编辑推荐

1.本书以C++23标准(2023年标准)为基础,对C++的新增语言及类型的基础知识进行讲解;介绍了C++的图形界面应用程序开发技术,包括MFC对话框应用程序及文档视图应用程序、Qt应用程序;着重讲解FFMpeg、Cocos2d-X、UE5等基于C++语言的新技术及其综合应用。 2.书中的例题有详细的操作步骤,且有代表性和实用价值,每章都有思考与练习,帮助读者更好地掌握相关知识。 3.随书配套相关电子资源及程序源代码,供读者跟着本书练习使用。

图书前言

在当今的信息时代,计算机程序设计已经成为与科技发展紧密相连的重要技能。而C++语言作为一门强大的编程语言,以其高效、灵活和可移植性强的特点,一直是许多计算机和软件工程专业的首选语言。为了让广大学生、研究人员和开发人员更深入地掌握C++语言的精髓,我们特地编写了本书。
本书不仅讲解了如何编写C++代码,更是一本引领读者理解编程思想、掌握编程技巧的指南。本书从C++语法开始,逐步深入到面向对象编程、泛型编程以及图形界面开发技术,然后在这些基础之上,再引导读者进一步在互动多媒体技术方面进行实战应用与提高。本书每一章节的内容都是精心设计的,旨在帮助读者由浅入深地理解C++的各个方面。
C++语言已有悠长历史,关于C++已有非常多的书籍和教材。然而,C++也是一门不断发展的语言,自1998年公布第一版C++标准(C++98)以来,C++语言就沿着C++11、C++14、C++17等的路径发展而来。2023年,C++标准委员会又发布了C++23标准。然而,市面上大多数C++书籍和教材并未反映这些发展和变化,要反映这些新发展和新变化,是笔者编写本教材的其中一个动机。另外,C++的应用领域广泛繁多,尤其是近年来与很多其他新框架、新引擎相结合,又形成了新的技术。笔者注意到,市面上少有能反映近年C++互动多媒体开发技术新发展的教材,所以需要有一本反映音视频开发、游戏开发、虚拟现实等领域C++互动多媒体开发新技术的教材,这也是笔者编写本教材的另一个动机。
在编写过程中,我们特别注重理论与实践相结合。除了对C++语言特性的详细解释外,书中还提供了丰富的实例代码和实际应用场景。这些代码和案例都是经过精心挑选的,旨在帮助读者更好地理解和应用所学知识。同时,为了帮助读者巩固所学知识,还设置了丰富的思考与练习题。
本书的总体思路是:扎实打好基础,面向实际应用,由浅入深,深入浅出。本书的特色体现在:使用C++最新标准,反映C++最新发展;面向互动多媒体开发的专业前沿,实战例题丰富,讲解深入;遵循学习者的思路习惯,讲解步骤清晰,使读者易于学习和操作。
本书适合作为高等学校计算机专业以及数字媒体、游戏开发、虚拟现实等专业的C++语言课程的教材,也适合要使用C++进行程序开发或从事多媒体应用开发的人员参考。通过学习本书,读者能够掌握C++语言的基本语法、图形界面开发技术以及互动多媒体开发的最新技术,为使用C++语言进行通用程序开发或多媒体产品开发打下坚实的基础。另外,想提醒读者的是:本书是一门讲解C++语言及进阶应用的教材,而一般C++的学习轨迹是先学习C语言,再学习C++语言及进阶应用,这样才能取得最好的学习效果。因此,建议读者在学习本书前,先掌握一定的C语言基础知识。
本书主要由罗立宏负责各章的撰写,崔宏峰参加了第10章的编写,陈俊佳和林鑫参加了各章的修正和校对。
本书配有PPT课件与例题源码,购买了本书的读者可从配套电子资源中获取,亦可向作者(luoleo98@***)或出版社索取。
本书为广东省自然科学基金项目“室内导航中的视觉定位几何模型与AR导航关键技术”(2023A1515011706)和教育部人文社科项目“基于VR/AR的历史文化展览沉浸式可视化叙事构架研究”(20YJAZH073)的阶段性研究成果。同时,衷心感谢广东工业大学、化学工业出版社对本书的支持与帮助。
由于笔者水平有限,书中难免存在缺点和疏漏之处,恳请读者批评指正。

罗立宏
2024年2月

目录

第1章概述1
1.1从C到C++1
1.1.1C和C++的发展历史1
1.1.2C与C++的区别2
1.1.3面向对象的优点2
1.1.4C++的应用领域3
1.2章节安排4
1.3基础知识要求4
1.4关于编译器5

第2章C++新增语言7
2.1控制台程序的创建7
2.1.1使用Visual Studio 2022创建控制台工程7
2.1.2使用Visual C++6.0创建控制台工程10
2.2C++输入输出12
2.2.1cout输出语句12
2.2.2命名空间13
2.2.3cin输入语句14
2.3循环语句新特性16
2.3.1auto关键字16
2.3.2范围for语句17
2.4动态内存分配18
2.4.1关于动态内存分配18
2.4.2new与delete运算符19
2.5函数新特性20
2.5.1inline内联函数20
2.5.2函数后置返回类型21
2.5.3引用参数21
2.5.4函数重载25
2.6异常27
2.6.1C++异常处理27
2.6.2C++标准异常28
思考与练习29

第3章类和对象30
3.1类和对象30
3.1.1类和对象的定义30
3.1.2对象的访问32
3.1.3访问特性34
3.1.4this指针35
3.2构造函数和析构函数35
3.2.1构造函数36
3.2.2析构函数37
3.3常成员与静态成员39
3.3.1常成员函数39
3.3.2常数据成员39
3.3.3静态数据成员40
3.3.4静态成员函数41
3.4友元函数44
3.5继承和派生45
3.5.1继承和派生的概念45
3.5.2继承方式和访问特性47
3.5.3构造函数和析构函数48
3.5.4多继承49
3.6虚函数与多态性54
3.6.1多态性54
3.6.2运算符重载54
3.6.3虚函数55
3.6.4纯虚函数57
3.6.5抽象类57
3.6.6再说面向对象59
思考与练习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函数模板74
4.4.3类模板76
4.5C++23新特性80
思考与练习82

第5章MFC对话框应用程序83
5.1Windows编程基础84
5.1.1Windows应用程序84
5.1.2使用API函数85
5.1.3使用MFC类库86
5.2基于对话框的应用程序87
5.2.1开发过程88
5.2.2MFC类库结构92
5.2.3几种常用控件的类结构92
5.3静态文本框、按钮与编辑框93
5.3.1静态文本框93
5.3.2按钮94
5.3.3文本编辑框95
5.4框架、单选按钮、复选框99
5.4.1框架99
5.4.2单选按钮99
5.4.3复选框101
5.5列表框和组合框104
5.5.1列表框104
5.5.2组合框107
5.6滚动条109
思考与练习113

第6章MFC文档视图应用程序114
6.1文档/视图结构114
6.1.1文档/视图结构的特点114
6.1.2文档/视图程序的开发过程115
6.2绘图与文字117
6.2.1OnDraw函数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菜单响应函数143
6.6工具栏146
6.6.1工具栏绘制147
6.6.2工具栏消息响应147
6.7对话框148
6.7.1自定义对话框148
6.7.2模态与非模态148
6.7.3通用对话框155
思考与练习158

第7章Qt开发160
7.1Qt开发环境搭建160
7.1.1Qt简介160
7.1.2Qt安装160
7.1.3创建Hello World程序161
7.1.4程序发布166
7.2窗体167
7.2.1创建多窗口程序167
7.2.2登录对话框171
7.2.3断点调试174
7.2.4纯代码编写175
7.3菜单、工具栏和状态栏179
7.3.1菜单179
7.3.2工具栏182
7.3.3文本编辑器与布局182
7.3.4实现功能代码183
7.3.5菜单响应186
7.3.6状态栏189
7.4鼠标与键盘190
7.4.1鼠标事件处理190
7.4.2键盘事件处理192
7.5简单绘图193
7.5.1绘图常用类193
7.5.2创建简单绘图程序193
思考与练习195

第8章视频与音频196
8.1音视频开发概述196
8.1.1音视频开发应用领域196
8.1.2常用的音视频开发库197
8.2FFMpeg音视频播放198
8.2.1FFMpeg简介198
8.2.2FFMpeg开发设置199
8.2.3FFMpeg视频播放器199
8.2.4FFMpeg音频播放器201
8.2.5音视频同步201
思考与练习202

第9章Cocos2d-X游戏开发203
9.1开发环境搭建203
9.1.1软件下载安装203
9.1.2创建项目HelloCocos206
9.1.3HelloCocos程序阅读207
9.2游戏案例——宇宙战记210
9.2.1创建新项目211
9.2.2清除HelloWorld内容211
9.2.3添加背景图212
9.2.4添加主角战机213
9.2.5添加敌机213
9.2.6发射子弹 215
9.2.7碰撞检测217
9.2.8敌机发射子弹 220
9.2.9主角战机中弹222
9.2.10切换场景 224
9.3安卓版发布227
9.3.1发布准备227
9.3.2导入Cocos的测试工程228
9.3.3导入SpaceWar工程228
思考与练习229

第10章虚拟现实应用230
10.1虚拟现实概述230
10.1.1虚拟现实特性及应用领域230
10.1.2虚拟现实开发方法231
10.1.3虚幻引擎简介231
10.2虚幻引擎建模基础232
10.2.1创建新项目233
10.2.2场景视口操作234
10.2.3创建新关卡235
10.2.4放置物体235
10.2.5改变材质240
10.2.6导入外部模型241
10.2.7执行构建过程245
10.2.8设置默认场景245
10.3虚幻引擎编程基础246
10.3.1引擎编程机制247
10.3.2控制物体运动247
10.3.3 断点调试与日志调试249
10.3.4增强输入系统250
10.3.5UI设计与开发259
10.4虚拟博物馆实例264
10.4.1模型构建工作265
10.4.2数据结构266
10.4.3程序代码266
10.5沉浸式环境搭建267
10.5.1硬件环境安装267
10.5.2使用蓝图搭建270
10.5.3使用C++搭建277
思考与练习281

参考文献282

发送电子邮件联系我们

Baidu
map