《C++从入门到精通 项目案例版》PDF下载

  • 购买积分:17 如何计算积分?
  • 作  者:明日学院编著
  • 出 版 社:北京:中国水利水电出版社
  • 出版年份:2017
  • ISBN:9787517057796
  • 页数:597 页
图书介绍:全书共分17章,包括C语言概述、算法、数据类型、运算符与表达式、常用的数据输入/输出函数、选择结构程序设计、循环控制、数组、函数、指针、结构体和共用体、位运算、预处理、文件、存储管理、网络套接字编程和学生成绩管理系统。本书适合C++开发的入门学者阅读。主要人群:高校在校生、毕业生,相关培训机构学员,IT求职及入职新手,程序测试和维护人员,编程爱好者等。

第1章 初识C+ 1

1.1 C++历史背景 1

1.1.1 20世纪最伟大的发明——计算机 1

1.1.2 C+++发展历程 2

1.1.3 C+++中的杰出人物 2

1.2 Visual Studio 2010集成编译环境 3

1.2.1 安装Visual Studio 2010 4

1.2.2 卸载Visual Studio 2010 7

1.2.3 使用Visual Studio 2010创建一个C+++控制台程序 8

1.2.4 编写第一个C+++程序“HelloWorld!!” 11

1.3 如何使用本书代码 13

1.4 本章总结 14

第2章 与计算机交流的手段——数据的计算、输入与输出 15

2.1 C++语言基本要素 15

2.1.1 标识符 15

2.1.2 关键字 15

2.1.3 常量 16

2.1.4 变量 17

2.2 数据类型 17

2.2.1 数值类型 17

2.2.2 字符类型 19

2.2.3 布尔类型 19

2.3 数据输入与输出 19

2.3.1 格式输出函数 19

2.3.2 格式输入函数 22

2.3.3 标准输出输入流 26

2.3.4 流操作的控制 28

2.4 运算符 32

2.4.1 算术运算符 32

2.4.2 关系运算符 33

2.4.3 逻辑运算符 34

2.4.4 赋值运算符 35

2.4.5 位运算符 36

2.4.6 移位运算符 37

2.4.7 sizeof运算符 39

2.4.8 条件运算符 39

2.4.9 逗号运算符 40

2.5 结合性和优先级 40

2.6 表达式 41

2.6.1 算术表达式 42

2.6.2 关系表达式 42

2.6.3 条件表达式 42

2.6.4 赋值表达式 42

2.6.5 逻辑表达式 42

2.6.6 逗号表达式 43

2.6.7 表达式中的类型转换 44

2.7 语句 46

2.8 左值与右值 47

2.9 上机实践 48

2.9.1 计算三角形周长 48

2.9.2 计算三角形的边长 48

2.10 本章总结 49

第3章 重要的逻辑工具——判断与循环 50

3.1 条件判断 50

3.1.1 if语句 51

3.1.2 if-else语句 52

3.1.3 嵌套的if-else语句 54

3.1.4 使用条件运算符进行判断 57

3.1.5 switch语句 58

3.2 循环语句 62

3.2.1 while循环 62

3.2.2 do...while循环 64

3.2.3 while与do...while比较 66

3.2.4 for循环 67

3.3 循环控制 71

3.3.1 控制循环的变量 71

3.3.2 break语句 72

3.3.3 continue语句 73

3.3.4 goto语句 74

3.4 循环嵌套 75

3.5 上机实践 77

3.5.1 图书的位置 77

3.5.2 输出闰年 78

3.6 本章总结 79

第4章 程序的模块——函数 80

4.1 函数概述 80

4.1.1 函数的结构 80

4.1.2 函数的声明和使用 80

4.2 函数参数 82

4.2.1 形参与实参 82

4.2.2 默认参数 82

4.3 函数的返回值 83

4.3.1 返回值 83

4.3.2 空函数 84

4.4 函数的递归调用 84

4.5 重载函数 88

4.6 生存周期与作用域 89

4.6.1 变量的作用域 89

4.6.2 变量的生存周期 91

4.6.3 变量的储存方式 91

4.7 名称空间 95

4.8 上机实践 97

4.8.1 等差数列的和 97

4.8.2 提款机的记录 97

4.9 本章总结 98

第5章 内存访问——指针和引用 99

5.1 指针 99

5.1.1 变量与指针 99

5.1.2 指针运算符和取地址运算符 102

5.1.3 指针运算 103

5.1.4 空类型指针与指向空的指针 105

5.1.5 指针常量与指向常量的指针 106

5.2 指针与函数 107

5.2.1 指针传递参数 107

5.2.2 函数指针 109

5.2.3 空类型指针与函数 110

5.2.4 指针与函数返回值 111

5.3 指针与安全 112

5.3.1 内存的分配方式 112

5.3.2 内存安全 114

5.4 引用 117

5.4.1 引用的概述 117

5.4.2 右值引用 118

5.5 函数与引用 119

5.5.1 使用引用传递参数 119

5.5.2 指针与引用 120

5.5.3 右值引用传递参数 122

5.6 上机实践 123

5.6.1 水桶的平衡 123

5.6.2 分步计算 123

5.7 本章总结 124

第6章 一即是全,全即是一——数组和字符串 125

6.1 一维数组 125

6.1.1 一维数组的声明 125

6.1.2 一维数组的元素 125

6.1.3 一维数组的初始化 126

6.2 二维数组 127

6.2.1 二维数组的声明 127

6.2.2 二维数组元素的引用 128

6.2.3 二维数组的初始化 128

6.3 字符数组 130

6.3.1 声明一个字符数组 130

6.3.2 字符数组赋值方式 130

6.3.3 字符数组的一些说明 130

6.3.4 字符串和字符串结束标志 131

6.3.5 字符串处理函数 132

6.4 指针与数组 137

6.4.1 数组的存储 137

6.4.2 指针与一维数组 137

6.4.3 指针与二维数组 140

6.4.4 指针与字符数组 143

6.4.5 数组做函数参数 145

6.4.6 数组的动态分配 147

6.5 字符串类型 148

6.5.1 使用本地字符串类型string 148

6.5.2 连接string字符串 149

6.5.3 比较string字符串 150

6.5.4 string字符串和数组 151

6.6 上机实践 152

6.6.1 名字排序 152

6.6.2 查找数字 153

6.7 本章总结 153

第7章 面向对象——类的构造 154

7.1 学会面向对象的编程思想 154

7.1.1 面向对象与面向过程编程 155

7.1.2 面向对象编程 156

7.1.3 面向对象的特点 156

7.2 类与对象 157

7.2.1 类的声明与定义 157

7.2.2 头文件与源文件 159

7.2.3 类的实现 159

7.2.4 对象 163

7.2.5 访问类的成员 164

7.3 类的构造函数 165

7.3.1 构造函数的概念 165

7.3.2 构造函数的定义和使用 165

7.4 类的析构函数 168

7.5 类的静态成员 169

7.6 对象的指针 172

7.7 this指针 174

7.8 对象与复制 175

7.9 const对象 177

7.10 对象数组 179

7.11 重载运算符 182

7.11.1 算术运算符的重载 182

7.11.2 比较运算符重载 184

7.12 上机实践 185

7.12.1 用户与留言 185

7.12.2 挑选硬盘 186

7.13 本章总结 187

第8章 类的继承和派生 188

8.1 继承 188

8.1.1 类的继承 188

8.1.2 类成员的可访问性 190

8.1.3 继承后可访问性 192

8.1.4 构造函数访问顺序 194

8.1.5 子类显式调用父类构造函数 195

8.1.6 子类隐藏父类的成员函数 197

8.1.7 嵌套类 200

8.2 多重继承 201

8.2.1 多重继承的定义 201

8.2.2 二义性 203

8.2.3 多重继承的构造顺序 203

8.3 多态 205

8.3.1 虚函数概述 205

8.3.2 利用虚函数实现动态绑定 206

8.3.3 虚继承 207

8.4 抽象类 209

8.4.1 纯虚函数 209

8.4.2 实现抽象类中的成员函数 211

8.5 友元 212

8.5.1 友元概述 212

8.5.2 友元类 214

8.6 上机实践 215

8.6.1 学生类的设计 215

8.6.2 等边多边形 216

8.7 本章总结 217

第9章 量身定做——模板 218

9.1 函数模板 218

9.1.1 函数模板的定义 218

9.1.2 函数模板的作用 219

9.1.3 重载函数模板 221

9.2 类模板 222

9.2.1 类模板的定义与声明 222

9.2.2 简单类模板 224

9.2.3 默认模板参数 224

9.2.4 为具体类型的参数提供默认值 225

9.2.5 有界数组模板 226

9.3 模板的使用 228

9.3.1 定制类模板 228

9.3.2 定制类模板成员函数 230

9.3.3 模板部分定制 231

9.4 链表类模板 233

9.4.1 链表 233

9.4.2 链表类模板说明 235

9.4.3 类模板的静态数据成员 238

9.5 上机实践 239

9.5.1 除法函数模板 239

9.5.2 取得数据间最大值 239

9.6 本章总结 240

第10章 快刀斩乱麻——代码整理 241

10.1 结构体 241

10.2 数据类型别名——typedef 241

10.3 枚举类型 244

10.4 类型推导 247

10.5 异常处理 249

10.5.1 抛出异常 249

10.5.2 异常捕获 251

10.5.3 异常匹配 254

10.5.4 标准异常 255

10.6 宏定义 256

10.7 上机实践 259

10.7.1 扑克牌的牌面 259

10.7.2 使用参数宏求圆面积 260

10.8 本章总结 261

第11章 STL标准模板库 262

11.1 容器 262

11.1.1 容器与容器适配器 262

11.1.2 迭代器与容器 263

11.1.3 vector容器 263

11.1.4 list容器 267

11.1.5 关联容器 269

11.2 算法 271

11.2.1 for each函数 271

11.2.2 fill函数 272

11.2.3 sort函数 273

11.2.4 transform函数 274

11.3 lambda表达式 275

11.4 上机实践 279

11.4.1 迭代输出信息 279

11.4.2 计算平均值 279

11.5 本章总结 279

第12章 内存与硬盘的交流——文件操作 280

12.1 文件流 280

12.1.1 C+++中的流类库 280

12.1.2 类库的使用 281

12.1.3 ios类中的枚举常量 281

12.1.4 流的输入/输出 281

12.2 文件的打开 282

12.2.1 打开方式 282

12.2.2 默认打开模式 283

12.2.3 打开文件的同时创建文件 284

12.3 文件的读写 285

12.3.1 文件流 285

12.3.2 写文本文件 287

12.3.3 读取文本文件 288

12.3.4 二进制文件的读写 289

12.3.5 实现文件复制 290

12.4 文件指针移动操作 291

12.4.1 文件错误与状态 292

12.4.2 文件的追加 292

12.4.3 文件结尾的判断 293

12.4.4 在指定位置读写文件 295

12.5 文件和流的关联和分离 296

12.6 删除文件 298

12.7 上机实践 298

12.7.1 记录类的信息 298

12.7.2 读取文件信息 299

12.8 本章总结 300

第13章 综合实战——商品销售系统 301

13.1 商品类的设计 301

13.2 销售系统的设计 302

13.3 销售记录功能 313

13.4 本章总结 318

第14章 综合实战——吃豆子游戏 319

14.1 Windows窗口应用程序 319

14.1.1 建立Windows窗口应用程序 319

14.1.2 WinMain函数 321

14.1.3 Windows消息循环 324

14.1.4 常用绘图GDI 327

14.2 制作PacMan 330

14.2.1 PacMan程序框架初步分析 330

14.2.2 碰撞检测的实现 333

14.2.3 地图类的设计 337

14.2.4 数据更新 339

14.2.5 绘图 346

14.2.6 客户端设计 351

14.3 本章总结 357

第15章 坦克动荡游戏 358

15.1 开发背景 358

15.2 系统功能设计 358

15.2.1 系统功能结构 358

15.2.2 系统业务流程 359

15.3 创建项目 360

15.3.1 开发环境要求 360

15.3.2 游戏所用资源 360

15.3.3 创建新项目 361

15.4 创建游戏框架 366

15.4.1 建立游戏主窗口 367

15.4.2 游戏核心框架类的建立 371

15.4.3 增加鼠标响应 372

15.4.4 在游戏窗口中使用游戏核心功能 373

15.5 绘图库GDIPlus的使用 375

15.5.1 绘图库的引入 376

15.5.2 绘图库的初始化 376

15.5.3 在屏幕上“画”游戏帧数 376

15.5.4 引入图片资源 379

15.5.5 画出游戏菜单背景 380

15.6 游戏功能的详细设计及使用举例 382

15.6.1 游戏对象概述 382

15.6.2 游戏中可移动对象设计 382

15.6.3 设计游戏菜单 389

15.6.4 单人游戏与双人对战 394

15.6.5 设计坦克及子弹(要求复制源文件) 397

15.6.6 画出移动的坦克 400

15.6.7 自动寻路与碰撞检测 403

15.6.8 画出游戏地图,控制运行轨迹 405

15.7 实现完整的游戏 409

15.7.1 引进所有游戏对象声明 411

15.7.2 声明核心对象之CGame类的公有方法 412

15.7.3 声明私有方法 412

15.7.4 实现公有方法 416

15.7.5 实现初始化方法 417

15.7.6 实现游戏逻辑处理方法 421

15.7.7 实现游戏绘图处理方法 426

15.7.8 实现辅助方法 429

15.7.9 在主窗口中完成全部游戏功能 431

15.8 本章总结 434

第16章 快乐吃豆子游戏 435

16.1 开发背景 435

16.2 系统功能设计 435

16.2.1 系统功能结构 435

16.2.2 业务流程图 436

16.3 创建项目 437

16.3.1 开发环境要求 437

16.3.2 使用Visual Studio 2015创建Win32窗口程序 437

16.3.3 制作游戏窗口 440

16.3.4 建立游戏循环 442

16.4 使用GDI绘图 443

16.4.1 画点 443

16.4.2 画线段 444

16.4.3 画矩形 446

16.4.4 画圆 447

16.4.5 画弧形 448

16.4.6 综合应用一:画玩家 450

16.5 地图及关卡制作 454

16.5.1 地图类设计 454

16.5.2 第一关地图的设计 455

16.5.3 第二关地图的设计 456

16.5.4 第三关地图的设计 456

16.5.5 地图类的实现 456

16.5.6 游戏隐藏后门的实现 457

16.5.7 第一关地图的实现 459

16.5.8 第二关地图的实现 460

16.5.9 第三关地图的实现 462

16.5.10 使用地图 463

16.6 游戏可移动对象设计与实现 465

16.6.1 可移动对象的设计 465

16.6.2 玩家对象的设计 466

16.6.3 敌军对象的设计 467

16.6.4 可移动对象的实现 468

16.6.5 玩家对象的实现 472

16.6.6 敌军对象的实现 475

16.6.7 完成整个游戏 480

16.7 本章总结 485

第17章 365系统加速器 486

17.1 开发背景 486

17.2 系统功能设计 486

17.2.1 系统功能结构 486

17.2.2 业务流程图 487

17.3 系统开发环境要求 488

17.4 关键技术 488

17.4.1 自绘标题栏 488

17.4.2 获得任务列表 494

17.4.3 获得正在运行的进程 496

17.4.4 为列表视图控件关联右键菜单 497

17.4.5 清空回收站 498

17.4.6 清空“运行”中的历史记录 498

17.4.7 清空IE历史记录 499

17.4.8 调用控制面板工具 499

17.5 主窗体设计 500

17.5.1 主窗体界面预览 500

17.5.2 主窗体界面布局 500

17.5.3 实现子窗口切换功能 501

17.5.4 绘制主窗口背景图片 503

17.6 控制面板操作模块 504

17.6.1 控制面板界面预览 504

17.6.2 控制面板界面布局 505

17.6.3 实现控制面板各部分功能 505

17.7 磁盘空间整理模块 508

17.7.1 磁盘空间整理模块概述 508

17.7.2 磁盘空间整理界面布局 508

17.7.3 功能实现 509

17.8 垃圾文件清理模块 512

17.8.1 垃圾文件清理模块概述 512

17.8.2 垃圾文件清理模块界面布局 513

17.8.3 实现垃圾文件清理功能 513

17.9 系统任务管理模块 516

17.9.1 概述 516

17.9.2 系统任务管理模块界面布局 516

17.9.3 进程与窗口管理 517

17.10 本章总结 520

第18章 Q友 521

18.1 开发背景 521

18.2 系统功能设计 521

18.2.1 系统功能结构 521

18.2.2 业务流程图 522

18.3 系统开发环境要求 523

18.4 Q友软件概述 523

18.4.1 系统分析 523

18.4.2 总体设计 523

18.5 数据库设计 524

18.5.1 数据表的建立 524

18.5.2 数据库操作流程 525

18.6 服务器端功能设计 525

18.6.1 服务器端主窗体设计 525

18.6.2 服务器端网络通信 527

18.6.3 服务器端账户管理模块 535

18.6.4 服务器端系统组织结构管理模块 540

18.7 客户端功能设计 542

18.7.1 客户端登录模块 542

18.7.2 客户端主窗体模块 545

18.7.3 客户端消息发送模块 548

18.8 本章总结 557

第19章 股票分析仿真系统 558

19.1 开发背景 558

19.2 系统功能设计 558

19.2.1 系统功能结构 558

19.2.2 业务流程图 559

19.3 系统开发环境要求 560

19.4 数据库与数据表设计 560

19.4.1 数据库分析 560

19.4.2 创建数据库 561

19.4.3 数据库表介绍 563

19.5 数据库操作模块设计 564

19.5.1 数据模型类 564

19.5.2 数据库操作类 567

19.5.3 对数据库表的操作 568

19.6 登录模块设计 573

19.6.1 设计登录对话框 573

19.6.2 登录功能的实现 574

19.6.3 退出登录窗口 575

19.7 系统主窗体设计 575

19.7.1 主窗体和各模块功能组织方式 576

19.7.2 显示各功能窗口 577

19.8 公式选股功能实现 578

19.8.1 界面设计 578

19.8.2 实现公式选股 579

19.9 绘制股票目数据K线图 584

19.9.1 自定义控件 584

19.9.2 K线图的更新 585

19.10 其他主要功能模块 586

19.10.1 基础数据维护模块 586

19.10.2 导入导出数据模块 587

19.10.3 品种维护模块 588

19.10.4 选择品种模块 589

19.10.5 历史数据查询模块 590

19.10.6 即时数据模块 590

19.10.7 金融计算器模块 592

19.10.8 屏幕截图模块 592

19.10.9 系统设置模块 593

19.11 本章总结 594

开发资源库使用说明 595