描述
开 本: 16开纸 张: 胶版纸包 装: 平装是否套装: 否国际标准书号ISBN: 9787567787445丛书名: 明日外星人
一本能让初学者通过项目实战开发学会编程的超值图书,精选实用项目,采用主流C 开发技术,让读者体验编程乐趣、获得实战经验,配同步视频教程和源代码
《C 项目开发实战入门》以坦克动荡游戏、桌面破坏王游戏、快乐吃豆子游戏、植物大战僵尸修改器、软件注册机、365系统加速器、Q友——做你自己的QQ和股票分析仿真系统共8个项目为案例,从软件工程的角度出发,按照项目的开发顺序,系统、全面地介绍了项目开发流程,从开发背景、系统功能分析,业务流程分析、数据库建模到项目开发,每一过程都进行了详细讲解,旨在使读者真正获得程序开发经验,提高项目开发能力。《C 项目开发实战入门》应用的主要技术及知识点有:GDIPlus、 碰撞检测、自动寻路实现、鼠标消息处理、Win32 绘图、键盘消息处理实现、逆向工程 、内联汇编 DLL 注入实现、注册表操作、加密算法 、系统信息获取实现、界面美化、文件操作 、系统进程管理、窗口管理实现、SQL Server、MFC 、自绘K线图 、网站数据抓取实现、XML、Socket 编程实现。
目 录
Content
C 开发之旅 1
第1章 坦克动荡游戏(GDIPlus 碰撞检测 自动寻路实现) 3
预备知识视频讲解:1 小时 56 分钟 项目开发视频讲解:3 小时 17 分钟 代码解释(在线扩展讲解):23段
1.1 开发背景 6
1.2 系统功能设计 6
1.2.1 系统功能结构 6
1.2.2 系统业务流程 7
1.3 创建项目 7
1.3.1 开发环境要求 7
1.3.2 游戏所用资源介绍 7
1.3.3 创建新项目 9
1.4 创建游戏框架 14
1.4.1 创建游戏主窗口 14
1.4.2 游戏核心框架类的建立 19
1.4.3 增加鼠标响应 21
1.4.4 在游戏窗口中使用游戏核心功能 22
1.5 绘图库GDIPlus的使用 24
1.5.1 绘图库的引入 24
1.5.2 绘图库的初始化 25
1.5.3 在屏幕上“画”游戏帧数 25
1.5.4 引入图片资源 28
1.5.5 画出游戏菜单背景 29
1.6 游戏功能的详细设计及使用举例 30
1.6.1 游戏对象概述 31
1.6.2 游戏中可移动对象的设计 31
1.6.3 设计游戏菜单 38
1.6.4 人机大战与双人大战 43
1.6.5 设计坦克及子弹 46
1.6.6 画出移动的坦克 49
1.6.7 自动寻路与碰撞检测 52
1.6.8 画出游戏地图,控制运行轨迹 54
1.7 实现完整的游戏 59
1.7.1 引进所有游戏对象的声明 61
1.7.2 声明核心对象
—— CGame类的公有方法 61
1.7.3 声明私有方法 62
1.7.4 实现公有方法 66
1.7.5 实现初始化方法 67
1.7.6 实现游戏逻辑处理方法 71
1.7.7 实现游戏绘图处理方法 78
1.7.8 实现辅助方法 80
1.7.9 在主窗口中完成全部游戏功能 83
1.8 一起来找茬 86
1.9 本章总结 88
攻占C 大陆 89
第2章 桌面破坏王游戏(鼠标消息处理 GDIPlus 实现) 91
预备知识视频讲解:1 小时 15 分钟 项目开发视频讲解:3 小时 16 分钟 代码解释(在线扩展讲解):13段
2.1 开发背景 94
2.2 系统功能设计 94
2.2.1 系统功能结构 94
2.2.2 系统业务流程 94
2.3 游戏主框架的设计与实现 95
2.3.1 开发环境要求 95
2.3.2 使用Visual Studio 2015
建立项目 95
2.3.3 使程序窗口遮挡整个桌面 101
2.4 重要工具模块设计 104
2.4.1 资源自动释放模块设计 104
2.4.2 屏幕截图工具设计 106
2.4.3 游戏计时器设计 114
2.5 绘图库的使用 117
2.5.1 引入绘图库“GDIPlus”头文件 117
2.5.2 初始化绘图库 118
2.5.3 绘制屏幕一角 118
2.6 处理鼠标消息 120
2.6.1 鼠标消息分析 120
2.6.2 增加消息处理函数 120
2.6.3 测试鼠标消息 124
2.7 游戏功能的总体设计 125
2.7.1 游戏功能预览 125
2.7.2 功能分析 126
2.7.3 游戏调度器CGame类设计 126
2.7.4 引入资源图片 140
2.7.5 实现工具及破坏标记接口 141
2.8 游戏菜单的设计与实现 146
2.8.1 盒子的实现 146
2.8.2 “飞出”的工具 154
2.8.3 显示游戏菜单 161
2.9 忍者工具的设计与实现 164
2.9.1 忍者破坏标记的设计与实现 164
2.9.2 忍者的设计与实现 167
2.9.3 使用忍者破坏桌面 180
2.10 粉刷匠工具的设计与实现 183
2.10.1 粉刷匠粉刷痕迹的设计与实现 183
2.10.2 粉刷匠的设计与实现 185
2.10.3 使用粉刷匠破坏桌面 192
2.11 锤子工具的设计与实现 193
2.11.1 破碎效果的设计 193
2.11.2 锤子工具的设计 198
2.11.3 实现碎屏破坏效果 205
2.12 橡皮擦工具的设计与实现 206
2.12.1 橡皮擦擦除痕迹的设计与实现 206
2.12.2 橡皮擦的设计与实现 211
2.12.3 使用橡皮擦擦除屏幕 216
2.13 一起来找茬 217
2.14 本章总结 219
攻占C 大陆 221
第 3 章 快乐吃豆子游戏(Win32 绘图 键盘消息处理实现) 223
预备知识视频讲解:1 小时 5 分钟 项目开发视频讲解:1 小时 59 分钟 代码解释(在线扩展讲解):19段
3.1 开发背景 226
3.2 系统功能设计 226
3.2.1 系统功能结构 226
3.2.2 系统业务流程 226
3.3 创建项目 227
3.3.1 开发环境要求 227
3.3.2 使用Visual Studio 2015创建
win32窗口程序 227
3.3.3 制作游戏窗口 231
3.3.4 建立游戏循环 233
3.4 使用 GDI绘图 234
3.4.1 画点 234
3.4.2 画 线段 236
3.4.3 画 矩形 236
3.4.4 画圆 239
3.4.5 画 弧线 240
3.4.6 综合应用:画玩家 241
3.5 地图及关卡制作 246
3.5.1 地图类设计 246
3.5.2 关地图的设计 247
3.5.3 第二关地图的设计 248
3.5.4 第三关地图的设计 248
3.5.5 地图类的实现 248
3.5.6 游戏隐藏后门的实现 250
3.5.7 关地图的实现 251
3.5.8 第二关地图的实现 253
3.5.9 第三关地图的实现 255
3.5.10 使用地图 256
3.6 游戏可移动对象设计与实现 258
3.6.1 可移动对象的设计 258
3.6.2 玩家对象的设计 260
3.6.3 敌军对象的设计 260
3.6.4 可移动对象的实现 262
3.6.5 玩家对象的实现 266
3.6.6 敌军对象的实现 269
3.6.7 完成整个游戏 274
3.7 一起来找茬 280
3.8 本章总结 282
攻占C 大陆 283
第4 章 植物大战僵尸修改器(逆向工程 内联汇编 DLL 注入实现) 285
代码解释(在线扩展讲解):9 段
4.1 开发背景 288
4.2 系统功能设计 288
4.2.1 系统功能结构 288
4.2.2 系统业务流程 289
4.3 系统开发环境要求 289
4.4 修改器原理介绍 289
4.4.1 跨进程内存操作 290
4.4.2 DLL注入技术介绍 290
4.4.3 进程内的内存操作 290
4.4.4 内联汇编及代码调用 290
4.5 项目目录结构预览 292
4.6 修改器界面开发 293
4.6.1 建立项目 293
4.6.2 删除多余控件 294
4.6.3 完成修改器主界面 294
4.6.4 添加进程浏览对话框 295
4.7 修改任何版本游戏的阳光数量 296
4.7.1 列出所有进程 296
4.7.2 打开游戏进程 297
4.7.3 搜索阳光数量、地址 298
4.7.4 修改阳光数量 300
4.7.5 使用方法 301
4.8 注入游戏中的动态链接库 306
4.8.1 动态链接库原理概述 306
4.8.2 创建DLL项目 306
4.8.3 修改器界面介绍 308
4.8.4 注入DLL到游戏进程 308
4.9 修改器核心功能的实现 309
4.9.1 键呼出修改器窗口 310
4.9.2 任意修改阳光和金钱 311
4.9.3 调用种植、铲除功能 313
4.9.4 自动收集阳光和金钱 315
4.9.5 僵尸全部出动 316
4.9.6 忽略地形,重叠种植 317
4.9.7 种植无冷却时间 319
4.10 本章总结 320
第5章 软件注册机(注册表操作 加密算法 系统信息获取实现) 321
代码解释(在线扩展讲解):10 段
5.1 开发背景 324
5.2 系统功能设计 324
5.2.1 系统功能结构 324
5.2.2 系统业务流程 324
5.3 系统开发环境要求 325
5.4 关键技术 325
5.4.1 获取CPU序列号 325
5.4.2 获取磁盘序列号 326
5.4.3 获取网卡地址 328
5.4.4 生成注册码 329
5.4.5 根据注册表中的数据
限制试用次数 329
5.5 设计注册码生成器 330
5.5.1 注册码生成器功能概述 330
5.5.2 注册码生成器界面设计 331
5.5.3 获取系统信息 331
5.5.4 生成注册码 334
5.6 注册软件主窗体 335
5.6.1 注册软件主窗体概述 335
5.6.2 设计主窗体界面 336
5.6.3 验证试用次数 336
5.7 软件注册功能 337
5.7.1 注册功能概述 337
5.7.2 设计注册界面 338
5.7.3 实现软件注册过程 338
5.8 注册向导模块设计 341
5.8.1 注册向导概述 341
5.8.2 注册向导界面设计 341
5.8.3 实现注册向导功能 342
5.9 本章总结 344
第6章 365 系统加速器(界面美化 文件操作 系统进程管理 窗口管理实现) 345
代码解释(在线扩展讲解):16 段
6.1 开发背景 348
6.2 系统功能设计 348
6.2.1 系统功能结构 348
6.2.2 系统业务流程 348
6.3 系统开发环境要求 349
6.4 关键技术 349
6.4.1 自绘标题栏 349
6.4.2 获取任务列表 356
6.4.3 获取正在运行的进程 358
6.4.4 为列表视图控件关联右键菜单 359
6.4.5 清空回收站 360
6.4.6 清空“运行”中的历史记录 361
6.4.7 清空IE历史记录 361
6.4.8 调用控制面板工具 362
6.5 主窗体设计 363
6.5.1 主窗体界面预览 363
6.5.2 主窗体界面布局 363
6.5.3 实现子窗口切换功能 364
6.5.4 绘制主窗口背景图片 366
6.6 控制面板操作模块 367
6.6.1 控制面板操作模块界面预览 367
6.6.2 控制面板操作模块界面布局 368
6.6.3 实现控制面板的各部分功能 368
6.7 磁盘空间整理模块 371
6.7.1 磁盘空间整理模块概述 371
6.7.2 磁盘空间整理模块界面布局 371
6.7.3 功能实现 372
6.8 垃圾文件清理模块 376
6.8.1 垃圾文件清理模块概述 376
6.8.2 垃圾文件清理模块界面布局 377
6.8.3 实现垃圾文件清理功能 377
6.9 系统任务管理模块 380
6.9.1 系统任务管理模块概述 380
6.9.2 系统任务管理模块界面布局 380
6.9.3 进程与窗口管理 380
6.10 本章总结 384
第7 章 Q 友—— 做你自己的QQ(MFC
XML Socket 编程实现) 385
代码解释(在线扩展讲解):12 段
7.1 开发背景 388
7.2 系统功能设计 388
7.2.1 系统功能结构 388
7.2.2 系统业务流程 388
7.3 系统开发环境要求 389
7.4 Q友软件概述 389
7.4.1 系统分析 389
7.4.2 总体设计 390
7.5 数据库设计 390
7.5.1 数据表的建立 390
7.5.2 数据库操作流程 391
7.6 服务端功能设计 392
7.6.1 服务端主窗体设计 392
7.6.2 服务端网络通信 394
7.6.3 服务端账户管理模块 402
7.6.4 服务端系统组织结构管理模块 407
7.7 客户端功能设计 410
7.7.1 客户端登录模块 410
7.7.2 客户端主窗体模块 413
7.7.3 客户端消息发送模块 417
7.8 本章总结 426
第 8 章 股票分析仿真系统(SQL Server
MFC 自绘 K 线图 网站数据抓取实现) 428
代码解释(在线扩展讲解):10 段
界面预览. 429
项目功能应用技术预览 431
攻占C 大陆 433
特别提醒:
亲爱的读者朋友,为了使您更好地学习编程, 在随书附赠的光盘中提供了一章拓展内容《股票分析仿真系统》,如果您学有余力,可以进一步进行学习。
评论
还没有评论。