华信教育资源网
C++程序设计(基于C++11标准)
丛   书   名: 普通高等教育“十三五”规划教材
作   译   者:李长河 等 出 版 日 期:2018-08-01
出   版   社:电子工业出版社 维   护   人:戴晨辰 
书   代   号:G0343520 I S B N:9787121343520

图书简介:

本书紧随C++发展的步伐, 立足于培养工程实践能力强、 创新能力强、 具备国际竞争力的高素质复合型“新工科”人才, 是全面采用C++11新标准编写的面向对象程序设计的教材。本书不仅讲解新标准下C++的基本语法, 展现C++的发展现状, 更注重编程思维和解决实际问题的能力的培养。本书结合算法与数据结构, 通过简明的例子讲解C++的特性和使用方法。内容涵盖新标准下C++基本语法、 面向对象程序设计核心技术、 基本数据结构, 以及常用算法和工具。本书适用于高等学校理工科各专业的C++程序设计、 面向对象程序设计等课程, 也可供初级或中高级程序员及工程技术人员参考使用。
定价 55.0
您的专属联系人更多
关注 评论(0) 分享
配套资源 图书内容 样章/电子教材 图书评价
  • 配 套 资 源
  • 图 书 内 容

    内容简介

    本书紧随C++发展的步伐, 立足于培养工程实践能力强、 创新能力强、 具备国际竞争力的高素质复合型“新工科”人才, 是全面采用C++11新标准编写的面向对象程序设计的教材。本书不仅讲解新标准下C++的基本语法, 展现C++的发展现状, 更注重编程思维和解决实际问题的能力的培养。本书结合算法与数据结构, 通过简明的例子讲解C++的特性和使用方法。内容涵盖新标准下C++基本语法、 面向对象程序设计核心技术、 基本数据结构, 以及常用算法和工具。本书适用于高等学校理工科各专业的C++程序设计、 面向对象程序设计等课程, 也可供初级或中高级程序员及工程技术人员参考使用。

    图书详情

    ISBN:9787121343520
    开 本:16开
    页 数:280
    字 数:448.0

    本书目录

    第1 部分  基  础  篇
      第1 章  初识C++ 程序
        1. 1  编写一个简单的C++ 程序
        1. 2  认识类
        1. 3  编译与调试程序
        习题1 
      第2 章  基本数据类型和表达式
        2. 1  C++ 语句基本元素
          2. 1. 1  标识符
          2. 1. 2  关键字
        2. 2  基本数据类型
          2. 2. 1  内置类型
          2. 2. 2  常量
        2. 3  对象
          2. 3. 1  对象的定义和初始化
          2. 3. 2  对象的声明
          2. 3. 3  作用域和生命期
        2. 4  常量修饰符和类型推导
          2. 4. 1  const 修饰符
          2. 4. 2  constexpr 和常量表达式
          2. 4. 3  类型推导
        2. 5  表达式
          2. 5. 1  基本知识
          2. 5. 2  算术运算符
          2. 5. 3  赋值运算符
          2. 5. 4  自增和自减运算符
          2. 5. 5  逻辑和关系运算符
          2. 5. 6  逗号运算符
          2. 5. 7  条件运算符
          2. 5. 8  sizeof 运算符
          2. 5. 9  位运算符
          2. 5. 10  求值次序
        2. 6  类型转换
          2. 6. 1  隐式类型转换
          2. 6. 2  显式类型转换
        习题2 
      第3 章  语句控制结构
        3. 1  语句
          3. 1. 1  空语句
          3. 1. 2  复合语句
          3. 1. 3  控制结构语句作用域
        3. 2  分支结构
          3. 2. 1  if 语句
          3. 2. 2  switch 语句
        3. 3  循环结构
          3. 3. 1  while 语句
          3. 3. 2  do while 语句
          3. 3. 3  for 语句
          3. 3. 4  循环语句的选择
        3. 4  跳转语句
          3. 4. 1  break 语句
          3. 4. 2  continue 语句
        3. 5  嵌套结构和应用实例
        习题3 
      第4 章  复合类型、string 和vector 
        4. 1  引用
          4. 1. 1  引用const 对象
          4. 1. 2  auto 和引用
          4. 1. 3  decltype 和引用
          4. 1. 4  右值引用
        4. 2  指针
          4. 2. 1  指针的定义
          4. 2. 2  改变指向
          4. 2. 3  const 和指针
          4. 2. 4  类型推导和指针
          4. 2. 5  void 指针
          4. 2. 6  多级指针
          4. 2. 7  引用和指针
        4. 3  数组
          4. 3. 1  数组的定义和初始化
          4. 3. 2  访问数组元素
          4. 3. 3  多维数组
        4. 4  指针和数组
          4. 4. 1  指针指向数组
          4. 4. 2  利用指针访问数组
        4. 5  string 类型
          4. 5. 1  string 类型常用操作
          4. 5. 2  C 风格字符串
        4. 6  vector 类型
          4. 6. 1  定义和初始化vector对象
          4. 6. 2  vector 类型常用操作
          4. 6. 3  使用迭代器
        4. 7  枚举类型
          4. 7. 1  定义枚举类型
          4. 7. 2  使用枚举类型
        习题4 
      第5 章  函数
        5. 1  认识函数
          5. 1. 1  定义函数
          5. 1. 2  调用函数
          5. 1. 3  调用规则
          5. 1. 4  无参列表和void 返回类型
          5. 1. 5  函数声明
        5. 2  局部对象和全局对象
          5. 2. 1  存储周期
          5. 2. 2  局部对象
          5. 2. 3  全局对象
        5. 3  参数传递
          5. 3. 1  值传递
          5. 3. 2  引用传递
          5. 3. 3  const 形参
          5. 3. 4  数组形参
        5. 4  返回值类型
          5. 4. 1  无值返回
          5. 4. 2  有值返回
        5. 5  函数重载和特殊用途的函数
          5. 5. 1  函数重载
          5. 5. 2  默认参数
          5. 5. 3  内联函数
          5. 5. 4  constexpr 函数
        5. 6  函数指针和lambda 表达式
          5. 6. 1  函数指针
          5. 6. 2  lambda 表达式
        5. 7  递归调用
          5. 7. 1  递推和回归
          5. 7. 2  递归和循环
        5. 8  编译预处理和多文件结构
          5. 8. 1  宏定义
          5. 8. 2  条件编译
          5. 8. 3  多文件结构
        习题5 
      第6 章  类
        6. 1  类的定义
          6. 1. 1  定义一个类
          6. 1. 2  定义和使用成员函数
          6. 1. 3  定义辅助函数
          6. 1. 4  访问控制
          6. 1. 5  友元
        6. 2  构造函数与析构函数
          6. 2. 1  默认构造函数
          6. 2. 2  复制构造函数
          6. 2. 3  析构函数
        6. 3  运算符重载
          6. 3. 1  基本概念
          6. 3. 2  重载原则
          6. 3. 3  输入和输出运算符
          6. 3. 4  递增和递减运算符
          6. 3. 5  函数调用运算符
          6. 3. 6  类型转换运算符
        6. 4  静态成员
          6. 4. 1  声明静态成员
          6. 4. 2  使用静态成员
        6. 5  类成员指针
          6. 5. 1  数据成员指针
          6. 5. 2  成员函数指针
        习题6 
    第2 部分  设  计  篇
      第7 章  模板与泛型编程
        7. 1  函数模板
          7. 1. 1  定义函数模板
          7. 1. 2  实例化函数模板
          7. 1. 3  模板参数类型
          7. 1. 4  类成员模板
          7. 1. 5  可变参函数模板
        7. 2  类模板
          7. 2. 1  成员函数定义
          7. 2. 2  实例化类模板
          7. 2. 3  默认模板参数
        7. 3  排序与查找
          7. 3. 1  排序算法
          7. 3. 2  二分查找算法
        习题7 
      第8 章  动态内存与数据结构
        8. 1  动态内存
          8. 1. 1  创建动态对象
          8. 1. 2  释放动态内存
          8. 1. 3  内存泄漏
          8. 1. 4  智能指针
          8. 1. 5  动态数组
        8. 2  拷贝控制淤
          8. 2. 1  简单字符串类
          8. 2. 2  复制与赋值
          8. 2. 3  移动对象
        8. 3  线性链表
          8. 3. 1  链表表示
          8. 3. 2  插入操作
          8. 3. 3  删除操作
          8. 3. 4  清空链表
          8. 3. 5  打印链表
          8. 3. 6  拷贝控制与友元声明
        8. 4  链栈
          8. 4. 1  链栈表示与操作
          8. 4. 2  简单计算器
        8. 5  二叉树
          8. 5. 1  二叉树的概念和表示
          8. 5. 2  创建二叉搜索树
          8. 5. 3  遍历操作
          8. 5. 4  搜索操作
          8. 5. 5  销毁操作
          8. 5. 6  拷贝控制及友元声明
        习题8 
      第9 章  继承与多态
        9. 1  继承
          9. 1. 1  定义基类
          9. 1. 2  定义派生类
          9. 1. 3  访问控制
          9. 1. 4  类型转换
        9. 2  构造、拷贝控制与继承
          9. 2. 1  派生类对象的构造
          9. 2. 2  拷贝控制与继承
        9. 3  虚函数与多态性
          9. 3. 1  虚函数
          9. 3. 2  动态绑定
          9. 3. 3  抽象类
          9. 3. 4  继承与组合
          9. 3. 5  再探计算器
        习题9 
      第10 章  简单输入输出
        10. 1  基本知识
          10. 1. 1  IO 类对象
          10. 1. 2  条件状态
          10. 1. 3  刷新缓冲区
        10. 2  标准输入输出
          10. 2. 1  字符数据的输入
          10. 2. 2  格式化控制
        10. 3  文件输入输出与string 流
          10. 3. 1  使用文件流对象
          10. 3. 2  文件模式
          10. 3. 3  string 流
        习题10 
      第11 章  标准模板库
        11. 1  迭代器
          11. 1. 1  实现Find 函数模板
          11. 1. 2  使用迭代器
        11. 2  容器
          11. 2. 1  容器概述
          11. 2. 2  顺序容器
          11. 2. 3  关联容器
          11. 2. 4  高效使用容器
        11. 3  泛型算法
          11. 3. 1  算法概述
          11. 3. 2  向算法传递函数
          11. 3. 3  参数绑定
          11. 3. 4  使用function 
        习题11 
      第12 章  工具与技术
        12. 1  命名空间
          12. 1. 1  定义命名空间
          12. 1. 2  使用命名空间
        12. 2  异常处理
          12. 2. 1  抛出异常
          12. 2. 2  检测异常
          12. 2. 3  捕获异常
          12. 2. 4  使用标准库异常类
        12. 3  多重继承与虚继承
          12. 3. 1  多重继承
          12. 3. 2  虚继承
        12. 4  嵌套类
          12. 4. 1  二维数组类
          12. 4. 2  通用计算器
        12. 5  运行时类型识别
          12. 5. 1  dynamic_cast 运算符
          12. 5. 2  typeid 运算符
        12. 6  union 类型
          12. 6. 1  定义union 类型
          12. 6. 2  使用union 类型
        12. 7  标准库特殊工具
          12. 7. 1  tuple 类型
          12. 7. 2  bitset 类型
          12. 7. 3  日期和时间
        习题12 
    附录A  ASCII 字符表
    附录B  运算符优先级表
    附录C  标准库算法
    参考文献
    展开

    前     言

    为什么要写这本书
    C++作为一种通用程序设计语言, 支持数据抽象、 面向对象编程、 泛型编程及底层的内存管理, 且兼容C语言, 是系统编程、 桌面应用、 服务器软件、 嵌入式系统、 游戏、 实时系统、 高性能计算等领域首选的编程语言, 也是人工智能及其各分支领域最受欢迎的编程语言之一。C++是高等学校理工科专业普遍开设的具有很强工程实践性的一门课程, 也是程序设计课程的主流。
    近年来, C++有了很大的发展, 尤其是C++11新标准的发布, 给C++带来了革命性变化, 正如C++创始人BjarneStroustrup所说“C++11看起来像一门新的语言”。C++11变得更加现代化和智能化, 大幅度扩充了C++ 98标准下的语言功能, 如类型自动推导、 lambda表达式、 并行编程、 移动语义等, 这些变化体现了C++与时俱进的活力, 它们不仅显著提高了程序的开发效率和性能, 也使得语言更为统一、 易于教学。
    自从C++11新标准发布以来, 各大编译器厂商和组织纷纷跟进对C++11的支持。在编写本书的时候, 大部分主流的C++编译器已经全面支持C++11, 比如GCC、 Microsoft Visual C++、 IntelC++、 Clang等编译器。这给读者学习C++11提供了良好的编程环境。因此, 无论从C++本身发展的角度还是从业界对C++需求的角度, 学习和使用C++11是大势所趋。
    读者对象
    本书包含C语言基本知识, 因此本书不仅适合已经有C语言基础的读者, 也适合没有C语言基础的读者。编者认为, 没有必要为了学习C++而先去学习C语言。虽然C++兼容C语言, 但C++中以面向对象为基础的编程风格和C语言中以面向过程为基础的编程风格是有明显区别的。C语言的编程习惯会影响C++的学习, 编者认为C++可以作为入门语言来学习。
    另外, 如果读者已经学习了C++98标准下的语法, 通过本书可以快速掌握C++11新标准下的核心语言特性, 对原有C++程序进行结构改造和性能升级。
    IVV本书特色
    在培养“新工科”人才的时代要求和中国智能制造发展战略背景下, 本书旨在培养读者的编程思维和提高读者的工程实践能力, 通过简明的例子, 结合常用算法和基本数据结构, 讲解新标准下C++的特性和使用方法, 展现C++发展的重要成果和编程风格。
    本书借鉴了国内外同类教材的优点, 在教学理念、 教学内容和教学方法上有很大的改动。因此, 本书有以下几个鲜明特点: 
    ● 推行C++11新标准, 紧随时代发展步伐。相比于C++98标准, C++11新标准使得代码编写更简单、 更高效, 开发的程序性能也更好。本书教学内容的选定以C++11新标准为基础, 强调程序的开发效率和性能。
    ● 突出编程思维和编程习惯的培养, 提高编程素质。本书一方面从编译器的视角出发, 来学习和理解C++语法, 从而更深层次地把握C++的特性, 为编写高质量的程序夯实基础。另一方面, 本书也非常注重编程习惯的养成, 比如代码的书写格式、 对象和函数的命名、 指针和引用的书写等。良好的编程习惯对于提高编程素质具有重要作用。
    ● 强调语言运用, 提高工程实践能力。把C++作为一种语言工具来学习, 摒弃以语法为主的教学方法, 通过一些常用算法和数据结构来展示如何利用C++解决实际问题。
    ● 注重编程兴趣的培养。编程兴趣是学好编程语言的关键, 为了激发读者对语言学习的渴望, 本书在基础知识部分包含了许多有趣的小游戏, 比如猜字谜、 猜数字、 石头剪刀布、 扫雷等常见的游戏。
    ● 注重实际编程经验的介绍。本书通过警示框提醒读者容易出错的知识点, 用提示框建议一些编程方法和编程习惯, 帮助读者理解一些语法细节。
    本书非常注重知识点的安排, 从一开始就介绍面向对象编程和标准库中基本类对象的使用, 强调对现代高级语言特性的理解。比如, 本书强化对象意识, 抛弃变量的概念, 在介绍对象时就强化了对象是数据和操作的载体的意识。在讲解数组时, 便介绍了标准库中string和vector的使用方法。这样做的好处是, 避免低级语言特性先入为主, 造成读者很难从面向过程的编程风格过渡到面向对象的编程风格的问题。
    本书结构
    本书的内容分为两部分。第1部分为基础篇, 主要介绍C++和标准库的基础内容。学完第1部分内容后, 读者可以形成编程思维, 养成良好的编程习惯, 并能编写出具有一定意义的程序。
    第2部分为设计篇, 主要介绍基本数据结构、 内存管理、 面向对象程序设计方法、 泛型编程和标准模板库。使用标准模板库能够提高代码开发效率, 并保证代码质量; 学习基本数据结构能够帮助读者更好地理解和使用标准库中的容器与算法; 优化内存管理将会进一步提升程序的性能。学完第2部分内容后, 读者将进一步理解C++的编程风格, 能够利用面向对象和泛型技术编写大型软件。
    教学安排
    本书可以分为两个学期进行教学。第1学期完成基础篇教学, 侧重于基本语法和常用算法, 培养学生的编程兴趣, 使学生具备将解题思路转化为代码的能力。第2学期完成设计篇教学, 侧重于程序基本构架的设计及语言的运用, 使学生具备一定的软件架构能力。
    建议本书授课72学时, 上机实验32学时: 基础篇授课40学时、 上机实验16学时; 设计篇授课32学时、 上机实验16学时。
    致谢
    本书内容由李长河主持编写, 童恒建、 叶亚琴和杨鸣参与相关内容的编写和审定, 中国地质大学(武汉)王俊臣、 刁义雅、 肖龙、 周力、 刘永峰、 夏海、黄祖传等博士和硕士研究生参与了本书内容的校对及课后习题的编写验证工作。
    本书所有示例代码的源码及其他配套教学资源可从以下网址获得:
    http://hxedu.com.cn或https://github.com/Changhe160/bookcplusplus。
    感谢读者选择使用本书, 欢迎您对本书内容提出意见和建议, 我们将不胜感激。作者的电子邮件地址是: lichanghe@cug.edu.cn。
    
    
    李长河      
    lichanghe@cug.edu.cn
    于中国地质大学(武汉)
    展开

    作者简介

    本书暂无作者简介
  • 样 章 试 读
  • 图 书 评 价 我要评论
华信教育资源网