《程序设计教程:用C++语言编程》是2009年机械工业出版社出版的图书,作者是陈家骏。本书以介绍基本的程序设计思想、概念和技术为中心,强调了数据结构、算法、过程抽象以及数据抽象等重要的程序设计思想。
目录
- 作者简介
- 教学建议
- 第1章 概述
- 1.1 计算机的工作模型
- 1.1.1 硬件
- 1.1.2 软件
- 1.1.3 机内信息表示
- 1.2 程序设计
- 1.2.1 程序设计范型
- 1.2.2 程序设计步骤
- 1.2.3 程序设计语言
- 1.3 C++语言
- 1.3.1 C++语言概述
- 1.3.2 C++程序的构成
- 1.3.3 C++程序的运行步骤
- 1.3.4 C++语言的词法
- 1.4 小结
- 1.5 习题
- 第2章 数据描述(Ⅰ)——基本数据类型和表达式
- 2.1 数据类型概述
- 2.2 基本数据类型
- 2.2.1 整数类型
- 2.2.2 实数类型
- 2.2.3 字符类型
- 2.2.4 逻辑类型
- 2.3 数据的表现形式
- 2.3.1 常量
- 2.3.2 变量
- 2.3.3 变量值的输入
- 2.4 操作符(运算符)
- 2.4.1 算术操作符
- 2.4.2 关系与逻辑操作符
- 2.4.3 位操作符
- 2.4.4 赋值操作符
- 2.4.5 其他操作符
- 2.4.6 操作数的类型转换
- 2.5 表达式
- 2.5.1 表达式的构成与分类
- 2.5.2 操作符的优先级和结合性
- 2.5.3 表达式中操作数的类型转换
- 2.5.4 表达式结果的输出
- 2.5.5 表达式的副作用
- 2.6 小结
- 2.7 习题
- 第3章 流程控制——语句
- 3.1 程序流程控制概述
- 3.2 顺序控制
- 3.2.1 表达式语句
- 3.2.2 复合语句
- 3.2.3 空语句
- 3.3 选择控制
- 3.3.1 if语句
- 3.3.2 switch语句
- 3.4 循环(重复)控制
- 3.4.1 while语句
- 3.4.2 do.while语句
- 3.4.3 for语句
- 3.4.4 计数循环和事件循环
- 3.4.5 循环程序设计实例
- 3.5 无条件转移控制
- 3.5.1 goto语句
- 3.5.2 break语句
- 3.5.3 continue语句
- 3.6 程序设计风格
- 3.6.1 结构化程序设计
- 3.6.2 关于goto语句
- 3.7 小结
- 3.8 习题
- 第4章 过程抽象——函数
- 4.1 基于过程抽象的程序设计
- 4.1.1 功能分解与复合
- 4.1.2 子程序
- 4.1.3 子程序间的数据传递
- 4.2 C++函数
- 4.2.1 函数的定义
- 4.2.2 函数的调用
- 4.2.3 值作为参数传递
- 4.2.4 基于函数的过程式程序设计
- 4.3 标识符的作用域与变量的生存期
- 4.3.1 变量的局部性——局部变量与全局变量
- 4.3.2 C++程序的多模块结构
- 4.3.3 标识符的作用域
- 4.3.4 名空间
- 4.3.5 变量的生存期(存储分配)
- 4.3.6 基于栈的函数调用的实现
- 4.4 递归函数
- 4.4.1 什么是递归函数
- 4.4.2 “分而治之”的程序设计
- 4.4.3 递归与循环的选择
- 4.4.4 递归函数应用实例
- 4.5 函数的进一步讨论
- 4.5.1 内联函数
- 4.5.2 带默认值的形式参数
- 4.5.3 函数名重载
- 4.6 C++标准函数库
- 4.7 C++的条件编译
- 4.7.1 条件编译命令
- 4.7.2 基于多环境的程序编制
- 4.7.3 程序调试
- 4.8 小结
- 4.9 习题
- 第5章 数据描述(Ⅱ)——构造数据类型
- 5.1 枚举类型
- 5.2 数组类型
- 5.2.1 一维数组的定义与操作
- 5.2.2 字符串类型的一种实现——一维字符数组
- 5.2.3 二维数组的定义与操作
- 5.2.4 数组类型的应用
- 5.3 结构类型
- 5.3.1 结构类型的定义与操作
- 5.3.2 结构类型的应用
- 5.4 联合类型
- 5.5 指针类型
- 5.5.1 指针类型的定义
- 5.5.2 指针类型的基本操作
- 5.5.3 指针作为参数传递
- 5.5.4 指针与动态变量
- 5.5.5 函数指针
- 5.5.6 指针与数组
- 5.5.7 多级指针
- 5.6 引用类型
- 5.6.1 引用类型的定义
- 5.6.2 引用作为参数传递
- 5.6.3 引用类型与指针类型的区别
- 5.7 小结
- 5.8 习题
- 第6章 数据抽象——对象与类
- 6.1 基于数据抽象的程序设计
- 6.1.1 什么是面向对象程序设计
- 6.1.2 为什么要面向对象
- 6.1.3 面向对象程序设计的基本内容
- 6.2 类
- 6.2.1 数据成员
- 6.2.2 成员函数
- 6.2.3 成员的访问控制——信息隐藏
- 6.3 对象
- 6.3.1 对象的创建和标识
- 6.3.2 对象的操作
- 6.3.3 this指针
- 6.4 对象的初始化和消亡前处理
- 6.4.1 构造函数与析构函数
- 6.4.2 成员对象的初始化
- 6.4.3 拷贝构造函数
- 6.5 对象与类的进一步讨论
- 6.5.1 对常量对象的访问——常成员函数
- 6.5.2 对象之间的数据共享静态数据成员
- 6.5.3 提高对对象私有数据成员的访问效率——友元
- 6.6 类作为模块
- 6.6.1 类模块的组成
- 6.6.2 Demeter法则
- 6.7 小结
- 6.8 习题
- 第7章 操作符重载
- 7.1 操作符重载概述
- 7.1.1 操作符重载的必要性
- 7.1.2 操作符重载的方式
- 7.1.3 操作符重载的基本原则
- 7.2 操作符重载的实现
- 7.2.1 双目操作符重载
- 7.2.2 单目操作符重载
- 7.3 C++中几个特殊操作符的重载
- 7.3.1 赋值操作符
- 7.3.2 数组元素访问操作符(下标操作符)
- 7.3.3 类成员访问操作符
- 7.3.4 动态存储分配与去配操作符
- 7.3.5 自定义类型转换操作符
- 7.3.6 函数调用操作符
- 7.4 操作符重载的实例——字符串类String的一种实现
- 7.5 小结
- 7.6 习题
- 第8章 类的继承——派生类
- 8.1 类之间的继承关系——基类与派生类
- 8.2 单继承
- 8.2.1 单继承的定义
- 8.2.2 在派生类中访问基类成员——protected访问控制
- 8.2.3 派生类对基类成员的访问控制继承方式
- 8.2.4 派生类对象的初始化和赋值操作
- 8.2.5 单继承的应用实例
- 8.2.6 类之间的聚集关系
- 8.3 消息(成员函数调用)的动态绑定
- 8.3.1 消息的多态性
- 8.3.2 虚函数与消息的动态绑定
- 8.3.3 纯虚函数和抽象类
- 8.3.4 虚函数动态绑定的一种实现
- 8.4 多继承
- 8.4.1 多继承的必要性
- 8.4.2 多继承的定义
- 8.4.3 名冲突
- 8.4.4 重复继承——虚基类
- 8.5 小结
- 8.6 习题
- 第9章 类属(泛型)机制——模板
- 9.1 类属(泛型)程序设计
- 9.2 模板
- 9.2.1 函数模板
- 9.2.2 类模板
- 9.2.3 模板的复用
- 9.3 C++标准模板库
- 9.3.1 概述
- 9.3.2 容器
- 9.3.3 迭代器
- 9.3.4 算法
- 9.4 小结
- 9.5 习题
- 第10章输入/输出
- 10.1 输入/输出概述
- 10.2 面向控制台的输入/输出
- 10.2.1 基于函数库的控制台I/O
- 10.2.2 基于类库的控制台。I/O
- 10.2.3 抽取/插入操作符“>>”和“<<”的重载
- 10.3 面向文件的输入/输出
- 10.3.1 基于函数库的文件I/O
- 10.3.2 基于类库的文件I/O
- 10.4 面向字符串变量的输入/输出
- 10.5 小结
- 10.6 习题
- 第11章 异常处理
- 11.1 异常处理概述
- 11.1.1 什么是异常
- 11.1.2 异常处理的基本手段
- 11.2 C++异常处理机制
- 11.2.1 try、throw以及catch语句
- 11.2.2 异常处理的嵌套
- 11.3 小结
- 11.4 习题
- 第12章 实例——面向对象的Windows应用程序框架
- 12.1 Windows应用程序的基本结构
- 12.1.1 应用程序的用户界面
- 12.1 12消息驱动的程序结构
- 12.2 面向对象的Windows应用程序结构
- 12.2.1 Windows应用程序中的对象
- 12.2.2 MFC对面向对象Windows应用程序开发的支持
- 12.2.3 VisualC++的应用向导和类向导
- 12.3 小结
- 12.4 习题
- 附录AASCII字符集及其编码
- 附录BIEEE浮点数的内部表示
- 参考文献