科技
类型
可以朗读
语音朗读
378千字
字数
2019-08-01
发行日期
展开全部
主编推荐语
一本针对计算机科学专业领域的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章
展开全部
出版方
人民邮电出版社
人民邮电出版社是工业和信息化部主管的大型专业出版社,成立于1953年10月1日。人民邮电出版社坚持“立足信息产业、面向现代社会、传播科学知识、服务科教兴国”,致力于通信、计算机、电子技术、教材、少儿、经管、摄影、集邮、旅游、心理学等领域的专业图书出版。