目 录
第1章 俄罗斯方块游戏 1
1.1 赢在规划 2
1.1.1 赢在起点——程序员的职业
规划 2
1.1.2 赢在项目开发伊始——做好
项目分析 2
1.2 第一个项目 4
1.3 系统分析 5
1.3.1 功能分析 5
1.3.2 结构规划 6
1.3.3 核心处理模块分析 6
1.3.4 设计界面 7
1.4 编码工作的第一步——单机版 10
1.4.1 准备素材 10
1.4.2 添加新类 10
1.4.3 系统类 11
1.4.4 编码实现函数 11
1.5 编码工作的第二步——对战版 24
1.6 编码工作的第三步——配合版 29
1.7 编码工作的第四步——网络版 34
1.8 项目调试 40
第2章 学校图书馆管理系统 43
2.1 训练程序员的基本功 44
2.1.1 IT界中的两类开发者 44
2.1.2 赢在自身——打造扎实的
基础 44
2.2 新的项目 45
2.3 系统概述和总体设计 46
2.3.1 系统需求分析 46
2.3.2 系统运行流程 47
2.4 数据库设计 48
2.4.1 后台数据库及数据库访问
接口的选择 48
2.4.2 数据库结构的设计 48
2.5 系统框架设计 51
2.5.1 创建工程及设计主界面 51
2.5.2 为数据库表添加对应的类 53
2.5.3 系统登录模块的设计 57
2.6 基本信息管理模块 60
2.6.1 院系信息管理 60
2.6.2 专业信息管理 64
2.6.3 学生信息管理 68
2.6.4 图书信息管理 70
2.7 用户管理模块 72
2.7.1 用户编辑对话框 72
2.7.2 用户管理对话框 73
2.7.3 修改密码对话框 74
2.8 图书借阅和归还模块 76
2.8.1 图书借阅 76
2.8.2 图书归还 78
2.8.3 图书借阅与归还管理 79
2.9 项目调试 80
第3章 企业人事管理系统 83
3.1 程序员职场生存必杀技 84
3.1.1 程序员的生存现状 84
3.1.2 欧美企业、日韩企业和中资
企业的文化 84
3.1.3 赢在职场——修炼程序员
职场秘籍 85
3.2 新的项目 87
3.3 需求分析 88
3.3.1 系统分析 88
3.3.2 系统目标 88
3.4 功能模块划分 88
3.5 搭建开发环境 89
3.6 设计数据库 90
3.6.1 E-R图 90
3.6.2 设计数据表 91
3.7 编码工作 95
3.7.1 设计员工模块 95
3.7.2 考勤模块 105
3.7.3 设计工资模块 111
3.7.4 用户管理模块 115
3.7.5 数据库备份模块 116
3.7.6 数据库还原模块 117
3.7.7 用户登录模块 118
3.8 项目测试 119
第4章 安全卫士防火墙系统 123
4.1 企业的沟通之道 124
4.1.1 开发公司的部门现状 124
4.1.2 赢在公司——探讨部门之间的
沟通之道 125
4.2 第一个盈利项目 126
4.2.1 什么是防火墙 126
4.2.2 防火墙的类型 126
4.2.3 防火墙的结构 127
4.2.4 实现防火墙的几种方式 129
4.2.5 防火墙编程 129
4.3 一个简单的防火墙程序 132
4.3.1 原理 133
4.3.2 具体实现 133
4.4 网络防火墙系统 137
4.4.1 设计界面 137
4.4.2 具体实现 138
第5章 视频播放器 159
5.1 体验语言之美 160
5.1.1 程序员经常忽视的问题 160
5.1.2 赢在代码本身——体现
代码之美 160
5.2 新的项目 161
5.3 项目规划分析 162
5.3.1 需求分析 162
5.3.2 可行性分析 163
5.3.3 编写项目计划书 164
5.4 搭建开发环境 166
5.4.1 搭建DirectShow SDK开发
环境 166
5.4.2 安装Visual Studio 2013开发
环境 168
5.5 设计FilterGraph结构 170
5.5.1 设计FilterGraph的结构 171
5.5.2 实现GraphEdit模拟 171
5.6 设计界面 174
5.7 具体编码 180
5.7.1 CDXGraph类的初始化 180
5.7.2 创建Graph滤波器链表 182
5.7.3 设计图像窗口 183
5.7.4 媒体播放控制 184
5.7.5 视频全屏显示 187
5.7.6 抓图保存 187
5.7.7 播放控制 188
5.8 项目调试 197
第6章 专业理财系统 199
6.1 架构中的可扩展性 200
6.1.1 软件的发展是一个不断完善的
过程 200
6.1.2 赢在项目——让程序具有
更好的可扩展性 200
6.2 新的项目 201
6.3 系统分析 203
6.3.1 需求分析 203
6.3.2 可行性分析 203
6.4 系统设计 204
6.4.1 系统目标 204
6.4.2 系统模块的结构 204
6.5 设计数据库 205
6.5.1 设计管理系统的?E-R?图 205
6.5.2 设计数据库表 206
6.6 设计系统的主框架 207
6.7 具体编码 211
6.7.1 用户管理模块 211
6.7.2 收支信息模块 218
6.7.3 理财分析模块的功能分析 228
6.7.4 设计理财分析模块的界面 228
6.7.5 理财分析模块的编码实现 229
6.8 项目调试 233
第7章 仿QQ聊天系统 237
7.1 模块化编程 238
7.1.1 谈模块化设计思想 238
7.1.2 赢在模块化思想——实现
高内聚和低耦合的代码 239
7.2 系统背景介绍 241
7.3 系统分析 241
7.3.1 系统需求分析 242
7.3.2 总体设计 242
7.3.3 系统文件概述 245
7.4 服务器端编码 246
7.4.1 设计服务器界面 247
7.4.2 用户信息管理模块 247
7.4.3 客户端请求信息的处理 252
7.4.4 系统群消息发送功能 255
7.5 客户端编码 256
7.5.1 设计客户端界面 256
7.5.2 基本信息与消息的设计 258
7.5.3 线程函数的设计与实现 258
7.5.4 与服务器端的交互功能 263
7.5.5 客户端之间的交互 269
7.6 系统调试 276
第8章 XX中学成绩管理系统 277
8.1 程序的可移植性 278
8.1.1 什么是程序的可移植性 278
8.1.2 赢在技术——实现开发工具
跨平台转换 278
8.2 新的项目 279
8.3 系统分析 280
8.3.1 开发背景 280
8.3.2 需求分析 280
8.3.3 功能描述 280
8.4 模块规划 281
8.5 搭建数据库 282
8.6 前期编码——设计公共类 286
8.7 设计界面 287
8.8 后期编码 288
8.8.1 科目信息管理模块 288
8.8.2 学生信息管理模块 295
8.8.3 录入学生成绩模块 299
8.8.4 成绩等级管理模块 302
8.8.5 学生违规查询模块 310
8.8.6 报表打印模块 312
8.9 项目调试 316
8.10 将VC++ 6.0项目转换为
Visual Studio 2013项目 318
第9章 图像处理系统 323
9.1 考虑所有可能会发生的情形 324
9.1.1 一段房贷代码所引发的
思考 324
9.1.2 赢在高质量——提高程序的
健壮性 324
9.2 新的项目 326
9.3 系统设计 327
9.4 功能模块划分 327
9.5 设计界面 328
9.6 设计类 330
9.6.1 编写位图类 330
9.6.2 CColorGrid类 333
9.6.3 CPaintParambar类 333
9.6.4 主框架类 334
9.6.5 绘图工具条类 335
9.7 具体编码 336
9.7.1 文件处理模块 336
9.7.2 工具条和状态条 338
9.7.3 橡皮筋矩形选块和画图 343
9.7.4 绘制曲线和写字 352
9.7.5 拖动一个选块 361
9.7.6 粘贴板 362
9.8 项目调试 365
第10章 视频监控系统 369
10.1 做好项目管理者 370
10.1.1 软件工程师到项目管理者
之路 370
10.1.2 赢在管理——运转一个
高效的开发团队 370
10.2 新的项目 373
10.3 系统分析 373
10.3.1 背景 373
10.3.2 可行性分析 374
10.3.3 编写项目计划书 375
10.4 系统设计 376
10.5 数据库设计 378
10.5.1 数据库分析 378
10.5.2 数据库概念设计 379
10.5.3 数据库逻辑结构的设计 379
10.6 设计公共类 380
10.6.1 实现按钮修饰 380
10.6.2 特殊消息处理 382
10.6.3 修饰子类化处理 384
10.6.4 定义安装钩子的函数 384
10.6.5 定义卸载钩子的函数 385
10.7 设计主窗体 385
10.8 具体编码 400
10.8.1 管理员登录模块 400
10.8.2 监控管理模块 403
10.8.3 设计广角自动监控模块 407
10.8.4 视频回放模块 413
10.9 设计窗体布局 416
10.10 项目调试 423
第11章 网络电话系统 425
11.1 算法是程序的灵魂 426
11.1.1 什么是算法 426
11.1.2 赢在技术沉淀——计算机
中的算法 427
11.2 网络电话系统基础 430
11.2.1 什么是网络电话 430
11.2.2 网络电话的原理 430
11.2.3 实现方式 431
11.3 设计界面 431
11.3.1 准备素材 432
11.3.2 创建工程 432
11.4 具体编码 433
11.4.1 定义公共变量 433
11.4.2 创建窗口函数 436
11.4.3 设置音频设备 438
11.4.4 网络通信 441
11.4.5 套接字响应函数 447
第12章 Foxmail转发系统 451
12.1 走向架构师之路 452
12.1.1 什么是架构师 452
12.1.2 赢在架构——如何成为一名
架构师 452
12.1.3 赢在架构——如何成就一个
美丽的架构 453
12.2 背景介绍——邮件是一种全新的
通信方式 454
12.2.1 电子邮件的原理 455
12.2.2 邮件协议 455
12.3 一个Foxmail项目 456
12.3.1 编写类 456
12.3.2 设计界面 460
12.4 具体编码 465
12.4.1 实现CBase64类 465
12.4.2 实现连接类CSMTP 467
12.4.3 实现邮件管理类
CMailMessage 471
12.4.4 实现附件处理功能 474
12.5 系统调试 479
