本书是以C 编程语言来讲解计算基础知识和技能的实用教程。本书是作者数十年教学经验凝结的成果, 深浅出地介绍对象和类的概念,帮助学生更好地学习计算机科学的*门课,并为后续课程的学习下坚实的基础。本书每一章都给出了自测题、练习题、编程技巧、编程项目等内容。附录部分给出了所有自测题的解答,供读者学习参考。 本书适合作为高等院校计算机专业程序设计、编程基础等课程的教材,也适合专业程序员和想要学习C 编程的读者阅读参考。
售 价:¥
纸质售价:¥62.40购买纸书
温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印
为你推荐
版权声明
内容提要
前言
本书特色
教学安排
第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章
买过这本书的人还买过
读了这本书的人还在读
同类图书排行榜