国外计算机科学教材系列 C++编程-从问题分析到程序设计
作者:(美)D.S.Malik著 钟书毅等译
出版时间: 2003年版
丛编项: 国外计算机科学教材系列
内容简介
本书是为C++初学者和大学计算机科学C++课程的教学而设计的,书中内容丰富并具有较强的系统性和实用性。对于有一定C或C++编程经验的读者而言,此书也是一本很有用的参考书。作者通过大量的例子深入剖析和阐述了几乎所有的关键性概念,并且给出了解决专门问题的案例研究,同时在每一章末都留有一定数量的编程练习。本书的这些特色有助于读者深入理解C++语言并提高程序设计的能力。本书循序渐进地介绍了C++程序设计的各个方面,包括C++语言的基本概念、结构化程序设计、面向对象编程以及C++的一些高级主题。在内容和结构的安排上,本书强调编程实践的重要性,许多简洁易懂的实例贯穿始终,每一章的最后饮食丰富的编程练习。此外,本书还注重对C++概念的深入理解,作者通过论述与简单实例相结合的形式,生动地阐明了C++中很多关键的概念。通过本书的系统学习,读者能够很快地掌握C++程序设计的知识并有效地提高编程技术。
目录
第1章 计算机和编程语言回顾
1.1 导言
1.2 计算机历史的简要回顾
1.3 计算机系统的组成
1.4 计算机语言
1.5 编程语言的发展
1.6 处理高级语言程序
1.7 分析问题-编码-执行
1.8 面向对象的编程
1.9 ANSI/ISO标准C++
1.10 小结
1.11 练习
第2章 C++的基本要素
2.1 C++程序的基础知识
2.2 数据类型
2.3 算术运算符和运算符优先级
2.4 表达式
2.5 输入
2.6 自增和自减运算符
2.7 输出
2.8 预处理器指令
2.9 编程风格和形式
2.10 赋值勤语句的更多知识
2.11 编程实例:长度转换
2.12 编程实例:找零钱
2.13 小结
2.14 练习
2.15 编程练习
第3章 输入/输出
3.1 I/O数据流和标准I/O设备
3.2 在程序中使用预定义函数
3.3 输入失败
3.4 输出和格式化输出
3.5 其他输出格式化工具
3.6 文件输入/输出
3.7 编程实例:电影票销售和对慈善机构的捐助
3.8 编程实例:学生分数
3.9 小结
3.10 练习
3.11 编程练习
第4章 控制结构I(选择结构)
4.1 控制结构
4.2 关系运算符
4.3 逻辑(布尔)运算符和逻辑表达式
4.4 选择:if和if…else
4.5 switch结构
4.6 用assert()函数来终止一个程序
4.7 编程实例:有线电视公司账单
4.8 小结
4.9 练习
4.10 编程练习
第5章 控制结构II(重复)
5.1 为什么需要重复结构
5.2 while循环(重复)结构
5.3 编程实例:检查账户余额
5.4 编程实例:斐波那契数列
5.5 for循环(重复)结构
5.6 编程实例:数字分类
5.7 do…while循环(重复)结构
5.8 break和continue语句
5.9 嵌套控制结构
5.10 小结
5.11 练习
5.12 编程练习
第6章 用户自定义函数I
6.1 标准(预定义)函数
6.2 用户定义函数
6.3 具有返回值的函数
6.4 编程实例:最大数
6.5 编程实例:有线电视公司账单问题
6.6 小结
6.7 练习
6.8 编程练习
第7章 用户自定义函数II
7.1 woid函数
7.2 值参数、引用参数和内存分配
7.3 引用参数和返回值参数
7.4 变量的范围
7.5 全局变量的副作用
7.6 静态和自动变量
7.7 函数重载:介绍
7.8 有默认参数的函数
7.9 编程实例:对数字分类
7.10 编程实例:数据比较
7.11 小结
7.12 练习
7.13 编程练习
第8章 用户定义的简单数据类型、命名空间和string类型
8.1 枚举类型
8.2 编程实例:石头、剪子和布的游戏
8.3 命名空间
8.4 string类型
8.5 编程实例:Pig Latin字符串
8.6 小结
8.7 练习
8.8 编程练习
第9章 数组和字符串
9.1 数组
9.2 C字符串(字符数数)
9.3 关联数组
9.4 编程实例:代码检测
9.5 编程实例:文本处理
9.6 小结
9.7 练习
9.8 编程练习
第10章 数组的应用和扩展
10.1 顺序表处理
10.2 二维和多维数组
10.3 多维数组
10.4 编程实例:选举结果
10.5 小结
10.6 练习
10.7 编程练习
第11章 递归
11.1 递归的定义
11.2 利用递归解决问题
11.3 递归还是迭代
11.4 编程实例:将一个数字从二进制表示转换为十进制表示
11.5 编程实例:将一个数字从十进制转换为二进制
11.6 小结
11.7 练习
11.8 编程练习
第12章 记录(结构体)
12.1 记录(结构体)
12.2 编程实例:销售数据分析
12.3 小结
12.4 练习
12.5 编程练习
第13章 类和数据抽象
13.1 类
13.2 数据抽象、类和抽象数据类型
13.3 结构体与类
13.4 信息隐藏
13.5 可执行代码
13.6 编程实例:糖果机
13.7 小结
13.8 练习
13.9 编程练习
第14章 继承和组合
14.1 继承
14.2 组合
14.3 面向对象设计(OOD)和面向对象编程(OOP)
14.4 编程实例:分数报告
14.5 小结
14.6 练习
14.7 编程练习
第15章 指针、类和虚函数
15.1 指针数据类型和指针变量
15.2 取址运算符(&)
15.3 取值运算符(*)
15.4 类、结构和指针变量
15.5 初始化指针变量
15.6 动态变量
15.7 指针变量的运算
15.8 动态数组
15.9 指针的浅(shallow)复制与深(deep)复制
15.10 类和指针:一些特性
15.11 继承、指针和虚函数
15.12 取址运算符和类
15.13 小结
15.14 练习
15.15 编程练习
第16章 重载和模板
16.1 为什么需要运算符重载
16.2 运算符重载
16.3 编程练习:clocType
16.4 编程练习:复数
16.5 重载数组索引(下标)运算符([])
16.6 编程练习:newString
16.7 函数重载
16.8 模板
16.9 小结
16.10 练习
16.11 编程练习
第17章 链表
17.1 链表
17.2 作为ADT的链表
17.3 有序链表
17.4 双向链表
17.5 编程实例:音像商店
17.6 小结
17.7 练习
17.8 编程练习
第18章 栈和队列
18.1 栈
18.2 栈的数组实现
18.3 程序实例:最大GPA
18.4 栈的链表实现
18.5 栈的应用:后缀表达式计算器
18.6 消除递归:非递归逆序打印链表的算法
18.7 队列
18.8 队列的应用:仿真
18.9 小结
18.10 练习
18.11 编程练习
附录A 保留字
附录B 运算符的优先级
附录C 字符集
附录D 运算符重载
附录E 在ANSI/ISO标准C++和标准C++中头文件的名称约定
附录F 头文件
附录G 系统中数据类型的内存尺寸
附录H 部分练习答案