C++面向对象程序设计:基础、数据结构与编程思想

副标题:无

作   者:(美)Walter Savitch著

分类号:

ISBN:9787302075943

微信扫一扫,移动浏览光盘

简介

   [b][font color="#ff6600"][/font][a href="http://www.china-pub.com/computers/subject/huodong/qhc%2b%2b/qhc%2b%2b.htm" target="_blank"][font color="#ff6600"]查看《c++面向对象程序设计》专题[/font][/a][font color="#ff6600"]    [/font][/b]    “我几乎看过所有已经出版的c++图书,发现只有这本尤其适合大一学生。它很容易理解,既不过分纠缠于细节,也不遗漏任何关键概念。” ——alan evans,美国蒙哥马利市社区学院计算机科学系主任       “许多作者在为大一学生编写教材时,都使用了过于复杂的例子。walter savitch知道如何用范例来有效地阐述一个概念。我喜欢这本书!” ——anne marchant博士,美国乔治梅森大学    [b][font color="#ff6600"]    本书特色:[/font][/b]    ·根据最新的ansi/ios c++标准进行了全面修订    ·完全通过课程试验,具有很高的正确性和可靠性    ·编排体系灵活,教师或学生可根据具体需要调整授课(或阅读)顺序    ·适当添加高级主题(以"选读"形式出现),满足部分学生深入学习c++的需要    ·针对重要概念(或要点),在相应位置提供总结框(以添加灰色底纹的形式),以便学生巩固所学知识。    ·大量自测题穿插于相应小节,并在各章末尾提供自测题答案    ·各章末尾提供富有一定挑战性、但又妙趣横生的编程项目    本书是最优秀的c++教材之一。自1995年以来,作者结合自己多年的教学经验,根据教学大纲精心设计并编写了书中内容。本书乃第4版,完全根据最新的ansi/iso c++标准对第3版进行了全面的修订,并结合广大教师和读者的优秀建议适当调整和增补了部分内容。考虑到大一学生刚涉足编程,作者还以粗体显示了c++的重要元素,并突出显示了重要的编程概念,同时在各章相应的小节提供自测题,在各章末尾提供小结和有趣而富有挑战性的编程项目。    全书共17章,9个附录。在讲解了c++基础知识之后,循序渐进引导学生深入函数、i/o流、类、控制流程、命名空间、数组、字符串、指针和动态数组、递归、模板、指针和链表、派生类以及异常。   

目录

第1章 计算机和c++编程入门

概述

1.1 计算机系统

1.1.1 硬件

1.1.2 软件

1.1.3 高级语言

1.1.4 编译器

自测题

1.1.5 历史回顾

1.2 编程和问题求解

1.2.1 算法

1.2.2 程序设计

1.2.3 面向对象编程

1.2.4 软件生存期

1.3 c++入门

1.3.1 c++语言的起源

1.3.2 一个c++示范程序

1.3.3 陷阱:在\n中使用错误的斜杠

1.3.4 编程提示:输入和输出语法

1.3.5 简单c程序的布局

.1.3.6 陷阱:在include文件名前添加一个空格

1.3.7 编译和运行c++程序

1.3.8 编程提示:让程序运行起来

自测题

1.4 测试和调试

1.4.1 程序错误的种类

1.4.2 陷阱:错误地假定程序正确

自测题

小结

自测题答案

编程项目

第2章 c++基础知识


概述

预备知识

2.1 变量和赋值

2.1.1 变量

2.1.2 名称:标识符

2.1.3 变量声明

2.1.4 赋值语句

2.1.5 陷阱:未初始化的变量

2.1.6 编程提示:使用有意义的名称

自测题

2.2 输入和输出

2.2.1 使用cout进行输出

2.2.2 include预编译指令和命名空间

2.2.3 转义序列

2.2.4 编程提示:用\n或endl终止每一个程序

2.2.5 格式化带小数点的数字

2.2.6 用cin进行输入

2.2.7 设计输入和输出

2.2.8 编程提示:i/o中的行中断

自测题

2.3 数据类型和表达式

2.3.1 int类型和double类型

2.3.2 其他数字类型

2.3.3 char类型

2.3.4 bool类型

2.3.5 类型的兼容性

2.3.6 算术操作符和表达式

2.3.7 陷阱:除法中的整数

自测题

2.3.8 更多赋值语句

2.4 简单控制流程

2.4.1 一个简单的分支机制

2.4.2 陷阱:连续的不等式

2.4.3 陷阱:错用=来取代==

2.4.4 复合语句

自测题

2.4.5 简单的循环机制

2.4.6 递增操作符和递减操作符

2.4.7 编程示例:信用卡余额

2.4.8 陷阱:无限循环

自测题

2.5 程序风格

2.5.1 缩进

2.5.2 注释

2.5.3 为常量命名

自测题

小结

自测题答案

编程项目

第3章 过程抽象和返回一个值的函数

概述

预备知识

3.1 自顶向下设计

3.2 预定义函数

3.2.1 使用预定义函数

3.2.2 强制类型转换

3.2.3 强制类型转换的古老形式

3.2.4 陷阱:整数除法丢弃了小数部分

自测题

3.3 程序员自定义函数

3.3.1 函数定义

3.3.2 另一种形式的函数声明

3.3.3 陷阱:实参顺序错误

3.3.4 函数定义语法总结

3.3.5 再论函数定义的位置

自测题

3.4 过程抽象

3.4.1 黑盒的比喻

3.4.2 编程提示:选择形参名称

3.4.3 案例分析:购买比萨

3.4.4 编程提示:使用伪代码

自测题

3.5 局部变量

3.5.1 函数如同小程序

3.5.2 编程实例:豌豆试验田

3.5.3 全局常量和全局变量

3.5.4 传值调用形参是局部变量

3.5.5 再论命名空间

自测题

3.5.6 编程实例:阶乘函数

3.6 重载函数名称

3.6.1 重载入门

3.6.2 编程实例:购买比萨(修订版)

3.6.3 自动类型转换

自测题

小结

自测题答案

编程项目

第4章 所有子任务的函数

概述

预备知识

4.1 void函数

4.1.1 void函数的定义

4.1.2 编程实例:温度换算

4.1.3 void函数中的return语句

自测题

4.2 传引用调用形参

4.2.1 初探传引用调用

4.2.2 传引用调用详解

4.2.3 编程实例:swap_values函数

4.2.4 混合的参数列表

4.2.5 编程提示:应该使用哪种参数

4.2.6 陷阱:疏忽的局部变量

自测题

4.3 使用过程抽象

4.3.1 由函数来调用函数

4.3.2 前条件和后条件

4.3.3 案例分析:超市定价系统

自测题

4.4 测试和调试函数

stub和驱动程序

自测题

小结

自测题答案

编程项目

第5章 i/o流——对象和类入门

概述

预备知识

5.1 流和基本文件i/o

5.1.1 文件之于i/o的重要性

5.1.2 文件i/o

5.1.3 类与对象入门

5.1.4 编程提示:检查文件是否成功打开

5.1.5 文件i/o技术

自测题

5.1.6 追加到文件(选读)

5.1.7 文件名作为输入(选读)

5.2 流i/o工具

5.2.1 用流函数格式化输出

5.2.2 操纵元

自测题

5.2.3 流作为函数实参

5.2.4 编程提示:检查文件尾

5.2.5 命名空间的问题

5.2.6 编程实例:整理文件格式

自测题

5.3 字符i/o

5.3.1 get和put成员函数

5.3.2 putback成员函数(选读)

5.3.3 编程实例:检查输入

5.3.4 陷阱:输入中不期而遇的“\n”

自测题

5.3.5 eof成员函数

自测题

5.3.6 编程实例:编辑文本文件

5.3.7 预定义的字符函数

5.3.8 陷阱:toupper和tolower返回int值

自测题

5.4 继承

5.4.1 流类之间的继承关系

5.4.2 编程实例:另一个new_line函数

5.4.3 函数的默认参数(选读)

自测题

小结

自测题答案

编程项目

第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.2.3 编程提示:将所有成员变量变成私有

6.2.4 编程提示:定义取值函数和赋值函数

自测题

6.2.5 编程提示:将赋值操作符用于对象

6.2.6 编程实例:bankaccount类(版本1)

6.2.7 总结类的一些特征

自测题

6.2.8 用于初始化的构造函数

6.2.9 编程提示:总是包括一个默认构造函数

6.2.10 陷阱:无参数构造函数

自测题

6.3 抽象数据类型

6.3.1 用于生成抽象数据类型的类

6.3.2 编程实例:类的另一种实现

自测题

小结

自测题答案

编程项目

第7章 更多的控制流程

概述

预备知识

7.1 使用布尔表达式

7.1.1 布尔表达式求值

7.1.2 陷阱:将布尔表达式转换成int值

自测题

7.1.3 能返回布尔值的函数

自测题

7.1.4 枚举类型(选读)

7.2 多路分支

7.2.1 嵌套语句

7.2.2 编程提示:在嵌套语句中使用花括号

7.2.3 多路if-else语句

7.2.4 编程实例:州税

自测题

7.2.5 switch语句

7.2.6 陷阱:忘记在switch语句中添加break

7.2.7 为菜单使用switch语句

7.2.8 编程提示:在分支语句中使用函数调用

7.2.9 块

7.2.10 陷阱:疏忽局部变量

自测题

7.3 c++循环语句详解

7.3.1 while语句回顾

7.3.2 再论递增操作符和递减操作符

自测题

7.3.3 for语句

7.3.4 陷阱:for语句中多余的分号

7.3.5 应该使用哪种循环

自测题

7.3.6 陷阱:未初始化的变量和无限循环

7.3.7 break语句

7.3.8 陷阱:嵌套循环中的break语句

自测题

7.4 设计循环

7.4.1 求和与求乘积的循环

7.4.2 终止循环

7.4.3 嵌套循环

自测题

7.4.4 调试循环

自测题

小结

自测题答案

编程项目
第8章 友元函数和重载操作符

概述

预备知识

8.1 友元函数

8.1.1 编程实例:一个相等性函数

自测题

8.1.2 友元函数

8.1.3 编程提示:定义取值函数和友元函数

8.1.4 编程提示:同时使用成员函数和非成员函数

8.1.5 编程实例:money类(版本1)

8.1.6 实现digit_to_int(选读)

8.1.7 陷阱:数字常量中的前置零

自测题

8.1.8 const参数修饰符

8.1.9 陷阱:不一致地使用const

自测题

8.2 重载操作符

8.2.1 重载操作符

自测题

8.2.2 用于自动类型转换的构造函数

自测题

8.2.3 重载一元操作符

8.2.4 重载]]和[[

自测题

小结

自测题答案

编程项目

第9章 独立编译和命名空间

概述

预备知识

9.1 独立编译

9.1.1 adt回顾

9.1.2 案例分析:一个独立编译的类digitaltime

9.1.3 使用#ifndef

9.1.4 编程提示:定义其他库

自测题

9.2 命名空间

9.2.1 命名空间和using预编译指令

9.2.2 创建命名空间

自测题

9.2.3 限定名称

9.2.4 命名空间的微妙之处(选读)

自测题

9.2.5 无名命名空间

9.2.6 编程提示:为命名空间选择一个名称

9.2.7 陷阱:混淆全局命名空间和无名命名空间

自测题

小结

自测题答案

编程项目

第10章 数组

概述

预备知识

10.1 数组入门

10.1.1 声明和引用数组

10.1.2 编程提示:为数组使用for循环

10.1.3 陷阱:数组索引总是从零开始

10.1.4 编程提示:为数组长度使用一个已定义常量

10.1.5 数组在内存中的表示

10.1.6 陷阱:数组索引越界

10.1.7 初始化数组

自测题

10.2 函数中的数组

10.2.1 索引变量作为函数参数

自测题

10.2.2 整个数组作为函数参数

10.2.3 const参数修饰符

10.2.4 陷阱:不一致地使用const参数

10.2.5 返回数组的函数

10.2.6 案例分析:产量图

自测题

10.3 数组编程

10.3.1 部分填充数组

10.3.2 编程提示:不要吝啬形参

10.3.3 编程实例:数组搜索

10.3.4 编程实例:数组排序

自测题

10.4 数组和类

10.4.1 类数组

自测题

10.4.2 数组作为类成员

10.4.3 编程实例:用于部分填充数组的一个类

自测题

10.5 多维数组

10.5.1 多维数组基础

10.5.2 多维数组参数

10.5.3 编程实例:二维打分程序

10.5.4 陷阱:在数组索引之间使用逗号

自测题

小结

自测题答案

编程项目

第11章 字符串和向量

概述

预备知识

11.1 字符串的一种数组类型

11.1.1 c字符串值和c字符串变量

11.1.2 陷阱:为c字符串使用=和==

11.1.3 [cstring]中的其他函数

自测题

11.1.4 c字符串输入和输出

自测题

11.1.5 c字符串到数字的转换和可靠输入

11.2 标准string类

11.2.1 标准类string简介

11.2.2 string类的i/o

自测题

11.2.3 编程提示:getline的其他版本

11.2.4 陷阱:混合使用“cin]]变量;”和getline

11.2.5 用string类进行字符串处理

11.2.6 编程实例:回文测试

自测题

11.2.7 string对象和c字符串之间的转换

11.3 向量

11.3.1 向量基础知识

11.3.2 陷阱:使用方括号时超出向量长度

11.3.3 编程提示:向量赋值具有良好行为

11.3.4 效率问题

自测题

小结

自测题答案

编程项目

第12章 指针和动态数组

概述

预备知识

12.1 指针

12.1.1 指针变量

自测题

12.1.2 基本内存管理

12.1.3 陷阱:虚悬指针

12.1.4 静态变量和自动变量

12.1.5 编程提示:定义指针类型

自测题

12.2 动态数组

12.2.1 数组变量和指针变量

12.2.2 创建和使用动态数组

自测题

12.2.3 指针运算(选读)

自测题

12.2.4 多维动态数组(选读)

12.3 类和动态数组

12.3.1 编程实例:一个字符串变量类

12.3.2 析构函数

12.3.3 陷阱:指针作为传值调用参数

12.3.4 拷贝构造函数

自测题

12.3.5 重载赋值操作符

自测题

小结

自测题答案

编程项目

第13章 递归

概述

预备知识

13.1 面向任务的递归函数

13.1.1 案例分析:垂直数字

13.1.2 深入递归

13.1.3 陷阱:无穷递归

自测题

13.1.4 用于递归的堆栈

13.1.5 陷阱:堆栈溢出

13.1.6 递归与迭代

自测题

13.2 面向值的递归函数

13.2.1 返回值的递归函数的泛型

13.2.2 编程实例:另一个powers函数

自测题

13.3 递归思想

13.3.1 递归设计技术

13.3.2 案例分析:二叉搜索(递归思想示例)

13.3.3 编程实例:一个递归成员函数

自测题

小结

自测题答案

编程项目

第14章 模板

概述

预备知识

14.1 用于算法抽象的模板

14.1.1 函数模板

14.1.2 陷阱:编译器的复杂性

自测题

14.1.3 编程实例:一个泛化的排序函数

14.1.4 编程提示:如何定义模板

14.1.5 陷阱:为不恰当的类型使用模板

自测题

14.2 用于数据抽象的模板

14.2.1 类模板的语法

14.2.2 编程实例:一个数组类

自测题

小结

自测题答案

编程项目

第15章 指针和链接

概述

预备知识

15.1 节点和链表

15.1.1 节点

自测题

15.1.2 链表

15.1.3 在表头插入一个节点

15.1.4 陷阱:丢失节点

15.1.5 搜索链表

15.1.6 指针作为迭代器

15.1.7 在列表中插入和移除节点

15.1.8 陷阱:为动态数据结构使用赋值操作符

自测题

15.2 一个链表应用程序

15.2.1 堆栈

15.2.2 编程实例:一个堆栈类

自测题

小结

自测题答案

编程项目

第16章 继承

概述

预备知识

16.1 继承基础

16.1.1 派生类

16.1.2 派生类中的构造函数

16.1.3 陷阱:使用来自基类的私有成员变量

16.1.4 陷阱:私有成员函数根本不会继承

16.1.5 protected限定符

自测题

16.1.6 重定义成员函数

16.1.7 重定义与重载的比较

16.1.8 访问重定义的基函数

自测题

16.2 继承细节

16.2.1 不继承的函数

16.2.2 派生类中的赋值操作符和拷贝构造函数

16.2.3 派生类中的析构函数

自测题

16.3 多态性

16.3.1 晚期绑定

16.3.2 c++中的虚函数

自测题

16.3.3 虚函数和扩展类型兼容性

16.3.4 陷阱:切片问题

16.3.5 陷阱:不使用虚成员函数

16.3.6 陷阱:试图对虚成员函数定义不齐全的类进行编译

16.3.7 编程提示:虚析构函数

自测题

小结

自测题答案

编程项目

第17章 异常处理

概述

预备知识

17.1 异常处理基础

17.1.1 异常处理的一个玩具式例子

自测题

17.1.2 定义自己的异常类

17.1.3 多个throw和catch

17.1.4 陷阱:首先捕捉较具体的异常

17.1.5 编程提示:异常类可能微不足道

17.1.6 在函数中抛出异常

17.1.7 异常规范

17.1.8 陷阱:派生类中的异常规范

自测题

17.2 用于异常处理编程技术

17.2.1 抛出异常的时机

17.2.2 陷阱:未捕捉的异常

17.2.3 陷阱:嵌套的try-catch块

17.2.4 陷阱:滥用异常

17.2.5 异常类层次结构

17.2.6 测试可用内存

17.2.7 重新抛出异常

自测题

小结

自测题答案

编程项目

附录1 c++关键字

附录2 操作符的优先级

附录3 ascii字符集

附录4 部分库函数

附录5 assert语句

附录6 内联函数

附录7 重载数据索引方括号

附录8 this指针

附录9 将操作符重载为成员操作符

已确认勘误

次印刷

页码 勘误内容 提交人 修订印次

C++面向对象程序设计:基础、数据结构与编程思想
    • 名称
    • 类型
    • 大小

    光盘服务联系方式: 020-38250260    客服QQ:4006604884

    意见反馈

    14:15

    关闭

    云图客服:

    尊敬的用户,您好!您有任何提议或者建议都可以在此提出来,我们会谦虚地接受任何意见。

    或者您是想咨询:

    用户发送的提问,这种方式就需要有位在线客服来回答用户的问题,这种 就属于对话式的,问题是这种提问是否需要用户登录才能提问

    Video Player
    ×
    Audio Player
    ×
    pdf Player
    ×
    Current View

    看过该图书的还喜欢

    some pictures

    解忧杂货店

    东野圭吾 (作者), 李盈春 (译者)

    loading icon