C++程序设计基础.编程抽象与算法策略 本书特色
本书是一本关于C 语言的经典书籍,全书共计20章,主要介绍了C 的基本知识、函数和库、字符串、流、集合、类的设计、递归、递归策略、回溯算法、算法分析、指针与数组、动态内存管理、效率与表示、线性结构、映射、树、图、继承、迭代的策略等内容。本书重点图突出,全面讲解了C 语言的基本概念,深入剖析了具体的编程思路。同事,每章后面都有配套的的习题,有助于读者进一步理解和掌握晦涩的概念。本书适合作为计算机专业及相关专业学生的教材或教学参考书,也适合希望学习C 语言的初学者和中高级程序员使用。
C++程序设计基础.编程抽象与算法策略 目录
目 录Programming Abstractions in C 出版者的话译者序前言第1章 C 概述11.1 你的**个C 程序11.2 C 的历史21.2.1 面向对象范型21.2.2 C 的演化31.3 编译过程31.4 C 程序结构41.4.1 注释51.4.2 包含的库文件61.4.3函数原型61.4.4主程序71.4.5函数定义81.5 变量91.5.1 变量声明91.5.2命名规则101.5.3 局部变量和全局变量111.5.4 常量111.6 数据类型121.6.1 数据类型的概念121.6.2 整数类型131.6.3 浮点类型131.6.4 布尔类型141.6.5 字符141.6.6 字符串151.6.7 枚举类型161.6.8 复合类型171.7 表达式171.7.1 优先级和结合律181.7.2 表达式中的混合类型191.7.3整数除法和求余操作符191.7.4 类型转换201.7.5 赋值操作符201.7.6 自增和自减操作符211.7.7 布尔运算221.8 语句241.8.1 简单语句241.8.2 块241.8.3 if语句241.8.4 switch语句251.8.5while语句271.8.6 for语句29本章小结31复习题32习题33第2章 函数与库372.1 函数概念372.1.1 数学中的函数372.1.2 编程中的函数372.1.3 使用函数的优点382.1.4函数和算法382.2库392.3在C 中定义函数412.3.1函数原型412.3.2重载422.3.3默认形参数422.4函数调用机制432.4.1函数调用步骤432.4.2组合函数442.4.3追踪组合函数执行过程462.5引用参数492.6接口与实现522.6.1定义error库532.6.2导出数据类型542.6.3导出常量定义562.7接口设计原则582.7.1统一主题的重要性582.7.2简单性与信息隐藏原理592.7.3满足用户需求602.7.4通用工具的优势602.7.5库稳定性的价值602.8随机数库的设计612.8.1随机数与伪随机数612.8.2标准库中的伪随机数622.8.3选择正确的函数集632.8.4构建用户程序652.8.5随机数库的实现652.8.6初始化随机数种子692.9Stanford类库介绍732.9.1简单的输入和输出类库732.9.2Stanford类库中的图形处理程序74本章小结77复习题78习题79第3章 字符串类string853.1使用字符串作为抽象数据853.2字符串操作873.2.1操作符重载883.2.2从一个字符串中选取字符893.2.3字符串赋值903.2.4提取字符串中的子串903.2.5在一个字符串中进行搜索903.2.6循环遍历字符串中的所有字符913.2.7通过连接扩展字符串923.3库933.4修改字符串中的内容943.5遗留的C风格字符串953.6编写字符串应用程序953.6.1回文识别963.6.2将英语翻译成儿童黑话963.7strlib.h库99本章小结100复习题100习题101第4章 流类1084.1格式化输出1084.2格式化输入1124.3数据文件1134.3.1使用文件流1144.3.2单个字符的输入/输出1154.3.3面向行的输入/输出1184.3.4格式化输入/输出1194.3.5字符串流1214.3.6一个用于控制台输入的更鲁棒的策略1224.4类层次1234.4.1生物层次1234.4.2流类层次1244.4.3在流层次中选择正确的层次1264.5simpio.h和filelib.h库127本章小结128复习题128习题129第5章 集合类 1335.1Vector类1345.1.1指定Vector的基类型1345.1.2声明Vector对象1355.1.3Vector的操作1355.1.4从Vector对象中选择元素1365.1.5作为参数传递Vector对象1375.1.6创建预先定义大小的Vector1385.1.7Vector类的构造函数1415.1.8Vector中的操作符1425.1.9表示二维结构1435.1.10Stanford类库中的Grid类1435.2Stack类1445.2.1Stack类结构1455.2.2栈和小型计算器1455.3Queue类1485.3.1仿真和模型1495.3.2排队模型1495.3.3离散时间1505.3.4仿真时间中的事件1505.3.5实现仿真1515.4Map类1545.4.1Map类的结构1545.4.2在一个应用中使用Map类1565.4.3Map类作为关联数组1575.5Set类1585.5.1实现库1595.5.2创建单词列表1605.5.3Stanford类库中的Lexicon类1615.6在集合上进行迭代1625.6.1迭代顺序1635.6.2再论儿童黑话1645.6.3计算单词的频率165本章小结167复习题168习题168第6章 类的设计1786.1 二维点的表示1786.1.1 将Point定义为结构类型1786.1.2 将Point定义为类1796.1.3 接口与实现的分离1826.2 操作符重载1846.2.1 重载插入操作符1846.2.2 判断两个点是否相等1866.2.3 为Direction类型增加操作符1896.3 有理数1916.3.1 定义新类的机制1926.3.2 采用用户的观点1936.3.3 确定Rational类的私有实例变量1936.3.4 为Rational类定义构造函数1936.3.5 为Rational类定义方法1946.3.6 实现Rational类1966.4 token扫描器类的设计1986.4.1 用户想从记号扫描器中得到什么1996.4.2 tokenscanner.h接口2006.4.3 实现TokenScanner类2026.5 将程序封装成类205本章小结207复习题207习题208第7章 递归简介2157.1 一个简单的递归例子2157.2 阶乘函数2177.2.1 fact的递归公式2177.2.2 追踪递归过程2187.2.3 递归的稳步跳跃2217.3 斐波那契信息
|