第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章 ××中学成绩管理系统 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