首页 > 编程语言 >新书速览|轻松学C++编程:案例教学

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

时间:2024-03-18 09:58:49浏览次数:25  
标签:函数 上机 编程 C++ 运算符 速览 习题

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

图片

本书简介

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++编程:案例教学——京东

标签:函数,上机,编程,C++,运算符,速览,习题
From: https://blog.csdn.net/quanzhankaifaqua/article/details/136800425

相关文章

  • 注入js编程应该知道的一些基础知识,以防混淆造成的错误
    假设我现在用的是chrome extension的方式注入javascript来控制网页,例如有一个元素,原始的网页制作者已经给他注册了各种事件,但是我想得到当这个元素发生改变时,会触发一个我自己能控制的事件,有没有什么办法?要在不干扰原有网页事件的前提下,为元素添加自定义事件处理程序,你可以使用M......
  • C++学习笔记——003
    malloc() 函数在C语言中就出现了,在C++中仍然存在,但建议尽量不要使用malloc()函数。new与malloc()函数相比,其主要的优点是,new不只是分配了内存,它还创建了对象。//一维数组动态分配,数组长度为mint*array=newint[m];//释放内存delete[]array;//二维数......
  • C++ Qt开发:QTcpSocket网络通信组件
    Qt是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍如何运用QTcpSocket组件实现基于TCP的网络通信功能。QTcpSocket和QTcpServer是Qt中用于实现基于T......
  • 05_C++数组指针和指针数组
    1.数组指针:当数组指针指向一个一维数组时,()优先级高,说明p是指针,指向一个整型的一维数组。这个一维数组的长度是n,也可以说p的步长为n。当p+1时,p指针会跨过n个整型数据的长度。2.指针数组:当定义一个一维数组时,系统会在内存中为改数组分配一个储存空间,其数组的变量名就是数组的首地址......
  • Qt/C++监控推流设备推流/延迟极低/实时性极高/rtsp/rtmp推流/hls/flv/webrtc拉流/调整
    一、前言算下来这个推流的项目作品写了有四年多了,最初第一个版本只有文件点播的功能,用的纯QTcpSocket通信实现,属于比较简单的功能。由于文件点播只支持文件形式的推流,不支持网络流或者本地设备采集,所以迫切需要打破这个瓶颈,而后加入核心的网络推流功能,这也是本项目的核心功能,不仅......
  • C/C++中的常用操作符与强制类型转换
    引言:在前两篇博客,我们详细介绍了C语言的基本数据类型和判断操作,相信大家对此已经有所掌握,在本篇博客,我们将继续介绍C语言中常用的几类操作符。一.算数操作符在写代码中,一定会涉及到计算问题,为此,C语言提供了一套操作符,分别是加法:+;减法:-;乘法:*;除法:/;取余数:%;我们依次结合代码讲解......
  • 2.3C++对象模型和this指针
    1、成员变量和成员函数分开存储在C++中,类内的成员变量和成员函数分开存储只有非静态成员变量才属于类的对象上空对象占用内存空间为1。C++编译器会为每个空对象也分配1个字节的空间,是为了区分空对象占内存的位置。每个空对象也应该有一个独一无二的内存地址。calssPerson{......
  • 【VC++学习笔记】控件及按钮的设置和使用
    1:按钮的使能与禁止用ClassWizard的MemberVariables为按钮定义变量,如:m_Button1;则m_Button1.EnableWindow(true);使按钮处于允许状态m_Button1.EnableWindow(false);使按钮被禁止,并变灰显示2:控件的隐藏与显示用CWnd类的函数BOOLShowWindow(intnCmdShow)可以隐藏或显示......
  • C++ 并发编程指南(11)原子操作
    文章目录一、原子操作1、基本概念2、C++中的原子类型3、示例4、总结前言在C++多线程编程中,原子操作扮演着至关重要的角色。它们提供了一种在多线程环境中安全地访问和修改共享数据的方式,从而避免了数据竞争和不一致性的问题。本文将详细介绍C++中的原子操作,包括其......
  • C++算法学习心得八.动态规划算法(5)
    1.买卖股票的最佳时机(121题)题目描述:给定一个数组prices,它的第 i个元素 prices[i]表示一支给定股票第i天的价格。你只能选择某一天买入这只股票,并选择在未来的某一个不同的日子卖出该股票。设计一个算法来计算你所能获取的最大利润。返回你可以从这笔交易中获取......