C++程序设计——思想与方法(慕课版)(第4版)

C++程序设计思想与方法
分享 推荐 5 收藏 56 阅读 5.5K
翁惠玉 (作者) 978-7-115-58755-8

关于本书的内容有任何问题,请联系 许金霞

1.本书侧重讲解解决问题的思路,重视程序设计思想
2.本书以模块化方式撰写,教师与读者可根据自身情况进行选择性授课或学习
3.本书含有编程规范及常见错误提醒,加深学生对编程规范性的理解
4.本书配套资源丰富,提供微课、习题解答、教学安排建议等资源

内容摘要

本书以C++语言为环境,重点讲授程序设计的思想和方法,包括过程化的程序设计和面向对象的程序设计。本书非常强调程序设计的风格,将各种情况下的程序风格的要求贯穿于本书的各个章节。
本书的内容可以分为两大部分:第1章到第9章为第一部分,它们主要对一些基本的程序设计思想、概念、技术、良好的程序设计风格以及过程化程序设计进行介绍,包括数据类型、控制结构、数据封装、过程封装以及各种常用的算法;第10章到第16章为第二部分,重点介绍面向对象的思想,包括如何设计及实现一个类、如何利用组合和继承实现代码的重用、如何利用多态性使程序更加灵活、如何利用抽象类制定一些工具的规范,最后为了更好地与数据结构课程衔接,介绍了容器和迭代器的概念。
本书可作为各高等院校计算机专业的教材,也可供从事计算机软件开发的科研人员作为参考资料。

目录

第 1 章 绪论
1.1 程序设计概述
1.2 计算机组成.
1.2.1 计算机硬件.
1.2.2 计算机软件.
1.3 程序设计语言
1.3.1 机器语言
1.3.2 汇编语言
1.3.3 高级语言
1.3.4 C++语言
1.4 程序设计过程
1.4.1 算法设计
1.4.2 编码
1.4.3 编译和链接
1.4.4 调试与维护
1.5 小结
1.6 习题

第 2章 程序的基本组成
2.1 程序的基本结构
2.1.1 注释
2.1.2 预编译指令
2.1.3 名字空间
2.1.4 主程序
2.2 常量与变量
2.2.1 变量定义
2.2.2 数据类型
2.2.3 常量与符号常量
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.5 赋值运算
2.5.1 赋值表达式
2.5.2 赋值的嵌套.
2.5.3 复合赋值运算
2.5.4 自增和自减运算符.
2.6 程序规范及常见错误
2.7 小结
2.8 习题

第3 章 分支程序设计
3.1 关系表达式
3.2 逻辑表达式
3.3 if 语句
3.3.1 if 语句的格式
3.3.2 if 语句的嵌套
3.3.3 条件表达式
3.4 switch 语句及其应用
3.5 编程规范及常见错误.
3.6 小结
3.7 习题

第4 章 循环程序设计
4.1 计数循环
4.1.1 for 语句
4.1.2 for 语句的进一步讨论
4.1.3 for 循环的嵌套
4.1.4 范围for循环
4.2 break 和continue 语句
4.3 基于哨兵的循环
4.3.1 while 语句
4.3.2 do-while 语句
4.4 循环的中途退出
4.5 *输入异常检测
4.5 *枚举法
4.6 *贪婪法
4.7 编程规范和常见错误
4.8 小结
4.9 习题

第5 章 过程封装——函数
5.1 函数定义
5.1.1 函数的基本结构
5.1.2 return 语句
5.1.3 函数示例.
5.1.4 *尾置返回类型
5.2 函数的使用
5.2.1 函数原型的声明
5.2.2 函数调用.
5.2.3 将函数与主程序放在一起
5.2.4 函数调用过程
5.3 变量的作用域
5.4 变量的存储类别
5.4.1 自动变量
5.4.2 静态变量
5.4.3 寄存器变量
5.4.4 外部变量
5.5 带默认值的函数
5.6 内联函数
5.7 *常量表达式函数
5.8 重载函数
5.9 函数模板
5.9.1 函数模板的定义
5.9.2 函数模板的实例化
5.9.3 *函数模板的显式实例化
5.9.4 *函数模板的特化
5.9.5 *函数模板的重载
5.10 递归函数
5.10.1 递归函数的基本概念
5.10.2 递归函数的应用.
5.11 编程规范及常见错误
5.24 小结
5.13 习题

第6 章 批量数据处理——数组
6.1 一维数组
6.1.1 一维数组的定义
6.1.2 一维数组元素的引用
6.1.3 一维数组的内存映像
6.1.4 一维数组的应用.
6.1.5 一维数组作为函数参数
6.2 查找
6.2.1 顺序查找.
6.2.2 二分查找
6.3 排序
6.3.1 直接选择排序法
6.3.2 冒泡排序法
6.4 二维数组
6.4.1 二维数组的定义
6.4.2 二维数组元素的引用
6.4.3 二维数组的内存映像
6.4.4 二维数组的应用
6.4.5 二维数组作为函数参数
6.5 字符串
6.5.1 C风格的字符串
6.5.2 *string类
6.6 *基于递归的算法
6.6.1 回溯法
6.6.2 分治法
6.6.3 动态规划.
6.7 编程规范及常见错误
6.8 小结
6.9 习题

第7章 间接访问——指针
7.1 指针的概念
7.1.1 指针与间接访问
7.1.2 指针变量的定义
7.1.3 指针的基本操作
7.2 指针运算与数组
7.2.1 指针运算
7.2.2 用指针访问数组
7.3 动态内存分配
7.3.1 动态变量
7.3.2 动态变量的创建
7.3.3 动态变量的消亡
7.3.4 内存泄漏.
7.3.5 动态变量应用
7.4 字符串再讨论
7.5 指针与函数
7.5.1 指针作为形式参数
7.5.2 数组作为函数参数再讨论
7.5.3 字符串作为函数的参数
7.5.4 返回指针的函数
7.6 引用类型
7.6.1 引用的定义及应用
7.6.2 引用传递
7.6.3 返回引用的函数
7.6.4 右值引用
7.7 指针数组与多级指针
7.7.1 指针数组
7.7.2 *main 函数的参数
7.7.3 *多级指针
7.7.4 *动态二维数组
7.8 *函数指针.
7.8.1 指向函数的指针
7.8.2 函数指针作为函数参数
7.8.3 函数指针用于菜单选择
7.8.4 *Lambda表达式
7.9 编程规范与常见错误
7.10 小结
7.11 习题.

第8 章 数据封装-- 结构体
8.1 结构体
8.1.1 结构体类型的定义
8.1.2 结构体类型的变量的定义
8.1.3 结构体类型的变量的使用
8.1.4 结构体作为函数的参数
8.2 链表
8.2.1 链表的概念.
8.2.2 单链表的存储
8.2.3 单链表的操作
8.3 编程规范及常见错误
8.4 小结
8.5 习题

第9 章 模块化开发
9.1 结构化程序设计
9.2 自顶向下分解实例:猜硬币游戏.
9.3 模块划分实例:石头、剪刀、布游戏
9.4 设计自己的库
9.4.1 随机函数库的设计与实现
9.4.2 随机函数库的应用:龟兔赛跑模拟
9.5 编程规范及常见错误
9.6 小结
9.7 习题

第 10 章 创建新的类型
10.1 面向对象程序设计
10.1.1 抽象的过程.
10.1.2 面向对象程序设计的特点
10.1.3 库和类
10.2 类的定义
10.3 对象的使用
10.3.1 对象的定义.
10.3.2 对象的操作.
10.3.3 this 指针
10.4 对象的构造与析构
10.4.1 对象的构造
10.4.2 对象的析构
10.5 const与类
10.5.1 常量数据成员
10.5.2 常量对象
10.5.3 常量成员函数
10.6 静态成员
10.6.1 静态数据成员
10.6.2 静态成员函数
10.6.3 静态常量成员
10.7 友元
10.8 编程规范及常见错误
10.9 小结
10.10 习题

第 11 章 运算符重载
11.1 运算符重载的意义
11.2 运算符重载的方法
11.3 几个特殊运算符的重载
11.3.1 赋值运算符的重载.
11.3.2 下标运算符的重载
11.3.3 函数调用运算符重载
11.3.4 ++和--运算符的重载.
11.3.5 输入/输出运算符的重载
11.4 自定义类型转换函数
11.4.1 内置类型到类类型的转换
11.4.2 类类型到其他类型的转换
11.5 运算符重载的应用
11.5.1 完整的Rational类的定义和使用
11.5.2 完整的DoubleArray类的定义和使用
11.6 编程规范与常见错误
11.7 小结.
11.8 习题

第 12 章 组合与继承.
12.1 组合
12.2 继承
12.2.1 派生类的定义
12.2.2 派生类对象的构造与析构
12.2.3 重定义基类的函数
12.2.4 派生类对象的赋值
12.2.5 派生类作为基类
12.2.6 派生类对象隐式转换为基类对象
12.3 运行时的多态性
12.3.1 多态性
12.3.2 虚函数
12.3.3 运行时的多态性
12.3.4 虚析构函数
12.4 纯虚函数和抽象类
12.4.1 纯虚函数
12.4.2 抽象类
12.5 编程规范及常见错误
12.6 小结
12.7 习题

第 13 章 泛型机制——模板
13.1 类模板的定义
13.2 类模板的实例化
13.3 非类型参数和参数的默认值
12.4 *类模板的特化
13.5 类模板的友元.
13.5.1 普通友元
13.5.2 函数模板或类模板友元
13.6 类模板的其他用法
13.6.1 类模板作为基类
13.6.2 *类模板作为另一个类模板的成员
13.6.3 *递归使用类模板
13.7 编程规范及常见错误
13.8 小结.
13.9 习题

第 14 章 输入/输出与文件
14.1 流与标准库
14.2 输入/输出缓冲
14.3 基于控制台的输入/输出
14.4 基于文件的输入/输出
14.4.1 文件的概念
14.4.2 文件和流
14.4.3 ASCII文件的访问
14.4.4 二进制文件的访问
14.4.5 文件的随机访问
14.4.6 用流式文件处理含有记录的文件
14.5 *基于字符串的输入/输出
14.6 编程规范及常见错误
14.7 小结
14.8 习题

第 15 章 异常处理
15.1 传统的异常处理方法
15.2 异常处理机制
15.2.1 异常抛出.
15.2.2 异常捕获
15.3 异常规格说明
15.4 编程规范及常见错误
15.5 小结
15.6 习题

第 16章 *容器和迭代器
16.1 容器
16.2 迭代器
16.3 容器和迭代器的设计示例
16.3.1 用数组实现的顺序容器.
16.3.2 用链表实现的顺序容器
16.4 小结.
16.5 习题

读者评论

赶紧抢沙发哦!

我要评论

作者介绍

翁惠玉 翁惠玉,上海交通大学教授,荣获上海市育才奖、上海交通大学三育人先进个人、最受学生欢迎的老师提名奖、7次获校优秀教师奖、唐立新教学名师奖、上海交通大学首届“教书育人”奖等。在教学工作中业绩突出,作为主要成员负责国家级本科一流课程《数据结构》的课程建设,参与国家级精品课程《数据结构》、上海市精品课程《计算机网络》、上海市精品课程《程序设计》、国家教委的资源共享课程《数据结构》、以及上海交大致远荣誉课程《程序设计》和《数据结构》的建设。国家级教学成果奖一等奖1项,二等奖1项,上海市教学成果奖一等奖 2项。

推荐用户

购买本书用户

相关图书

人邮微信
本地服务
人邮微信
教师服务
二维码
读者服务
读者服务
返回顶部
返回顶部