标题：Visual C++编程之道
图书信息
书名：《Visual C++编程之道》  出版社：人民邮电出版社 
ISBN：978-7-115-24640-0  
出版时间：2011-03-01  
作者：明日科技 刘锐宁 梁水 李伟明
定价：59元RMB
内容简介
本书是一本帮助程序员提高编程素养的图书，书中结合开发人员多年的编程经验和感悟，介绍了程序开发中必知必会的关键细节、不可忽略的技术陷阱、常见的谬误以及经典的应用实例。全书分为6篇，共17章，全面介绍了学习和应用Visual C++进行程序开发的各种知识，主要包括Visual C++语言关键技术、文件、网络、线程、图形图像、算法、方案和数据库应用等相关技术细节、技巧以及实施方案。
本书附有配套DVD光盘，光盘中提供了书中全部实例和项目的源代码，这些源代码都是经过作者精心调试通过的，保证能够在Windows XP、Windows Server 2003及Windows 7操作系统下编译和运行。
本书非常适合大中专院校在校生、毕业生、求职者、编程爱好者学习，同时也可以作为想要学习编程的初学者的指导用书。
图书目录
第1篇　编程经验与感悟
第1章　细节完美——编程者的良好习惯　2
细节01　培养编程兴趣　2
细节02　要重视实践练习　3
细节03　学习编程要打好基本功　4
细节04　善于总结编程经验　5
细节05　多向他人学习　5
细节06　学会独立思考和解决问题　6
第2章　编程感悟——逐步提高编程能力　7
感悟01　编写程序前首先进行需求分析　7
感悟02　软件需求规格说明书　9
感悟03　程序书写要规范化　9
感悟04　将项目模块化　12
感悟05　数据库设计经验谈　13
感悟06　调试的重要意义　15
第3章　展望未来——程序人生的规划　17
感悟01　计算机的应用领域　17
感悟02　如何选择编程语言　18
感悟03　程序员的必备技能　19
感悟04　要有学好编程的坚定信心　20
感悟05　程序员的生涯规划　21
第2篇　陷阱与谬误
第4章　细说开发人员不可忽略的21个技术陷阱　24
陷阱01　while(condition);以分号结尾　24
陷阱02　初始化静态成员的陷阱　25
陷阱03　复合赋值造成的经济损失　27
陷阱04　增量、减量运算符在前在后　28
陷阱05　if语句没加大括号“{”和“}”　29
陷阱06　缺少break的switch语句　31
陷阱07　同名形参变量为成员变量赋值　33
陷阱08　使用循环语句不慎产生死循环　36
陷阱09　相等运算符重载造成的陷阱　38
陷阱10　强制转换的负面影响　40
陷阱11　被覆盖的父类变量　41
陷阱12　溢出错误　44
陷阱13　无法执行循环体内部的语句块　45
陷阱14　死循环　46
陷阱15　数组下标越界　47
陷阱16　数组维数错误　47
陷阱17　局部变量与全局变量同名　48
陷阱18　向流中读写结构　49
陷阱19　自定义string类型导致函数无效　51
陷阱20　数组的定义与初始化　52
陷阱21　传递类数组　53
第5章　细说开发人员意识中的21个常见谬误　54
谬误01　使用&&、||和&、|作用于布尔型值效率相同　54
谬误02　类中不能创建私有构造方法　55
谬误03　为了提高编程效率而不必关心代码的书写风格　56
谬误04　设计数据库表时不必定义索引　57
谬误05　重载就是重写　57
谬误06　线程就是进程　59
谬误07　对象间赋值只能重载等号运算符　60
谬误08　类对象可在离开作用范围后自动释放　61
谬误09　delete与delete[]相同　62
谬误10　结构大小等于各数据类型之和　62
谬误11　函数只能返回一个值　63
谬误12　两个类可以互为成员变量　64
谬误13　无法在指定的内存位置创建对象　65
谬误14　类方法不能作为线程函数　66
谬误15　常量方法不能修改类成员　67
谬误16　在构造函数中初始化静态成员　67
谬误17　free和delete释放指针后指针置空　68
谬误18　使用delete可以释放堆中分配的数组　68
谬误19　使用auto_ptr就不必担心内存泄露　69
谬误20　使用非零对数组整体赋值　70
谬误21　位图数据是按照红绿蓝顺序存储的　70
第3篇　技术细节
第6章　细说Visual C++语言基础细节43例　72
细节01　合理使用注释　72
细节02　数值类型转换　74
细节03　静态转换　75
细节04　sizeof运算符的使用　76
细节05　逗号表达式　78
细节06　条件表达式　78
细节07　枚举类型　79
细节08　共用体类型　80
细节09　goto语句　81
细节10　return语句　82
细节11　位运算符　83
细节12　内存中的数组　85
细节13　死循环　86
细节14　定义和调用函数　87
细节15　设置默认值参数　88
细节16　数组作为函数的参数　89
细节17　指针或引用作为函数的参数　91
细节18　使用省略号作为函数的参数　92
细节19　函数的重载　93
细节20　函数指针　95
细节21　类的定义　96
细节22　类成员的访问权限　97
细节23　为什么使用默认构造函数　99
细节24　重载构造函数　101
细节25　析构函数也很有用　102
细节26　单一继承　103
细节27　多重继承　105
细节28　隐藏的this指针　106
细节29　虚函数的使用　107
细节30　纯虚函数的使用　111
细节31　内联方法的使用　112
细节32　嵌套类的使用　113
细节33　局部类的使用　114
细节34　类的静态数据成员　115
细节35　友员类的使用　116
细节36　友员方法的使用　117
细节37　无法修改数据成员的方法　118
细节38　类模板的使用　119
细节39　如何捕捉程序中的错误　121
细节40　如何在发生逻辑错误时抛出异常　122
细节41　可选的C++关键字　124
细节42　指针引用作为函数参数　125
细节43　构造函数的隐式类型转换　126
第7章　细说开发人员必知必会的39个开发细节　128
细节01　访问带密码的Access数据库　128
细节02　事物在多表操作中的重要性　129
细节03　利用存储过程生成唯一ID　130
细节04　将图片数据存储到数据库　131
细节05　将数据库中的图片数据还原为图片　132
细节06　各种数据库合并列值的方法　134
细节07　将数据表中指定条件的记录优先显示　134
细节08　阻止用户长时间对数据的锁定　134
细节09　除去违反数据完整性约束的记录　135
细节10　级联更新的意义　135
细节11　通过视图简化复杂查询　136
细节12　空值NULL与空字符串区别　137
细节13　将数据表中的空值转换为有意义的数据　137
细节14　按照身份证中的年月日进行排序　138
细节15　使用线程同时进行多项操作　138
细节16　暂停、恢复和终止线程　142
细节17　线程终止隐藏的危机　144
细节18　多线程的安全退出　145
细节19　多线程资源访问冲突　146
细节20　让成员函数作为线程启动函数　150
细节21　合理规划——线程的优先级　150
细节22　线程池的应用　152
细节23　辨别内核对象与GUI对象　154
细节24　CreateProcess函数参数详解　155
细节25　选择TCP还是UDP　156
细节26　TCP粘包的烦恼　156
细节27　UDP丢包的烦恼　157
细节28　允许上万人同时访问服务器的完成端口模型　157
细节29　套接字的阻塞模式　160
细节30　定义用户通信协议　160
细节31　抓取网络数据包　161
细节32　利用UDP协议实现广播通信　164
细节33　套接字的断开重连　165
细节34　套接字中设置超时连接　167
细节35　在套接字关闭时释放套接字资源　168
细节36　单例模式的应用　168
细节37　策略模式的简单应用　169
细节38　适配器模式的使用　170
细节39　任务栏托盘菜单　172
第4篇　编程技巧
第8章　开发技巧之——基础开发技巧　176
技巧01　巧用异或运算符实现加密功能　176
技巧02　delete与delete []的差别　177
技巧03　生成随机数　178
技巧04　COLORREF类型转换RGB分量　179
技巧05　获取字符串中的中文　179
技巧06　英文字符串首字母大写　179
技巧07　指定符号分割字符串　180
技巧08　如何在字符串中使用双引号　181
技巧09　去除字符串中所有的空格　181
技巧10　金额大小写的转换　182
技巧11　汉字转换为区位码　186
技巧12　区位码转换为汉字　186
技巧13　身份证升位计算技巧　187
技巧14　验证18位身份证格式　188
技巧15　自动生成编号　190
技巧16　计算个人所得税　191
技巧17　获取汉字拼音简码　193
技巧18　进制转换　194
第9章　开发技巧之——窗体与界面设计技巧　198
技巧01　向系统菜单中插入自定义菜单项　198
技巧02　创建级联菜单　199
技巧03　创建右键弹出菜单　199
技巧04　在窗体上单击鼠标右键调用系统菜单　200
技巧05　带历史信息的菜单　201
技巧06　默认隐藏的菜单　202
技巧07　工具栏下拉菜单　203
技巧08　滚动的窗体标题栏　206
技巧09　显示和隐藏标题栏　207
技巧10　使状态栏随对话框的改变而改变　209
技巧11　使某个窗体总显示在最前面　211
技巧12　限制窗体的大小　212
技巧13　窗口跟随　214
技巧14　移动无标题栏窗体　215
技巧15　淡入淡出的窗体　215
技巧16　如QQ般隐藏的窗体　217
技巧17　不使用Esc键关闭窗体　218
技巧18　对话框伸缩　218
技巧19　使对话框的关闭按钮变灰　219
技巧20　如何为对话框中的控件设置提示信息　220
技巧21　自定义云型窗体　220
技巧22　闪烁的彩虹文字　223
技巧23　在窗体关闭前显示对话框　224
技巧24　任务栏托盘菜单　225
技巧25　带位图预览的打开对话框　227
技巧26　Windows新型打开对话框　229
技巧27　同时选择多个文件　230
技巧28　使用回车键移动控件焦点　232
技巧29　设置控件的Tab顺序　232
技巧30　如何隐藏控件　232
第10章　开发技巧之——Windows开发技巧　233
技巧01　判断是否插入存储器　233
技巧02　判断光驱是否有光盘　233
技巧03　获取磁盘空间信息　234
技巧04　关闭磁盘共享　236
技巧05　格式化磁盘　237
技巧06　整理磁盘碎片　238
技巧07　控制光驱的弹开与关闭　239
技巧08　关闭、重启和注销计算机　240
技巧09　设计具有插件功能的应用程序　242
技巧10　注册和卸载ocx控件　246
技巧11　清空回收站　248
技巧12　隐藏和显示桌面文件　248
技巧13　隐藏和显示Windows任务栏　250
技巧14　隐藏任务栏时钟　251
技巧15　通过内存映射实现传送数据　252
技巧16　获得当前屏幕的分辨率　253
技巧17　使进程处于睡眠状态　253
技巧18　注册消息　254
技巧19　获取键盘按键　254
技巧20　屏蔽键盘POWER键　255
技巧21　可导出的动态链接库函数　255
技巧22　利用钩子技术实现键盘监控　256
技巧23　显示系统正在运行的程序　258
第11章　开发技巧之——网络开发技巧　260
技巧01　获取局域网中计算机名称　260
技巧02　通过计算机名称获取IP地址　262
技巧03　获取网卡地址　263
技巧04　获取当前打开的端口　264
技巧05　获取局域网共享资源　265
技巧06　映射网络驱动器　268
技巧07　局域网文件夹的共享　269
技巧08　在局域网中发送短消息　270
技巧09　如何清空IE的历史记录　271
技巧10　如何删除Internet临时文件　271
技巧11　设置IE的默认主页　272
技巧12　清空上网历史记录　272
技巧13　套接字的断开重连　272
技巧14　在套接字中如何设置超时连接　274
技巧15　利用UDP实现广播通信　275
技巧16　IP端口扫描　276
第5篇　算法和效率
第12章　算法与执行效率　279
算法01　顺序查找　279
算法02　二分查找　280
算法03　分块查找　283
算法04　哈希查找　285
算法05　直接插入排序　288
算法06　希尔排序　290
算法07　起泡排序　292
算法08　快速排序　294
算法09　选择排序　298
算法10　归并排序　299 
第13章　程序员必会的算法　302
算法01　斐波那契数列　302
算法02　角谷猜想　303
算法03　歌德巴赫猜想　304
算法04　四方定理　305
算法05　尼科彻斯定理　306
算法06　水仙花数　307
算法07　百钱百鸡　308
算法08　韩信点兵　309
算法09　魔术师的秘密　310
算法10　巧分苹果　311
算法11　分鱼问题　313
第6篇　解决方案
第14章　登录和主界面显示实施方案　315
方案01　主界面设计方案　315
方案02　实现系统登录　329
方案03　闪屏界面显示　334
第15章　数据库、软件注册及文件加密解决方案　339
方案01　应用存储过程处理数据　339
方案02　利用视图进行查询　343
方案03　初始化、备份和还原数据库　349
方案04　软件注册解决方案　357
方案05　文件加密与解密方案　360
第16章　文件和网络处理开发方案　365
方案01　复制文件方案　365
方案02　文件的分割与合并　368
方案03　屏幕监控专家　371
方案04　聊天室　379
第17章　多媒体应用和游戏解决方案　388
方案01　画图程序　388
方案02　照片版式处理　391
方案03　视频捕捉　397
方案04　音频录制　400
方案05　AVI文件合成分解　404
方案06　屏幕截图方案　413
方案07　俄罗斯方块　415
方案08　贪吃蛇　424