罗伯茨《C++程序设计:基础、编程抽象与算法策略》

¥129.00¥129.00
已下架(本产品缺货或未上线)

商品介绍

内容简介

      本书是一本关于C++语言的经典书籍,全书共计20章,主要介绍了C++的基本知识、函数和库、字符串、流、集合、类的设计、递归、递归策略、回溯算法、算法分析、指针与数组、动态内存管理、效率与表示、线性结构、映射、树、图、继承、迭代的策略等内容。本书重点图突出,全面讲解了C++语言的基本概念,深入剖析了具体的编程思路。同事,每章后面都有配套的的习题,有助于读者进一步理解和掌握晦涩的概念。本书适合作为计算机专业及相关专业学生的教材或教学参考书,也适合希望学习C++语言的初学者和中高级程序员使用。

 

目录

出版者的话 

译者序 

前言 

1   C++概述

1.1   你的第一个C++程序

1.2   C++的历史

1.2.1   面向对象范型

1.2.2   C++的演化

1.3   编译过程

1.4   C++程序结构

1.4.1   注释

1.4.2   包含的库文件

1.4.3   函数原型

1.4.4   主程序

1.4.5   函数定义

1.5   变量

1.5.1   变量声明

1.5.2   命名规则10 

1.5.3   局部变量和全局变量11 

1.5.4   常量11 

1.6   数据类型12 

1.6.1   数据类型的概念12 

1.6.2   整数类型13 

1.6.3   浮点类型13 

1.6.4   布尔类型14 

1.6.5   字符14 

1.6.6   字符串15 

1.6.7   枚举类型16 

1.6.8   复合类型17 

1.7   表达式17 

1.7.1   优先级和结合律18 

1.7.2   表达式中的混合类型19 

1.7.3   整数除法和求余操作符19 

1.7.4   类型转换20 

1.7.5   赋值操作符20 

1.7.6   自增和自减操作符21 

1.7.7   布尔运算22 

1.8   语句24 

1.8.1   简单语句24 

1.8.2   24 

1.8.3   if语句24 

1.8.4   switch语句25 

1.8.5   while语句27 

1.8.6   for语句29 

本章小结31 

复习题32 

习题33 

2   函数与库37 

2.1   函数概念37 

2.1.1   数学中的函数37 

2.1.2   编程中的函数37 

2.1.3   使用函数的优点38 

2.1.4   函数和算法38 

2.2   39 

2.3   C++中定义函数41 

2.3.1   函数原型41 

2.3.2   重载42 

2.3.3   默认形参数42 

2.4   函数调用机制43 

2.4.1   函数调用步骤43 

2.4.2   组合函数44 

2.4.3   追踪组合函数执行过程46 

2.5   引用参数49 

2.6   接口与实现52 

2.6.1   定义error53 

2.6.2   导出数据类型54 

2.6.3   导出常量定义56 

2.7   接口设计原则58 

2.7.1   统一主题的重要性58 

2.7.2   简单性与信息隐藏原理59 

2.7.3   满足用户需求60 

2.7.4   通用工具的优势60 

2.7.5   库稳定性的价值60 

2.8   随机数库的设计61 

2.8.1   随机数与伪随机数61 

2.8.2   标准库中的伪随机数62 

2.8.3   选择正确的函数集63 

2.8.4   构建用户程序65 

2.8.5   随机数库的实现65 

2.8.6   初始化随机数种子69 

2.9   Stanford类库介绍73 

2.9.1   简单的输入和输出类库73 

2.9.2   Stanford类库中的图形处理程序74 

本章小结77 

复习题78 

习题79 

3   字符串类string85 

3.1   使用字符串作为抽象数据85 

3.2   字符串操作87 

3.2.1   操作符重载88 

3.2.2   从一个字符串中选取字符89 

3.2.3   字符串赋值90 

3.2.4   提取字符串中的子串90 

3.2.5   在一个字符串中进行搜索90 

3.2.6   循环遍历字符串中的所有字符91 

3.2.7   通过连接扩展字符串92 

3.3   93 

3.4   修改字符串中的内容94 

3.5   遗留的C风格字符串95 

3.6   编写字符串应用程序95 

3.6.1   回文识别96 

3.6.2   将英语翻译成儿童黑话96 

3.7   strlib.h99 

本章小结100 

复习题100 

习题101 

4   流类108 

4.1   格式化输出108 

4.2   格式化输入112 

4.3   数据文件113 

4.3.1   使用文件流114 

4.3.2   单个字符的输入/输出115 

4.3.3   面向行的输入/输出118 

4.3.4   格式化输入/输出119 

4.3.5   字符串流121 

4.3.6   一个用于控制台输入的更鲁棒的策略122 

4.4   类层次123 

4.4.1   生物层次123 

4.4.2   流类层次124 

4.4.3   在流层次中选择正确的层次126 

4.5   simpio.hfilelib.h127 

本章小结128 

复习题128 

习题129 

5   集合类 133 

5.1   Vector134 

5.1.1   指定Vector的基类型134 

5.1.2   声明Vector对象135 

5.1.3   Vector的操作135 

5.1.4   Vector对象中选择元素136 

5.1.5   作为参数传递Vector对象137 

5.1.6   创建预先定义大小的Vector138 

5.1.7   Vector类的构造函数141 

5.1.8   Vector中的操作符142 

5.1.9   表示二维结构143 

5.1.10   Stanford类库中的Grid143 

5.2   Stack144 

5.2.1   Stack类结构145 

5.2.2   栈和小型计算器145 

5.3   Queue148 

5.3.1   仿真和模型149 

5.3.2   排队模型149 

5.3.3   离散时间150 

5.3.4   仿真时间中的事件150 

5.3.5   实现仿真151 

5.4   Map154 

5.4.1   Map类的结构154 

5.4.2   在一个应用中使用Map156 

5.4.3   Map类作为关联数组157 

5.5   Set158 

5.5.1   实现库159 

5.5.2   创建单词列表160 

5.5.3   Stanford类库中的Lexicon161 

5.6   在集合上进行迭代162 

5.6.1   迭代顺序163 

5.6.2   再论儿童黑话164 

5.6.3   计算单词的频率165 

本章小结167 

复习题168 

习题168 

6   类的设计178 

6.1   二维点的表示178 

6.1.1   Point定义为结构类型178 

6.1.2   Point定义为类179 

6.1.3   接口与实现的分离182 

6.2   操作符重载184 

6.2.1   重载插入操作符184 

6.2.2   判断两个点是否相等186 

6.2.3   Direction类型增加操作符189 

6.3   有理数191 

6.3.1   定义新类的机制192 

6.3.2   采用用户的观点193 

6.3.3   确定Rational类的私有实例变量193 

6.3.4   Rational类定义构造函数193 

6.3.5   Rational类定义方法194 

6.3.6   实现Rational196 

6.4   token扫描器类的设计198 

6.4.1   用户想从记号扫描器中得到什么199 

6.4.2   tokenscanner.h接口200 

6.4.3   实现TokenScanner202 

6.5   将程序封装成类205 

本章小结207 

复习题207 

习题208 

7   递归简介215 

7.1   一个简单的递归例子215 

7.2   阶乘函数217 

7.2.1   fact的递归公式217 

7.2.2   追踪递归过程218 

7.2.3   递归的稳步跳跃221 

7.3   斐波那契

×

【提醒】购买纸书后,扫码即可免费领取购书大礼包!

如果你已购买本书,请扫一扫封面右上角的二维码,如下图:

如果你未购买纸书,请先购买:

立即购买

长按图片下载到相册
分享到微信、朋友圈、微博、QQ等
朋友注册并购买后,您可赚
取消