《C++从入门到精通 第3版》PDF下载

  • 购买积分:15 如何计算积分?
  • 作  者:明日科技编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2017
  • ISBN:9787302446699
  • 页数:476 页
图书介绍:本书从初学者角度出发,以通俗易懂的语言,丰富多彩的实例,详细讲解了C++语言的基础知识。全书共分18章,包括绪论,数据类型,表达式与语句,条件判断语句,循环语句,函数,数组、指针和引用,构造数据类型,面向对象编程,类和对象,继承与派生,模板,STL标准模板库,RTTI与异常处理,程序调试,文件操作,网络通信,图书管理系统。

第1篇基础知识 2

第1章 绪论 2

1.1 C++历史背景 3

1.1.1 20世纪最伟大的发明 3

1.1.2 C++发展历程 3

1.1.3 C++中的杰出人物 4

1.2 常用开发环境 5

1.2.1 Visual C++6.0 5

1.2.2 Visual C++2008 6

1.2.3 GCC/G++++ 7

1.2.4 Dev-C 7

1.2.5 Eclipse 8

1.3 认知C++程序代码 8

1.4 C++工程项目文件 9

1.5 使用VC创建程序 10

1.6 编译与连接过程 13

1.7 C++的特点 15

1.8 小结 16

第2章 数据类型 17

2.1 第一个C++程序 18

2.1.1 #include指令 18

2.1.2 注释 18

2.1.3 main函数 19

2.1.4 函数体 19

2.1.5 函数返回值 19

2.2 常量及符号 19

2.2.1 整型常量 20

2.2.2 实型常量 21

2.2.3 字符常量 21

2.2.4 字符串常量 22

2.2.5 其他常量 23

2.3 变量 23

2.3.1 标识符 23

2.3.2 变量与变量说明 24

2.3.3 整型变量 24

2.3.4 实型变量 25

2.3.5 变量赋值 25

2.3.6 变量赋初值 26

2.3.7 字符变量 26

2.4 常用数据类型 27

2.4.1 定义数值类型 28

2.4.2 字符类型 30

2.4.3 布尔类型 30

2.5 数据输入与输出 31

2.5.1 控制台屏幕 31

2.5.2 C++语言中的流 31

2.5.3 流操作的控制 33

2.6 小结 40

2.7 实践与练习 41

第3章 表达式与语句 42

3.1 运算符 43

3.1.1 算术运算符 43

3.1.2 关系运算符 44

3.1.3 逻辑运算符 45

3.1.4 赋值运算符 46

3.1.5 位运算符 47

3.1.6 移位运算符 48

3.1.7 sizeof运算符 50

3.1.8 条件运算符 51

3.1.9 逗号运算符 51

3.2 结合性和优先级 51

3.3 表达式 53

3.3.1 算术表达式 53

3.3.2 关系表达式 53

3.3.3 条件表达式 54

3.3.4 赋值表达式 54

3.3.5 逻辑表达式 54

3.3.6 逗号表达式 54

3.3.7 表达式中的类型转换 56

3.4 语句 58

3.5 判断左值与右值 59

3.6 小结 60

3.7 实践与练习 60

第4章 条件判断语句 61

4.1 决策分支 62

4.2 判断语句 63

4.2.1 第一种形式的判断语句 63

4.2.2 第二种形式的判断语句 65

4.2.3 第三种形式的判断语句 67

4.3 使用条件运算符进行判断 68

4.4 switch语句 70

4.5 判断语句的嵌套 73

4.6 小结 75

4.7 实践与练习 75

第5章 循环语句 76

5.1 while循环 77

5.2 do...while循环 79

5.3 while与do...while比较 80

5.4 for循环语句 82

5.5 循环控制 85

5.5.1 控制循环的变量 86

5.5.2 break语句 87

5.5.3 continue语句 88

5.5.4 goto语句 89

5.6 循环嵌套 90

5.7 循环应用实例 92

5.7.1 阿姆斯壮数 92

5.7.2 巴斯卡三角形 93

5.7.3 对输入的分数进行排名 94

5.8 小结 95

5.9 实践与练习 95

第6章 函数 96

6.1 函数概述 97

6.1.1 函数的定义 97

6.1.2 函数的声明 97

6.2 函数参数及返回值 99

6.2.1 返回值 99

6.2.2 空函数 99

6.2.3 形参与实参 100

6.2.4 默认参数 101

6.2.5 可变参数 102

6.3 函数调用 103

6.3.1 传值调用 103

6.3.2 嵌套调用 105

6.3.3 递归调用 106

6.4 变量作用域 110

6.5 重载函数 110

6.6 内联函数 112

6.7 变量的存储类别 112

6.7.1 auto变量 113

6.7.2 static变量 114

6.7.3 register变量 116

6.7.4 extern变量 116

6.8 小结 117

6.9 实践与练习 117

第7章 数组、指针和引用 118

7.1 一维数组 119

7.1.1 一维数组的声明 119

7.1.2 一维数组的引用 119

7.1.3 一维数组的初始化 120

7.2 二维数组 121

7.2.1 二维数组的声明 121

7.2.2 二维数组元素的引用 122

7.2.3 二维数组的初始化 122

7.3 字符数组 124

7.4 指针 132

7.4.1 变量与指针 132

7.4.2 指针运算符和取地址运算符 135

7.4.3 指针运算 137

7.4.4 指向空的指针与空类型指针 138

7.4.5 指向常量的指针与指针常量 139

7.5 指针与数组 141

7.5.1 数组的存储 141

7.5.2 指针与一维数组 141

7.5.3 指针与二维数组 144

7.5.4 指针与字符数组 148

7.6 指针在函数中的应用 150

7.6.1 传递地址 150

7.6.2 指向函数的指针 152

7.6.3 空指针调用函数 153

7.6.4 从函数中返回指针 154

7.7 指针数组 155

7.8 安全使用指针 158

7.8.1 内存分配 158

7.8.2 内存安全 160

7.9 引用 163

7.9.1 引用概述 163

7.9.2 使用引用传递参数 166

7.9.3 指针传递参数 167

7.9.4 数组做函数参数 168

7.9.5 右值引用传递参数 170

7.10 小结 172

7.11 实践与练习 172

第8章 构造数据类型 173

8.1 结构体 174

8.1.1 结构体定义 174

8.1.2 结构体变量 175

8.1.3 结构体成员及初始化 175

8.1.4 结构体的嵌套 178

8.1.5 结构体大小 179

8.2 重命名数据类型 181

8.3 枚举类型的应用 183

8.4 类型推导 187

8.5 结构体与函数 189

8.5.1 结构体变量做函数参数 189

8.5.2 结构体指针做函数参数 190

8.6 结构体数组 191

8.6.1 结构体数组声明与引用 191

8.6.2 指针访问结构体数组 192

8.7 共用体 193

8.7.1 共用体的定义与声明 193

8.7.2 共用体的大小 194

8.7.3 共用体的特点 196

8.8 枚举类型 196

8.8.1 枚举类型的声明 196

8.8.2 枚举类型变量 197

8.8.3 枚举类型的运算 198

8.9 自定义数据类型 200

8.10 使用宏定义替换复杂的数据 201

8.11 小结 204

8.12 实践与练习 205

第2篇核心技术 208

第9章 面向对象编程 208

9.1 面向对象概述 209

9.2 面向对象与面向过程编程 210

9.2.1 面向过程编程 210

9.2.2 面向对象编程 211

9.2.3 面向对象的特点 211

9.3 统一建模语言 212

9.3.1 统一建模语言概述 212

9.3.2 统一建模语言的结构 212

9.3.3 面向对象的建模 214

9.4 小结 214

第10章 类和对象 215

10.1 C++类 216

10.1.1 类概述 216

10.1.2 类的声明与定义 216

10.1.3 类的实现 217

10.1.4 对象的声明 222

10.2 构造函数 224

10.2.1 构造函数概述 224

10.2.2 复制构造函数 226

10.3 析构函数 228

10.4 类成员 230

10.4.1 访问类成员 230

10.4.2 内联成员函数 232

10.4.3 静态类成员 232

10.4.4 隐藏的this指针 235

10.4.5 嵌套类 236

10.4.6 局部类 237

10.5 友元 238

10.5.1 友元概述 238

10.5.2 友元类 240

10.5.3 友元方法 241

10.6 命名空间 244

10.6.1 使用命名空间 244

10.6.2 定义命名空间 244

10.6.3 在多个文件中定义命名空间 247

10.6.4 定义嵌套的命名空间 248

10.6.5 定义未命名的命名空间 250

10.7 小结 250

10.8 实践与练习 251

第11章 继承与派生 252

11.1 继承 253

11.1.1 类的继承 253

11.1.2 继承后可访问性 255

11.1.3 构造函数访问顺序 258

11.1.4 子类显式调用父类构造函数 259

11.1.5 子类隐藏父类的成员函数 261

11.2 重载运算符 264

11.2.1 重载运算符的必要性 264

11.2.2 重载运算符的形式与规则 265

11.2.3 重载运算符的运算 267

11.2.4 转换运算符 269

11.3 多重继承 271

11.3.1 多重继承的定义 271

11.3.2 二义性 272

11.3.3 多重继承的构造顺序 273

11.4 多态 275

11.4.1 虚函数概述 275

11.4.2 利用虚函数实现动态绑定 276

11.4.3 虚继承 277

11.5 抽象类 279

11.5.1 纯虚函数 279

11.5.2 实现抽象类中的成员函数 281

11.6 小结 282

11.7 实践与练习 283

第3篇高级应用 286

第12章 模板 286

12.1 函数模板 287

12.1.1 函数模板的定义 287

12.1.2 函数模板的作用 288

12.1.3 重载函数模板 290

12.2 类模板 291

12.2.1 类模板的定义与声明 291

12.2.2 简单类模板 293

12.2.3 默认模板参数 294

12.2.4 为具体类型的参数提供默认值 295

12.2.5 有界数组模板 296

12.3 模板的使用 298

12.3.1 定制类模板 298

12.3.2 定制类模板成员函数 299

12.3.3 模板部分定制 301

12.4 链表类模板 302

12.4.1 链表 303

12.4.2 链表类模板 305

12.4.3 类模板的静态数据成员 307

12.5 小结 309

12.6 实践与练习 309

第13章 STL标准模板库 310

13.1 几种常见数据结构 311

13.1.1 简述STL 311

13.1.2 顺序线性结构 311

13.1.3 基本操作 311

13.1.4 栈结构 312

13.1.5 队列结构 312

13.1.6 链表结构 313

13.1.7 图结构&. 313

13.2 序列容器 314

13.2.1 对比容器适配器与容器 314

13.2.2 对比迭代器与容器 314

13.2.3 向量类模板 315

13.2.4 双端队列类模板 318

13.2.5 链表类模板 321

13.3 结合容器 323

13.3.1 set类模板 323

13.3.2 multiset类模板 328

13.3.3 map类模板 333

13.3.4 multimap类模板 335

13.4 算法 336

13.4.1 非修正序列算法 337

13.4.2 修正序列算法 340

13.4.3 排序算法 345

13.4.4 数值算法 351

13.5 迭代器 356

13.5.1 输出迭代器 356

13.5.2 输入迭代器 357

13.5.3 前向迭代器 357

13.5.4 双向迭代器 358

13.5.5 随机访问迭代器 359

13.6 lambda表达式 360

13.7 小结 364

13.8 实践与练习 364

第14章 RTTI与异常处理 365

14.1 RTTI(运行时类型识别) 366

14.1.1 什么是RTTI 366

14.1.2 RTTI与引用 367

14.1.3 RTTI与多重继承 368

14.1.4 RTTI映射语法 369

14.2 异常处理 371

14.2.1 抛出异常 372

14.2.2 异常捕获 374

14.2.3 异常匹配 376

14.2.4 标准异常 378

14.3 小结 379

第15章 程序调试 380

15.1 选择正确的调试方法 381

15.2 程序错误常见的4种类型 381

15.2.1 语法错误 381

15.2.2 连接错误 382

15.2.3 运行时错误 382

15.2.4 逻辑错误 383

15.3 调试工具的使用 384

15.3.1 创建调试程序 384

15.3.2 进入调试状态 386

15.3.3 Watch窗口 386

15.3.4 Call Stack窗口 386

15.3.5 Memory窗口 387

15.3.6 Variables窗口 387

15.3.7 Registers窗口 388

15.3.8 Disassembly窗口 388

15.4 调试的基本应用 388

15.4.1 变量的跟踪与查看 388

15.4.2 位置断点的使用 390

15.4.3 数据断点的使用 391

15.5 调试的高级应用 393

15.5.1 在调试时修改变量的值 393

15.5.2 在循环中调试 394

15.6 小结 395

第16章 文件操作 396

16.1 文件流 397

16.1.1 C++中的流类库 397

16.1.2 类库的使用 397

16.1.3 ios类中的枚举常量 398

16.1.4 流的输入/输出 398

16.2 文件打开 399

16.2.1 打开方式 399

16.2.2 默认打开模式 400

16.2.3 打开文件同时创建文件 401

16.3 文件的读写 402

16.3.1 文件流 402

16.3.2 写文本文件 404

16.3.3 读取文本文件 405

16.3.4 二进制文件的读写 405

16.3.5 实现文件复制 407

16.4 文件指针移动操作 408

16.4.1 文件错误与状态 408

16.4.2 文件的追加 409

16.4.3 文件结尾的判断 410

16.4.4 在指定位置读写文件 411

16.5 文件和流的关联和分离 413

16.6 删除文件 414

16.7 小结 415

16.8 实践与练习 415

第17章 网络通信 416

17.1 TCP/IP协议 417

17.1.1 OSI参考模型 417

17.1.2 TCP/IP参考模型 417

17.1.3 IP地址 418

17.1.4 数据包格式 419

17.2 套接字 421

17.2.1 Winsocket套接字 421

17.2.2 Winsocket的使用 421

17.2.3 套接字阻塞模式 426

17.2.4 字节顺序 427

17.2.5 面向连接流 427

17.2.6 面向无连接流 428

17.3 简单协议通信 428

17.3.1 服务端 428

17.3.2 客户端 431

17.3.3 实例的运行 432

17.4 小结 432

17.5 实践与练习 432

第4篇项目实战 434

第18章 人事考勤管理系统 434

18.1 开发背景 435

18.2 需求分析 435

18.3 系统设计 435

18.3.1 系统目标 435

18.3.2 系统功能结构 436

18.3.3 系统预览 436

18.3.4 业务流程图 437

18.3.5 数据库设计 437

18.4 公共模块设计 440

18.5 主窗体设计 445

18.6 用户登录模块设计 447

18.6.1 用户登录模块概述 447

18.6.2 用户登录技术分析 447

18.6.3 用户登录实现过程 448

18.7 用户管理模块设计 449

18.7.1 用户管理模块概述 449

18.7.2 用户管理技术分析 449

18.7.3 用户管理实现过程 450

18.7.4 单元测试 452

18.8 部门管理模块设计 453

18.8.1 部门管理模块概述 453

18.8.2 部门管理技术分析 453

18.8.3 部门管理实现过程 454

18.9 人员信息管理模块设计 457

18.9.1 人员信息管理模块概述 457

18.9.2 人员信息管理技术分析 457

18.9.3 人员信息管理实现过程 458

18.10 考勤管理模块设计 463

18.10.1 考勤管理模块概述 463

18.10.2 考勤管理技术分析 464

18.10.3 考勤管理实现过程 465

18.11 考勤汇总查询模块设计 470

18.11.1 考勤汇总查询模块概述 470

18.11.2 考勤汇总查询技术分析 471

18.11.3 考勤汇总查询实现过程 472

18.12 开发技巧与难点分析 475

18.12.1 调用动态链接库设计界面 475

18.12.2 主窗口的界面显示 476

18.13 小结 476