新书速览|轻松学C++编程:案例教学

零负担学习C++语言的语法,轻松上手C++面向对象程序设计

新书速览|轻松学C++编程:案例教学_第1张图片

本书简介

The 19th Asian Games

《轻松学C++编程:案例教学》从初学者的角度循序渐进地从C++语言的基础语法到高级语法进行讲解。全书使用生动的实例和图示,介绍C++面向对象程序设计的基础知识;进而通过案例详解类的高级应用、运算符重载、继承与多态,全面呈现了面向对象程序设计的主要内容。在数据流和文件操作技巧与应用方面,本书还提供了实现相关算法的精选范例,以便读者理解异常处理、C++模板的应用设计方式,并熟悉标准模板函数库的应用。

《轻松学C++编程:案例教学》的各章节中贯穿了大量范例程序的讲解和分析,并在每章末尾附带了习题与解答。《轻松学C++编程:案例教学》叙述简洁、清晰,具有较强的可操作性,适合作为相关专业的教材,也适合初学者自学。对于具有一定编程经验且希望快速掌握C++语言的从业人员,本书也是一本快速掌握C++语言的读物。

本书作者

The 19th Asian Games

胡昭民,美国Rochester Institute of Technology计算机科学研究所毕业,工作专业领域包括:数据结构、算法、编程语言、信息科技公司经营、培训讲师、信息图书及奇幻小说写作等工作,并策划过多套游戏及教学软件的研发及主导营销计划,由于写作资历丰富,是目前资深且知名的计算机图书作家。已经在我社出版了《图解数据结构 使用C++》《图解数据结构 使用Java》《图解数据结构 使用C#》《游戏设计概率》等,市场反映较好、受到读者的喜爱。

编辑推荐

The 19th Asian Games

 1.对初学者而言,纯程序设计语言的学习有难度甚至枯燥,因此组织本书的写作秉承从零开始学的要旨,降低入门的难度和兼顾提高学习者的学习兴趣。

2.丰富的范例,理论和上机测试实践结合,兼顾自学和教学,提供课后习题解答和视频教学版。

本书目录

The 19th Asian Games

第 1 章  C++入门基础课程 1

1.1  认识C++ 1

1.1.1  面向对象程序设计 2

1.1.2  算法 5

1.2  第一个C++程序 7

1.2.1  开始编写程序 10

1.2.2  保存程序文件 11

1.2.3  编译器 11

1.2.4  执行程序 12

1.2.5  程序错误 12

1.3  程序结构简介 13

1.3.1  头文件区 13

1.3.2  程序注释 14

1.3.3  主程序区——main()函数 15

1.3.4  命名空间 15

1.3.5  输入输出功能简介 16

1.3.6  程序语句编写格式 17

1.3.7  标识符与保留字 17

1.4  上机编程实践 19

本章习题 19

第 2 章  变量、常数与数据类型 21

2.1  变量简介 22

2.2  常数 24

2.3  基本数据类型 25

2.3.1  整数 25

2.3.2  浮点数 27

2.3.3  字符 29

2.3.4  转义字符 30

2.3.5  布尔数据类型 31

2.4  上机编程实践 33

本章习题 34

第 3 章  表达式与运算符 35

3.1  表达式的表示法 35

3.2  认识运算符 36

3.2.1  运算符的优先级 36

3.2.2  赋值运算符 37

3.2.3  算术运算符 37

3.2.4  关系运算符 39

3.2.5  逻辑运算符 40

3.2.6  位运算符 41

3.2.7  递增与递减运算符 45

3.2.8  复合赋值运算符 47

3.3  数据类型转换 47

3.3.1  自动类型转换 48

3.3.2  强制类型转换 49

3.3.3  强制类型转换运算符简介 50

3.4  上机编程实践 51

本章习题 52

第 4 章  流程控制结构 55

4.1  顺序结构 55

4.2  选择结构 56

4.2.1  if条件语句 56

4.2.2  if-else条件语句 57

4.2.3  if-else if条件语句 58

4.2.4  条件运算符 60

4.2.5  switch条件语句 61

4.3  重复结构 63

4.3.1  for循环语句 64

4.3.2  while循环语句 66

4.3.3  do-while循环语句 68

4.4  循环控制语句 69

4.4.1  break语句 69

4.4.2  continue语句 70

4.4.3  goto语句 72

4.5  上机编程实践 73

本章习题 75

第 5 章  数组与字符串 78

5.1  数组简介 78

5.1.1  数组表示法 78

5.1.2  数组与变量 79

5.1.3  一维数组 79

5.1.4  二维数组 81

5.1.5  多维数组 83

5.2  字符串简介 84

5.2.1  字符串声明 84

5.2.2  字符串数组 87

5.3  String类 89

5.3.1  声明String类 89

5.3.2  字符串运算符 91

5.3.3  String类的成员函数 92

5.4  上机编程实践 94

本章习题 96

第 6 章  指针与地址 98

6.1  认识地址 98

6.1.1  指针的作用 99

6.1.2  变量地址的存取 99

6.1.3  指针变量的声明 100

6.1.4  指针运算 103

6.1.5  多重指针 105

6.2  指针与数组 107

6.2.1  指针与一维数组 108

6.2.2  指针与多维数组 109

6.2.3  指针与字符串 111

6.2.4  指针数组 113

6.3  动态分配内存 116

6.3.1  动态分配内存和静态分配内存 116

6.3.2  动态分配变量 117

6.3.3  动态分配数组 118

6.4  引用类型简介 120

6.4.1  引用类型声明 120

6.4.2  指针引用简介 121

6.5  上机编程实践 123

本章习题 124

第 7 章  函数入门 128

7.1  函数功能简介 128

7.1.1  自定义函数 128

7.1.2  函数声明 130

7.1.3  函数调用 132

7.2  认识参数传递 133

7.2.1  传值调用 133

7.2.2  传址调用 135

7.2.3  传引用调用 136

7.2.4  参数默认值 137

7.2.5  数组参数 139

7.2.6  返回值 140

7.3  上机编程实践 142

本章习题 143

第 8 章  函数的进阶应用 145

8.1  函数指针简介 145

8.1.1  声明函数指针 145

8.1.2  参数型函数指针 147

8.1.3  函数指针数组 149

8.2  命令行参数 150

8.3  变量种类 152

8.3.1  全局变量 153

8.3.2  局部变量 153

8.3.3  区块变量 153

8.4  变量的存储类型 153

8.4.1  自动变量 153

8.4.2  静态局部变量 154

8.4.3  外部变量 155

8.4.4  静态外部变量 156

8.4.5  寄存器变量 158

8.5  特殊函数功能 158

8.5.1  递归函数 158

8.5.2  内联函数 160

8.5.3  函数重载 161

8.6  上机编程实践 163

本章习题 164

第 9 章  预处理指令与宏 166

9.1  预处理指令 166

9.2  #define语句 168

9.2.1  宏定义基本语句 168

9.2.2  宏定义函数 169

9.2.3  宏函数简介 170

9.2.4  标准预处理宏 172

9.3  条件编译语句 173

9.4  上机编程实践 173

本章习题 174

第 10 章  自定义数据类型与应用 176

10.1  结构 176

10.1.1  结构声明方式 176

10.1.2  结构的存取 177

10.1.3  结构指针 178

10.2  结构与数组 180

10.2.1  结构数组 180

10.2.2  结构数组的成员 182

10.2.3  结构指针数组 183

10.3  嵌套结构 185

10.4  函数与结构 187

10.4.1  结构传值调用 187

10.4.2  结构传址调用 189

10.4.3  结构传引用调用 189

10.5  其他自定义数据类型 190

10.5.1  类型定义 190

10.5.2  枚举类型 191

10.5.3  联合类型 193

10.6  上机编程实践 195

本章习题 197

第 11 章  认识面向对象程序设计 200

11.1  类的基本概念 200

11.1.1  类对象的声明 201

11.1.2  访问权限的关键字 202

11.1.3  声明类对象 202

11.2  构造函数与析构函数 205

11.2.1  构造函数 205

11.2.2  构造函数的重载 208

11.2.3  析构函数 209

11.2.4  创建指针对象 211

11.3  上机编程实践 213

本章习题 213

第 12 章  类的进阶应用 215

12.1  对象数组和友元函数 215

12.1.1  对象数组 215

12.1.2  友元函数 217

12.1.3  友元类 220

12.2  this指针与静态数据成员 222

12.2.1  this指针 222

12.2.2  静态数据成员 224

12.2.3  嵌套类 225

12.3  在函数中传递对象参数 227

12.3.1  对象传值调用 227

12.3.2  对象传址调用 227

12.3.3  对象传引用调用 228

12.4  上机编程实践 228

本章习题 228

第 13 章  运算符重载 229

13.1  运算符重载简介 229

13.1.1  重载的定义与规则 229

13.1.2  一元运算符重载 232

13.1.3  二元运算符重载 233

13.2  特殊运算符重载 235

13.2.1  “>>”与“<<”运算符重载 235

13.2.2  “=”运算符重载 237

13.2.3  “==”运算符重载 239

13.2.4  “++”与“--”运算符重载 241

13.3  类型转换运算符重载 243

13.3.1  类类型转换为基本数据类型 244

13.3.2  基本数据类型转换为类类型 246

13.3.3  类类型转换成其他类类型 248

13.4  上机编程实践 250

本章习题 250

第 14 章  继承与多态 252

14.1  认识继承关系 252

14.1.1  基类与派生类 252

14.1.2  单继承 253

14.1.3  public关键字 253

14.1.4  protected关键字 254

14.1.5  private关键字 257

14.1.6  多继承 259

14.2  派生类的构造函数与析构函数 261

14.2.1  单继承构造函数与析构函数的调用顺序 262

14.2.2  多继承构造函数与析构函数的调用顺序 263

14.3  多态与虚函数简介 265

14.3.1  静态绑定与动态绑定 265

14.3.2  声明虚函数 267

14.3.3  纯虚函数 269

14.3.4  抽象基类 269

14.3.5  虚基类 270

14.4  上机编程实践 272

本章习题 273

第 15 章  文件入门与处理机制 274

15.1  数据流的概念 274

15.2  文件简介 275

15.2.1  文件分类 275

15.2.2  顺序存取的文件和随机存取的文件 276

15.3  文件的输入/输出管理 276

15.3.1  文件的打开 277

15.3.2  文件的关闭 277

15.4  文本文件操作技巧 279

15.4.1  文本文件的写入 279

15.4.2  文本文件的读取函数 280

15.5  二进制文件操作技巧 281

15.5.1  写入二进制文件 282

15.5.2  读取二进制文件 283

15.5.3  随机存取文件方式 284

15.6  上机编程实践 286

本章习题 287

第 16 章  异常处理与模板 288

16.1  异常处理的基本认识 288

16.1.1  简单的异常处理结构 288

16.1.2  try语句 289

16.1.3  catch区块重载 290

16.1.4  嵌套try…catch区块 291

16.1.5  一次捕捉所有异常 293

16.1.6  重新抛出异常 294

16.2  认识模板功能 296

16.2.1  模板分类 296

16.2.2  函数模板 296

16.2.3  声明函数模板 297

16.2.4  非类型参数的函数模板 299

16.3  类模板 300

16.3.1  声明类模板 300

16.3.2  堆栈类模板 302

16.3.3  非类型参数的类模板 304

16.4  上机编程实践 307

本章习题 307

第 17 章  大话标准模板函数库 310

17.1  认识向量容器 310

17.2  堆栈的实现 312

17.3  队列的实现 314

17.3.1  单向队列 315

17.3.2  双向队列 316

17.4  认识集合 317

17.4.1  并集set_union 318

17.4.2  交集set_intersection 319

17.4.3  差集set_difference 320

17.5  映射 322

17.6  STL排序的实现 324

17.6.1  sort()函数——从小到大升序排序 324

17.6.2  sort()函数——从大到小降序排序 325

17.6.3  向量容器的从小到大升序排序 326

17.6.4  向量容器的从大到小降序排序 327

17.6.5  自定义结构的排序 328

17.7  使用标准模板函数库实现查找 329

17.7.1  调用find()函数实现查找 329

17.7.2  调用find_if()函数进行查找 330

17.7.3  调用binary_search()函数进行二分查找 331

17.8  标准模板函数库链表的实现 333

17.8.1  forward_list()——单向链表 333

17.8.2  单向链表的反转 335

17.8.3  调用insert()函数将指定元素插入链表 336

17.8.4  两个列表进行合并排序 338

17.8.5  列表内容交换——swap()函数 339

17.9  上机编程实践 341

本章习题 343

第 18 章  解析树结构及图结构 344

18.1  树结构 344

18.1.1  用数组来实现二叉树 345

18.1.2  用链表来实现二叉树 347

18.1.3  二叉树节点的插入 349

18.1.4  二叉树节点的删除 350

18.1.5  二叉树的遍历 350

18.2  图结构 353

18.2.1  图的常用数据表示法 354

18.2.2  图的遍历——深度优先遍历法 355

18.2.3  图的遍历——广度优先遍历法 358

18.2.4  Kruskal算法 361

18.2.5  Dijkstra算法 365

18.2.6  Floyd算法 369

本章习题 373

附录A  课后习题参考答案(电子版见下载) 375

附录B  C++的常用函数库(电子版见下载) 426

B.1  字符处理函数 426

B.2  字符串处理函数 428

B.3  类型转换函数 430

B.4  时间和日期函数 431

B.5  数学函数 432

B.6  随机数函数 434

附录C  格式化输入/输出数据(电子版见下载) 437

C.1  插入运算符“<<” 437

C.2  常用的输出函数 444

C.3  提取运算符“>>” 445

C.4  常用的输入函数 446

C.5  错误状态位 447

本文摘自《轻松学C++编程:案例教学》,获出版社和作者授权发布。

轻松学C++编程:案例教学——京东

你可能感兴趣的:(java,jvm,算法)