展开全部

主编推荐语

一本针对计算机科学专业领域的C++编程课程而编写的教科书。

内容简介

本书是以C++编程语言来讲解计算基础知识和技能的实用教程。全书共13章。首先介绍了通过程序设计解决问题的思路和步骤,然后依次介绍了C++基础知识、函数的运用和实现、消息机制、成员函数、条件、循环、文件流、vector 类、泛型容器和二维数组等技术及其C++编程实现技巧。每一章中以及每章的最后,分别给出了自测题、练习题、编程技巧、编程项目等内容。附录部分给出了所有自测题的解答,供读者学习参考。

本书适合作为高等院校计算机专业程序设计、编程基础等课程的教材,也适合专业程序员和想要学习C++编程的读者阅读参考。

目录

  • 版权信息
  • 内容提要
  • 前言
  • 本书特色
  • 教学安排
  • 第3版的新变化
  • 致谢
  • 审阅者名录
  • 特别鸣谢
  • 资源与支持
  • 配套资源
  • 提交勘误
  • 与我们联系
  • 关于异步社区和异步图书
  • 第1章 用C++来解决问题
  • 1.1 解决问题
  • 1.1.1 分析(提问、考察、研究)
  • 1.1.2 设计(模型、思考、计划、策划、模式、纲要)
  • 1.1.3 算法模式
  • 1.1.4 算法设计示例
  • 1.1.5 实现(完成、操作、使用)
  • 1.1.6 一段C++程序
  • 1.1.7 测试
  • 1.2 对象、类型与变量
  • 本章小结
  • 练习题
  • 解决问题:请编写一个算法
  • 1A. 简单平均值
  • 1B. 加权平均值
  • 1C. 批发成本
  • 1D. 时间差
  • 第2章 C++基础
  • 2.1 C++程序的组成部分
  • 2.1.1 标记:一个程序的最小零件
  • 2.1.2 特殊符号
  • 2.1.3 标识符
  • 2.1.4 关键字
  • 2.1.5 注释
  • 2.1.6 C++字面常量
  • 2.2 语句
  • 2.2.1 cout输出语句
  • 2.2.2 赋值与类型转换
  • 2.2.3 cin输入语句
  • 2.3 算术表达式
  • 2.3.1 整数算术运算
  • 2.3.2 整数与浮点数的混合运算
  • 2.3.3 const对象
  • 2.4 先提示再输入
  • 2.5 程序实现中的错误与警告
  • 2.5.1 在编译时被检测到的错误与警告
  • 2.5.2 编译时的警告信息
  • 2.5.3 连接时错误
  • 2.5.4 运行时错误
  • 2.5.5 意向性错误
  • 2.5.6 当软件的设计与问题说明不相符时
  • 本章小结
  • 练习题
  • 编程技巧
  • 编程项目
  • 2A. 经典的“Hello World!”程序
  • 2B. 请体验一下编译器所产生的错误
  • 2C. 大型字母缩写
  • 2D. 反序输出
  • 2E. 加权平均值计算
  • 2F. 读秒器
  • 2G. 最小钱币数
  • 2H. 爱因斯坦的数字游戏
  • 2I. 时间差
  • 第3章 自由函数的运用
  • 3.1 cmath函数
  • 3.2 使用cmath函数解决问题
  • 3.2.1 分析
  • 3.2.2 设计
  • 3.2.3 实现
  • 3.3 调用已被文档化的函数
  • 3.3.1 前置条件与后置条件
  • 3.3.2 函数头信息
  • 3.3.3 实参与形参的关联
  • 3.3.4 面向int、char和bool这些类型的一些函数
  • 本章小结
  • 练习题
  • 编程技巧
  • 编程项目
  • 3A. 使用cmath函数库
  • 3B. 圆形问题
  • 3C. 多种形式的四舍五入
  • 3D. 计算弹道范围
  • 3E. 时间旅行问题
  • 第4章 自由函数的实现
  • 4.1 实现属于自己的函数
  • 4.1.1 测试驱动器
  • 4.1.2 只有一条返回语句的函数
  • 4.2 分析、设计与实现
  • 4.2.1 分析
  • 4.2.2 设计
  • 4.2.3 实现
  • 4.2.4 测试
  • 4.2.5 标识符的域
  • 4.2.6 函数名的域
  • 4.2.7 全局标识符
  • 4.3 void函数与引用型形参
  • 4.4 const的引用型形参
  • 本章小结
  • 练习题
  • 编程技巧
  • 编程项目
  • 4A. 3个数之和
  • 4B. 四舍五入至n位小数
  • 4C. 还贷问题
  • 4D. 人口增长预测
  • 4E. 求根公式
  • 第5章 发送消息
  • 5.1 为真实世界建模
  • 5.1.1 BankAccount对象
  • 5.1.2 类与对象的图解
  • 5.2 发送消息
  • 5.3 string对象
  • 5.3.1 访问性方法
  • 5.3.2 修改性方法
  • 5.3.3 为string对象本身定义的操作符
  • 5.4 ostream和istream的成员函数
  • 类成员函数的头信息
  • 5.5 另一个非标准类:Grid
  • 5.5.1 Grid对象的其他操作
  • 5.5.2 不满足前置条件的情况
  • 5.5.3 即使函数没有任何实参也必须用()来调用
  • 5.6 类和函数为何而存在
  • 本章小结
  • 练习题
  • 编程技巧
  • 编程项目
  • 5A. 小型密码器
  • 5B. 绘制字母I
  • 5C. 编写跳过障碍物函数
  • 5D. 爬楼梯
  • 5E. 10个String处理函数
  • 第6章 成员函数的实现
  • 6.1 在头文件中定义类
  • 定义BankAccount类
  • 6.2 实现类的成员函数
  • 6.2.1 实现构造函数
  • 6.2.2 实现修改型的类成员函数
  • 6.2.3 实现访问型的成员函数
  • 6.3 默认构造函数
  • 函数重载
  • 6.4 状态型对象模式
  • 6.4.1 构造函数
  • 6.4.2 修改型函数
  • 6.4.3 访问型函数
  • 6.4.4 命名约定
  • 6.4.5 public还是private
  • 6.4.6 将接口从实现中分离
  • 6.5 面向对象设计准则
  • 6.5.1 类的内聚力
  • 6.5.2 为什么const只用来修饰访问型函数,却不用于修改型函数
  • 本章小结
  • 练习题
  • 编程技巧
  • 编程项目
  • 6A. 为BankAccount类增加int getTransactionCount成员
  • 6B. 为Grid对象增加turnAround和turnRight方法
  • 6C. Averager类
  • 6D. PiggyBank类
  • 6E. Employee类
  • 第7章 选择操作
  • 7.1 实现选择控制
  • 7.1.1 保护性动作模式
  • 7.1.2 if语句
  • 7.2 关系运算符
  • 7.3 替代性动作模式
  • if...else语句
  • 7.4 选择操作结构中的语句块
  • 忘记使用{}的后果
  • 7.5 bool对象
  • 7.5.1 布尔运算
  • 7.5.2 运算符优先规则
  • 7.5.3 布尔运算符||与grid对象
  • 7.5.4 短路式布尔评估
  • 7.6 bool成员函数
  • 7.7 多重选择操作
  • 7.7.1 另一个示例:字母等级评定
  • 7.7.2 多路返回
  • 7.8 测试多重选择操作
  • 边界测试
  • 7.9 assert函数
  • 7.10 switch语句
  • char对象
  • 本章小结
  • 练习题
  • 编程技巧
  • 编程项目
  • 7A. 实现6个选择方法
  • 7B. 实现6个日历函数
  • 7C. 实现student类
  • 7D. 员工的加班费与联邦所得税
  • 第8章 重复操作
  • 8.1 实现重复控制
  • 为何需要执行重复操作
  • 8.2 算法模式:确定性循环
  • 8.2.1 for语句
  • 8.2.2 赋值操作符与其他增量运算的结合
  • 8.2.3 对Grid对象使用确定性循环
  • 8.3 确定性循环模式的应用
  • 8.3.1 分析
  • 8.3.2 设计
  • 8.3.3 实现
  • 8.3.4 测试
  • 8.3.5 检测到错误时应该怎么做
  • 8.4 算法模式:不确定性循环
  • 8.4.1 使用while语句实现确定性循环模式
  • 8.4.2 对Grid对象使用不确定性循环
  • 8.4.3 设置了岗哨的不确定性循环
  • 8.4.4 用cin >>来充当循环测试
  • 8.4.5 无限循环
  • 8.5 do while语句
  • 8.6 循环的选择与设计
  • 8.6.1 确定要使用的循环类型
  • 8.6.2 确定循环测试部分
  • 8.6.3 编写要重复执行的语句
  • 8.6.4 确保循环会越来越接近终止条件
  • 8.6.5 在必要情况下做好相关对象的初始化操作
  • 本章小结
  • 练习题
  • 编程技巧
  • 编程项目
  • 8A. 风速记录
  • 8B. 银行柜员
  • 8C. 寻找网格出口
  • 8D. 实现6个循环函数
  • 8E. Mastermind游戏
  • 8F. Elevator类
  • 第9章 文件流
  • 9.1 ifstream对象
  • 获取正确的路径
  • 9.2 将确定性循环模式应用于磁盘文件
  • 9.2.1 让处理过程终止于文件结束符
  • 9.2.2 让用户选择文件名
  • 9.3 使用不确定性循环处理更复杂的磁盘文件输入
  • 9.3.1 数字与字符串的混合
  • 9.3.2 getline函数
  • 9.4 ofstream对象
  • 本章小结
  • 练习题
  • 编程技巧
  • 编程项目
  • 9A. 文件中的风速记录
  • 9B. 文件中的单词数
  • 9C. 工资支付报告(基于7D. Employee类项目)
  • 第10章 vector
  • 10.1 C++标准库中的vector类
  • 10.1.1 访问集合中的个别元素
  • 10.1.2 用确定的for循环来处理vector
  • 10.1.3 处理vector中的前n个元素
  • 10.1.4 检查下标出界
  • 10.1.5 vector::capacity、 vector::resize与操作符=
  • 10.2 顺序搜索
  • 10.3 发送消息给vector中的各对象
  • 用文件输入的方式初始化vector
  • 10.4 vector的实参/形参关联
  • const引用与形参
  • 10.5 排序
  • 10.6 二分搜索法
  • 本章小结
  • 练习题
  • 编程技巧
  • 编程项目
  • 10A. 反转
  • 10B. 显示平均值以上的值
  • 10C. 顺序搜索函数
  • 10D. BankAccount对象的集合
  • 10E. 回文问题 1
  • 10F. 回文问题 2
  • 10G. 斐波那契数列
  • 10H. 薪水问题
  • 10I. 二分搜索函数
  • 10J. 频率问题
  • 10K. 8个vector处理函数
  • 10L. Stats类
  • 第11章 泛型容器
  • 11.1 容器类
  • 11.1.1 传递类型实参
  • 11.1.2 模板
  • 11.2 Set<Type>类
  • 11.2.1 构造函数Set()
  • 11.2.2 bool contains(Type const& value) const
  • 11.2.3 void insert(Type const& element)
  • 11.2.4 bool remove(Type const& removalCandidate)
  • 11.3 迭代器模式
  • 迭代器成员函数
  • 本章小结
  • 练习题
  • 编程技巧
  • 编程项目
  • 11A. Stack<Type>类
  • 11B. PriorityList<Type>类
  • 11C. 带异常机制的PriorityList<Type>类
  • 第12章 指针与内存管理
  • 12.1 内存因素考量
  • 12.1.1 指针
  • 12.1.2 指向对象
  • 12.2 原生的C数组
  • 12.2.1 原生数组与vector之间的差异
  • 12.2.2 数组与指针的联系
  • 12.2.3 传递原生数组实参
  • 12.3 用new操作符分配内存
  • 在运行时为数组分配内存
  • 12.4 delete操作符
  • 12.5 用C的struct构建单向链接结构体
  • 12.5.1 用单向链接数据结构实现list类
  • 12.5.2 add(std::string)
  • 12.5.3 get(int index)
  • 12.5.4 remove(string removalCandidate)
  • 本章小结
  • 练习题
  • 编程技巧
  • 编程项目
  • 12A. 加强版的LinkedList
  • 12B. 用单向链接结构实现LinkedStack类
  • 12C. LinkedPriorityList容器类
  • 12D. 带异常机制的LinkedPriorityList<Type>容器类
  • 第13章 存储vector的vector
  • 13.1 存储vector的vector
  • 13.2 Matrix类
  • 13.2.1 标量乘法
  • 13.2.2 矩阵加法
  • 13.3 原生的二维数组
  • 13.4 拥有两个以上下标的数组
  • 本章小结
  • 练习题
  • 编程技巧
  • 编程项目
  • 13A. 魔方问题
  • 13B. 生命游戏
  • 附录 自测题答案
  • 第1章
  • 第2章
  • 第3章
  • 第4章
  • 第5章
  • 第6章
  • 第7章
  • 第8章
  • 第9章
  • 第10章
  • 第11章
  • 第12章
  • 第13章
展开全部

评分及书评

评分不足
1个评分
  • 用户头像
    给这本书评了
    3.0

    不深入,浅尝辄止

      转发
      评论

    出版方

    人民邮电出版社

    人民邮电出版社是工业和信息化部主管的大型专业出版社,成立于1953年10月1日。人民邮电出版社坚持“立足信息产业、面向现代社会、传播科学知识、服务科教兴国”,致力于通信、计算机、电子技术、教材、少儿、经管、摄影、集邮、旅游、心理学等领域的专业图书出版。