×
清华大学计算机系列教材C++语言程序设计(第5版)/郑莉,董渊

清华大学计算机系列教材C++语言程序设计(第5版)/郑莉,董渊

1星价 ¥50.3 (6.3折)
2星价¥50.3 定价¥79.8
暂无评论
图文详情
  • ISBN:9787302566915
  • 装帧:一般胶版纸
  • 册数:暂无
  • 重量:暂无
  • 开本:其他
  • 页数:544
  • 出版时间:2020-11-01
  • 条形码:9787302566915 ; 978-7-302-56691-5

本书特色

本书的特色是内容全面、深入浅出、灵活剪裁、立体配套。在学堂在线平台(https://next.xuetangx.com)上,有与本教材配套的国家精品在线开放课程“C++语言程序设计基础”、“C++语言程序设计进阶”,这两门在线课程合起来是清华大学本科生“C++语言程序设计”课程的在线版,包括了校内授课的全部内容、与校内学生作业相同的在线自动评测的编程练习题,可下载PDF格式的讲稿、全部例题的源代码。

内容简介

本书以面向对象的程序设计思想为主线,以通俗易懂的方法介绍C++语言,引导读者以很自然的方式,将人类习惯的面向对象的思维方法运用到程序设计中。主要内容包括程序设计基础知识、类与对象的基本概念、继承与多态、输入输出流,以及泛型程序设计。此外,本教材还介绍了一些常用数据结构基础知识,使得读者学习本书后,能够解决一些简单的实际问题。整套教材语言生动、流畅,深入浅出。适用于各类学校的C++语言程序设计课程。

目录

目录


第1章绪论1

1.1计算机程序设计语言的发展1

1.1.1机器语言与汇编语言1

1.1.2高级语言2

1.1.3面向对象的语言2

1.2面向对象的方法2

1.2.1面向对象方法的由来2

1.2.2面向对象的基本概念3

1.3面向对象的软件开发5

1.3.1分析5

1.3.2设计5

1.3.3编程5

1.3.4测试6

1.3.5维护6

1.4信息的表示与存储6

1.4.1计算机的数字系统6

1.4.2几种进位记数制之间的转换8

1.4.3信息的存储单位10

1.4.4二进制数的编码表示11

1.4.5定点数和浮点数14

1.4.6数的表示范围14

1.4.7非数值信息的表示15

1.5程序开发的基本概念15

1.5.1基本术语15

1.5.2完整的程序过程16

1.6小结17

习题17

第2章C++语言简单程序设计18

2.1C++语言概述18

2.1.1C++语言的产生18

2.1.2C++语言的特点19

2.1.3C++语言程序实例19

2.1.4字符集20

2.1.5词法记号20

2.2基本数据类型和表达式22

2.2.1基本数据类型23

2.2.2常量24

2.2.3变量26

2.2.4符号常量28

2.2.5constexpr与常量表达式28

2.2.6运算符与表达式29

2.2.7语句38

2.3数据的输入与输出38

2.3.1I/O流38

2.3.2预定义的插入符和提取符38

2.3.3简单的I/O格式控制39

2.4算法的基本控制结构40

2.4.1用if语句实现选择结构40

2.4.2多重选择结构42

2.4.3循环结构45

2.4.4循环结构与选择结构的嵌套51

2.4.5其他控制语句53

2.5类型别名与类型推断53

2.5.1类型别名53

2.5.2auto类型与decltype类型54

2.6深度探索55

2.6.1变量的实现机制55

2.6.2C++语言表达式的执行原理58

2.7小结59

习题60

第3章函数64

3.1函数的定义与使用64

3.1.1函数的定义64

3.1.2函数的调用65

3.1.3函数的参数传递77

3.2内联函数82

3.3constexpr函数83

3.4带默认形参值的函数84

3.5函数重载86

3.6使用C++语言系统函数88

3.7深度探索90

3.7.1运行栈与函数调用的执行90

3.7.2函数声明与类型安全94

3.8小结95

习题96

第4章类与对象98

4.1面向对象程序设计的基本特点98

4.1.1抽象98

4.1.2封装99

4.1.3继承99

4.1.4多态100

4.2类和对象100

4.2.1类的定义101

4.2.2类成员的访问控制102

4.2.3对象103

4.2.4类的成员函数104

4.2.5程序实例105

4.3构造函数和析构函数107

4.3.1构造函数107

4.3.2默认构造函数109

4.3.3委托构造函数110

4.3.4复制构造函数110

4.3.5析构函数114

4.3.6移动构造函数115

4.3.7default、delete函数116

4.3.8程序实例117

4.4类的组合119

4.4.1组合119

4.4.2前向引用声明123

4.5UML图形标识124

4.5.1UML简介125

4.5.2UML类图125

4.6结构体和联合体131

4.6.1结构体131

4.6.2联合体132

4.7枚举类型——enum135

4.8综合实例——个人银行账户管理程序138

4.8.1类的设计138

4.8.2源程序及说明139

4.9深度探索141

4.9.1位域141

4.9.2用构造函数定义类型转换144

4.9.3对象作为函数参数和返回值的传递方式145

4.10小结148

习题148

第5章数据的共享与保护150

5.1标识符的作用域与可见性150

5.1.1作用域150

5.1.2可见性153

5.2对象的生存期153

5.2.1静态生存期153

5.2.2动态生存期154

5.3类的静态成员156

5.3.1静态数据成员157

5.3.2静态函数成员159

5.4类的友元161

5.4.1友元函数163

5.4.2友元类164

5.5共享数据的保护165

5.5.1常对象165

5.5.2用const修饰的类成员166

5.5.3常引用169

5.6多文件结构和编译预处理命令170

5.6.1C++程序的一般组织结构170

5.6.2外部变量与外部函数173

5.6.3标准C++库174

5.6.4编译预处理175

5.7综合实例——个人银行账户管理程序179

5.8深度探索182

5.8.1常成员函数的声明原则182

5.8.2代码的编译、连接与执行过程184

5.9小结187

习题187

第6章数组、指针与字符串189

6.1数组189

6.1.1数组的声明与使用189

6.1.2数组的存储与初始化191

6.1.3数组作为函数参数194

6.1.4对象数组195

6.1.5程序实例197

6.2指针200

6.2.1内存空间的访问方式200

6.2.2指针变量的声明201

6.2.3与地址相关的运算——“”和“&”201

6.2.4指针的赋值202

6.2.5指针运算204

6.2.6用指针处理数组元素206

6.2.7指针数组208

6.2.8用指针作为函数参数210

6.2.9指针型函数211

6.2.10指向函数的指针213

6.2.11对象指针215

6.3动态内存分配220

6.4用vector创建数组对象226

6.5深层复制与浅层复制228

6.6字符串231

6.6.1用字符数组存储和处理字符串231

6.6.2string类232

6.7综合实例——个人银行账户管理程序236

6.8深度探索242

6.8.1指针与引用242

6.8.2指针的安全性隐患及其应对方案244

6.8.3const_cast的应用247

6.9小结249

习题250

第7章类的继承252

7.1基类与派生类252

7.1.1继承关系举例252

7.1.2派生类的定义253

7.1.3派生类生成过程255

7.2访问控制256

7.2.1公有继承257

7.2.2私有继承259

7.2.3保护继承261

7.3类型兼容规则263

7.4派生类的构造和析构函数265

7.4.1构造函数265

7.4.2复制构造函数269

7.4.3析构函数269

7.4.4删除delete构造函数271

7.5派生类成员的标识与访问271

7.5.1作用域分辨符272

7.5.2虚基类277

7.5.3虚基类及其派生类构造函数279

7.6程序实例——用高斯消去法解线性方程组280

7.6.1算法基本原理281

7.6.2程序设计分析282

7.6.3源程序及说明282

7.6.4运行结果与分析287

7.7综合实例——个人银行账户管理程序288

7.7.1问题的提出289

7.7.2类设计289

7.7.3源程序及说明290

7.7.4运行结果与分析295

7.8深度探索296

7.8.1组合与继承296

7.8.2派生类对象的内存布局298

7.8.3基类向派生类的转换及其安全性问题302

7.9小结303

习题304

第8章多态性306

8.1多态性概述306

8.1.1多态的类型306

8.1.2多态的实现306

8.2运算符重载307

8.2.1运算符重载的规则307

8.2.2运算符重载为成员函数308

8.2.3运算符重载为非成员函数312

8.3虚函数315

8.3.1一般虚函数成员316

8.3.2虚析构函数320

8.4纯虚函数与抽象类321

8.4.1纯虚函数322

8.4.2抽象类322

8.5程序实例——变步长梯形积分算法求解函数的定积分324

8.5.1算法基本原理324

8.5.2程序设计分析326

8.5.3源程序及说明327

8.5.4运行结果与分析329

8.6综合实例——对个人银行账户管理程序的改进329

8.7深度探索336

8.7.1多态类型与非多态类型336

8.7.2运行时类型识别337

8.7.3虚函数动态绑定的实现原理340

8.8小结343

习题344

第9章模板与群体数据345

9.1函数模板与类模板346

9.1.1函数模板346

9.1.2类模板349

9.2线性群体353

9.2.1线性群体的概念353

9.2.2直接访问群体——数组类353

9.2.3顺序访问群体——链表类362

9.2.4栈类367

9.2.5队列类373

9.3群体数据的组织376

9.3.1插入排序376

9.3.2选择排序377

9.3.3交换排序378

9.3.4顺序查找380

9.3.5折半查找380

9.4综合实例——对个人银行账户管理程序的改进381

9.5深度探索384

9.5.1模板的实例化机制384

9.5.2为模板定义特殊的实现387

9.5.3模板元编程简介392

9.5.4可变参数模板简介394

9.6小结396

习题396

第10章泛型程序设计与C++语言标准模板库399

10.1泛型程序设计及STL的结构399

10.1.1泛型程序设计的基本概念399

10.1.2STL简介400

10.2迭代器403

10.2.1输入流迭代器和输出流迭代器404

10.2.2迭代器的分类406

10.2.3迭代器的区间408

10.2.4迭代器的辅助函数410

10.3容器的基本功能与分类410

10.4顺序容器413

10.4.1顺序容器的基本功能413

10.4.25种顺序容器的特性417

10.4.3顺序容器的插入迭代器424

10.4.4顺序容器的适配器425

10.5关联容器429

10.5.1关联容器的分类及基本功能429

10.5.2集合432

10.5.3映射433

10.5.4多重集合与多重映射436

10.5.5无序容器437

10.6函数对象438

10.6.1函数对象的概念438

10.6.2lambda表达式442

10.6.3函数对象参数绑定444

10.7算法445

10.7.1STL算法基础446

10.7.2不可变序列算法447

10.7.3可变序列算法449

10.7.4排序和搜索算法452

10.7.5数值算法457

10.8综合实例——对个人银行账户管理程序的改进459

10.9深度探索464

10.9.1swap464

10.9.2STL组件的类型特征与STL的扩展466

10.9.3Boost简介471

10.10小结474

习题474

第11章流类库与输入输出477

11.1I/O流的概念及流类库结构477

11.2输出流479

11.2.1构造输出流对象479

11.2.2使用插入运算符和操纵符480

11.2.3文件输出流成员函数484

11.2.4二进制输出文件486

11.2.5字符串输出流487

11.3输入流488

11.3.1构造输入流对象488

11.3.2使用提取运算符489

11.3.3输入流操纵符489

11.3.4输入流相关函数489

11.3.5字符串输入流492

11.4输入输出流493

11.5综合实例——对个人银行账户管理程序的改进494

11.6深度探索499

11.6.1宽字符、宽字符串与宽流499

11.6.2对象的串行化502

11.7小结505

习题505

第12章异常处理507

12.1异常处理的基本思想507

12.2C++异常处理的实现508

12.2.1异常处理的语法508

12.2.2异常接口声明510

12.3异常处理中的构造与析构510

12.4标准程序库异常处理512

12.5综合实例——对个人银行账户管理程序的改进515

12.6深度探索518

12.6.1异常安全性问题518

12.6.2避免异常发生时的资源泄露520

12.6.3noexcept异常说明523

12.7小结523

习题524

参考文献525


展开全部

作者简介

郑莉,清华大学计算机科学与技术系教授;主讲MOOC“C++语言程序设计”、“Java程序设计”;国家精品资源共享课负责人;全国高等学校计算机教育研究会副理事长;全国高等院校计算机基础教育研究会副会长;全国信息技术标准化技术委员会教育技术分技术委员会秘书长。主要研究方向:计算机教育、教育信息化、软件工程,主持和参加多项国家863、支撑计划课题和教育部课题。 主编出版教材20余部,其中《C++语言程序设计》获教育部自然科学奖和国j级精品教材称号。《C++语言程序设计》、《Java语言程序设计》(本MOOC配套教材)为“十二五”普通高等教育本科国家级规划教材 起草教育信息化相关国家标准5部、国际标准1部。 获国j家级教学成果奖、北京市教学成果奖、教育部自然科学奖、教育部科技进步奖、北京市科技进步奖、电子学会科技进步奖等9项国j级、教育部、北京市奖励。

预估到手价 ×

预估到手价是按参与促销活动、以最优惠的购买方案计算出的价格(不含优惠券部分),仅供参考,未必等同于实际到手价。

确定
快速
导航