微信扫一扫,移动浏览光盘
简介
本书以零基础讲解为宗旨,用实例引导读者深入学习,采染基础知识→
核心技术→高级应用→项目实战】的讲解模式,深入浅出地讲解C++的各项
技术及实战技能。
本书第1篇【基础知识】主要讲解C++程序设计入门、第1个C++程序——
Hello,C++、常量与变量、数据类型和声明、运算符和表达式、程序控制结
构和语句及算法与流程图等;第2篇【核心技术】主要讲解C++中的数组、函
数、指针、类和对象、命名空间、继承、多态与重载及输入和输出等;第3
篇【高级应用】主要讲解C++中的文件操作、容器、模板、标准库和异常处
理等高级技术;第4篇【项目实战】包括实战前的项目规划、图书信息管理
系统、职工信息管理系统、日历系统、学生成绩管理系统和银行卡管理系统
等;第5篇【王牌资源】在DVD光盘中赠送了丰富的资源,诸如库函数查询手
册、C++常用查询手册、源码大放送、本书【练一练】答案、C++程序员职业
规划、C++程序员面试技巧、C++常见面试题、C++常见错误及解决方案、C++
开发经验及技巧大汇总等。
另外光盘中还包含37小时的全程同步视频教学录像及8小时的指导录像(
包括本书所有范例运行指导录像及各章上机指导录像)。
本书适合任何想学习C++的人员,无论您是否从事计算机相关行业,无
论您是否接触过C++,通过学习均可快速掌握C++的开发方法和技巧。
目录
如何学习c++
第1篇 基础知识
第1章 初识c++——c++程序设计入门 2
视频教学录像:35分钟
c和c++远远不只是两个加号的区别,c++是如何从c发展来的呢?c++和c又有什么区别呢?本章为你解答。
1.1 c++概述 3
1.1.1 c++能做什么 3
1.1.2 c++的由来 5
1.1.3 c++的特点 5
1.2 程序设计概述 6
1.2.1 结构化程序设计 7
1.2.2 面向对象程序设计 7
1.3 c、c++与visual c++ 7
1.3.1 c与c++ 7
1.3.2 c++与visual c++ 8
1.4 练一练 9
1.5 跟我上机 10
第2章 开始c++编程之旅——hello,c++ 11
视频教学录像:1小时16分钟
本章将带领你步入 c++的世界,并教会你用自己的双手开启c++之门——创建第1个c++应用程序。
.2.1 c++开发环境——visual c++6.0 12
2.1.1 visual c++ 6.0概述 12
2.1.2 开始c++程序——【新建】对话框 12
2.1.3 项目管理——工作区窗口 13
2.1.4 窗体及代码编辑——编辑窗口 14
2.1.5 程序调试——输出窗口 15
2.2 c++程序开发 15
2.2.1 基本概念 15
2.2.2 c++程序开发过程 16
2.3 第1个c++程序——hello,world 17
2.3.1 创建源程序 17
2.3.2 编译、连接和运行程序 18
2.3.3 创建并运行多文件程序 20
2.3.4 c++程序的基本组成 23
2.4 c++代码编写规范 24
2.4.1 代码写规范的好处 24
2.4.2 如何将代码写规范 25
2.5 身边的老师——使用msdn帮助 25
2.5.1 msdn帮助系统中主要的帮助文件 25
2.5.2 msdn帮助系统的使用 26
2.6 练一练 27
2.7 跟我上机 27
第3章 不变的和变的箱子——常量与变量 28
视频教学录像:1小时42分钟
常量和变量都是用来存储数值的,就像是用来存放东西的一堆小箱子,里面的东西永远不变的就是常量,会变的就是变量。
3.1 常量 29
3.1.1 什么是常量 29
3.1.2 数值常量 30
3.1.3 字符常量 31
3.1.4 字符串常量 33
3.1.5 符号常量 36
3.2 变量 38
3.2.1 什么是变量 39
3.2.2 变量的初始化 40
3.2.3 变量的定义 45
3.3 综合应用 46
3.4 练一练 48
3.5 跟我上机 49
第4章 数据的种类——数据类型和声明 50
视频教学录像:1小时1分钟
数据有多种类型,而数学中和程序设计中的数据类型又是不同的。本章介绍各式各样的数据以及使用的方法。
4.1 计算机如何识数 51
4.1.1 二进制 51
4.1.2 八进制 51
4.1.3 十六进制 52
4.2 数据类型 52
4.2.1 整型 52
4.2.2 字符型 54
4.2.3 浮点型 55
4.3 数据类型转换 56
4.4 声明 58
4.4.1 声明的一般语法 58
4.4.2 类型名称 58
4.4.3 对象的生存周期 58
4.4.4 声明符 59
4.4.5 初始化 59
4.5 综合应用 59
4.6 练一练 62
4.7 跟我上机 63
第5章 c++编程世界中的公式——运算符和表达式 64
视频教学录像:1小时36分钟
使用方程和公式可以解决数学中的问题,而使用表达式则可解决编程中的问题。
5.1 c++中的运算符和表达式 65
5.1.1 运算符 65
5.1.2 表达式 65
5.2 算术运算符和表达式 66
5.2.1 基本算术运算符 66
5.2.2 算术运算符和算术表达式 66
5.2.3 自加和自减运算符 67
5.3 关系运算符和表达式 69
5.3.1 关系运算符 69
5.3.2 关系表达式 70
5.4 逻辑运算符和表达式 71
5.4.1 逻辑运算符 71
5.4.2 逻辑表达式 71
5.5 条件运算符和表达式 72
5.6 赋值运算符和表达式 73
5.6.1 赋值运算符 73
5.6.2 赋值表达式 73
5.7 逗号运算符和表达式 75
5.8 运算符的优先级 75
5.9 综合应用 77
5.9.1 计算三角形的面积 77
5.9.2 解方程 78
5.10 练一练 79
5.11 跟我上机 80
第6章 c++程序的流程——程序控制结构和语句 81
视频教学录像:2小时14分钟
火车必须沿着铁轨行驶,在编程世界中,程序控制结构就是程序的铁轨。
6.1 程序流程概述 82
6.2 基本赋值语句 82
6.3 顺序结构 84
6.4 选择结构与语句 85
6.4.1 选择结构 85
6.4.2 单分支选择结构——if语句 86
6.4.3 双分支选择结构——if-else语句 88
6.4.4 多分支选择结构——switch语句 89
6.5 循环结构与语句 92
6.5.1 循环结构 92
6.5.2 for语句 93
6.5.3 while语句 96
6.5.4 do-while语句 98
6.6 转向语句 100
6.6.1 goto语句 100
6.6.2 break语句 101
6.6.3 continue语句 103
6.7 综合应用 105
6.8 练一练 107
6.9 跟我上机 108
第7章 程序设计的灵魂——算法与流程图 109
视频教学录像:1小时14分钟
程序设计离不开算法,有了算法,就等于有了解决编程问题的步骤。
7.1 算法基础 110
7.1.1 算法的概念 110
7.1.2 算法的特性 110
7.1.3 算法举例1——排序 111
7.1.4 算法举例2——求和 113
7.2 流程图基础 114
7.2.1 流程图中的元素及含义 115
7.2.2 流程图的绘制 116
7.3 如何表示一个算法 117
7.3.1 用自然语言表示算法 117
7.3.2 用流程图表示算法 117
7.3.3 用n-s图表示算法 122
7.3.4 用伪代码表示算法 123
7.3.5 用pad 图表示算法 124
7.4 结构化算法 125
7.5 综合应用 126
7.6 练一练 131
7.7 跟我上机 132
第2篇 核心技术
第8章 一系列的数值——数组 134
视频教学录像:2小时29分钟
可以将几个具有相同类型的数值建立为1个数组,这样使用1个名字就可以引用这几个数值了。
8.1 什么是数组 135
8.1.1 一维数组 135
8.1.2 二维数组 135
8.1.3 多维数组 136
8.2 定义数组 136
8.2.1 一维数组的定义 136
8.2.2 二维数组的定义 137
8.3 存取数组元素 138
8.3.1 存取一维数组元素 139
8.3.2 一维数组元素排序 140
8.3.3 存取二维数组元素 143
8.4 初始化数组 144
8.4.1 一维数组的初始化 144
8.4.2 二维数组的初始化 145
8.5 综合应用 147
8.5.1 输出斐波那契数列的前20项 147
8.5.2 计算学生平均成绩 148
8.6 练一练 149
8.7 跟我上机 150
第9章 常用代码的集装箱——函数 151
视频教学录像:3小时34分钟
在c++中,你可以将一段经常需要使用的代码封装起来,在需要使用时直接调用,这就是函数。
9.1 函数概述 152
9.2 函数的定义与声明 155
9.2.1 函数的定义 155
9.2.2 函数的声明 156
9.3 函数的参数和返回值 157
9.3.1 函数的参数 157
9.3.2 函数的返回值 157
9.4 函数的调用 158
9.4.1 函数调用的方式 158
9.4.2 参数传递方式 161
9.4.3 函数的嵌套调用 165
9.4.4 递归调用 167
9.4.5 函数的重载 171
9.4.6 带默认值的函数 173
9.5 局部变量和全局变量 176
9.5.1 局部变量 177
9.5.2 全局变量 178
9.6 变量的存储类别 179
9.7 内部函数和外部函数 182
9.8 内联函数 184
9.9 main函数 185
9.10 编译预处理 187
9.11 综合应用 190
9.12 练一练 192
9.13 跟我上机 194
第10章 内存的快捷方式——指针 195
视频教学录像:2小时41分钟
指针中并不是用来存储数据的,而是用来存储数据在内存中的地址,它是内存数据的快捷方式,通过这个快捷方式,即使你不知道这个数据的变量名也可以操作它。
10.1 指针的概念 196
10.1.1 计算机内存地址 196
10.1.2 创建指针 196
10.2 指针和指针变量 197
10.2.1 指针和指针变量 197
10.2.2 指针的运算 203
10.3 指针和数组 204
10.3.1 指针和一维数值数组 204
10.3.2 指针和多维数值数组 206
10.3.3 指针和字符数组 209
10.3.4 字符指针和字符数组 210
10.3.5 指向指针的指针 211
10.3.6 指针数组和数组指针 212
10.4 指针和函数 213
10.4.1 函数指针 213
10.4.2 返回指针的函数 214
10.4.3 指针与传递数组的函数 217
10.5 const 指针 219
10.6 void指针类型 221
10.7 综合应用 221
10.8 练一练 223
10.9 跟我上机 226
第11章 面向对象编程基础——类和对象 227
视频教学录像:1小时43分钟
类是具有相同特征的事物的抽象,比如人类就是1个类,而具体的一个人就是对象。在c++中,类就是对同一类型的数据的抽象。
11.1 类与对象概述 228
11.1.1 类的定义 229
11.1.2 对象的定义和使用 232
11.2 构造函数 233
11.2.1 构造函数的定义 234
11.2.2 构造函数的重载 237
11.3 析构函数 240
11.4 友元 244
11.4.1 友元函数 244
11.4.2 友元成员 246
11.4.3 友元类 248
11.5 综合应用 249
11.6 练一练 251
11.7 跟我上机 253
第12章 c++中的文件夹——命名空间 254
视频教学录像:1小时1分钟
命名空间就像文件夹,它包含了若干个文件(类),这样可以将你定义的很多类整齐地摆放起来。
12.1 命名空间的定义 255
12.1.1 命名空间的概念 255
12.1.2 命名空间的定义 255
12.1.3 命名空间的名称 257
12.2 命名空间成员的使用 260
12.2.1 using声明 260
12.2.2 using指令 261
12.3 类和命名空间的关系 263
12.4 综合应用 265
12.5 练一练 268
12.6 跟我上机 270
第13章 父子之间——继承 271
视频教学录像:49分钟
通过继承,子类就获得了父类的各种属性和方法。
13.1 继承概述 272
13.1.1 什么是继承 272
13.1.2 基类与派生类 272
13.2 使用继承 274
13.3 多重继承 277
13.3.1 多重继承的引用 277
13.3.2 二义性 279
13.4 综合应用 281
13.5 练一练 282
13.6 跟我上机 283
第14章 多态与重载 284
视频教学录像:1小时14分钟
多态可以使父类拥有和子类共同的特征。
14.1 多态概述 285
14.2 虚函数 289
14.3 再谈构造函数 291
14.4 抽象类 296
14.5 重载概述 298
14.5.1 函数的重载 298
14.5.2 运算符的重载 300
14.6 综合应用 304
14.7 练一练 306
14.8 跟我上机 307
第15章 用户与计算机的交互——输入和输出 308
视频教学录像:2小时12分钟
你输入的这些内容是这样通过计算机显示出来的。
15.1 标准输入输出 309
15.1.1 输出操作符[[ 309
15.1.2 输入操作符]] 310
15.2 流状态 312
15.2.1 常用的流状态 312
15.2.2 有参数的常用的流状态 314
15.3 行输入 315
15.3.1 get()函数 315
15.3.2 getline()函数 317
15.3.3 read()函数 317
15.4 行输出 318
15.4.1 put()函数 318
15.4.2 write()函数 319
15.5 printf函数 320
15.6 随机数发生器函数 323
15.7 字符串操作 324
15.8 命令行处理 326
15.9 综合应用 327
15.10 练一练 329
15.11 跟我上机 330
第3篇 高级应用
第16章 文件操作 332
视频教学录像:1小时33分钟
在资源管理器中操作文件的原理是这样的。
16.1 文件的概述 333
16.1.1 什么是文件 333
16.1.2 c++如何使用文件 333
16.2 文件的打开和关闭 333
16.2.1 打开文件 334
16.2.2 关闭文件 336
16.3 文件的读写 336
16.3.1 文本文件的读写 336
16.3.2 二进制文件的读写 337
16.4 文件的定位 339
16.5 文件随机访问 340
16.6 综合应用 341
16.7 练一练 347
16.8 跟我上机 348
第17章 容器 349
视频教学录像:1小时38分钟
在现实生活中,我们可以使用容器来装东西。在c++编程中,容器则是指可以用于存放各种类型的数据(基本类型的变量、对象等)的数据结构。
17.1 容器的概念 350
17.2 顺序容器 350
17.3 向量 351
17.4 列表 355
17.5 关联容器 360
17.6 映射 360
17.7 综合应用 364
17.8 练一练 365
17.9 跟我上机 366
第18章 c++中的便利之道——模板 367
视频教学录像:1小时39分钟
在制作word文档时,我们可以使用模板,其中已为我们提供了基本元素,只需要填入相应的数据即可。在c++中也有这样的模板,只需在使用前添上自己需要的数据类型即可。
18.1 模板的概念 368
18.1.1 什么是模板 368
18.1.2 模板的作用 368
18.1.3 模板的语法 369
18.2 函数模板 371
18.3 类模板 373
18.4 模板的编译模型 375
18.4.1 包含编译模型 375
18.4.2 分离编译模型 377
18.5 模板的特化 379
18.5.1 函数模板的特化 380
18.5.2 类模板的特化 381
18.5.3 类模板的偏特化 384
18.6 综合应用 385
18.7 练一练 387
18.8 跟我上机 390
第19章 c++超值放送——标准库 391
视频教学录像:2小时7分钟
c++标准库就好像设计图像时的图库一样,为c++程序员提供了可扩展的基础性框架,为程序设计带来了便利。
19.1 标准库概述 392
19.1.1 认识标准库 392
19.1.2 标准库的组成 392
19.2 迭代器 393
19.3 算法 395
19.3.1 数据编辑算法 395
19.3.2 查找算法 398
19.3.3 比较算法 400
19.3.4 排序相关算法 402
19.3.5 计算相关算法 404
19.4 函数对象 406
19.4.1 函数对象的应用 406
19.4.2 自定义函数对象 407
19.5 适配器 408
19.5.1 容器适配器 408
19.5.2 stack容器 408
19.6 字符串库 410
19.6.1 定义和初始化string对象 410
19.6.2 读/写字符串 411
19.6.3 字符串的赋值 412
19.6.4 字符串比较 413
19.6.5 字符串的连接 414
19.6.6 字符串特性描述 416
19.6.7 字符串操作 416
19.6.8 字符串对象中字符的处理 417
19.7 综合应用 417
19.8 练一练 419
19.9 跟我上机 419
第20章 错误终结者——异常处理 420
视频教学录像:1小时43分钟
出现错误不可怕,亡羊补牢,为时不晚。
20.1 异常的类型 421
20.1.1 什么是异常 421
20.1.2 异常的分类 422
20.2 异常处理的基本思想 422
20.3 异常处理 423
20.3.1 异常处理语句块 423
20.3.2 使用try——catch处理异常 425
20.4 多重异常的捕获 427
20.5 异常的重新抛出 429
20.6 构造函数异常处理 432
20.7 调试器 434
20.8 综合应用 434
20.8.1 读取文件异常处理 434
20.8.2 读写文件异常处理 435
20.9 练一练 437
20.10 跟我上机 438
第4篇 项目实战
第21章 项目实战前的几点忠告——项目规划 440
视频教学录像:37分钟
21.1 项目开发流程 441
21.1.1 策划阶段 441
21.1.2 需求分析阶段 442
21.1.3 开发阶段 443
21.1.4 编码阶段 443
21.1.5 系统测试阶段 443
21.1.6 系统验收阶段 444
21.1.7 系统维护阶段 444
21.2 项目开发团队 444
21.2.1 项目团队组成 444
21.2.2 项目团队要求 445
21.3 项目开发文档 446
21.3.1 项目开发文档的作用 446
21.3.2 项目开发文档的分类 447
21.4 项目的实际运作 448
21.5 项目规划常见问题及解决 450
21.5.1 如何满足客户需求 450
21.5.2 如何控制项目进度 451
21.5.3 如何控制项目预算 451
第22章 图书信息管理系统 452
视频教学录像:1小时4分钟
22.1 开发背景 453
22.2 需求及功能分析 453
22.2.1 需求分析 453
22.2.2 总体功能设计 454
22.2.3 各功能模块设计 455
22.3 系统功能的实现 456
22.3.1 系统整体功能的实现 456
22.3.2 系统界面显示功能的实现 459
22.3.3 借还书功能的实现 460
22.3.4 图书管理模块的实现 462
22.3.5 读者管理模块的实现 465
22.4 系统运行 468
22.5 开发过程常见问题及解决 469
第23章 职工信息管理系统 470
视频教学录像:1小时6分钟
23.1 开发背景 471
23.2 需求及功能分析 471
23.2.1 需求分析 471
23.2.2 总体功能设计 472
23.2.3 各功能模块设计 473
23.3 系统功能的实现 477
23.3.1 系统整体功能的实现 477
23.3.2 系统界面显示功能的实现 479
23.3.3 注册信息功能的实现 482
23.3.4 查寻信息功能的实现 483
23.3.5 修改信息功能的实现 484
23.3.6 删除信息功能的实现 486
23.3.7 保存信息功能的实现 487
23.3.8 排序信息功能的实现 487
23.4 系统运行 489
23.5 开发过程常见问题及解决 491
第24章 信息管理不用愁——信息管理系统实战 492
视频教学录像:1小时43分钟
24.1 日历系统 493
24.1.1 系统分析 493
24.1.2 功能分析及实现 493
24.1.3 开发常见问题及解决 496
24.2 学生成绩管理系统 496
24.2.1 系统分析 497
24.2.2 功能分析及实现 497
24.2.3 开发常见问题及解决 505
24.3 银行卡管理系统 505
24.3.1 系统分析 505
24.3.2 功能分析及实现 506
24.3.3 开发常见问题及解决 512
第5篇 王牌资源
王牌资源一览 514
王牌1 库函数查询手册(光盘中) 522
索引 523
a any(bitset)函数 530
append(string)函数 530
assign(deque)函数 531
assign(list)函数 531
assign(string)函数 532
assign(vector)函数 533
at(deque)函数 533
at(string)函数 534
at(vector)函数 534
b back(deque)函数 535
back(list)函数 535
back(queue)函数 536
back(vector)函数 536
bad(io)函数 537
begin(deque)函数 537
begin(list)函数 538
begin(map)函数 538
begin(multimap)函数 539
begin(multiset)函数 539
begin(set)函数 540
begin(string)函数 540
begin(vector)函数 541
c clear(deque)函数 542
clear(list)函数 542
clear(set)函数 543
clear(map)函数 543
clear(vector)函数 544
compare(string)函数 544
copy(string)函数 545
count(bitset)函数 546
count(map)函数 546
count(set)函数 547
d data(string)函数 548
e empty(deque)函数 549
empty(dlist)函数 549
empty(map)函数 550
empty(queue)函数 550
empty(set)函数 551
empty()函数 551
empty(string)函数 552
empty(vector)函数 552
end(deque)函数 552
end(list)函数 553
end(vector)函数 554
end(map)函数 554
end(set)函数 555
end(string)函数 555
eof(io)函数 556
erase(deque)函数 556
erase(list)函数 557
erase(vector)函数 557
erase(map)函数 558
erase(set)函数 559
erase(string)函数 559
f fill(io)函数 561
find(map)函数 561
find(set)函数 562
find(string)函数 562
find_first_not_of(string)函数 563
find_first_of(string)函数 564
find_last_not_of(string)函数 564
fint_last_of(string)函数 565
flags(io)函数 566
flip(bitset)函数 566
flush(io)函数 567
front(deque)函数 567
front(list)函数 568
front(queue)函数 568
front(vector)函数 569
fstream(io)函数 569
g gcount(io)函数 571
get(io)函数 571
get_allocator(deque)函数 572
get_allocator(list)函数 572
get_allocator(map)函数 573
get_allocator(set)函数 573
get_allocator(string)函数 574
get_allocator(vector)函数 574
getline(io)函数 574
good(io)函数 575
i ignore(io)函数 576
insert(deque)函数 576
insert(list)函数 577
insert(vector)函数 578
insert(map)函数 579
insert(set)函数 580
insert(string)函数 581
k key_comp(map)函数 582
key_comp(set)函数 582
l length(string)函数 584
lower_bound(map)函数 584
lower_bound(set)函数 585
m max_size(deque)函数 586
max_size(list)函数 586
max_size(map)函数 587
max_size(set)函数 587
max_size()函数 587
max_size(vector)函数 588
merge(list)函数 588
n none(bitset)函数 590
o open(io)函数 591
p peek(io)函数 592
pop(queue)函数 592
pop(stack)函数 593
pop_back(deque)函数 594
pop_back(list)函数 594
pop_back(vector)函数 595
pop_front(deque)函数 596
pop_front(list)函数 596
precision(io)函数 597
push(queue)函数 597
push(stack)函数 598
push_back(deque)函数 598
push_back(list)函数 599
push_back(vector)函数 599
push_front(deque)函数 600
push_front(list)函数 600
put(io)函数 601
putback(io)函数 601
r rbegin(deque)函数 602
rbegin(list)函数 602
rbegin(map)函数 603
rbegin(set)函数 603
rbegin(string)函数 604
rbeing(vector)函数 604
read(io)函数 605
remove(list)函数 605
rend(deque)函数 606
rend(list)函数 606
rend(map)函数 607
rend(set)函数 608
rend(string)函数 608
rend(vector)函数 609
replace(string)函数 609
reserve(string)函数 611
reserve(vector)函数 611
reset(bitset)函数 612
resize(deque)函数 612
resize(list)函数 613
resize(vector)函数 613
resize(string)函数 614
reverse(list)函数 615
refind(string)函数 615
s seekg(io)函数 617
seekp(io)函数 617
set(bitset)函数 618
setf(io)函数 619
size(bitset)函数 619
size(deque)函数 620
size(list)函数 620
size(map)函数 621
size(queue)函数 621
size(set)函数 622
size(stack)函数 622
size(string)函数 622
size(vector)函数 623
sort(list)函数 623
splice(list)函数 624
substr(string)函数 625
swap(deque)函数 625
swap(list)函数 626
swap(set)函数 627
swap(map)函数 628
swap(string)函数 629
swap(vector)函数 630
t tellg(io)函数 632
tellp(io)函数 632
test(bitset)函数 633
to_string(bitset)函数 634
to_ulong(bitset)函数 634
top(stack)函数 635
u unique(list)函数 636
upper_bound(map)函数 636
upper_bound(set)函数 637
w width(io)函数 639
write(io)函数 639
王牌2 c++常用查询手册(光盘中) 640
索引 641
头文件查询 642
#include [ algorithm ] 642
#include [ ctype.h ] 644
#include [ math.h ] 645
#include [ time.h ] 646
#include [ local.h ] 646
#include [ signal.h ] 646
#include [ stdarg.h ] 647
#include [ stdlib.h ] 647
#include [ stdio.h ] 647
#include [ string.h ] 649
#include [ stdlib.h ] 649
关键字查询 651
常用字符ascii码查询 655
王牌3 c++源码大放送(光盘中)
源码01 记事本阅读器
源码02 员工档案管理系统
源码03 学生成绩汇总系统
源码04 电话计费系统
源码05 通讯录
源码06 文件大小查看器
源码07 打印“心”形
源码08 汉诺塔解决方案
源码09 打印杨辉三角形
源码10 打印旋转数字
王牌4 学习成果检测——本书【练一练】答案(光盘中) 659
王牌5 c++程序员职业规划(光盘中) 688
王牌6 c++程序员面试技巧(光盘中) 690
王牌7 c++常见面试题(光盘中) 693
王牌8 扫雷英雄榜——c++常见错误及解决方案(光盘中) 715
王牌9 优秀程序员之路——c++开发经验及技巧大汇总(光盘中) 730
第1篇 基础知识
第1章 初识c++——c++程序设计入门 2
视频教学录像:35分钟
c和c++远远不只是两个加号的区别,c++是如何从c发展来的呢?c++和c又有什么区别呢?本章为你解答。
1.1 c++概述 3
1.1.1 c++能做什么 3
1.1.2 c++的由来 5
1.1.3 c++的特点 5
1.2 程序设计概述 6
1.2.1 结构化程序设计 7
1.2.2 面向对象程序设计 7
1.3 c、c++与visual c++ 7
1.3.1 c与c++ 7
1.3.2 c++与visual c++ 8
1.4 练一练 9
1.5 跟我上机 10
第2章 开始c++编程之旅——hello,c++ 11
视频教学录像:1小时16分钟
本章将带领你步入 c++的世界,并教会你用自己的双手开启c++之门——创建第1个c++应用程序。
.2.1 c++开发环境——visual c++6.0 12
2.1.1 visual c++ 6.0概述 12
2.1.2 开始c++程序——【新建】对话框 12
2.1.3 项目管理——工作区窗口 13
2.1.4 窗体及代码编辑——编辑窗口 14
2.1.5 程序调试——输出窗口 15
2.2 c++程序开发 15
2.2.1 基本概念 15
2.2.2 c++程序开发过程 16
2.3 第1个c++程序——hello,world 17
2.3.1 创建源程序 17
2.3.2 编译、连接和运行程序 18
2.3.3 创建并运行多文件程序 20
2.3.4 c++程序的基本组成 23
2.4 c++代码编写规范 24
2.4.1 代码写规范的好处 24
2.4.2 如何将代码写规范 25
2.5 身边的老师——使用msdn帮助 25
2.5.1 msdn帮助系统中主要的帮助文件 25
2.5.2 msdn帮助系统的使用 26
2.6 练一练 27
2.7 跟我上机 27
第3章 不变的和变的箱子——常量与变量 28
视频教学录像:1小时42分钟
常量和变量都是用来存储数值的,就像是用来存放东西的一堆小箱子,里面的东西永远不变的就是常量,会变的就是变量。
3.1 常量 29
3.1.1 什么是常量 29
3.1.2 数值常量 30
3.1.3 字符常量 31
3.1.4 字符串常量 33
3.1.5 符号常量 36
3.2 变量 38
3.2.1 什么是变量 39
3.2.2 变量的初始化 40
3.2.3 变量的定义 45
3.3 综合应用 46
3.4 练一练 48
3.5 跟我上机 49
第4章 数据的种类——数据类型和声明 50
视频教学录像:1小时1分钟
数据有多种类型,而数学中和程序设计中的数据类型又是不同的。本章介绍各式各样的数据以及使用的方法。
4.1 计算机如何识数 51
4.1.1 二进制 51
4.1.2 八进制 51
4.1.3 十六进制 52
4.2 数据类型 52
4.2.1 整型 52
4.2.2 字符型 54
4.2.3 浮点型 55
4.3 数据类型转换 56
4.4 声明 58
4.4.1 声明的一般语法 58
4.4.2 类型名称 58
4.4.3 对象的生存周期 58
4.4.4 声明符 59
4.4.5 初始化 59
4.5 综合应用 59
4.6 练一练 62
4.7 跟我上机 63
第5章 c++编程世界中的公式——运算符和表达式 64
视频教学录像:1小时36分钟
使用方程和公式可以解决数学中的问题,而使用表达式则可解决编程中的问题。
5.1 c++中的运算符和表达式 65
5.1.1 运算符 65
5.1.2 表达式 65
5.2 算术运算符和表达式 66
5.2.1 基本算术运算符 66
5.2.2 算术运算符和算术表达式 66
5.2.3 自加和自减运算符 67
5.3 关系运算符和表达式 69
5.3.1 关系运算符 69
5.3.2 关系表达式 70
5.4 逻辑运算符和表达式 71
5.4.1 逻辑运算符 71
5.4.2 逻辑表达式 71
5.5 条件运算符和表达式 72
5.6 赋值运算符和表达式 73
5.6.1 赋值运算符 73
5.6.2 赋值表达式 73
5.7 逗号运算符和表达式 75
5.8 运算符的优先级 75
5.9 综合应用 77
5.9.1 计算三角形的面积 77
5.9.2 解方程 78
5.10 练一练 79
5.11 跟我上机 80
第6章 c++程序的流程——程序控制结构和语句 81
视频教学录像:2小时14分钟
火车必须沿着铁轨行驶,在编程世界中,程序控制结构就是程序的铁轨。
6.1 程序流程概述 82
6.2 基本赋值语句 82
6.3 顺序结构 84
6.4 选择结构与语句 85
6.4.1 选择结构 85
6.4.2 单分支选择结构——if语句 86
6.4.3 双分支选择结构——if-else语句 88
6.4.4 多分支选择结构——switch语句 89
6.5 循环结构与语句 92
6.5.1 循环结构 92
6.5.2 for语句 93
6.5.3 while语句 96
6.5.4 do-while语句 98
6.6 转向语句 100
6.6.1 goto语句 100
6.6.2 break语句 101
6.6.3 continue语句 103
6.7 综合应用 105
6.8 练一练 107
6.9 跟我上机 108
第7章 程序设计的灵魂——算法与流程图 109
视频教学录像:1小时14分钟
程序设计离不开算法,有了算法,就等于有了解决编程问题的步骤。
7.1 算法基础 110
7.1.1 算法的概念 110
7.1.2 算法的特性 110
7.1.3 算法举例1——排序 111
7.1.4 算法举例2——求和 113
7.2 流程图基础 114
7.2.1 流程图中的元素及含义 115
7.2.2 流程图的绘制 116
7.3 如何表示一个算法 117
7.3.1 用自然语言表示算法 117
7.3.2 用流程图表示算法 117
7.3.3 用n-s图表示算法 122
7.3.4 用伪代码表示算法 123
7.3.5 用pad 图表示算法 124
7.4 结构化算法 125
7.5 综合应用 126
7.6 练一练 131
7.7 跟我上机 132
第2篇 核心技术
第8章 一系列的数值——数组 134
视频教学录像:2小时29分钟
可以将几个具有相同类型的数值建立为1个数组,这样使用1个名字就可以引用这几个数值了。
8.1 什么是数组 135
8.1.1 一维数组 135
8.1.2 二维数组 135
8.1.3 多维数组 136
8.2 定义数组 136
8.2.1 一维数组的定义 136
8.2.2 二维数组的定义 137
8.3 存取数组元素 138
8.3.1 存取一维数组元素 139
8.3.2 一维数组元素排序 140
8.3.3 存取二维数组元素 143
8.4 初始化数组 144
8.4.1 一维数组的初始化 144
8.4.2 二维数组的初始化 145
8.5 综合应用 147
8.5.1 输出斐波那契数列的前20项 147
8.5.2 计算学生平均成绩 148
8.6 练一练 149
8.7 跟我上机 150
第9章 常用代码的集装箱——函数 151
视频教学录像:3小时34分钟
在c++中,你可以将一段经常需要使用的代码封装起来,在需要使用时直接调用,这就是函数。
9.1 函数概述 152
9.2 函数的定义与声明 155
9.2.1 函数的定义 155
9.2.2 函数的声明 156
9.3 函数的参数和返回值 157
9.3.1 函数的参数 157
9.3.2 函数的返回值 157
9.4 函数的调用 158
9.4.1 函数调用的方式 158
9.4.2 参数传递方式 161
9.4.3 函数的嵌套调用 165
9.4.4 递归调用 167
9.4.5 函数的重载 171
9.4.6 带默认值的函数 173
9.5 局部变量和全局变量 176
9.5.1 局部变量 177
9.5.2 全局变量 178
9.6 变量的存储类别 179
9.7 内部函数和外部函数 182
9.8 内联函数 184
9.9 main函数 185
9.10 编译预处理 187
9.11 综合应用 190
9.12 练一练 192
9.13 跟我上机 194
第10章 内存的快捷方式——指针 195
视频教学录像:2小时41分钟
指针中并不是用来存储数据的,而是用来存储数据在内存中的地址,它是内存数据的快捷方式,通过这个快捷方式,即使你不知道这个数据的变量名也可以操作它。
10.1 指针的概念 196
10.1.1 计算机内存地址 196
10.1.2 创建指针 196
10.2 指针和指针变量 197
10.2.1 指针和指针变量 197
10.2.2 指针的运算 203
10.3 指针和数组 204
10.3.1 指针和一维数值数组 204
10.3.2 指针和多维数值数组 206
10.3.3 指针和字符数组 209
10.3.4 字符指针和字符数组 210
10.3.5 指向指针的指针 211
10.3.6 指针数组和数组指针 212
10.4 指针和函数 213
10.4.1 函数指针 213
10.4.2 返回指针的函数 214
10.4.3 指针与传递数组的函数 217
10.5 const 指针 219
10.6 void指针类型 221
10.7 综合应用 221
10.8 练一练 223
10.9 跟我上机 226
第11章 面向对象编程基础——类和对象 227
视频教学录像:1小时43分钟
类是具有相同特征的事物的抽象,比如人类就是1个类,而具体的一个人就是对象。在c++中,类就是对同一类型的数据的抽象。
11.1 类与对象概述 228
11.1.1 类的定义 229
11.1.2 对象的定义和使用 232
11.2 构造函数 233
11.2.1 构造函数的定义 234
11.2.2 构造函数的重载 237
11.3 析构函数 240
11.4 友元 244
11.4.1 友元函数 244
11.4.2 友元成员 246
11.4.3 友元类 248
11.5 综合应用 249
11.6 练一练 251
11.7 跟我上机 253
第12章 c++中的文件夹——命名空间 254
视频教学录像:1小时1分钟
命名空间就像文件夹,它包含了若干个文件(类),这样可以将你定义的很多类整齐地摆放起来。
12.1 命名空间的定义 255
12.1.1 命名空间的概念 255
12.1.2 命名空间的定义 255
12.1.3 命名空间的名称 257
12.2 命名空间成员的使用 260
12.2.1 using声明 260
12.2.2 using指令 261
12.3 类和命名空间的关系 263
12.4 综合应用 265
12.5 练一练 268
12.6 跟我上机 270
第13章 父子之间——继承 271
视频教学录像:49分钟
通过继承,子类就获得了父类的各种属性和方法。
13.1 继承概述 272
13.1.1 什么是继承 272
13.1.2 基类与派生类 272
13.2 使用继承 274
13.3 多重继承 277
13.3.1 多重继承的引用 277
13.3.2 二义性 279
13.4 综合应用 281
13.5 练一练 282
13.6 跟我上机 283
第14章 多态与重载 284
视频教学录像:1小时14分钟
多态可以使父类拥有和子类共同的特征。
14.1 多态概述 285
14.2 虚函数 289
14.3 再谈构造函数 291
14.4 抽象类 296
14.5 重载概述 298
14.5.1 函数的重载 298
14.5.2 运算符的重载 300
14.6 综合应用 304
14.7 练一练 306
14.8 跟我上机 307
第15章 用户与计算机的交互——输入和输出 308
视频教学录像:2小时12分钟
你输入的这些内容是这样通过计算机显示出来的。
15.1 标准输入输出 309
15.1.1 输出操作符[[ 309
15.1.2 输入操作符]] 310
15.2 流状态 312
15.2.1 常用的流状态 312
15.2.2 有参数的常用的流状态 314
15.3 行输入 315
15.3.1 get()函数 315
15.3.2 getline()函数 317
15.3.3 read()函数 317
15.4 行输出 318
15.4.1 put()函数 318
15.4.2 write()函数 319
15.5 printf函数 320
15.6 随机数发生器函数 323
15.7 字符串操作 324
15.8 命令行处理 326
15.9 综合应用 327
15.10 练一练 329
15.11 跟我上机 330
第3篇 高级应用
第16章 文件操作 332
视频教学录像:1小时33分钟
在资源管理器中操作文件的原理是这样的。
16.1 文件的概述 333
16.1.1 什么是文件 333
16.1.2 c++如何使用文件 333
16.2 文件的打开和关闭 333
16.2.1 打开文件 334
16.2.2 关闭文件 336
16.3 文件的读写 336
16.3.1 文本文件的读写 336
16.3.2 二进制文件的读写 337
16.4 文件的定位 339
16.5 文件随机访问 340
16.6 综合应用 341
16.7 练一练 347
16.8 跟我上机 348
第17章 容器 349
视频教学录像:1小时38分钟
在现实生活中,我们可以使用容器来装东西。在c++编程中,容器则是指可以用于存放各种类型的数据(基本类型的变量、对象等)的数据结构。
17.1 容器的概念 350
17.2 顺序容器 350
17.3 向量 351
17.4 列表 355
17.5 关联容器 360
17.6 映射 360
17.7 综合应用 364
17.8 练一练 365
17.9 跟我上机 366
第18章 c++中的便利之道——模板 367
视频教学录像:1小时39分钟
在制作word文档时,我们可以使用模板,其中已为我们提供了基本元素,只需要填入相应的数据即可。在c++中也有这样的模板,只需在使用前添上自己需要的数据类型即可。
18.1 模板的概念 368
18.1.1 什么是模板 368
18.1.2 模板的作用 368
18.1.3 模板的语法 369
18.2 函数模板 371
18.3 类模板 373
18.4 模板的编译模型 375
18.4.1 包含编译模型 375
18.4.2 分离编译模型 377
18.5 模板的特化 379
18.5.1 函数模板的特化 380
18.5.2 类模板的特化 381
18.5.3 类模板的偏特化 384
18.6 综合应用 385
18.7 练一练 387
18.8 跟我上机 390
第19章 c++超值放送——标准库 391
视频教学录像:2小时7分钟
c++标准库就好像设计图像时的图库一样,为c++程序员提供了可扩展的基础性框架,为程序设计带来了便利。
19.1 标准库概述 392
19.1.1 认识标准库 392
19.1.2 标准库的组成 392
19.2 迭代器 393
19.3 算法 395
19.3.1 数据编辑算法 395
19.3.2 查找算法 398
19.3.3 比较算法 400
19.3.4 排序相关算法 402
19.3.5 计算相关算法 404
19.4 函数对象 406
19.4.1 函数对象的应用 406
19.4.2 自定义函数对象 407
19.5 适配器 408
19.5.1 容器适配器 408
19.5.2 stack容器 408
19.6 字符串库 410
19.6.1 定义和初始化string对象 410
19.6.2 读/写字符串 411
19.6.3 字符串的赋值 412
19.6.4 字符串比较 413
19.6.5 字符串的连接 414
19.6.6 字符串特性描述 416
19.6.7 字符串操作 416
19.6.8 字符串对象中字符的处理 417
19.7 综合应用 417
19.8 练一练 419
19.9 跟我上机 419
第20章 错误终结者——异常处理 420
视频教学录像:1小时43分钟
出现错误不可怕,亡羊补牢,为时不晚。
20.1 异常的类型 421
20.1.1 什么是异常 421
20.1.2 异常的分类 422
20.2 异常处理的基本思想 422
20.3 异常处理 423
20.3.1 异常处理语句块 423
20.3.2 使用try——catch处理异常 425
20.4 多重异常的捕获 427
20.5 异常的重新抛出 429
20.6 构造函数异常处理 432
20.7 调试器 434
20.8 综合应用 434
20.8.1 读取文件异常处理 434
20.8.2 读写文件异常处理 435
20.9 练一练 437
20.10 跟我上机 438
第4篇 项目实战
第21章 项目实战前的几点忠告——项目规划 440
视频教学录像:37分钟
21.1 项目开发流程 441
21.1.1 策划阶段 441
21.1.2 需求分析阶段 442
21.1.3 开发阶段 443
21.1.4 编码阶段 443
21.1.5 系统测试阶段 443
21.1.6 系统验收阶段 444
21.1.7 系统维护阶段 444
21.2 项目开发团队 444
21.2.1 项目团队组成 444
21.2.2 项目团队要求 445
21.3 项目开发文档 446
21.3.1 项目开发文档的作用 446
21.3.2 项目开发文档的分类 447
21.4 项目的实际运作 448
21.5 项目规划常见问题及解决 450
21.5.1 如何满足客户需求 450
21.5.2 如何控制项目进度 451
21.5.3 如何控制项目预算 451
第22章 图书信息管理系统 452
视频教学录像:1小时4分钟
22.1 开发背景 453
22.2 需求及功能分析 453
22.2.1 需求分析 453
22.2.2 总体功能设计 454
22.2.3 各功能模块设计 455
22.3 系统功能的实现 456
22.3.1 系统整体功能的实现 456
22.3.2 系统界面显示功能的实现 459
22.3.3 借还书功能的实现 460
22.3.4 图书管理模块的实现 462
22.3.5 读者管理模块的实现 465
22.4 系统运行 468
22.5 开发过程常见问题及解决 469
第23章 职工信息管理系统 470
视频教学录像:1小时6分钟
23.1 开发背景 471
23.2 需求及功能分析 471
23.2.1 需求分析 471
23.2.2 总体功能设计 472
23.2.3 各功能模块设计 473
23.3 系统功能的实现 477
23.3.1 系统整体功能的实现 477
23.3.2 系统界面显示功能的实现 479
23.3.3 注册信息功能的实现 482
23.3.4 查寻信息功能的实现 483
23.3.5 修改信息功能的实现 484
23.3.6 删除信息功能的实现 486
23.3.7 保存信息功能的实现 487
23.3.8 排序信息功能的实现 487
23.4 系统运行 489
23.5 开发过程常见问题及解决 491
第24章 信息管理不用愁——信息管理系统实战 492
视频教学录像:1小时43分钟
24.1 日历系统 493
24.1.1 系统分析 493
24.1.2 功能分析及实现 493
24.1.3 开发常见问题及解决 496
24.2 学生成绩管理系统 496
24.2.1 系统分析 497
24.2.2 功能分析及实现 497
24.2.3 开发常见问题及解决 505
24.3 银行卡管理系统 505
24.3.1 系统分析 505
24.3.2 功能分析及实现 506
24.3.3 开发常见问题及解决 512
第5篇 王牌资源
王牌资源一览 514
王牌1 库函数查询手册(光盘中) 522
索引 523
a any(bitset)函数 530
append(string)函数 530
assign(deque)函数 531
assign(list)函数 531
assign(string)函数 532
assign(vector)函数 533
at(deque)函数 533
at(string)函数 534
at(vector)函数 534
b back(deque)函数 535
back(list)函数 535
back(queue)函数 536
back(vector)函数 536
bad(io)函数 537
begin(deque)函数 537
begin(list)函数 538
begin(map)函数 538
begin(multimap)函数 539
begin(multiset)函数 539
begin(set)函数 540
begin(string)函数 540
begin(vector)函数 541
c clear(deque)函数 542
clear(list)函数 542
clear(set)函数 543
clear(map)函数 543
clear(vector)函数 544
compare(string)函数 544
copy(string)函数 545
count(bitset)函数 546
count(map)函数 546
count(set)函数 547
d data(string)函数 548
e empty(deque)函数 549
empty(dlist)函数 549
empty(map)函数 550
empty(queue)函数 550
empty(set)函数 551
empty()函数 551
empty(string)函数 552
empty(vector)函数 552
end(deque)函数 552
end(list)函数 553
end(vector)函数 554
end(map)函数 554
end(set)函数 555
end(string)函数 555
eof(io)函数 556
erase(deque)函数 556
erase(list)函数 557
erase(vector)函数 557
erase(map)函数 558
erase(set)函数 559
erase(string)函数 559
f fill(io)函数 561
find(map)函数 561
find(set)函数 562
find(string)函数 562
find_first_not_of(string)函数 563
find_first_of(string)函数 564
find_last_not_of(string)函数 564
fint_last_of(string)函数 565
flags(io)函数 566
flip(bitset)函数 566
flush(io)函数 567
front(deque)函数 567
front(list)函数 568
front(queue)函数 568
front(vector)函数 569
fstream(io)函数 569
g gcount(io)函数 571
get(io)函数 571
get_allocator(deque)函数 572
get_allocator(list)函数 572
get_allocator(map)函数 573
get_allocator(set)函数 573
get_allocator(string)函数 574
get_allocator(vector)函数 574
getline(io)函数 574
good(io)函数 575
i ignore(io)函数 576
insert(deque)函数 576
insert(list)函数 577
insert(vector)函数 578
insert(map)函数 579
insert(set)函数 580
insert(string)函数 581
k key_comp(map)函数 582
key_comp(set)函数 582
l length(string)函数 584
lower_bound(map)函数 584
lower_bound(set)函数 585
m max_size(deque)函数 586
max_size(list)函数 586
max_size(map)函数 587
max_size(set)函数 587
max_size()函数 587
max_size(vector)函数 588
merge(list)函数 588
n none(bitset)函数 590
o open(io)函数 591
p peek(io)函数 592
pop(queue)函数 592
pop(stack)函数 593
pop_back(deque)函数 594
pop_back(list)函数 594
pop_back(vector)函数 595
pop_front(deque)函数 596
pop_front(list)函数 596
precision(io)函数 597
push(queue)函数 597
push(stack)函数 598
push_back(deque)函数 598
push_back(list)函数 599
push_back(vector)函数 599
push_front(deque)函数 600
push_front(list)函数 600
put(io)函数 601
putback(io)函数 601
r rbegin(deque)函数 602
rbegin(list)函数 602
rbegin(map)函数 603
rbegin(set)函数 603
rbegin(string)函数 604
rbeing(vector)函数 604
read(io)函数 605
remove(list)函数 605
rend(deque)函数 606
rend(list)函数 606
rend(map)函数 607
rend(set)函数 608
rend(string)函数 608
rend(vector)函数 609
replace(string)函数 609
reserve(string)函数 611
reserve(vector)函数 611
reset(bitset)函数 612
resize(deque)函数 612
resize(list)函数 613
resize(vector)函数 613
resize(string)函数 614
reverse(list)函数 615
refind(string)函数 615
s seekg(io)函数 617
seekp(io)函数 617
set(bitset)函数 618
setf(io)函数 619
size(bitset)函数 619
size(deque)函数 620
size(list)函数 620
size(map)函数 621
size(queue)函数 621
size(set)函数 622
size(stack)函数 622
size(string)函数 622
size(vector)函数 623
sort(list)函数 623
splice(list)函数 624
substr(string)函数 625
swap(deque)函数 625
swap(list)函数 626
swap(set)函数 627
swap(map)函数 628
swap(string)函数 629
swap(vector)函数 630
t tellg(io)函数 632
tellp(io)函数 632
test(bitset)函数 633
to_string(bitset)函数 634
to_ulong(bitset)函数 634
top(stack)函数 635
u unique(list)函数 636
upper_bound(map)函数 636
upper_bound(set)函数 637
w width(io)函数 639
write(io)函数 639
王牌2 c++常用查询手册(光盘中) 640
索引 641
头文件查询 642
#include [ algorithm ] 642
#include [ ctype.h ] 644
#include [ math.h ] 645
#include [ time.h ] 646
#include [ local.h ] 646
#include [ signal.h ] 646
#include [ stdarg.h ] 647
#include [ stdlib.h ] 647
#include [ stdio.h ] 647
#include [ string.h ] 649
#include [ stdlib.h ] 649
关键字查询 651
常用字符ascii码查询 655
王牌3 c++源码大放送(光盘中)
源码01 记事本阅读器
源码02 员工档案管理系统
源码03 学生成绩汇总系统
源码04 电话计费系统
源码05 通讯录
源码06 文件大小查看器
源码07 打印“心”形
源码08 汉诺塔解决方案
源码09 打印杨辉三角形
源码10 打印旋转数字
王牌4 学习成果检测——本书【练一练】答案(光盘中) 659
王牌5 c++程序员职业规划(光盘中) 688
王牌6 c++程序员面试技巧(光盘中) 690
王牌7 c++常见面试题(光盘中) 693
王牌8 扫雷英雄榜——c++常见错误及解决方案(光盘中) 715
王牌9 优秀程序员之路——c++开发经验及技巧大汇总(光盘中) 730
C++从入门到精通
光盘服务联系方式: 020-38250260 客服QQ:4006604884
云图客服:
用户发送的提问,这种方式就需要有位在线客服来回答用户的问题,这种 就属于对话式的,问题是这种提问是否需要用户登录才能提问
Video Player
×
Audio Player
×
pdf Player
×
亲爱的云图用户,
光盘内的文件都可以直接点击浏览哦
无需下载,在线查阅资料!