《C#编程宝典 十年典藏版》PDF下载

  • 购买积分:19 如何计算积分?
  • 作  者:王小科,王军,赵会东编著
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2011
  • ISBN:9787115232472
  • 页数:664 页
图书介绍:全书共5篇,凝结了明日10年资料积累的精华,在内容上全面超越目前简单的实战类图书,打造成为“巨无霸”宝典,在各章中穿插讲解实战开发技巧。

第1章 厉兵秣马——做好C#程序开发前期准备 3

第1篇 登堂入室——技能学习篇 3

1.1 本章学习任务 3

1.1.1 本章知识体系 3

1.1.2 带着任务往下学 3

1.2 追溯C#发展历史 4

1.2.1 谈古论今—C#发展历程 4

1.2.2 C#语言特点 5

1.2.3 C#与.NET的关系 5

1.3 熟悉.NET Framework三大核心 6

1.3.1 决胜千里——公共语言运行库 6

1.3.2 与众不同——.NET程序编译 6

1.3.3 充分交流——通用类型系统 7

1.4 掌握C#开发利器——Visual Studio 2008 8

1.4.1 系统必备 8

1.4.2 安装Visual Studio 2008 8

1.4.3 卸载Visual Studio 2008 11

1.4.4 熟悉Visual Studio 2008开发环境 12

1.5 使用MSDN辅助编程 17

1.5.1 安装帮助文档——MSDN 17

1.5.2 使用MSDN 19

1.5.3 常用的C#编程帮助网站 20

1.6 3种经典应用程序的创建 21

1.6.1 创建第一个控制台应用程序 21

1.6.2 创建第一个Windows窗体应用程序 23

1.6.3 创建第一个Web网站应用程序 24

1.7 实战检验 25

1.7.1 设置Visual Studio 2008开发环境中显示代码行号 25

1.7.2 如何中断正在运行的程序 25

1.8 疑难解惑 26

1.8.1 C#和.NET有什么关系 26

1.8.2 Visual Studio 2008安装不上 26

1.8.3 如何下载MSDN附带的示例 27

1.9 精彩回顾 28

第2章 掌握C#语言基础之数据类型与变量 28

2.1 本章学习任务 30

2.1.1 本章知识体系 30

2.1.2 带着任务往下学 30

2.2 常用数据类型解析 31

2.2.1 值类型——不能没有你 31

2.2.2 引用类型——世界因你而精采 37

2.3 程序开发最常用的武器——变量 39

2.3.1 变量的命名规则与惯例 40

2.3.2 数据类型与变量 41

2.3.3 变量的声明与赋值 42

2.3.4 永恒不变——定义及使用常量 45

2.3.5 变量的作用域和生存周期 46

2.4 实战检验 48

2.4.1 计算圆的面积 48

2.4.2 计算长方形的面积 49

2.4.3 计算个人工资 50

2.5 疑难解惑 50

2.5.1 WriteLine和ReadLine方法我还有点不明白 50

2.5.2 怎样发现变量在运算时溢出 51

2.6 精彩回顾 51

第3章 领略运算符和表达式带给我们的神奇 51

3.1 本章学习任务 53

3.1.1 本章知识体系 53

3.1.2 带着任务往下学 53

3.2 认识运算符和表达式 53

3.2.1 什么是运算符 53

3.2.2 什么是表达式 54

3.3 你必须掌握的几种运算符 54

3.3.1 无处不在的赋值运算符 54

3.3.2 重温算术运算符 56

3.3.3 一起学习比较运算符 60

3.3.4 为什么要使用逻辑运算符 63

3.4 运算符之“特殊问题特殊对待” 65

3.4.1 什么是自增/自减运算符 65

3.4.2 学会使用位运算符 67

3.4.3 短小精悍——三元运算符 68

3.5 让运算符的运算顺序如你所愿 69

3.5.1 层次分明——运算符的优先级 69

3.5.2 争先恐后——逻辑运算符的优先级 70

3.5.3 自有定数——使用小括号来得到正确的表达式 70

3.6 实战检验 71

3.6.1 制作简单计算器 71

3.6.2 输入数字比大小 72

3.7 疑难解惑 72

3.7.1 自增/自减运算符我还是有点不明白 72

3.7.2 三元运算符都用在哪里呢 73

3.7.3 表达式中加入小括号有什么好处 73

3.8 精彩回顾 73

第4章 峰回路转——巧用流程控制语句 73

4.1 本章学习任务 75

4.1.1 本章知识体系 75

4.1.2 带着任务往下学 75

4.2 流程控制 76

4.2.1 流程控制的体现——语句 76

4.2.2 语句的构成 76

4.2.3 复合语句 76

4.3 判断—条件—结果,你熟悉吗 77

4.3.1 使用if条件判断语句 77

4.3.2 学会使用switch语句 80

4.3.3 两种判断语句各自的适用场合 83

4.4 循环来了,你准备好了吗 85

4.4.1 必须掌握的while循环语句 85

4.4.2 学会使用do while循环语句 86

4.5 强大的for家族 88

4.5.1 for语句——撑起循环半边天 88

4.5.2 遍历好帮手——foreach语句 90

4.6 让跳转语句告诉你:没有不可能 91

4.6.1 continue语句——跳出本次循环 91

4.6.2 break语句——跳出当前循环体 92

4.6.3 用于返回数据的return语句 93

4.6.4 定点射击——goto语句 94

4.7 实战检验 95

4.7.1 猜数字小游戏 95

4.7.2 打造彩色控制台 96

4.8 疑难解惑 97

4.8.1 为什么不建议过多使用goto语句 97

4.8.2 关于return语句的问题 97

4.8.3 do while循环与while循环有什么不同吗 97

4.9 精彩回顾 97

第5章 程序开发的灵魂——算法 99

5.1 本章学习任务 99

5.1.1 本章知识体系 99

5.1.2 带着任务往下学 99

5.2 你了解算法吗 101

5.2.1 初识算法 101

5.2.2 描述算法的两种常用流程图 101

5.3 你应该掌握的常用算法 103

5.3.1 抛砖引玉——查找最大最小值 103

5.3.2 经典再现——杨辉三角算法的实现 104

5.3.3 争先恐后——冒泡排序法 105

5.3.4 峰回路转——插入排序法 107

5.3.5 我选择了你从不后悔——选择排序法 108

5.3.6 釜底抽薪——希尔排序法 109

5.4 实战检验 111

5.4.1 迷你星座查询器的实现 111

5.4.2 设计双色球彩票选号器 115

5.5 疑难解惑 117

5.5.1 传统流程图与N-S结构化流程图有何不同 117

5.5.2 为什么杨辉三角的表示形式不一样 117

5.5.3 如何选择适合自己的排序算法 118

5.6 精彩回顾 118

第6章 看似简单的字符串真就那么简单吗 118

6.1 本章学习任务 120

6.1.1 本章知识体系 120

6.1.2 带着任务往下学 120

6.2 让我们从字符开始学起 121

6.2.1 我很小,可是我很重要——Char结构 121

6.2.2 System.Char结构的成员 121

6.2.3 一种特殊的字符——转义字符 123

6.3 想知道字符串的具体含义吗 125

6.4 字符串有9种常用操作,你相信吗 126

6.4.1 互不相让——比较字符串 126

6.4.2 按部就班——格式化字符串 128

6.4.3 为我所用——截取字符串 129

6.4.4 一刀两断——分割字符串 130

6.4.5 见缝插针——插入字符串 131

6.4.6 钵满盒满——填充字符串 131

6.4.7 取之有道——删除字符串 132

6.4.8 推陈出新——复制字符串 133

6.4.9 移形幻影——替换字符串 134

6.5 深入学习可变字符串 135

6.5.1 高效率字符串对象操作——StringBuilder 135

6.5.2 我可以做些什——StringBuilder的使用 136

6.5.3 string类与StringBuilder类的区别 137

6.6 实战检验 138

6.6.1 制作字符串加密/解密程序 138

6.6.2 正则表达式分解字符串程序的实现 139

6.7 疑难解惑 140

6.7.1 (char)8和‘8’有什么不同 140

6.7.2 如何区别0、空字符串、Null、Empty和Nothing 140

6.7.3 选择合适的方法比较字符串 140

6.8 精彩回顾 140

第7章 批量数据处理专家——数组 143

7.1 本章学习任务 143

7.1.1 本章知识体系 143

7.1.2 带着任务往下学 143

7.2 数组从何而来 144

7.2.1 为什么使用数组 144

7.2.2 什么是数组 144

7.2.3 数组用途之广 144

7.3 从最简单的一维数组开始学起 145

7.3.1 一维数组的创建——很轻松吧 145

7.3.2 怎样对一维数组进行初始化 145

7.3.3 如何遍历一维数组 146

7.4 想掌握二维以及多维数组吗,跟我来 148

7.4.1 创建二维数组 148

7.4.2 怎样对二维数组进行初始化 150

7.4.3 学会遍历二维数组 151

7.4.4 解析多维数组 152

7.4.5 运用多维数组 153

7.5 原来数组有这么多操作 154

7.5.1 一个不留——清除数组内元素 155

7.5.2 合二为一——合并数组 156

7.5.3 化整为零——拆分数组 157

7.5.4 浅表副本——克隆数组 157

7.5.5 众里寻他千百度——查找数组元素 159

7.6 告诉你一个不一样的ArrayList集合 160

7.6.1 强大的ArrayList 160

7.6.2 ArrayList成员 160

7.6.3 试试多强大——ArrayList的使用 161

7.7 实战检验 161

7.7.1 操作便捷的简单电话簿 161

7.7.2 设计一个简单客车售票记录程序 162

7.8 疑难解惑 163

7.8.1 遍历数组还有什么方法 163

7.8.2 清空ArrayList集合中元素的问题 163

7.9 精彩回顾 164

第8章 步入面向对象程序设计的殿堂 166

8.1 本章学习任务 166

8.1.1 本章知识体系 166

8.1.2 带着任务往下学 166

8.2 掌握面向对象编程的核心——类 166

8.2.1 设计图纸——类是什么 166

8.2.2 准备设计图纸——定义类 167

8.2.3 根据类型来得到对象——类的使用 167

8.2.4 对象的生成——对象构造器 169

8.2.5 对象的释放——对象析构器 172

8.3 对象的状态和行为——字段、方法和属性 172

8.3.1 对象的状态——字段 172

8.3.2 怎样定义字段 173

8.3.3 如何定义方法 173

8.3.4 方法的使用 174

8.3.5 方法的重载 175

8.3.6 字段的封装——什么是属性 176

8.3.7 如何使用属性来封装字段 177

8.3.8 对集合的封装——索引器 179

8.4 面向对象编程特性之继承 180

8.4.1 继承——代码的重用 180

8.4.2 如何使用继承 181

8.5 你来我往——详解数据类型之间的转换 182

8.5.1 表里如一——隐式类型转换 182

8.5.2 循规蹈矩——显式类型转换 184

8.5.3 值类型的装箱和拆箱 185

8.6 可以被重写的方法——虚方法 186

8.6.1 如何定义虚方法 186

8.6.2 override重写虚方法 187

8.7 千变万化——抽象类 188

8.7.1 什么是抽象类 188

8.7.2 如何使用抽象类 189

8.8 功能的定义——接口 190

8.8.1 雾里看花——接口是什么 190

8.8.2 如何使用接口 191

8.8.3 一石二鸟——隐式实现接口 192

8.8.4 用心专一——显式实现接口 192

8.9 面向对象编程特性之——多态 193

8.9.1 什么是多态 193

8.9.2 怎样使用多态特性 193

8.10 实战检验 195

8.10.1 制作简单计时器 195

8.10.2 使用面向对象的思想计算圆及正方形周长 195

8.11 疑难解惑 197

8.11.1 关于属性和索引器的使用 197

8.11.2 装箱和拆箱操作为什么叫做“值类型的装箱和拆箱” 197

8.11.3 关于接口的问题 197

8.12 精彩回顾 197

第9章 使用Windows窗体搭建交互式图形界面 197

9.1 本章学习任务 200

9.1.1 本章知识体系 200

9.1.2 带着任务往下学 200

9.2 告诉你什么是Windows窗体 201

9.2.1 窗体的介绍 201

9.2.2 创建Windows窗体应用程序 202

9.3 Windows窗体的常见操作 205

9.3.1 窗体的最大化、最小化和正常大小 205

9.3.2 顶层窗体——控制窗体总在最前面 205

9.3.3 多姿多彩——更改窗体背景图片或颜色 206

9.3.4 看不清我吧——窗体的透明度 207

9.3.5 我可以隐身的哦——窗体的显示和隐藏 207

9.4 在一个窗体中装载多个窗体,很神奇吧 208

9.4.1 多文档窗体——让文档更有条理 208

9.4.2 建立多文档窗体 209

9.4.3 快来试一试——简单的多文档小程序 210

9.5 用最快的速度制作两个一模一样的窗体 212

9.5.1 定义基窗体 212

9.5.2 新建窗体并继承于基窗体 212

9.5.3 真的很神奇——有效使用继承窗体 215

9.6 实战检验 216

9.6.1 制作启动欢迎窗体 216

9.6.2 设计图形窗体 217

9.7 疑难解惑 218

9.7.1 项目编译之后的.pdb文件有何用处 218

9.7.2 MDI主窗体中的背景为何呈现灰色 219

9.7.3 创建继承窗体的两种方法有什么区别 219

9.7.4 区别Modifiers属性的3种访问修饰符 219

9.8 精彩回顾 219

第10章 你所必须知道的Windows控件 222

10.1 本章学习任务 222

10.1.1 本章知识体系 222

10.1.2 带着任务往下学 222

10.2 最简单、常用的文本类控件 223

10.2.1 窗体中的广告牌——标签控件 223

10.2.2 电子版的笔记本——文本框控件 224

10.2.3 一锤定音——按钮控件 227

10.3 选择数字、列表……,让选择类控件帮你实现 229

10.3.1 数字操作最佳工具——数字选择控件 229

10.3.2 唯一的选择——单选按钮 230

10.3.3 多重选择——必选复选框 232

10.3.4 编辑框和列表框的进化——组合框控件 234

10.3.5 存储字符串的盒子——列表控件 236

10.3.6 样式控制好帮手——列表视图控件 238

10.3.7 层次分明——树视图控件 241

10.4 控件大家族——分组类控件 244

10.4.1 带有标题框的分组——GroupBox 244

10.4.2 面板分组——Panel 244

10.4.3 选项卡面板分组——TabControl 245

10.5 天下三分——菜单、工具栏和状态栏 247

10.5.1 半数天下归于魏——菜单 247

10.5.2 民心向背在于蜀——工具栏 249

10.5.3 独树一帜当属吴——状态栏 251

10.6 实战检验 252

10.6.1 制作电子点菜系统 252

10.6.2 设计仿XP系统的任务栏菜单 253

10.7 疑难解惑 255

10.7.1 保持文本框的滚动条始终在最底端 255

10.7.2 如何对ListBox控件中的数据进行排序 256

10.7.3 在状态栏中实时显示当前系统时间 256

10.8 精彩回顾 256

第11章 掌握能够辅助程序开发的Windows控件 256

11.1 本章学习任务 259

11.1.1 本章知识体系 259

11.1.2 带着任务往下学 259

11.2 Windows系统中最常用的几种对话框 260

11.2.1 认识Windows消息对话框 260

11.2.2 如何找到文件的家——打开对话框 263

11.2.3 将文件存到何处——另存为对话框 264

11.2.4 确认文件的位置——浏览文件夹对话框 265

11.2.5 个性字体博览会——字体对话框 266

11.2.6 让世界充满颜色——颜色对话框 267

11.3 使用计时器方便地获取最新信息 268

11.3.1 认真守时——Timer组件 268

11.3.2 勤劳的小闹钟——Timer组件 269

11.3.3 鼠标哪里跑——Timer组件 270

11.4 漂亮的图片、好看的图标——图像控件帮你来存取 271

11.4.1 我型我秀——图像控件 271

11.4.2 画家的收藏夹——图像列表组件 272

11.5 想知道操作进度吗,那还不试试进度条控件 273

11.5.1 怎样使用进度条控件 273

11.5.2 Loading——以进度条驱散枯燥 274

11.6 实战检验 275

11.6.1 播放幻灯片的屏幕保护程序 275

11.6.2 飞舞的小蝴蝶动画效果的实现 276

11.7 疑难解惑 278

11.7.1 关于OpenFileDialog组件的问题 278

11.7.2 Timer组件的执行周期最大可以设计多长时间 278

11.7.3 ImageList中如果放入大图片会怎么样 278

11.7.4 ProgressBar控件的问题 278

11.8 精彩回顾 278

第12章 数据库管理系统开发必备 281

12.1 本章学习任务 281

12.1.1 本章知识体系 281

12.1.2 带着任务往下学 281

12.2 下面要介绍ADO.NET技术了,准备好了吗 282

12.2.1 ADO.NET简介 282

12.2.2 连接模式与非连接模式 283

12.3 我能连接数据库了——Connection对象 283

12.3.1 尝试前的准备——认识Connection对象 283

12.3.2 初次尝试——使用SqlConnection对象连接SQL Server 2005数据库 285

12.4 Command对象,执行SQL好帮手 285

12.4.1 认识Command对象 286

12.4.2 使用Command对象添加记录 287

12.4.3 使用Command对象删除记录 288

12.4.4 使用Command对象修改记录 288

12.4.5 使用Command对象查找记录 289

12.5 读取数据库中数据,就用DataReader对象 290

12.5.1 数据在这里——初识数据读取器 290

12.5.2 将数据库中的内容读出来——如何使用数据读取器 290

12.6 非连接模式不能知的DataSet与DataTable 291

12.6.1 内存中的数据库——DataSet 291

12.6.2 内存中的数据表——DataTable 292

12.7 功能强大的DataAdapter对象 293

12.7.1 认识数据适配器——DataAdapter对象 294

12.7.2 使用SqlDataAdapter对象填充DataSet数据集 294

12.7.3 使用SqlDataAdapter对象更新数据库中记录 295

12.8 用更方便的数据控件体现数据库操作 295

12.8.1 呈现数据我最强——DataGridView 296

12.8.2 一切都是这么轻松——DataGridView数据绑定 296

12.9 实战检验 297

12.9.1 制作个人通讯簿 297

12.9.2 设计个性影集程序 300

12.10 疑难解惑 304

12.10.1 使用SqlConnection对象连接数据库的问题 304

12.10.2 怎样取出DataReader中的数据呢? 305

12.10.3 什么是DataSet 305

12.11 精彩回顾 305

第13章 .NET 3.5神来之笔——LINQ数据访问技术 305

13.1 本章学习任务 307

13.1.1 本章知识体系 307

13.1.2 带着任务往下学 307

13.2 LINQ从何而来 308

13.3 .Net Framework 3.5——语言扩展 309

13.3.1 安全又方便——隐式类型局部变量 310

13.3.2 短小精悍——Lambda表达式 311

13.4 查询表达式对于LINQ有多重要 312

13.4.1 查询表达式 312

13.4.2 用from子句指定数据源 313

13.4.3 用where子句指定筛选条件 314

13.4.4 用select子句指定目标数据 315

13.4.5 用orderby子句进行排序 315

13.5 操作SQL数据库很简单,但你会用LINQ吗 316

13.5.1 创建LINQ实体类 316

13.5.2 执行数据的查询、添加、修改和删除操作 319

13.6 LINQ告诉你:操作任何数据都可以很方便 324

13.6.1 使用LINQ在数组中查询数据 324

13.6.2 使用LINQ操作XML文件 325

13.7 实战检验 327

13.7.1 LINQ防止SQL注入式攻击 327

13.7.2 使用LINQ实现数据分页 328

13.8 疑难解惑 330

13.8.1 如何使用LINQ生成随机序列 330

13.8.2 如何为LINQ实体类中的数据表设置主键 330

13.8.3 开发网站时有必要用到LINQ技术吗 331

13.9 精彩回顾 331

第14章 钟馗捉妖——程序调试与错误处理 331

14.1 本章学习任务 334

14.1.1 本章知识体系 334

14.1.2 带着任务往下学 334

14.2 “妖”之分类——常见的异常 335

14.2.1 千年小妖——语法错误 335

14.2.2 千年老妖——语义错误 336

14.2.3 千年老妖——逻辑错误 336

14.3 修练仙道——程序调试 337

14.3.1 仙术秘诀——设定断点 337

14.3.2 开始修练——调试断点 338

14.3.3 跨越险阻——中断执行 340

14.3.4 飞升成仙——停止执行 340

14.4 捉妖之术——C#中的最佳异常处理 341

14.4.1 使用try...catch语句捕获异常 341

14.4.2 使用try...catch...finally语句捕获异常 342

14.5 实战检验 343

14.5.1 制作捕获除数为零错误程序 343

14.5.2 制作捕获数据库连接错误程序 344

14.6 疑难解惑 344

14.6.1 如何区分程序中常见的3种异常 344

14.6.2 异常与Bug有什么区别 345

14.6.3 如何针对不同的异常进行捕捉 345

14.7 精彩回顾 345

第15章 Windows程序不可或缺的两个步骤——打包部署 345

15.1 本章学习任务 347

15.1.1 本章知识体系 347

15.1.2 带着任务往下学 347

15.2 Windows Installer,翻译成汉语看看 348

15.3 告诉你如何来创建Windows安装项目 349

15.4 原来制作Windows安装程序这么简单 350

15.4.1 添加项目输出 350

15.4.2 添加内容文件 350

15.4.3 创建桌面快捷方式 351

15.4.4 添加注册表项 352

15.4.5 生成Windows安装程序 354

15.5 用更容易的方式理解部署——安装 354

15.6 实战检验 356

15.6.1 打包程序时设置桌面图标 356

15.6.2 打包.NET Framework 3.5框架 357

15.7 疑难解惑 359

15.7.1 打包生成的.exe文件和.msi文件有何区别 359

15.7.2 常用的C#程序打包工具有哪些 359

15.8 精彩回顾 359

第2篇 小试牛刀——范例演练篇 363

第16章 打好根基——基础应用相关 363

16.1 完美实用——金额大小写转换 363

16.1.1 范例功能演示 363

16.1.2 开发思路指引 363

16.1.3 专家难点解析 363

16.1.4 设计过程详解 365

16.1.5 范例开发手记 367

16.1.6 进阶与提高 367

16.2 衣着华丽——窗体更换皮肤 368

16.2.1 范例功能演示 368

16.2.2 开发思路指引 368

17.2.3 专家难点解析 368

16.2.4 设计过程详解 369

16.2.5 范例开发手记 371

16.2.6 进阶与提高 372

16.3 亦真亦幻——仿QQ抽屉式窗体 372

16.3.1 范例功能演示 372

16.3.2 开发思路指引 373

16.3.3 专家难点解析 373

16.3.4 设计过程详解 374

16.3.5 范例开发手记 376

16.3.6 进阶与提高 377

16.4 绚丽多彩——七彩复选框 377

16.4.1 范例功能演示 377

16.4.2 开发思路指引 377

16.4.3 专家难点解析 378

16.4.4 设计过程详解 379

16.4.5 范例开发手记 380

16.4.6 进阶与提高 380

16.5 鉴别真伪——身份证号码验证工具 381

16.5.1 范例功能演示 381

16.5.2 开发思路指引 381

16.5.3 专家难点解析 382

16.5.4 设计过程详解 382

16.5.5 范例开发手记 384

16.5.6 进阶与提高 385

第17章 开发必备——数据库开发相关 385

17.1 全能数据库连接器 387

17.1.1 范例功能演示 387

17.1.2 开发思路指引 387

17.1.3 专家难点解析 388

17.1.4 设计过程详解 389

17.1.5 范例开发手记 391

17.1.6 进阶与提高 392

17.2 多条件查询员工信息 392

17.2.1 范例功能演示 392

17.2.2 开发思路指引 393

17.2.3 专家难点解析 393

17.2.4 设计过程详解 394

17.2.5 范例开发手记 396

17.2.6 进阶与提高 397

17.3 使用断开式连接批量更新数据库中数据 397

17.3.1 范例功能演示 397

17.3.2 开发思路指引 398

17.3.3 专家难点解析 398

17.3.4 设计过程详解 399

17.3.5 范例开发手记 400

17.3.6 进阶与提高 400

17.4 将图片以二进制形式存入数据库 400

17.4.1 范例功能演示 400

17.4.2 开发思路指引 401

17.4.3 专家难点解析 401

17.4.4 设计过程详解 402

17.4.5 范例开发手记 403

17.4.6 进阶与提高 404

17.5 通过存储过程对员工信息进行管理 405

17.5.1 范例功能演示 405

17.5.2 开发思路指引 405

17.5.3 专家难点解析 406

17.5.4 设计过程详解 407

17.5.5 范例开发手记 410

17.5.6 进阶与提高 411

17.6 使用事务批量删除生产单信息 412

17.6.1 范例功能演示 412

17.6.2 开发思路指引 413

17.6.3 专家难点解析 413

17.6.4 设计过程详解 413

17.6.5 范例开发手记 415

17.6.6 进阶与提高 415

第18章 引领时尚——图形图像及多媒体应用 415

18.1 让画面更流畅——使用双缓冲技术绘图 417

18.1.1 范例功能演示 417

18.1.2 开发思路指引 417

18.1.3 专家难点解析 417

18.1.4 设计过程详解 418

18.1.5 范例开发手记 419

18.1.6 进阶与提高 420

18.2 画家的培养——画桃花 420

18.2.1 范例功能演示 420

18.2.2 开发思路指引 421

18.2.3 专家难点解析 421

18.2.4 设计过程详解 422

18.2.5 范例开发手记 423

18.2.6 进阶与提高 423

18.3 随心所欲——屏幕抓图 424

18.3.1 范例功能演示 424

18.3.2 开发思路指引 424

18.3.3 专家难点解析 425

18.3.4 设计过程详解 426

18.3.5 范例开发手记 427

18.3.6 进阶与提高 428

18.4 流行时尚——打造自己的开心农场 428

18.4.1 范例功能演示 428

18.4.2 开发思路指引 429

18.4.3 专家难点解析 429

18.4.4 设计过程详解 430

18.4.5 范例开发手记 433

18.4.6 进阶与提高 433

18.5 经典之作——MP3播放器 434

18.5.1 范例功能演示 434

18.5.2 开发思路指引 434

18.5.3 专家难点解析 434

18.5.4 设计过程详解 435

18.5.5 范例开发手记 437

18.5.6 进阶与提高 438

第19章 新品展示——WPF图形化显示系统 440

19.1 花样百出——两种图形有多少种组合方式 440

19.1.1 范例功能演示 440

19.1.2 开发思路指引 440

19.1.3 专家难点解析 441

19.1.4 设计过程详解 442

19.1.5 范例开发手记 443

19.1.6 进阶与提高 443

19.2 冲击视觉——实现Windows 7的Aero效果 443

19.2.1 范例功能演示 443

19.2.2 开发思路指引 444

19.2.3 专家难点解析 444

19.2.4 设计过程详解 445

19.2.5 范例开发手记 447

19.2.6 进阶与提高 447

19.3 雾里看花——图片的浮雕边缘效果 448

19.3.1 范例功能演示 448

19.3.2 开发思路指引 448

19.3.3 专家难点解析 448

19.3.4 设计过程详解 449

19.3.5 范例开发手记 449

19.3.6 进阶与提高 450

19.4 动感十足——旋转的立方体 451

19.4.1 范例功能演示 451

19.4.2 开发思路指引 451

19.4.3 专家难点解析 452

19.4.4 设计过程详解 453

19.4.5 范例开发手记 455

19.4.6 进阶与提高 455

19.5 如影随形——模拟车轮的滚动路径 456

19.5.1 范例功能演示 456

19.5.2 开发思路指引 456

19.5.3 专家难点解析 457

19.5.4 设计过程详解 458

19.5.5 范例开发手记 460

19.5.6 进阶与提高 460

19.6 精彩无限——使用WPF打造炫目视频播放器 460

19.6.1 范例功能演示 460

19.6.2 开发思路指引 461

19.6.3 专家难点解析 461

19.6.4 设计过程详解 463

19.6.5 范例开发手记 465

19.6.6 进阶与提高 466

第20章 明日快递单打印系统——单据打印系统模板 466

第3篇 初露锋芒——项目实战篇 469

20.1 明日快递单打印系统概述 469

20.1.1 研发背景 469

20.1.2 需求分析 469

20.1.3 系统功能结构图 469

20.2 数据库设计 470

20.2.1 设计数据表结构 470

20.2.2 创建存储过程 471

20.3 技术准备 472

20.3.1 自定义控件 472

20.3.2 泛型的应用简介 474

20.4 主要功能模块设计 475

20.4.1 快递单设置设计 475

20.4.2 快递单打印设计 482

20.4.3 快递单查询设计 486

20.5 程序调试与错误处理 492

20.5.1 空引用异常调试 492

20.5.2 数组越界异常调试 493

20.6 开发总结 494

20.6.1 技术总结 494

20.6.2 经验总结 495

第21章 QQ自动登录器——方便你我他 495

21.1 QQ自动登录器概述 497

21.1.1 研发背景 497

21.1.2 需求分析 497

21.1.3 系统业务流程图 497

21.1.4 系统功能结构图 497

21.2 技术攻关 498

21.2.1 QQ自动登录器实现原理 498

21.2.2 使用MD5加密算法加密QQ密码 498

21.2.3 使用XML文件存储QQ账号信息 499

21.3 公共类设计 500

21.3.1 QQInfo类设计 500

21.3.2 QQRegister类设计 501

21.3.3 QQFilePath类设计 502

21.4 主要功能模块设计 503

21.4.1 QQ自动登录器主窗体设计 503

21.4.2 添加QQ账号模块设计 509

21.4.3 设置QQ程序路径模块设计 511

21.5 程序调试与错误处理 513

21.5.1 XML文件序列化失败 513

21.5.2 QQ账号和密码无法传递 514

21.6 开发总结 514

21.6.1 技术总结 514

21.6.2 经验总结 515

第22章 雷速网络下载专家——让你忘记迅雷 515

22.1 雷速网络下载专家概述 517

22.1.1 研发背景 517

22.1.2 需求分析 517

22.1.3 系统业务流程图 517

22.1.4 系统功能结构图 518

22.2 技术攻关 518

22.2.1 多线程下载实现原理 518

22.2.2 保存和读取续传信息 520

22.2.3 合并多线程下载文件 520

22.3 公共类设计 521

22.3.1 Locations类设计 521

22.3.2 DownLoad类设计 522

22.3.3 xuchuan类设计 523

22.4 主要功能模块设计 524

22.4.1 雷速主窗体设计 524

22.4.2 添加下载任务模块 531

22.5 程序调试与错误处理 533

22.5.1 无法连接到下载服务器 533

22.5.2 无法使用多线程下载资源 534

22.6 开发总结 534

22.6.1 技术总结 534

22.6.2 经验总结 535

第23章 编程词典销售分析系统——让用户了解我们 535

23.1 编程词典销售分析系统概述 537

23.1.1 研发背景 537

23.1.2 需求分析 537

23.1.3 系统功能结构图 537

23.2 数据库设计 538

23.2.1 主要数据表结构 538

23.2.2 创建视图 541

23.2.3 创建存储过程 541

23.3 技术准备 542

23.3.1 动态实例化窗体 542

23.3.2 可空类型的使用 542

23.4 主要功能模块设计 543

23.4.1 产品大类设计 543

23.4.2 代理登记设计 546

23.4.3 订货单设计 551

23.4.4 权限分配设计 557

23.5 程序调试与错误处理 560

23.6 开发总结 561

23.6.1 技术总结 561

23.6.2 经验总结 562

第24章 企业ERP管理系统(C/S架构) 562

第4篇 挑战自我——商业系统篇 565

24.1 企业ERP管理系统概述 565

24.1.1 什么是ERP和ERP管理系统 565

24.1.2 ERP的发展阶段 565

24.2 系统分析 566

24.2.1 需求分析 566

24.2.2 开发工具选择 567

24.3 总体设计 567

24.3.1 项目规划 567

24.3.2 ERP管理系统流程图 567

24.3.3 系统功能结构 568

24.4 系统设计 569

24.4.1 设计目标 569

24.4.2 开发及运行环境 569

24.4.3 系统预览 570

24.4.4 数据库命名规范 572

24.4.5 数据库设计 573

24.5 技术准备 581

24.5.1 使用泛型集合、字典存储不同的信息列表 581

24.5.2 使用SqlTransaction事务处理对象 584

24.5.3 动态设置水晶报表数据源 585

24.6 公共模块设计 585

24.6.1 文件及文件夹模块设计 585

24.6.2 公共类设计 587

24.7 主要功能模块设计 599

24.7.1 物料清单设计 599

24.7.2 采购入库单设计 609

24.7.3 销售收款单设计 621

24.7.4 库存清单设计 628

24.7.5 生产单设计 630

24.7.6 生产完工处理设计 639

24.7.7 产品销售毛利汇总表设计 646

24.7.8 操作权限设计 649

24.8 系统打包部署 653

24.9 系统使用手册 658

24.10 疑难问题分析与解决 660

24.10.1 向被数据绑定的DataGridView控件的行集合中添加行 660

24.10.2 动态添加DataGridView控件的列 660

24.11 程序调试与错误处理 662

24.11.1 空引用异常调试 662

24.11.2 水晶报表查询错误调试 663

24.12 技术、经验总结 663

24.12.1 技术总结 663

24.12.2 经验总结 664