图书目录

目  录

第1部分  基础篇

第1堂课  初探C#及其开发环境 3

 视频讲解:96分钟

1.1  了解.NET 4

1.1.1  .NET概述 4

1.1.2  .NET程序编译原理 4

1.1.3  .NET项目成功案例 5

1.2  C#语言及特点 6

1.2.1  C#与.NET的关系 6

1.2.2  C#语言特点 6

1.2.3  C#语言发展趋势 7

1.3  安装与卸载Visual Studio 2008 7

1.3.1  安装Visual Studio 2008系统必备 7

1.3.2  安装Visual Studio 2008 8

1.3.3  卸载Visual Studio 2008 9

1.4  熟悉Visual Studio 2008开发环境 10

1.4.1  创建控制台应用程序 10

1.4.2  创建Windows应用程序 11

1.4.3  菜单栏介绍 12

1.4.4  工具栏介绍 13

1.4.5  “工具箱”面板介绍 14

1.4.6  “属性”面板介绍 14

1.4.7   解决方案资源管理器介绍 15

1.5  C#编程常用帮助 15

1.5.1  安装MSDN 15

1.5.2  使用MSDN 17

1.6  照猫画虎——基本功训练 18

1.6.1  基本功训练1——如何开始运行程序 18

1.6.2  基本功训练2——如何中断当前程序的

运行 19

1.6.3  基本功训练3——设置程序代码行号 20

1.6.4  基本功训练4——统一窗体中控件的

字体设置 20

1.6.5  基本功训练5——通过“格式”菜单

布局窗体 21

1.7  情景应用——拓展与实践 22

1.7.1  情景应用1——设置Windows应用

程序启动窗体 22

1.7.2  情景应用2——为程序设置版本和帮助

信息 23

1.7.3  情景应用3——为项目添加已有窗体 24

1.7.4  情景应用4——动起来的Label控件 24

1.7.5  情景应用5——加法计算器 25

1.8  自我测试 26

1.9  行动指南 27

1.10  成功可以复制——C#语言之父

安德斯·海尔斯伯格 28

第2堂课  C#程序设计基础 31

 视频讲解:168分钟

2.1  编写第一个C#程序 32

2.2  分析C#程序结构 33

2.2.1  命名空间介绍 33

2.2.2  类的介绍 34

2.2.3  Main方法的使用 34

2.2.4  认识标识符 35

2.2.5  认识关键字 35

2.2.6  编写C#语句 35

2.2.7  代码注释 36

2.3  数据类型 37

2.3.1  值类型的使用 37

2.3.2  引用类型的使用 39

2.4  声明并使用变量 40

2.4.1  变量的声明及初始化 40

2.4.2  变量的作用域 41

2.5  声明并使用常量 42

2.6  数据类型转换 43

2.6.1  隐式类型转换 43

2.6.2  显式类型转换 43

2.6.3  装箱和拆箱 45

2.7  运算符的使用 46

2.7.1  算术运算符 46

2.7.2  赋值运算符 48

2.7.3  关系运算符 49

2.7.4  逻辑运算符 51

2.7.5  移位运算符 54

2.7.6  其他特殊运算符 54

2.7.7  运算符的优先级 56

2.8  照猫画虎——基本功训练 57

2.8.1  基本功训练1——使用“///”标记给

代码段添加说明 57

2.8.2  基本功训练2——使用引号运算符

进行赋值 58

2.8.3  基本功训练3——使用checked

关键字处理“溢出”错误 58

2.8.4  基本功训练4——使用typeof关键字

获取类的内部结构 59

2.8.5  基本功训练5——使用using关键字

有效回收资源 60

2.9  情景应用——拓展与实践 61

2.9.1  情景应用1——检查对象是否与给定

类型兼容 61

2.9.2  情景应用2——使用算术运算符开发

简单计算器 62

2.9.3  情景应用3——使用“^”运算符对

数字进行加密 64

2.9.4  情景应用4——巧用移位运算符获取

汉字编码值 65

2.9.5  情景应用5——使用条件运算符判断

指定年份是不是闰年 66

2.10  自我测试 67

2.11  行动指南 68

2.12  成功可以复制——中国第一程序员

求伯君 69

第3堂课  程序流程控制 71

 视频讲解:116分钟

3.1  C#程序设计算法 72

3.2  if语句的使用 74

3.2.1  使用if和if…else语句实现条件选择 74

3.2.2  if语句的嵌套使用 77

3.3  switch语句的使用 78

3.3.1  使用switch语句实现多分支选择 79

3.3.2  if…else语句与switch语句 80

3.4  while和do…while语句的使用 82

3.4.1  使用while语句实现代码循环 82

3.4.2  使用do…while语句实现至少执行

一次循环 84

3.4.3  while和do…while语句的区别 86

3.5  for和foreach语句的使用 86

3.5.1  使用for语句实现代码循环 86

3.5.2  使用foreach语句遍历数据集合 88

3.6  循环结构中的跳转语句 89

3.6.1  使用break语句跳出循环 89

3.6.2  使用continue语句继续程序的执行 91

3.6.3  使用goto语句实现程序跳转 92

3.6.4  使用return语句使程序返回 94

3.7  照猫画虎——基本功训练 95

3.7.1  基本功训练1——循环向控制台中输出

内容 95

3.7.2  基本功训练2——使用switch语句

实现数字转换大写 96

3.7.3  基本功训练3——鸡尾酒排序算法的实现 97

3.7.4  基本功训练4——判断用户登录身份 99

3.7.5  基本功训练5——小明去学校和医院

分别要走哪条路 100

3.8  情景应用——拓展与实践 101

3.8.1  情景应用1——递归算法的经典面试题 101

3.8.2  情景应用2——使用流程控制语句

报销业务花销 102

3.8.3  情景应用3——使用switch语句更改

窗体颜色 102

3.8.4  情景应用4——使用goto语句在数

组中搜索指定图书 103

3.8.5  情景应用5——制作一个数字猜猜看

小游戏 104

3.9  自我测试 105

3.10  行动指南 107

3.11  成功可以复制——软件业的华人

教父王嘉廉 108

第4堂课  字符及字符串的使用 111

 视频讲解:106分钟

4.1  字符操作 112

4.1.1  Char类概述 112

4.1.2  使用Char类中的方法对字符进行操作 112

4.1.3  认识并使用转义字符 114

4.2  字符串的声明及初始化 114

4.3  字符串操作 115

4.3.1  比较字符串 115

4.3.2  格式化字符串 116

4.3.3  截取字符串 117

4.3.4  分割字符串 118

4.3.5  插入和填充字符串 118

4.3.6  删除字符串 120

4.3.7  复制字符串 120

4.3.8  替换字符串 122

4.4  可变字符串类StringBuilder的使用 122

4.4.1  StringBuilder类概述 122

4.4.2  创建StringBuilder对象 123

4.4.3  StringBuilder类的使用 123

4.4.4  StringBuilder类与string类的区别 124

4.5  照猫画虎——基本功训练 125

4.5.1  基本功训练1——判断用户输入的

用户名是否正确 125

4.5.2  基本功训练2——将字符串的每个

字符进行颠倒输出 126

4.5.3  基本功训练3——去掉字符串中的

所有空格 126

4.5.4  基本功训练4——获取字符串中汉字的

个数 127

4.5.5  基本功训练5——从字符串中分离

文件路径、文件名及扩展名 127

4.6  情景应用——拓展与实践 128

4.6.1  情景应用1——字母与ASCII码的转换 128

4.6.2  情景应用2——将汉字转换为拼音 129

4.6.3  情景应用3——批量替换某一类字符串 130

4.6.4  情景应用4——对字符串进行加密与

解密 131

4.6.5  情景应用5——开发一个进制转换器 133

4.7  自我测试 136

4.8  行动指南 137

4.9  成功可以复制——“杀毒王”王江民

不可思议的传奇人生 138

第5堂课  数组与集合 141

 视频讲解:139分钟

5.1  数组概述 142

5.2  一维数组的声明和使用 142

5.2.1  一维数组的声明 142

5.2.2  一维数组的使用 143

5.3  二维数组的声明和使用 144

5.3.1  二维数组的声明 144

5.3.2  二维数组的使用 144

5.3.3  动态数组的声明及使用 145

5.4  数组的基本操作 146

5.4.1  遍历数组中的元素 146

5.4.2  添加和删除数组元素 147

5.4.3  数组的合并与拆分 147

5.5  ArrayList集合的使用 149

5.5.1  ArrayList集合概述 149

5.5.2  添加ArrayList集合元素 150

5.5.3  删除ArrayList集合元素 152

5.5.4  遍历ArrayList集合 154

5.5.5  查找ArrayList集合元素 154

5.6  照猫画虎——基本功训练 155

5.6.1  基本功训练1——获取多维数组的

行数与列数 155

5.6.2  基本功训练2——按指定条件在数组

中检索元素 156

5.6.3  基本功训练3——在数组中添加一个

元素 157

5.6.4  基本功训练4——不改变长度删除

数组中的元素 159

5.6.5  基本功训练5——删除数组元素后

改变其长度 160

5.7  情景应用——拓展与实践 162

5.7.1  情景应用1——操作便捷的简单电话簿 162

5.7.2  情景应用2——使用数组解决约瑟夫环

问题 163

5.7.3  情景应用3——向班级集合中添加学生

信息 164

5.7.4  情景应用4——使用哈希表对XML文件

进行查询 165

5.7.5  情景应用5——设计一个简单客车

售票记录程序 166

5.8  自我测试 168

5.9  行动指南 169

5.10  成功可以复制——善于抓住时机

的人徐少春 170

第6堂课  程序设计中的算法 173

 视频讲解:57分钟

6.1  算法基础 174

6.1.1  初识算法 174

6.1.2  描述算法的两种常用流程图 174

6.2  常用的算法 175

6.2.1  查找最大、最小值算法的实现 176

6.2.2  杨辉三角算法的实现 177

6.2.3  冒泡排序法 178

6.2.4  插入排序法 179

6.2.5  选择排序法 180

6.2.6  希尔排序法 181

6.3  照猫画虎——基本功训练 183

6.3.1  基本功训练1——计算1+22+33+

44+…+nn的值 183

6.3.2  基本功训练2——计算10!的值 183

6.3.3  基本功训练3——求最大公约数 184

6.3.4  基本功训练4——将B转换成GB、

MB和KB 185

6.3.5  基本功训练5——0~N位数的任意组合 186

6.4  情景应用——拓展与实践 187

6.4.1  情景应用1——身份证号从15位升到

18位算法 187

6.4.2  情景应用2——韩信点兵的算法实现 188

6.4.3  情景应用3——求水仙花数的算法实现 189

6.4.4  情景应用4——制作一个迷你星座

查询器 190

6.4.5  情景应用5——设计双色球彩票选号器 194

6.5  自我测试 196

6.6  行动指南 197

6.7  成功可以复制——缔造华人的硅谷

传奇杨致远 197

第7堂课  面向对象程序设计 199

 视频讲解:160分钟

7.1  面向对象编程概述 200

7.2  属性的定义及使用 200

7.2.1  属性概述 201

7.2.2  属性的定义 201

7.2.3  属性的使用 202

7.3  方法的声明及使用 203

7.3.1  方法概述 203

7.3.2  方法修饰符 203

7.3.3  方法的声明 204

7.3.4  方法的分类 205

7.3.5  重载方法的实现 206

7.4  枚举类型 207

7.4.1  枚举类型概述 207

7.4.2  枚举类型的声明 207

7.4.3  枚举类型的使用 208

7.5  泛型及其使用 209

7.5.1  泛型概述 209

7.5.2  类型参数T 209

7.5.3  泛型接口的声明及使用 209

7.6  结构的定义及使用 210

7.6.1  结构概述 211

7.6.2  结构的定义 211

7.6.3  结构的使用 211

7.7  类与对象详解 212

7.7.1  类的概念 212

7.7.2  类的声明 213

7.7.3  构造函数和析构函数 213

7.7.4  对象的声明和创建 214

7.8  面向对象特性之封装 216

7.8.1  封装概述 216

7.8.2  封装的实现 217

7.9  面向对象特性之继承 218

7.9.1  继承概述 218

7.9.2  单继承的使用 219

7.9.3  多重继承的使用 219

7.10  面向对象特性之多态 221

7.10.1  多态概述 221

7.10.2  多态的实现 222

7.11  照猫画虎——基本功训练 224

7.11.1  基本功训练1——使用属性存储用户

编号和姓名 224

7.11.2  基本功训练2——通过定义方法求

一个数的平方 225

7.11.3  基本功训练3——使用重载方法实现

不同类型数据的计算 226

7.11.4  基本功训练4——通过结构计算矩形的

面积 227

7.11.5  基本功训练5——通过类继承计算梯形

面积 227

7.12  情景应用——拓展与实践 229

7.12.1  情景应用1——通过类的多态性确定

人类的说话行为 229

7.12.2  情景应用2——封装类实现一个简单的

计算器 230

7.12.3  情景应用3——使用分部类记录学生

信息 231

7.12.4  情景应用4——使用泛型存储不同类型

的数据列表 232

7.12.5  情景应用5——使用泛型去掉数组中的

重复数字 233

7.13  自我测试 234

7.14  行动指南 235

7.15  成功可以复制——百度CEO李彦宏 236

第2部分  提高篇

第8堂课  Windows窗体设计 241

 视频讲解:139分钟

8.1  Form窗体基础 242

8.1.1  Form窗体概述 242

8.1.2  添加和删除Form窗体 242

8.1.3  添加多窗体 243

8.1.4  设置窗体的属性 244

8.1.5  窗体的显示与隐藏 246

8.1.6  触发窗体事件 247

8.2  MDI窗体设计 248

8.2.1  MDI窗体概述 248

8.2.2  设置MDI窗体 249

8.2.3  排列MDI子窗体 249

8.3  继承窗体设计 251

8.3.1  继承窗体概述 251

8.3.2  创建继承窗体 251

8.3.3  在继承窗体中修改继承的控件属性 253

8.4  照猫画虎——基本功训练 254

8.4.1  基本功训练1——控制窗体加载时的

位置 254

8.4.2  基本功训练2——设置窗体在屏幕中的

位置 254

8.4.3  基本功训练3——使窗体始终在桌面

最顶层显示 255

8.4.4  基本功训练4——根据桌面大小调整

窗体大小 256

8.4.5  基本功训练5——使背景图片自动适应

窗体的大小 256

8.5  情景应用——拓展与实践 257

8.5.1  情景应用1——从上次关闭位置启动

窗体 257

8.5.2  情景应用2——自定义最大化、最小化

和关闭按钮 258

8.5.3  情景应用3——磁性窗体的设计 261

8.5.4  情景应用4——制作鼠标穿透窗体 270

8.5.5  情景应用5——窗体换肤程序 270

8.6  自我测试 273

8.7  行动指南 274

8.8  成功可以复制——迅雷创始人邹胜龙 274

第9堂课  Windows应用程序常用控件 277

 视频讲解:198分钟

9.1  控件概述 278

9.1.1  浏览常用控件 278

9.1.2  控件的分类及作用 278

9.2  控件的相关操作 279

9.2.1  添加控件 279

9.2.2  对齐控件 280

9.2.3  锁定控件 280

9.2.4  删除控件 280

9.3  文本类控件 280

9.3.1  标签控件 280

9.3.2  按钮控件 281

9.3.3  文本框控件 282

9.3.4  有格式文本控件 284

9.4  选择类控件 286

9.4.1  下拉组合框控件 286

9.4.2  复选框控件 287

9.4.3  单选按钮控件 289

9.4.4  数值选择控件 290

9.4.5  列表控件 291

9.5  分组控件 293

9.5.1  容器控件 293

9.5.2  分组框控件 294

9.5.3  选项卡控件 295

9.6  对话框控件 297

9.6.1  对话框概述 297

9.6.2  打开对话框 297

9.6.3  另存为对话框 298

9.6.4  浏览文件夹对话框 299

9.7  菜单、工具栏和状态栏控件 300

9.7.1  菜单控件 300

9.7.2  工具栏控件 301

9.7.3  状态栏控件 302

9.8  照猫画虎——基本功训练 303

9.8.1  基本功训练1——在ComboBox下拉

列表中显示图片 303

9.8.2  基本功训练2——实现带查询功能

的ComboBox控件 304

9.8.3  基本功训练3——在RichTextBox控件中

实现关键字描红 305

9.8.4  基本功训练4——对ListBox控件中的

数据进行排序 306

9.8.5  基本功训练5——具有提示功能的

工具栏 306

9.9  情景应用——拓展与实践 307

9.9.1  情景应用1——只允许输入数字的

TextBox控件 307

9.9.2  情景应用2——判断注册用户操作权限 308

9.9.3  情景应用3——实现类似Word的项目

编号功能 309

9.9.4  情景应用4——制作带历史信息的菜单 310

9.9.5  情景应用5——制作仿XP系统的任务栏

菜单 311

9.10  自我测试 312

9.11  行动指南 313

9.12  成功可以复制——前微软CEO 

比尔·盖茨 314

第10堂课  Windows应用程序高级控件 317

 视频讲解:170分钟

10.1  存储图像控件 318

10.1.1  在ImageList控件中添加图像 318

10.1.2  在ImageList控件中移除图像 319

10.2  列表视图控件 320

10.2.1  在ListView控件中添加移除项 320

10.2.2  选择ListView控件中的项 322

10.2.3  为ListView控件中的项添加图标 323

10.2.4  在ListView控件中启用平铺视图 324

10.3  树控件 324

10.3.1  添加和删除树节点 325

10.3.2  获取树控件中选中的节点 326

10.3.3  为树控件中的节点设置图标 327

10.4  日期控件 328

10.4.1  使用DateTimePicker控件显示时间 328

10.4.2  使用DateTimePicker控件以自定义

格式显示日期 329

10.4.3  返回DateTimePicker控件中选择的日期 330

10.5  月历控件 331

10.5.1  在MonthCalendar控件中以粗体显示

特定日期 331

10.5.2  在MonthCalendar控件中选择日期范围 332

10.6  其他高级控件 332

10.6.1  使用ErrorProvider控件验证文本框输入 333

10.6.2  使用HelpProvider控件调用帮助文件 334

10.6.3  使用Timer控件设置时间间隔 335

10.6.4  使用ProgressBar控件显示程序运行进

度条 336

10.7  照猫画虎——基本功训练 337

10.7.1  基本功训练1——在列表视图中拖动

视图项 337

10.7.2  基本功训练2——制作带复选框的

ListView控件 338

10.7.3  基本功训练3——使用MaskedTextBox

控件实现输入验证 339

10.7.4  基本功训练4——使用Timer组件

实现人物动画效果 340

10.7.5  基本功训练5——使用ErrorProvider

组件验证文本框输入 340

10.8  情景应用——拓展与实践 341

10.8.1  情景应用1——使用TreeView控件

遍历磁盘目录 341

10.8.2  情景应用2——用树型列表动态显示

菜单 343

10.8.3  情景应用3——设计一个电子万年历 344

10.8.4  情景应用4——制作一个闹钟计时器 345

10.8.5  情景应用5——弹出模式窗口显示进

度条 346

10.9  自我测试 348

10.10  行动指南 349

10.11  成功可以复制——图文世界的缔

造者约翰·沃洛克 349

第11堂课  ADO.NET数据访问技术 351

 视频讲解:151分钟

11.1  ADO.NET概述 352

11.2  使用Connection对象连接数据库 352

11.2.1  Connection对象概述 352

11.2.2  连接数据库 352

11.2.3  关闭连接 353

11.3  使用Command对象执行SQL语句 355

11.3.1  Command对象概述 355

11.3.2  设置数据源类型 356

11.3.3  执行SQL语句 357

11.4  使用DataReader对象读取数据 359

11.4.1  DataReader对象概述 359

11.4.2  判断查询结果中是否有值 359

11.4.3  读取数据 360

11.5  数据适配器:DataAdapter对象 361

11.5.1  DataAdapter对象概述 361

11.5.2  填充DataSet数据集 361

11.5.3  更新数据源 362

11.6  数据集:DataSet对象 363

11.6.1  DataSet对象概述 363

11.6.2  合并DataSet内容 364

11.6.3  复制DataSet内容 365

11.7  照猫画虎——基本功训练 366

11.7.1  基本功训练1——连接加密的Access

数据库 366

11.7.2  基本功训练2——连接文本文件并

显示其内容 367

11.7.3  基本功训练3——读取SQL Server

数据库结构 368

11.7.4  基本功训练4——备份指定的SQL 

Server数据库 369

11.7.5  基本功训练5——判断计算机中是否

安装了SQL软件 370

11.8  情景应用——拓展与实践 371

11.8.1  情景应用1——向SQL Server数据库中

批量写入海量数据 371

11.8.2  情景应用2——使用断开式连接批量

更新数据库中数据 373

11.8.3  情景应用3——综合查询职工详细信息 374

11.8.4  情景应用4——使用二进制存取用户

头像 376

11.8.5  情景应用5——使用存储过程实现员工

自动编号 378

11.9  自我测试 380

11.10  行动指南 380

11.11  成功可以复制——微型博客Twitter

创始人埃文·威廉姆斯 381

第12堂课  DataGridView数据控件 383

 视频讲解:103分钟

12.1  DataGridView控件概述 384

12.2  在DataGridView控件中显示数据 384

12.3  获取DataGridView控件中的当前

单元格 385

12.4  在DataGridView控件中修改数据 386

12.5  选中DataGridView控件中的行时

显示不同颜色 387

12.6  禁止在DataGridView控件中添加和

删除行 389

12.7  禁用DataGridView控件的自动排序

功能 389

12.8  合并DataGridView控件中的单元格 390

12.9  照猫画虎——基本功训练 392

12.9.1  基本功训练1——设置DataGridView

控件中网格线的样式 392

12.9.2  基本功训练2——在DataGridView控件

中设置数据显示格式 392

12.9.3  基本功训练3——设置DataGridView

控件单元格的文本对齐方式 393

12.9.4  基本功训练4——在DataGridView控件

中实现下拉列表 394

12.9.5  基本功训练5——为DataGridView控件

实现复选功能 395

12.10  情景应用——拓展与实践 396

12.10.1  情景应用1——在DataGridView控件

中验证数据输入 396

12.10.2  情景应用2——在DataGridView控件

中添加“合计”和“平均值” 396

12.10.3  情景应用3——使用交叉表实现商品

销售统计 398

12.10.4  情景应用4——将DataGridView中

数据导出到Word 399

12.10.5  情景应用5——通过DataGridView

分页查看用户信息 401

12.11  自我测试 403

12.12  行动指南 404

12.13  成功可以复制——因特网的点火人

马克·安德森 405

第3部分  高级篇

第13堂课  面向对象编程高级技术 409

 视频讲解:100分钟

13.1  接口的声明及实现 410

13.1.1  接口概述 410

13.1.2  接口的声明 410

13.1.3  接口的实现与继承 411

13.1.4  显式接口成员实现 412

13.2  抽象类的声明及使用 413

13.2.1  抽象类概述 413

13.2.2  抽象类的声明 414

13.2.3  抽象方法的声明 414

13.2.4  抽象类的使用 414

13.2.5  抽象类与接口 416

13.3  密封类的声明及使用 416

13.3.1  密封类概述 416

13.3.2  密封类的声明 416

13.3.3  密封方法的声明 417

13.3.4  密封类的使用 418

13.4  照猫画虎——基本功训练 419

13.4.1  基本功训练1——自定义抽象类计算

圆形的面积 419

13.4.2  基本功训练2——利用接口实现选择

不同的语言 420

13.4.3  基本功训练3——使用接口作为方法

参数进行编程 421

13.4.4  基本功训练4——通过重写虚方法实现

加法运算 422

13.4.5  基本功训练5——使用多重继承实现

教师和学生信息的输出 422

13.5  情景应用——拓展与实践 424

13.5.1  情景应用1——使用迭代器显示公

交车站点 424

13.5.2  情景应用2——通过迭代器实现文字

的动态效果 425

13.5.3  情景应用3——使用分部类实现多种

计算方法 427

13.5.4  情景应用4——通过继承泛型类实现

输出学生信息 428

13.5.5  情景应用5——使用密封类密封用户

信息 429

13.6  自我测试 430

13.7  行动指南 431

13.8  成功可以复制——征途巨人史玉柱 432

第14堂课  LINQ技术的使用 435

 视频讲解:124分钟

14.1  LINQ基础 436

14.1.1  LINQ概述 436

14.1.2  使用var创建隐型局部变量 436

14.1.3  Lambda表达式的使用 437

14.1.4  LINQ查询表达式 438

14.2  LINQ操作SQL Server数据库 439

14.2.1  使用LINQ查询SQL Server数据库 439

14.2.2  使用LINQ管理SQL Server数据库 443

14.3  LINQ操作其他数据 449

14.3.1  使用LINQ操作数组和集合 449

14.3.2  使用LINQ操作DataSet数据集 450

14.3.3  使用LINQ操作XML 451

14.4  照猫画虎——基本功训练 454

14.4.1  基本功训练1——检查序列中是否包含

指定元素 454

14.4.2  基本功训练2——使用LINQ生成随机

序列 455

14.4.3  基本功训练3——统计每种商品的销售

次数 456

14.4.4  基本功训练4——统计每种商品的销售

均价 457

14.4.5  基本功训练5——获取有过返货记录的

商品列表 457

14.5  情景应用——拓展与实践 458

14.5.1  情景应用1——使用存储过程查询单表

数据 458

14.5.2  情景应用2——使用LINQ技术防止

SQL注入式攻击 459

14.5.3  情景应用3——使用LINQ技术实现

数据分页 460

14.5.4  情景应用4——从头开始提取满足指定

条件的记录 462

14.5.5  情景应用5——读取XML文件并更新

到数据库 463

14.6  自我测试 464

14.7  行动指南 465

14.8  成功可以复制——中国通信设备

行业的领跑者任正非 466

第15堂课  文件及IO 469

 视频讲解:171分钟

15.1  文件操作基础 470

15.1.1  File类和FileInfo类介绍 470

15.1.2  Directory类和DirectoryInfo类介绍 472

15.2  文件基本操作 475

15.2.1  判断文件是否存在 475

15.2.2  创建文件 475

15.2.3  复制文件 476

15.2.4  移动文件 477

15.2.5  删除文件 477

15.3  文件夹基本操作 478

15.3.1  判断文件夹是否存在 478

15.3.2  创建文件夹 478

15.3.3  移动文件夹 479

15.3.4  删除文件夹 479

15.4  I/O输入输出 480

15.4.1  流概述 480

15.4.2  文件I/O流介绍 481

15.4.3  使用I/O流操作文本文件 482

15.4.4  使用I/O流操作二进制文件 484

15.5  照猫画虎——基本功训练 486

15.5.1  基本功训练1——获取文件基本信息 486

15.5.2  基本功训练2——遍历文件夹 487

15.5.3  基本功训练3——使用C#操作INI

文件 488

15.5.4  基本功训练4——按行读取文本文件中

数据 489

15.5.5  基本功训练5——获取指定文件夹的

上级目录 490

15.6  情景应用——拓展与实践 490

15.6.1  情景应用1——根据日期动态建立文件 490

15.6.2  情景应用2——文件批量更名 491

15.6.3  情景应用3——复制文件时显示复制

进度 492

15.6.4  情景应用4——伪装文件夹 494

15.6.5  情景应用5——对指定文件夹中的文件

进行分类存储 496

15.7  自我测试 497

15.8  行动指南 498

15.9  成功可以复制——中国网络游戏

产业的领军人陈天桥 499

第16堂课  GDI+绘图技术 501

 视频讲解:145分钟

16.1  GDI+绘图基础 502

16.1.1  GDI+概述 502

16.1.2  创建Graphics对象 502

16.1.3  创建Pen对象 503

16.1.4  创建Brush对象 503

16.2  基本图形绘制 504

16.2.1  绘制直线和矩形 505

16.2.2  绘制椭圆、弧和扇形 506

16.2.3  绘制多边形 508

16.2.4  绘制文本 509

16.2.5  绘制图形 510

16.3  照猫画虎——基本功训练 510

16.3.1  基本功训练1——绘制公章 510

16.3.2  基本功训练2——波形图的绘制 512

16.3.3  基本功训练3——生成图片缩略图 513

16.3.4  基本功训练4——以任意角度旋转图像 514

16.3.5  基本功训练5——浮雕效果显示图像 515

16.4  情景应用——拓展与实践 516

16.4.1  情景应用1——绘制中文验证码 516

16.4.2  情景应用2——批量图像格式转换 517

16.4.3  情景应用3——抓取网站整页面 520

16.4.4  情景应用4——批量添加图片水印 523

16.4.5  情景应用5——打造自己的开心农场 527

16.5  自我测试 530

16.6  行动指南 531

16.7  成功可以复制——“盖茨第二” 

马克·扎克伯格 531

第17堂课  水晶报表与打印 533

 视频讲解:137分钟

17.1  认识水晶报表 534

17.1.1  水晶报表概述 534

17.1.2  水晶报表工作区介绍 534

17.2  水晶报表数据源和数据访问模式 535

17.2.1  Visual Studio 2008中水晶报表数据源

列举 535

17.2.2  水晶报表的数据访问模式 535

17.3  水晶报表基本操作 536

17.3.1  创建水晶报表并连接数据源 536

17.3.2  水晶报表中数据的分组与排序 538

17.3.3  水晶报表中数据的筛选 540

17.3.4  在水晶报表中使用图表 542

17.3.5  在水晶报表中创建子报表 543

17.4  Windows打印组件的使用 545

17.4.1  使用PageSetupDialog组件设置打印

文档信息 545

17.4.2  使用PrintDialog组件显示打印对话框 546

17.4.3  使用PrintDocument组件设置打印文档 547

17.4.4  使用PrintPreviewControl组件设置

打印预览文档 548

17.4.5  使用PrintPreviewDialog组件显示打印

预览 549

17.5  照猫画虎——基本功训练 549

17.5.1  基本功训练1——自定义横向打印 549

17.5.2  基本功训练2——自定义打印页码范围 551

17.5.3  基本功训练3——打印商品入库单据 556

17.5.4  基本功训练4——使图片成为整个报表

的背景 557

17.5.5  基本功训练5——设置水晶报表的打印

日期与时间 558

17.6  情景应用——拓展与实践 560

17.6.1  情景应用1——打印学生个人简历 560

17.6.2  情景应用2——批量打印学生证书 561

17.6.3  情景应用3——订货总金额超过10万元

显示“恭喜获奖”文字 564

17.6.4  情景应用4——部门销售量占公司总

销售量的业绩百分比 566

17.6.5  情景应用5——按类别分组统计图

书库存 567

17.7  自我测试 568

17.8  行动指南 569

17.9  成功可以复制——3D王国的开创者

约翰·沃克 569

第18堂课  网络编程 571

 视频讲解:152分钟

18.1  计算机网络基础 572

18.1.1  局域网与因特网介绍 572

18.1.2  网络协议介绍 572

18.1.3  端口及套接字介绍 574

18.2  网络编程基础 575

18.2.1  System.NET命名空间及相关类的使用 575

18.2.2  System.NET.Sockets命名空间及相关

类的使用 580

18.2.3  System.NET.Mail命名空间及相关类的

使用 585

18.3  照猫画虎——基本功训练 587

18.3.1  基本功训练1——通过IP地址获取

主机名称 587

18.3.2  基本功训练2——得到本机MAC地址 588

18.3.3  基本功训练3——获取网络中所有工作

组名称 588

18.3.4  基本功训练4——获取网络中某台计

算机的磁盘信息 589

18.3.5  基本功训练5——编程实现Ping操作 590

18.4  情景应用——拓展与实践 591

18.4.1  情景应用1——获取网络信息及流量 591

18.4.2  情景应用2——远程关闭与重启计算机 593

18.4.3  情景应用3——创建Web页面浏览器 594

18.4.4  情景应用4——设计点对点聊天程序 595

18.4.5  情景应用5——电子邮件的发送与接收 596

18.5  自我测试 598

18.6  行动指南 598

18.7  成功可以复制——80后新贵、

泡泡网CEO李想 599

第19堂课  线程的使用 601

 视频讲解:142分钟

19.1  线程概述 602

19.1.1  线程的定义与分类 602

19.1.2  多线程的使用 603

19.1.3  线程的生命周期 603

19.2  C#中的线程类Thread 604

19.3  线程调度 606

19.3.1  创建线程 606

19.3.2  线程的挂起与恢复 607

19.3.3  线程休眠 608

19.3.4  终止线程 608

19.3.5  线程的优先级 609

19.4  线程同步 611

19.4.1  线程同步机制 611

19.4.2  使用lock关键字实现线程同步 611

19.4.3  使用Monitor驱动对象实现线程同步 612

19.4.4  使用Mutex类实现线程同步 613

19.5  照猫画虎——基本功训练 615

19.5.1  基本功训练1——判断线程的运行

状态 615

19.5.2  基本功训练2——使用线程遍历

文件夹 615

19.5.3  基本功训练3——使用线程休眠控制

图片以百叶窗效果显示 616

19.5.4  基本功训练4——使用线程读取数据库

中的数据 618

19.5.5  基本功训练5——使用线程实现大容量

数据的计算 618

19.6  情景应用——拓展与实践 619

19.6.1  情景应用1——使用线程扫描局域网

IP地址 619

19.6.2  情景应用2——使用线程制作小游戏 621

19.6.3  情景应用3——有进度条的文件异步

复制功能 622

19.6.4  情景应用4——使用线程控制向窗体中

拖放图片并显示 624

19.6.5  情景应用5——使用多线程制作端口

扫描工具 625

19.7  自我测试 626

19.8  行动指南 627

  

19.9  成功可以复制——IT“大王”

王志东 627

第20堂课  异常处理与程序调试 629

 视频讲解:30分钟

20.1  异常处理与程序调试概述 630

20.2  异常处理语句的使用 630

20.2.1  使用throw语句抛出异常 630

20.2.2  使用try…catch语句捕捉异常 632

20.2.3  使用try…catch…finally语句捕捉

异常 633

20.3  常用的程序调试操作 634

20.3.1  断点操作 634

20.3.2  开始、中断和停止程序的执行 635

20.3.3  单步执行 636

20.3.4  运行到指定位置 637

20.4  成功可以复制——IT风云人物

鲍岳桥 637

第21堂课  Windows应用程序打包部署 639

 视频讲解:14分钟

21.1  Windows Installer介绍 640

21.2  创建Windows安装项目 640

21.3  制作Windows安装程序 641

21.3.1  添加项目输出 641

21.3.2  添加内容文件 642

21.3.3  创建桌面快捷方式 643

21.3.4  添加注册表项 644

21.3.5  生成Windows安装程序 646

21.4  部署Windows应用程序 646

21.5  成功可以复制——暴雪公司的

领航者迈克·莫汉 647

第4部分  实战篇

第22堂课  企业人事管理系统 651

 视频讲解:150分钟

22.1  系统分析 652

22.1.1  需求分析 652

22.1.2  可行性分析 652

22.1.3  编写项目计划书 653

22.2  系统设计 654

22.2.1  系统目标 654

22.2.2  系统功能结构 655

22.2.3  系统业务流程图 655

22.2.4  系统编码规范 656

22.3  系统运行环境 656

22.4  数据库与数据表设计 656

22.4.1  数据库分析 657

22.4.2  创建数据库 657

22.4.3  创建数据表 659

22.4.4  数据表逻辑关系 663

22.5  创建项目 664

22.6  公共类设计 665

22.6.1  MyMeans公共类 665

22.6.2  MyModule公共类 667

22.7  登录模块设计 679

22.7.1  设计登录窗体 680

22.7.2  按回车键时移动鼠标焦点 680

22.7.3  登录功能的实现 680

22.8  系统主窗体设计 681

22.8.1  设计菜单栏 682

22.8.2  设计工具栏 683

22.8.3  设计导航菜单 684

22.8.4  设计状态栏 684

22.9  人事档案管理模块设计 685

22.9.1  设计人事档案管理窗体 686

22.9.2  添加/修改人事档案信息 688

22.9.3  删除人事档案信息 690

22.9.4  单条件查询人事档案信息 690

22.9.5  逐条查看人事档案信息 692

22.9.6  将人事档案信息导出为Word文档 694

22.10  人事资料查询模块设计 698

22.10.1  设计人事资料查询窗体 699

22.10.2  多条件查询人事资料 700

22.11  通讯录模块设计 700

22.11.1  设计通讯录窗体 701

22.11.2  添加/修改通讯录信息 701

22.11.3  删除通讯录信息 703

22.11.4  查询通讯录信息 704

22.12  用户设置模块设计 704

22.12.1  设计用户设置窗体 705

22.12.2  添加/修改用户信息 705

22.12.3  删除用户基本信息 707

22.12.4  设置用户操作权限 707

22.13  数据库维护模块设计 708

22.13.1  设计数据库维护窗体 708

22.13.2  备份数据库 709

22.13.3  还原数据库 709

22.14  运行项目 711

22.15  系统打包部署 712

22.16  开发常见问题与解决 715

22.16.1  程序为什么会无法运行 715

22.16.2  为什么无法添加职工基本信息 716

22.16.3  选择职工头像时出现异常怎么办 717

22.16.4  数据库还原不成功应该如何解决 717

22.16.5  出现Word引用问题怎么办 717

22.16.6  COM选项卡中没有Word 9.0引用

怎么办 718

22.16.7  为什么使用全名声明Word对象后

还出现错误 718

22.17  小结 722

特别提醒:

  亲爱的读者朋友,由于近期纸张价格和印制成本大幅上涨,为不增加读者朋友的负担,又不减少书的内容,本书以下章节内容不得不放在配书光盘中,由此给您带来了不便,在此深表歉意。

第23堂课  房屋中介管理系统 723

 视频讲解:11分钟

      (本章内容在配书光盘中)

23.1  系统分析 724

23.2  系统设计 724

23.2.1  系统目标 724

23.2.2  系统功能结构图 724

23.2.3  系统业务流程图 725

23.3  系统运行环境 725

23.4  数据库与数据表设计 725

23.4.1  数据库分析 725

23.4.2  数据表设计 726

23.4.3  视图设计 728

23.4.4  存储过程设计 729

23.4.5  触发器设计 731

23.5  创建项目 732

23.6  公共类设计 733

23.7  系统主窗体设计 733

23.8  用户信息管理模块设计 733

23.9  房源信息设置模块设计 734

23.10  房源信息查询模块设计 734

23.11  房源状态查询模块设计 735

23.12  员工信息设置模块设计 735

23.13  小结 736

第24堂课  进销存管理系统 737

 视频讲解:13分钟

      (本章内容在配书光盘中)

24.1  系统分析 738

24.2  系统设计 738

24.2.1  系统目标 738

24.2.2  系统功能结构图 738

24.2.3  系统业务流程图 739

24.3  系统运行环境 739

24.4  数据库与数据表设计 739

24.4.1  数据库分析 740

24.4.2  数据表设计 740

24.4.3  数据表逻辑关系 742

24.5  创建项目 743

24.6  公共类设计 744

24.7  登录模块设计 744

24.8  系统主窗体设计 744

24.9  基础数据管理模块设计 745

24.10  进货管理模块设计 745

24.11  商品销售排行模块设计 746

24.12  库存状况管理模块设计 746

24.13  库存盘点模块设计 747

24.14  小结 747

附录A  C#程序编码规范 749

   (本章内容在配书光盘中)

A.1  命名规则 749

A.1.1  数据类型简写规则 749

A.1.2  变量及对象名称命名规则 749

A.1.3  类命名规则 750

A.1.4  属性命名规则 750

A.1.5  方法命名规则 750

A.1.6  接口命名规则 750

A.1.7  控件命名规则 751

A.2  代码版式 751

A.2.1  统一代码缩进 751

A.2.2  合理使用空行 751

A.2.3  代码换行 752

A.2.4  空格的使用 752

A.3  代码注释 752

A.3.1  注释的目的 752

A.3.2  代码注释规范 752

A.4  数据库编程命名规范 753

A.4.1  数据库命名规范 753

A.4.2  数据表命名规范 753

A.4.3  字段命名规范 753

A.4.4  视图命名规范 753

A.4.5  存储过程命名规范 754

A.4.6  触发器命名规范 754

  

  

学通C#的24堂课

  

目    录

  

IV

  

  

XI