《软件开发实战 C#开发实战》PDF下载

  • 购买积分:19 如何计算积分?
  • 作  者:软件开发技术联盟编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2013
  • ISBN:9787302318903
  • 页数:676 页
图书介绍:本书从初学者的角度讲述使用Visual Studio 2008开发环境结合C#语言进行程序开发应该掌握的各项技术,突出“基础”、“全面”、“深入”;同时就像书名所暗示的一样,强调“实战”效果。全书主要内容包括初探C#及其开发环境,认识C#代码结构,C#程序设计基础,选择结构控制,循环结构控制,字符及字符串,数组、集合与哈希表,面向对象程序设计等。

第1篇 新手入门 2

第1章 初探C#及其开发环境 2

1.1了解.NET 3

1.1.1.NET概述 3

1.1.2.NET程序编译原理 3

1.1.3.NET项目成功案例 4

1.2 C#语言及其特点 5

1.2.1 C#与.NET的关系 5

1.2.2 C#语言的特点 5

1.2.3 C#语言的发展趋势 5

1.3安装与卸载Visual Studio 2010 5

1.3.1安装Visual Studio 2010系统必备条件 6

1.3.2安装Visual Studio 2010 6

1.3.3卸载Visual Studio 2010 8

1.4熟悉Visual Studio 2010开发环境 8

1.4.1创建控制台应用程序 8

1.4.2创建Windows窗体应用程序 9

1.4.3菜单栏 10

1.4.4工具栏介绍 10

1.4.5“工具箱”面板 11

1.4.6“属性”面板 11

1.4.7解决方案资源管理器 11

1.4.8“错误列表”面板 12

1.4.9“输出”面板 12

1.5 C#编程常用帮助 12

1.5.1安装Help Library管理器 13

1.5.2使用Help Library管理器 13

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

1.6实战 15

1.6.1如何开始运行程序 15

1.6.2如何中断当前程序的运行 15

1.7小结 16

1.8学习成果检验 16

第2章 认识C#代码结构 17

2.1定制自己的开发环境 18

2.1.1设置代码字体和颜色 18

2.1.2设置显示代码行号 18

2.1.3灵活使用自动隐藏功能 19

2.2编写第一个C#程序 19

2.3分析C#程序结构 20

2.3.1命名空间介绍 20

2.3.2类 21

2.3.3 Main方法 21

2.3.4标识符 22

2.3.5关键字 22

2.3.6编写C#语句 22

2.3.7代码注释 23

2.4实战 24

2.4.1使用“记事本”编写C#程序并编译 24

2.4.2如何快速找到程序出错位置 24

2.4.3为程序设置版本和帮助信息 25

2.4.4为项目添加已有窗体 26

2.4.5动起来的Label控件 26

2.5小结 27

2.6学习成果检验 27

第3章 C#程序设计基础 28

3.1数据类型 29

3.1.1值类型的使用 29

3.1.2引用类型的使用 31

3.2声明并使用变量 32

3.2.1变量的声明及初始化 32

3.2.2变量的作用域 33

3.3声明并使用常量 33

3.4数据类型转换 34

3.4.1隐式类型转换 34

3.4.2显式类型转换 35

3.4.3装箱和拆箱 36

3.5运算符的使用 37

3.5.1算术运算符 38

3.5.2赋值运算符 39

3.5.3关系运算符 40

3.5.4逻辑运算符 42

3.5.5移位运算符 44

3.5.6其他特殊运算符 45

3.5.7运算符的优先级 46

3.6实战 47

3.6.1制作用户登录程序 47

3.6.2判断一个数是否是素数 48

3.6.3使用算术运算符开发简单计算器 49

3.6.4使用“^”运算符对数字进行加密 50

3.6.5巧用位移运算符获取汉字编码值 51

3.6.6使用条件运算符判断指定年份是不是闰年 51

3.7小结 52

3.8学习成果检验 52

第4章 选择结构控制 53

4.1 C#程序设计算法 54

4.2 if语句的使用 56

4.2.1使用if…else语句实现条件选择 56

4.2.2 if语句的嵌套使用 58

4.3 switch语句的使用 60

4.3.1使用switch语句实现多分支选择 60

4.3.2 if…else语句与switch语句 61

4.4实战 63

4.4.1判断用户登录身份 63

4.4.2递归算法的经典面试题 64

4.4.3使用switch语句实现数字转换大写 65

4.4.4使用流程控制语句报销业务花销 66

4.4.5小明去学校和医院分别要走哪条路 66

4.5小结 67

4.6学习成果检验 67

第5章 循环结构控制 68

5.1 while和do…while语句的使用 69

5.1.1使用while语句实现代码循环 69

5.1.2使用do…while语句实现至少执行一次循环 70

5.1.3 while和do…while语句的区别 71

5.2 for和foreach语句的使用 72

5.2.1使用for语句实现代码循环 72

5.2.2使用foreach语句遍历数据集合 73

5.3循环结构中的跳转语句 74

5.3.1使用break语句跳出循环 74

5.3.2使用continue语句继续程序的执行 76

5.3.3使用goto语句实现程序跳转 76

5.3.4使用return语句使程序返回 78

5.4实战 79

5.4.1鸡尾酒排序算法的实现 79

5.4.2哥德巴赫猜想算法的实现 80

5.4.3使用switch语句更改窗体颜色 82

5.4.4使用goto语句在数组中搜索指定图书 83

5.4.5制作一个数字猜猜看小游戏 83

5.5小结 85

5.6学习成果检验 85

第6章 字符及字符串 86

6.1字符操作 87

6.1.1 Char类概述 87

6.1.2使用Char类中的方法对字符进行操作 87

6.1.3认识并使用转义字符 88

6.2字符串的声明及初始化 89

6.2.1 String类概述 89

6.2.2声明字符串 90

6.2.3初始化字符串 90

6.3字符串操作 90

6.3.1比较字符串 90

6.3.2格式化字符串 92

6.3.3截取字符串 94

6.3.4分割字符串 94

6.3.5插入和填充字符串 95

6.3.6删除字符串 97

6.3.7复制字符串 97

6.3.8替换字符串 99

6.4可变字符串类StringBuilder的使用 100

6.4.1 StringBuilder类概述 100

6.4.2创建StringBuilder对象 100

6.4.3 StringBuilder类的使用 101

6.4.4 StringBuilder类与String类的区别 102

6.5实战 102

6.5.1长字符串分段显示 102

6.5.2字符串加密与解密 103

6.5.3根据汉字获得其区位码 104

6.5.4字母与ASCII码的转换 105

6.5.5将汉字转换为拼音 106

6.5.6批量替换某一类字符串 106

6.5.7开发一个进制转换器 106

6.6小结 109

6.7学习成果检验 109

第7章 数组、集合与哈希表 110

7.1数组概述 111

7.2一维数组的声明和使用 111

7.2.1一维数组的声明 111

7.2.2一维数组的使用 112

7.3二维数组的声明和使用 113

7.3.1二维数组的声明 113

7.3.2二维数组的使用 113

7.3.3动态数组的声明及使用 114

7.4数组的基本操作 115

7.4.1遍历数组中的元素 115

7.4.2添加/删除数组元素 115

7.4.3使用排序算法对数组进行排序 116

7.4.4数组的合并与拆分 118

7.5 ArrayList集合的使用 120

7.5.1 ArrayList集合概述 120

7.5.2添加ArrayList集合元素 121

7.5.3删除ArrayList集合元素 123

7.5.4遍历ArrayList集合 124

7.5.5查找ArrayList集合元素 125

7.6 Hashtable(哈希表)的使用 126

7.6.1 Hashtable概述 126

7.6.2添加Hashtable元素 126

7.6.3删除Hashtable元素 127

7.6.4遍历Hashtable元素 128

7.6.5查找Hashtable元素 128

7.7实战 129

7.7.1使用数组解决约瑟夫环问题 129

7.7.2希尔排序算法的实现 130

7.7.3使用哈希表查找XML文件 131

7.7.4操作便捷的简单电话簿 132

7.7.5向班级集合中添加学生信息 133

7.7.6设计一个简单客车售票记录程序 134

7.8小结 135

7.9学习成果检验 135

第8章 面向对象程序设计 136

8.1面向对象编程概述 137

8.2属性的定义及使用 137

8.2.1属性概述 138

8.2.2属性的定义 138

8.2.3属性的使用 139

8.3方法的声明及使用 140

8.3.1方法概述 140

8.3.2方法修饰符 140

8.3.3方法的声明 141

8.3.4方法的分类 142

8.3.5重载方法的实现 142

8.4结构的定义及使用 143

8.4.1结构概述 143

8.4.2结构的定义 144

8.4.3结构的使用 144

8.5类与对象详解 145

8.5.1类的概念 145

8.5.2类的声明 146

8.5.3构造函数和析构函数 146

8.5.4对象的声明和实例化 147

8.5.5类与对象的关系 149

8.6面向对象特性之封装 149

8.6.1封装概述 149

8.6.2封装的实现 150

8.7面向对象特性之继承 151

8.7.1继承概述 151

8.7.2继承的实现 151

8.7.3单继承的使用 153

8.7.4多重继承的使用 154

8.8面向对象特性之多态 156

8.8.1多态概述 156

8.8.2多态的实现 157

8.9实战 159

8.9.1使用面向对象思想实现简单计算器 159

8.9.2使用面向对象思想实现在字符串中查找数字 160

8.9.3通过类的多态性确定人类的说话行为 161

8.9.4存储不同类型的数据列表 162

8.9.5去掉数组中的重复数字 162

8.10小结 163

8.11学习成果检验 163

第9章 综合实验(一)——365桌面提醒器 164

9.1 365桌面提醒器概述 165

9.1.1提醒设置流程 165

9.1.2计划录入流程 165

9.1.3计划查询流程 165

9.1.4计划统计流程 166

9.1.5定时关机流程 166

9.1.6程序预览 167

9.2数据库设计 168

9.3关键技术 168

9.3.1通过修改注册表实现自动运行程序 168

9.3.2使用多线程处理弹出“提示气泡”任务 170

9.3.3使用扩展方法为系统类型添加新功能 171

9.3.4应用初始化器创建集合或对象 171

9.3.5使用ADO.NET对象提交数据 172

9.4公共类设计 172

9.4.1封装数据值和显示值的类 172

9.4.2绑定和显示数据的类 173

9.5提醒设置 174

9.5.1提醒设置功能概述 174

9.5.2“提醒设置”界面设计 174

9.5.3打开“提醒设置”界面 174

9.5.4保存提示设置 175

9.6计划录入 176

9.6.1计划录入功能概述 176

9.6.2“计划录入”界面设计 176

9.6.3打开“计划录入”界面 177

9.6.4添加计划任务 177

9.6.5保存计划任务 178

9.6.6删除计划任务 179

9.7计划查询 180

9.7.1计划查询功能概述 180

9.7.2“计划查询”界面设计 180

9.7.3打开“计划查询”界面 180

9.7.4查询计划信息 181

9.7.5处理计划 182

9.8计划统计 183

9.8.1计划统计功能概述 183

9.8.2“计划统计”界面设计 183

9.8.3统计计划信息 184

9.9小结 184

9.10学习成果检验 184

第2篇 进阶提高 186

第10章 Windows窗体设计 186

10.1 Form窗体基础 187

10.1.1 Form窗体概述 187

10.1.2添加和删除Form窗体 187

10.1.3添加多窗体 188

10.1.4设置窗体的属性 189

10.1.5窗体的显示与隐藏 191

10.1.6触发窗体事件 191

10.2 MDI窗体设计 192

10.2.1 MDI窗体概述 192

10.2.2设置MDI窗体 193

10.2.3排列MDI子窗体 193

10.3继承窗体设计 195

10.3.1继承窗体概述 195

10.3.2创建继承窗体 195

10.3.3在继承窗体中修改继承的控件属性 197

10.4实战 198

10.4.1设计一个系统登录窗体 198

10.4.2制作启动欢迎界面 198

10.4.3从上次关闭位置启动窗体 199

10.4.4自定义“最大化”、“最小化”和“关闭”按钮 200

10.4.5制作鼠标穿透窗体 202

10.4.6窗体换肤程序 202

10.5小结 204

10.6学习成果检验 204

第11章 Windows应用程序常用控件 205

11.1控件概述 206

11.1.1控件的分类及作用 206

11.1.2控件命名规范 207

11.2控件的相关操作 207

11.2.1添加控件 207

11.2.2对齐控件 208

11.2.3锁定控件 208

11.2.4删除控件 208

11.3文本类控件 208

11.3.1标签控件 209

11.3.2按钮控件 209

11.3.3文本框控件 210

11.3.4有格式文本控件 212

11.4选择类控件 214

11.4.1下拉组合框控件 215

11.4.2复选框控件 216

11.4.3单选按钮控件 217

11.4.4数值选择控件 218

11.4.5列表控件 219

11.5分组控件 221

11.5.1容器控件 222

11.5.2分组框控件 222

11.5.3选项卡控件 223

11.6实战 225

11.6.1判断注册用户操作权限 225

11.6.2使用ListBox实现点菜功能 228

11.6.3只允许输入数字的TextBox控件 230

11.6.4实现类似Word的项目编号功能 230

11.6.5在RichTextBox控件中实现关键字描红 231

11.6.6对ListBox控件中的数据进行排序 231

11.7小结 232

11.8学习成果检验 232

第12章 Windows应用程序高级控件 233

12.1存储图像控件(ImageList控件) 234

12.1.1在ImageList控件中添加图像 234

12.1.2在ImageList控件中移除图像 234

12.2列表视图控件(ListView控件) 235

12.2.1在ListView控件中添加/移除项 236

12.2.2选择ListView控件中的项 237

12.2.3为ListView控件中的项添加图标 238

12.2.4在ListView控件中启用平铺视图 238

12.2.5为ListView控件中的项分组 239

12.3树控件(TreeView控件) 241

12.3.1添加和删除树节点 241

12.3.2获取树控件中选中的节点 242

12.3.3为树控件中的节点设置图标 243

12.4日期控件(DateTimePicker控件) 244

12.4.1使用DateTimePicker控件显示时间 244

12.4.2使用DateTimePicker控件以自定义格式显示日期 244

12.4.3返回DateTimePicker控件中选择的日期 245

12.5月历控件(MonthCalendar控件) 246

12.5.1更改MonthCalendar控件的外观 246

12.5.2在MonthCalendar控件中显示多个月份 247

12.5.3在MonthCalendar控件中以粗体显示特定日期 247

12.5.4在MonthCalendar控件中选择日期范围 248

12.6其他高级控件 249

12.6.1使用ErrorProvider控件验证文本框输入 249

12.6.2使用HelpProvider控件调用帮助文件 250

12.6.3使用Timer控件设置时间间隔 251

12.6.4使用ProgressBar控件显示程序运行进度条 252

12.7实战 252

12.7.1设计一个电子万年历 252

12.7.2制作一个闹钟计时器 254

12.7.3在模式窗口中显示进度条 257

12.7.4使用TreeView控件遍历磁盘目录 259

12.7.5用树型列表动态显示菜单 260

12.8小结 261

12.9学习成果检验 261

第13章 对话框、菜单、工具栏及状态栏控件 262

13.1对话框控件 263

13.1.1对话框概述 263

13.1.2打开对话框控件 263

13.1.3另存为对话框控件 263

13.1.4浏览文件夹对话框控件 264

13.1.5颜色对话框控件 265

13.1.6字体对话框控件 265

13.2菜单、工具栏和状态栏控件 266

13.2.1菜单控件(MenuStrip控件) 266

13.2.2工具栏控件(ToolStrip控件) 266

13.2.3状态栏控件(StatusStrip控件) 267

13.3实战 268

13.3.1制作带历史信息的菜单 268

13.3.2制作仿XP系统的任务栏菜单 269

13.3.3具有提示功能的工具栏 271

13.3.4级联菜单的动态合并 271

13.3.5在状态栏中显示当前系统操作员 272

13.4小结 272

13.5学习成果检验 272

第14章 综合实验(二)——QQ自动登录器模块 273

14.1 QQ自动登录器概述 274

14.1.1 QQ自动登录器流程 274

14.1.2主窗体流程 274

14.1.3添加QQ账号流程 274

14.1.4路径设置流程 275

14.1.5程序预览 275

14.2数据库设计 275

14.3关键技术 276

14.3.1 QQ自动登录器的实现原理 276

14.3.2使用MD5加密算法加密QQ密码 276

14.3.3使用XML文件存储QQ账号信息 277

14.3.4使用XmlElement类序列化QQ账号属性 278

14.3.5通过XML文件读取和写入QQ账号信息 279

14.3.6使用注册表存储信息 281

14.4主窗体 281

14.4.1主窗体功能概述 281

14.4.2主窗体界面设计 281

14.4.3初始化QQ列表 282

14.4.4启动多个QQ账号 283

14.4.5启动QQ程序 284

14.4.6增加QQ账号信息 285

14.4.7修改QQ账号信息 285

14.4.8删除QQ账号 286

14.4.9设置QQ账号为隐身 286

14.5添加QQ账号 287

14.5.1添加QQ账号功能概述 287

14.5.2添加QQ账号界面设计 287

14.5.3添加QQ账号 287

14.6路径设置 289

14.6.1路径设置功能概述 289

14.6.2路径设置界面设计 289

14.6.3显示原有路径设置 289

14.6.4选择QQ程序路径 290

14.6.5保存路径设置 290

14.7小结 291

14.8学习成果检验 291

第3篇 中级开发 294

第15章 数据库编程基础 294

15.1数据库基础 295

15.1.1数据库简介 295

15.1.2安装SQL Server 2000数据库 295

15.1.3安装SQL Server 2005数据库 297

15.1.4安装SQL Server 2008数据库 299

15.1.5数据库的创建及删除 304

15.1.6数据表的创建及删除 304

15.2 SQL语言基础 306

15.2.1 SQL语言简介 306

15.2.2简单SQL语句的应用 306

15.3实战 311

15.3.1使用INSERT SELECT语句批量插入数据 311

15.3.2从一个表中向另一个表中复制行 311

15.3.3统计某个值出现的次数 312

15.3.4对多列的求和运算 313

15.3.5通过CASE语句生成静态交叉表 314

15.4小结 314

15.5学习成果检验 314

第16章 ADO.NET数据访问技术 315

16.1 ADO.NET概述 316

16.2使用Connection对象连接数据库 316

16.2.1 Connection对象概述 316

16.2.2连接数据库 316

16.2.3关闭连接 317

16.3使用Command对象执行SQL语句 319

16.3.1 Command对象概述 319

16.3.2设置数据源类型 319

16.3.3执行SQL语句 320

16.4使用DataReader对象读取数据 322

16.4.1 DataReader对象概述 322

16.4.2判断查询结果中是否有值 323

16.4.3读取数据 324

16.5数据适配器:DataAdapter对象 324

16.5.1 DataAdapter对象概述 324

16.5.2填充DataSet数据集 325

16.5.3更新数据源 325

16.6数据集:DataSet对象 327

16.6.1 DataSet对象概述 327

16.6.2合并DataSet内容 327

16.6.3复制DataSet内容 328

16.7实战 329

16.7.1使用二进制存储用户头像 329

16.7.2使用存储过程实现员工自动编号 332

16.7.3使用交叉表统计商品销售信息 333

16.7.4向SQL Server数据库中批量写入海量数据 336

16.7.5使用断开式连接批量更新数据库中的数据 337

16.7.6综合查询职工详细信息 337

16.8小结 340

16.9学习成果检验 340

第17章 DataGridView数据控件 341

17.1 DataGridView控件概述 342

17.2在DataGridView控件中显示数据 342

17.3获取DataGridView控件中的当前单元格 343

17.4在DataGridView控件中修改数据 344

17.5选中DataGridView控件中的行时显示不同颜色 345

17.6禁止在DataGridView控件中添加和删除行 347

17.7禁用DataGridView控件的自动排序功能 347

17.8合并DataGridView控件中的单元格 348

17.9实战 350

17.9.1将DataGridView中的数据导出到Word 350

17.9.2将DataGridView中的数据导出到Excel 351

17.9.3在DataGridView控件中验证数据输入 352

17.9.4在DataGridView控件中添加“合计”和“平均值” 353

17.9.5通过DataGridView分页查看用户信息 354

17.10小结 356

17.11学习成果检验 356

第18章 面向对象编程高级技术 357

18.1接口的声明及实现 358

18.1.1接口概述 358

18.1.2接口的声明 358

18.1.3接口的实现与继承 359

18.1.4显式接口成员实现 360

18.2抽象类的声明及使用 362

18.2.1抽象类概述 362

18.2.2抽象类的声明 362

18.2.3抽象方法的声明 362

18.2.4抽象类的使用 363

18.2.5抽象类与接口 364

18.3密封类的声明及使用 364

18.3.1密封类概述 364

18.3.2密封类的声明 365

18.3.3密封方法的声明 365

18.3.4密封类的使用 366

18.4实战 367

18.4.1使用多重继承实现教师和学生信息的输出 367

18.4.2对用户信息进行密封 369

18.4.3自定义抽象类计算圆形的面积 371

18.4.4利用接口实现选择不同的语言 371

18.4.5使用接口作为方法参数进行编程 372

18.4.6通过重写虚方法实现加法运算 373

18.5小结 373

18.6学习成果检验 373

第19章 枚举类型与泛型 374

19.1枚举类型 375

19.1.1枚举类型概述 375

19.1.2枚举类型的声明 375

19.1.3枚举类型基类——Enum类 376

19.1.4枚举类型的使用 377

19.2泛型及其使用 378

19.2.1泛型概述 378

19.2.2类型参数T 378

19.2.3泛型接口的声明及使用 379

19.2.4泛型方法的声明及使用 379

19.3实战 380

19.3.1使用枚举判断用户操作权限 380

19.3.2使用泛型去掉数组中的重复数字 381

19.3.3使用迭代器显示公交车站点 383

19.3.4使用分部类实现多种计算方法 383

19.3.5通过继承泛型类实现输出学生信息 384

19.4小结 385

19.5学习成果检验 385

第20章 LINQ技术的使用 386

20.1 LINQ基础 387

20.1.1 LINQ概述 387

20.1.2使用var创建隐型局部变量 387

20.1.3 Lambda表达式的使用 388

20.1.4 LINQ查询表达式 389

20.2 LINQ操作SQL Server数据库 390

20.2.1使用LINQ查询SQL Server数据库 390

20.2.2使用LINQ管理SQL Server数据库 393

20.3 LINQ操作其他数据 398

20.3.1使用LINQ操作数组和集合 398

20.3.2使用LINQ操作DataSet数据集 399

20.3.3使用LINQ操作XML 400

20.4实战 403

20.4.1使用LINQ技术获取文件详细信息 403

20.4.2使用LINQ技术分类查询公司员工薪水 405

20.4.3使用存储过程查询单表数据 406

20.4.4使用LINQ技术防止SQL注入式攻击 407

20.4.5使用LINQ技术实现数据分页 407

20.4.6从头开始提取满足指定条件的记录 409

20.4.7读取XML文件并更新到数据库 409

20.5小结 411

20.6学习成果检验 411

第21章 综合实验(三)——SQL数据表提取器模块 412

21.1 SQL数据表提取器概述 413

21.1.1附加本地数据库流程 413

21.1.2提取表结构流程 413

21.1.3导出数据流程 413

21.1.4程序预览 414

21.2关键技术 415

21.2.1添加COM组件 415

21.2.2附加SQL Server数据库 415

21.2.3分离SQL Server数据库 416

21.2.4设置SQL Server数据库模式 416

21.3主窗体 418

21.3.1主窗体功能概述 418

21.3.2主窗体界面设计 418

21.3.3检索网络中的服务器 419

21.3.4获取数据库的名称 419

21.3.5选择提取信息 421

21.4附加本地数据库 422

21.4.1附加本地数据库功能概述 422

21.4.2附加本地数据库界面设计 422

21.4.3浏览附加文件路径 423

21.4.4实现数据库附加 423

21.5提取表结构 424

21.5.1提取表结构功能概述 424

21.5.2“提取表结构”界面设计 424

21.5.3获取表结构信息 425

21.5.4导出到Excel 425

21.5.5导出到Word 426

21.6导出数据 427

21.6.1导出数据功能概述 427

21.6.2“导出数据”界面设计 428

21.6.3获取数据信息 428

21.6.4数据的导出 429

21.7小结 431

21.8学习成果检验 431

第4篇 高级应用 434

第22章 文件及I/O 434

22.1文件操作基础 435

22.1.1 File类和FileInfo类介绍 435

22.1.2 Directory类和DirectoryInfo类介绍 438

22.2文件基本操作 440

22.2.1判断文件是否存在 440

22.2.2创建文件 441

22.2.3复制文件 442

22.2.4移动文件 442

22.2.5删除文件 443

22.2.6获取文件基本信息 443

22.3文件夹基本操作 444

22.3.1判断文件夹是否存在 444

22.3.2创建文件夹 445

22.3.3移动文件夹 445

22.3.4删除文件夹 446

22.3.5遍历文件夹 446

22.4 I/O(输入/输出) 448

22.4.1流概述 448

22.4.2文件I/O流介绍 449

22.4.3使用I/O流操作文本文件 450

22.4.4使用I/O流操作二进制文件 452

22.5实战 454

22.5.1文件批量重命名的实现 454

22.5.2制作一个分割与合并文件工具 457

22.5.3根据日期动态建立文件 460

22.5.4复制文件时显示复制进度 460

22.5.5伪装文件夹 462

22.5.6对指定文件夹中的文件进行分类存储 463

22.6小结 464

22.7学习成果检验 464

第23章 GDI+绘图及打印技术 465

23.1 GDI+绘图基础 466

23.1.1 GDI+概述 466

23.1.2创建Graphics对象 466

23.1.3创建Pen对象 467

23.1.4创建 Brush对象 467

23.2基本图形绘制 469

23.2.1绘制直线和矩形 469

23.2.2绘制椭圆、圆弧和扇形 470

23.2.3绘制多边形 472

23.2.4绘制文本 472

23.2.5绘制图形 473

23.3 Windows打印组件的使用 473

23.3.1使用PageSetupDialog组件设置打印文档信息 473

23.3.2使用PrintDialog组件显示打印对话框 474

23.3.3使用PrintDocument组件设置打印文档 475

23.3.4使用PrintPreviewControl组件设置打印预览文档 476

23.3.5使用PrintPreviewDialog组件显示打印预览 477

23.4实战 477

23.4.1应用GDI+技术实现图像的水印效果 477

23.4.2应用GDI+技术实现批量图像格式转换 480

23.4.3抓取网站整页面 484

23.4.4打造自己的开心农场 487

23.4.5使用打印组件打印商品入库单信息 489

23.5小结 491

23.6学习成果检验 491

第24章 网络编程 492

24.1计算机网络基础 493

24.1.1局域网与因特网介绍 493

24.1.2网络协议介绍 493

24.1.3端口及套接字介绍 495

24.2网络编程基础 496

24.2.1 System.Net命名空间及相关类的使用 496

24.2.2 System.Net.Sockets命名空间及相关类的使用 501

24.2.3 System.Net.Mail命名空间及相关类的使用 506

24.3实战 509

24.3.1创建Web页面浏览器 509

24.3.2设计点对点聊天程序 510

24.3.3电子邮件的发送与接收 512

24.3.4获取网络信息及流量 516

24.3.5远程关闭与重启计算机 517

24.4小结 518

24.5学习成果检验 518

第25章 线程的使用 519

25.1线程概述 520

25.1.1线程的定义与分类 520

25.1.2多线程的使用 521

25.1.3线程的生命周期 521

25.2 C#中的线程类Thread 522

25.3线程调度 524

25.3.1创建线程 524

25.3.2线程的挂起与恢复 525

25.3.3线程休眠 526

25.3.4终止线程 526

25.3.5线程的优先级 527

25.4线程同步 529

25.4.1线程同步机制 529

25.4.2使用lock关键字实现线程同步 529

25.4.3使用Monitor驱动对象实现线程同步 530

25.4.4使用Mutex类实现线程同步 531

25.5实战 532

25.5.1使用多线程制作端口扫描工具 532

25.5.2使用线程控制向窗体中拖放图片并显示 535

25.5.3使用线程扫描局域网IP地址 538

25.5.4使用线程制作小游戏 539

25.5.5有进度条的文件异步复制功能 540

25.6小结 542

25.7学习成果检验 542

第26章 异常处理与程序调试 543

26.1异常处理与程序调试概述 544

26.2异常处理语句的使用 544

26.2.1使用throw语句抛出异常 544

26.2.2使用try…catch语句捕捉异常 545

26.2.3使用try…catch…finally语句捕捉异常 546

26.3常用的程序调试操作 547

26.3.1断点操作 547

26.3.2开始、中断和停止程序的执行 548

26.3.3单步执行 549

26.3.4运行到指定位置 550

26.4实战 550

26.4.1使用异常处理语句捕获数据库连接异常 550

26.4.2通过插入断点查看局部变量的值 551

26.5小结 552

26.6学习成果检验 552

第27章 Windows应用程序打包部署 553

27.1 Windows Installer介绍 554

27.2创建Windows安装项目 554

27.3制作Windows安装程序 555

27.3.1添加项目输出 555

27.3.2添加内容文件 555

27.3.3创建桌面快捷方式 556

27.3.4添加注册表项 556

27.3.5生成Windows安装程序 557

27.4部署Windows应用程序 558

27.5实战 559

27.5.1为Windows安装程序添加程序组 559

27.5.2使用“发布”部署Windows应用程序 560

27.6小结 561

27.7学习成果检验 561

第28章 综合实验(四)——FTP文件管理模块 562

28.1 FTP文件管理模块概述 563

28.1.1 FTP登录流程 563

28.1.2本机文件操作流程 563

28.1.3服务器文件上传/下载流程 563

28.1.4程序预览 564

28.2关键技术 564

28.2.1架设FTP服务器 564

28.2.2登录FTP服务器 566

28.2.3获取服务器上文件的大小 567

28.2.4向FTP服务器发送命令 568

28.2.5调用系统API 569

28.3主窗体设计 569

28.3.1主窗体功能概述 569

28.3.2主窗体界面设计 570

28.4 FTP登录 570

28.4.1 FTP登录功能概述 570

28.4.2登录FTP服务器 571

28.5本机文件操作 573

28.5.1本机文件操作功能概述 573

28.5.2获取本地磁盘 573

28.5.3获取指定磁盘中的文件 574

28.5.4批量上传文件 575

28.6服务器文件上传/下载 579

28.6.1服务器文件上传/下载功能概述 579

28.6.2获取FTP服务器中的所有文件 579

28.6.3批量下载文件 581

28.6.4删除FTP中的文件或文件夹 584

28.7小结 586

28.8学习成果检验 586

第5篇 项目实战 588

第29章 进销存管理系统 588

29.1需求分析 589

29.2系统设计 589

29.2.1系统目标 589

29.2.2系统功能结构 589

29.2.3系统业务流程图 589

29.2.4文件组织结构 589

29.3系统运行环境 590

29.4数据库与数据表设计 590

29.4.1数据库分析 590

29.4.2数据表设计 591

29.4.3数据表逻辑关系 592

29.5公共类设计 593

29.5.1 DataBase公共类 593

29.5.2 BaseInfo公共类 596

29.6登录模块设计 600

29.6.1登录模块概述 600

29.6.2登录模块实现原理 600

29.6.3登录模块实现过程 600

29.7系统主窗体设计 601

29.7.1系统主窗体概述 601

29.7.2使用MenuStrip控件设计菜单栏 602

29.7.3系统主窗体实现过程 602

29.8库存商品管理模块设计 603

29.8.1库存商品管理模块概述 603

29.8.2自动生成库存商品编号 603

29.8.3库存商品管理模块实现过程 603

29.9进货管理模块设计 607

29.9.1进货管理模块概述 607

29.9.2向进货单中批量添加商品 607

29.9.3进货管理模块实现过程 608

29.10商品销售排行模块设计 612

29.10.1商品销售排行模块概述 612

29.10.2使用BETWEEN…AND关键字查询数据 612

29.10.3商品销售排行模块实现过程 612

29.11库存盘点模块设计 614

29.11.1库存盘点模块概述 614

29.11.2隔离驱动模式的使用 614

29.11.3库存盘点模块实现过程 614

29.12系统打包部署 616

29.13小结 618

第30章 企业人事管理系统 619

30.1系统分析 620

30.1.1需求分析 620

30.1.2可行性分析 620

30.1.3编写项目计划书 621

30.2系统设计 622

30.2.1系统目标 622

30.2.2系统功能结构 623

30.2.3系统业务流程图 623

30.2.4系统编码规范 624

30.3系统运行环境 624

30.4数据库与数据表设计 624

30.4.1数据库分析 624

30.4.2数据表设计 625

30.4.3数据表逻辑关系 626

30.5公共类设计 627

30.5.1 MyMeans公共类 628

30.5.2 MyModule公共类 629

30.6登录模块设计 640

30.6.1设计登录窗体 641

30.6.2按Enter键时移动鼠标焦点 641

30.6.3登录功能的实现 641

30.7系统主窗体设计 642

30.7.1设计菜单栏 642