欢迎光临本店     登录 注册   加入收藏
  •   
欢迎光临清华大学出版社第三事业部!

此页面上的内容需要较新版本的 Adobe Flash Player。

获取 Adobe Flash Player

当前位置: 首页 > 科技 > 计算机与网络 > 程序语言与软件开发 > C++入门经典(第9版)

浏览历史

C++入门经典(第9版)

C++入门经典(第9版)

prev next

  • 商品货号:20150911004
  • 商品重量:0克
    作者:(美)萨维奇(Savitch W.)著;周靖 译
    出版社:清华大学出版社
    图书书号/ISBN:978-7-302-40297-8
    出版日期:2015-06-01
    开本:16开
    图书页数:736
    图书装订:平装
    图书规格:185mm×260mm
    版次:9
    印张:46
    字数:928000
  • 上架时间:2015-09-11
    商品点击数:1427
  • 定价:¥128.00元
    本店售价:¥128.00元
    注册用户:¥128.00元
    vip:¥121.60元
    黄金等级:¥115.20元
    用户评价: comment rank 5
  • 商品总价:
  • 购买数量:

内容简介:

商品附加资源

 内 容 简 介

本书是深受师生欢迎的优秀C++入门教材。作者结合自己多年的教学经验精心设计并编撰了本书内容。采用了很多便于巩固所学知识的设计,例如各章开头的小节总览,书中随处可见的小结框、编程提示和编程陷阱,各章结尾的小结、习题、编程练习和编程项目等。这些非常适合初学者掌握重要的编程概念。

全书共18章,8个附录。在讲解C++基础知识之后,直接引导学生深入函数、I/O流、类、控制流程、命名空间、数组、字符串、指针和动态数组、递归、模板、指针和链表、派生类、异常以及标准模板库。

  

前    言

  本书适合C++程序设计和计算机科学入门课程使用。阅读本书不要求读者有任何编程经验,也不要求掌握除了中学代数之外的其他任何数学知识。

  本书前几版的读者请阅读关于第9版修订内容的小节,前言的其余内容可略过。新读者请阅读前言的全部内容以把握本书脉络。

第9版修订内容

  第9版采用和第8版相同的编程体例。保留第8版全部内容,但进行以下修订。

* 章末的编程作业现在划分为“编程练习”和“编程项目”。编程练习帮助巩固本章的知识点,程序一般都很小,适合课堂练习。编程项目则要求综合运用多方面的知识来解决问题,程序一般比编程练习大,适合作为家庭作业。

* 在C++98的背景下介绍C++11,涉及的主题包括新整型、auto类型、原始字符串字面值、强枚举、nullptr、以范围为基础的for循环、字符串和整数相互转换、成员初始化列表和委托构造函数等。

* 提供了关于排序、安全编程(即溢出和数组越界)以及继承的补充材料。

* 勘误。

* 新增21个编程练习和10个编程项目。

* 本书配套网站新增10个视频讲解,使总数达到64个。这些视频讲解辅导学生解题和写程序,有助于巩固对关键编程概念的掌握。如果书中某个主题有对应的视频讲解,就会出现一个特殊的图标。

  用过第8版的教师可沿用以前的教案,几乎不需要任何改动。

主题可以灵活排序

  本书允许教师自由安排教学顺序。为了演示这一灵活性,下面推荐了两种顺序。采用任何顺序都不会影响学习的连贯性。为了在改变顺序时确保这种连贯性,可能需要移动个别小节而不是全章。但是,只有较大的、位置便利的小节才需要移动。为了帮助您根据需要自定义一个教学/阅读顺序,图P.1展示了一幅依赖图。另外,每章都有“预备知识”小节,解释了学习那一章的每一节之前需掌握的内容。

  

重新排序1:提前学习类

  为了有效地设计类,学生需要掌握一些基本的工具,比如控制结构和函数定义。这些基础知识在第1章~第6章介绍。完成第6章的学习后,学生就可以开始写自己的类了。如果想提前学习类的知识,可以像下面这样重新安排各章的顺序。

* 基础知识  第1章、第2章、第3章、第4章、第5章和第6章。这6章全面介绍控制结构、函数定义和基本文件I/O。第3章介绍几种额外的控制结构,如果希望尽早学习类,可以考虑推迟这一章的学习。

* 类和命名空间  第10章、第11章的11.1节和11.2节、第12章。这些章节全面介绍了如何定义类、友元、重载操作符和命名空间。

* 数组、字符串和向量  第7章和第8章。

* 指针和动态数组  第9章。

* 类类型的数组和数组作为类成员  第11章的11.3节和11.4节。

* 继承  第15章。

* 递归  第14章(也可以推迟到更晚的时候学习)。

* 指针和链表  第13章。

  可能还要用到以下各章的部分内容。

* 异常处理  第16章。

* 模板  第17章。

* 标准模板库  第18章。

  重新排序2:略微推迟类的学习

  在“重新排序2”中,将先学完所有控制结构,再学习数组的基本知识,之后才开始学习类。虽然对类的接触要比“重新排序1”晚,但还是比本书的默认顺序略微提前一些。

* 基础知识  第1章、第2章、第3章、第4章、第5章和第6章。这6章全面介绍了控制结构、函数定义和基本文件I/O。

* 数组和字符串  第7章、第8章的8.1节和8.2节。

* 类和命名空间  第10章、第11章的11.1节、11.2节和第12章。这些章节全面介绍了如何定义类、友元、重载操作符和命名空间。

* 指针和动态数组  第9章。

* 类类型的数组和数组作为类成员  第11章的11.3节和11.4节。

* 继承  第15章。

* 递归  第14章(也可以推迟到更晚的时候学习)。

* 向量  8.3节。

* 指针和链表  第13章。

  可能还要用到以下各章的部分内容。

* 异常处理  第16章。

* 模板  第17章。

* 标准模板库  第18章。


依赖图

  如下所示的依赖图展示了各个章节可能的排序方式。连接两个框的实线表明上部的框必须先于下部的框完成。只要符合这个条件,采用任何阅读顺序都无损连贯性。如果一个框中包含小节编号,表明该框只代表那些小节,不代表全章。


面向学生的易用性

  一本书必须按恰当的顺序来讲解恰当的主题,这是最起码的要求。另外,在老师和其他有经验的程序员看来,书的内容必须清晰而正确,这是另一个最起码的要求。但是不是符合这两项要求的书都是好书呢?答案是否定的。书中的内容必须采取有利于初学者使用的方式来编排。在这本入门教科书中,我尽力让学生觉得清楚和友好。本书以前版本的大量学生反馈证明,这种写作风格确实使内容更清晰,能使学生充分享受到学习的乐趣。


ANSI/ISO C++标准

  本书完全兼容符合最新ANSI/ISO C++标准的编译器。写作时的最新标准是C++ 11。

高级主题

  许多“高级主题”都已成为标准CS1课程的一部分。即使不是,以补充材料的形式提供也不错。本书提供大量高级主题,它们既可集成到课程中,也可作为自学主题。本书全面讲述了C++模板、继承(包括虚函数)、异常处理和STL(Standard Template Library,标准模板库)。虽然本书使用了库,而且教给学生库的重要性,但不要求任何非标准库。本书只使用所有C++实现都有的库。

小结框

  每个要点都用一个有底纹的方框来小结,它们散布于各章。

自测题

  每章都在重要位置提供大量自测题。答案在章末提供。

视频讲解

   视频讲解(Video Note)旨在讲解关键编程概念和技术,演示了从设计到编码来解决问题的过程。视频讲解使学生能方便地自学感兴趣的主题,支持选择、播放、倒退、快进和暂停。每当看到“ 视频讲解”,都表明当前主题有对应的视频讲解。注意,由于是英文视频,所以为了方便索引,书中保留了这些视频的英文名称。

支持材料

  有一部分支持材料适用于本书所有读者。其他仅适用于有资格的教师。

  适用于本书所有读者的支持材料

* 源代码

* PowerPoint幻灯片

* 视频讲解

  适用于有资格的教师的资源

* 教师资源指南(Instructor’s Resource Guide):包括每一章的教学要点、课堂测验/答案和大量编程项目的参考答案。

* Test Bank和Test Generator:用于生成试卷。

* PowerPoint幻灯片:包括本书的程序和插图。

* Lab Manual(实验手册)。

 

目    录

 

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

概述 2

1.1  计算机系统 2

硬件 2

软件 5

高级语言 6

编译器 7

1.2  编程和问题求解 9

算法 9

程序设计 10

面向对象编程 12

软件生命周期 12

1.3  C++入门 13

C++语言的起源 13

一个C++示范程序 14

简单C++程序的布局 17

编译和运行C++程序 19

1.4  测试和调试 21

程序错误的分类 22

小结 24

自测题答案 24

编程练习 25

编程项目 26

第2章  C++基础知识 29

概述 30

预备知识 30

2.1  变量和赋值 30

变量 30

名称:标识符 32

变量声明 33

赋值语句 34

2.2  输入和输出 37

使用cout进行输出 37

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

转义序列 39

格式化带小数点的数字 41

用cin进行输入 42

设计输入和输出 43

2.3  数据类型和表达式 44

int类型和double类型 44

其他数值类型 45

C++11类型 46

char类型 47

bool类型 48

string类简介 48

类型的兼容性 49

算术操作符和表达式 51

更多赋值语句 54

2.4  简单控制流程 54

一个简单的分支机制 54

复合语句 59

简单的循环机制 61

递增操作符和递减操作符 63

2.5  程序风格 66

缩进 67

注释 67

为常量命名 68

小结 71

自测题答案 71

编程练习 74

编程项目 76

第3章  更多的控制流程 79

概述 80

预备知识 80

3.1  使用布尔表达式 80

布尔表达式求值 80

枚举类型(选读) 85

3.2  多 路 分 支 86

嵌套语句 86

多路if-else语句 88

switch语句 92

为菜单使用switch语句 95

语句块 96

3.3  C++循环语句详解 99

while语句回顾 99

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

for语句 102

应该使用哪种循环 106

break语句 108

3.4  设计循环 109

求和与求乘积的循环 109

终止循环 111

嵌套循环 113

调试循环 114

小结 117

自测题答案 117

编程练习 121

编程项目 122

第4章  过程抽象和返回值的函数 125

概述 126

预备知识 126

4.1  自顶向下设计 126

4.2  预定义函数 126

使用预定义函数 127

随机数生成 130

强制类型转换 131

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

4.3  程序员自定义函数 134

函数定义 134

返回布尔值的函数 138

另一种形式的函数声明 138

函数定义语法小结 140

再论函数定义的位置 140

4.4  过程抽象 142

黑盒的比喻 142

4.5  作用域和局部变量 151

函数如同小程序 151

全局常量和全局变量 153

传值形参是局部变量 155

块作用域 156

再论命名空间 157

4.6  重载函数名称 160

重载入门 160

自动类型转换 164

小结 166

自测题答案 166

编程练习 169

编程项目 170

第5章  所有子任务的函数 173

概述 174

预备知识 174

5.1  void函数 174

void函数的定义 174

void函数中的return语句 177

5.2  传引用参数 178

初探传引用调用 179

传引用调用详解 180

混合的参数列表 185

5.3  使用过程抽象 188

在函数中调用其他函数 188

前条件和后条件 189

5.4  测试和调试函数 194

存根和驱动程序 194

5.5  常规调试技术 197

兼容并蓄,不抱偏见 198

检查常见错误 198

定位错误 198

assert宏 200

小结 202

自测题答案 202

编程练习 205

编程项目 206

第6章  I/O流:对象和类入门 209

概述 210

预备知识 210

6.1  流和基本文件I/O 210

文件之于I/O的重要性 211

文件I/O 211

类与对象入门 214

文件I/O技术 218

追加到文件(选读) 220

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

6.2  流I/O工具 224

用流函数格式化输出 224

操纵元 227

流作为函数实参 228

命名空间的问题 231

6.3  字符I/O 233

成员函数get和put 233

putback成员函数(选读) 236

函数的默认实参(选读) 240

eof成员函数 243

预定义字符函数 246

小结 249

自测题答案 249

编程练习 254

编程项目 254

第7章  数组 259

概述 260

预备知识 260

7.1  数组入门 260

声明和引用数组 260

数组在内存中的表示 263

初始化数组 265

7.2  函数中的数组 267

索引变量作为函数参数 267

整个数组作为函数参数 269

const参数修饰符 271

返回数组的函数 273

7.3  数组编程 282

部分填充数组 282

7.4  多维数组 292

多维数组基础 292

多维数组参数 293

小结 298

自测题答案 298

编程练习 301

编程项目 302

第8章  字符串和向量 309

概述 310

预备知识 310

8.1  字符串的数组类型 310

C字符串值和C字符串变量 311

<cstring>中的其他函数 315

C字符串输入和输出 318

C字符串到数值的转换和可靠输入 320

8.2  标准string类 324

标准类string简介 324

string类的I/O 326

用string类进行字符串处理 330

string对象和C字符串之间的

转换 335

字符串和数字之间的转换 336

8.3  向量 336

向量基础知识 336

效率问题 339

小结 341

自测题答案 341

编程练习 343

编程项目 343

第9章  指针和动态数组 349

概述 350

预备知识 350

9.1  指针 350

指针变量 351

基本内存管理 356

静态变量和自动变量 356

9.2  动态数组 359

数组变量和指针变量 359

创建和使用动态数组 361

指针运算(选读) 364

多维动态数组(选读) 365

小结 367

自测题答案 367

编程练习 368

编程项目 368

第10章  定义类 373

概述 374

预备知识 374

10.1  结构 374

用于异种数据的结构 374

结构作为函数参数 378

对结构进行初始化 380

10.2  类 382

定义类和成员函数 382

公共成员和私有成员 386

总结类的一些特征 396

用于初始化的构造函数 397

10.3  抽象数据类型 405

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

10.4  继承 411

派生类 412

定义派生类 413

小结 416

自测题答案 416

编程练习 420

编程项目 420

第11章  类中的友元函数、重载

操作符和数组 425

概述 426

预备知识 426

11.1  友元函数 426

友元函数 428

实现digit_to_int(选读) 435

const参数修饰符 437

11.2  重载操作符 441

重载操作符 442

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

重载一元操作符 445

重载>>和<< 446

11.3  数组和类 452

类数组 452

数组作为类成员 455

11.4  类和动态数组 458

析构函数 460

拷贝构造函数 463

重载赋值操作符 467

小结 470

自测题答案 470

编程练习 476

编程项目 477

第12章  独立编译和命名空间 483

概述 484

预备知识 484

12.1  独立编译 484

ADT回顾 484

使用#ifndef 492

12.2  命名空间 495

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

创建命名空间 496

限定名称 498

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

无名命名空间 500

小结 505

自测题答案 505

编程练习 506

编程项目 508

第13章  指针和链表 509

概述 510

预备知识 510

13.1  节点和链表 510

节点 511

nullptr 513

链表 514

在表头插入节点 515

搜索链表 518

指针作为迭代器 520

在列表中插入和删除节点 521

链表的变体 524

类构成的链表 526

13.2  栈和队列 528

528

队列 532

小结 536

自测题答案 536

编程练习 538

编程项目 538

第14章  递归 545

概述 546

预备知识 546

14.1  面向任务的递归函数 546

深入递归 552

用于递归的栈 554

递归与迭代 555

14.2  面向值的递归函数 556

要返回值的递归函数的常规形式 556

14.3  递归思想 560

递归设计技术 560

小结 570

自测题答案 570

编程练习 573

编程项目 573

第15章  继承 577

概述 578

预备知识 578

15.1  继承基础 578

派生类 580

派生类中的构造函数 585

protected限定符 588

重定义成员函数 590

重定义与重载的比较 592

访问重定义的基函数 593

15.2  继承细节 594

不继承的函数 594

派生类中的赋值操作符和拷贝

构造函数 595

派生类中的析构函数 595

15.3  多态性 596

晚期绑定 597

C++虚函数 597

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

小结 607

自测题答案 607

编程练习 610

编程项目 612

第16章  异常处理 617

概述 618

预备知识 618

16.1  异常处理基础 618

异常处理的简单例子 619

定义自己的异常类 625

多个throw块和catch块 626

在函数中抛出异常

商品标签

购买记录(近期成交数量0)

还没有人购买过此商品
总计 0 个记录,共 1 页。 第一页 上一页 下一页 最末页

用户评论(共0条评论)

  • 暂时还没有任何用户评论
总计 0 个记录,共 1 页。 第一页 上一页 下一页 最末页
用户名: 匿名用户
E-mail:
评价等级:
评论内容:
验证码: captcha