目录 1
第一篇 C++程序设计经验谈 1
第一章 C++简介 1
C++程序设计语言简介 1
第二章 编写优质的C++程序 3
2.1 充分利用C++的优点 3
2.2 使用C++风格的注释 4
2.3 使用const关键字 5
2.4 使用new和delete而不是malloc和free 6
2.5 尽可能推迟变量的声明 7
2.6 关于内存申请 8
2.7 关于指针和引用 9
2.8 关于构造和析构函数 9
2.9 让析构函数成为virtual函数 10
2.1O 集合数据的初始化 14
2.11 以inline函数替代macro 16
2.12 关于类的设计 17
2.13 重载new时不要遮掩了new的正规形式 18
2.14 关于标准库 19
2.15 关于编译时警告 21
2.16 在MFC中手工添加消息映射 21
2.17 用auto_ptr代替指针 22
2.18 在MFC程序中使用全局变量 24
2.19 闪烁程序的标题栏 25
2.20 如何拖动无标题窗口 26
第二篇 Windows程序设计实例 27
第三章 掌握程序语言的特点 27
3.1 静态数据成员的使用 27
3.2 函数中的静态变量 29
3.3 函数重载 31
3.4 使用指针传递参数 32
3.5 友元函数的使用 34
3.6 输入输出流重载 36
3.7 0与1之间的随机数 37
3.8 类的继承问题 39
3.9 类的数据封装 41
3.1O 平面点类的运算 43
第四章 Windows系统基本技术 45
4.1 文件的复制——文件读写操作 45
4.2 通过抛出异常来指示错误的发生 47
4.3 多线程演示程序 49
4.4 进程与线程的同步、数据共享 53
4.5 避免程序多次执行 61
4.6 在系统启动时自动运行程序 62
4.7 显示所有正在运行的进程 64
4.8 获取硬件信息 66
4.9 进程在任务管理器隐身 68
4.10 定时关机程序演示 69
4.11 获取磁盘空间信息 79
4.12 批量复制文件名 82
4.13 设置显示器显示模式 84
4.14 获取处理器的信息 86
4.15 修改用户信息 89
4.16 系统时间调用 90
4.17 操纵Shell 91
4.18 性能监视 92
4.19 命令行分析 93
4.20 制作自解压包 95
4.21 NT自动登录 97
第五章 用户界面编程 99
5.1 创建不规则窗口 99
5.2 带有3D文本的按钮 100
5.3 为对话框设置位图背景 103
5.4 图形外观程序演示 105
5.5 可扩展的对话框 111
5.6 渐变背景色实现 113
5.7 在工具栏上实现LOGO动画 115
5.8 气球提示实现 118
5.9 多列显示的组合框控件 119
5.10 Winamp样式的自动靠边窗口 120
5.11 使用任务栏托盘区图标 122
5.12 旋转文本 126
5.13 程序的全屏显示 131
5.14 剪贴板监视器 133
5.15 带有时钟的状态栏 136
5.16 视图切换 138
5.17 显示BITMAP的三种方式 141
5.18 热键激活后台程序 144
5.19 绘制橡皮筋矩形 146
5.20 软件启动封面 148
5.21 致谢对话框 150
5.22 状态条中创建进度条 152
5.23 IP地址编辑框 154
5.24 简单计算器 155
5.25 函数式计算器 156
第六章 多媒体编程 159
6.1 CD播放器 159
6.2 Midi播放器 165
6.3 媒体播放器 166
6.4 AVI图象捕获 167
6.5 利用OpenGL实现三维绘图 169
6.6 旋转图像 172
第七章 数据库与Internet 175
7.1 使用DAO访问数据库 175
7.2 Windows套接字(Socket)程序设计 178
7.3 实现FTP应用 184
7.4 Telnet客户端 193
7.5 实用浏览器 195
7.6 下载网站文件 197
7.7 用Pop3接收邮件 199
7.8 用smtp协议发送邮件 202
7.9 端口扫描程序 205
7.1O 网络爬虫 207
第八章 算法 210
8.1 迭代法 210
8.2 枚举法 211
8.3 递归法 212
8.4 回溯法 214
8.5 贪心法 216
8.6 分治法 222
8.7 动态规划法 224
8.8 拓扑排序 226
8.9 快速排序 228
8.1O Shell排序 229
8.11 最小生成树算法 230
8.12 BMP图像压缩算法简介 233
8.13 MD5加密算法简介 237
8.14 标准LZW算法原理 240
8.15 Huffman编码介绍 244
8.16 0-1背包问题 245
8.17 josephus问题 246
8.18 乘法表——二维数组的使用 248
8.19 积分的近似求法 249
8.20 基数转换程序 251
8.21 矩阵问题举例 254
8.22 求解质数 255
8.23 圆周率的求法 255
8.24 改进的快速排序法 256
8.25 几种插入排序法 257
8.26 水仙花数的求法 258
8.27 迷宫生成器 259
8.28 生命游戏 260
算法篇小结 263