第1章 Visual C#2008简介 1
1.1 C#语言概述 1
1.1.1 C#语言的特点 1
1.1.2 C#与其他语言 2
1.1.3 C#3.0新增功能 2
1.2 Visual Studio 2008概述 3
1.2.1 Visual Studio发展历史 3
1.2.2 Visual Studio 2008简介 4
1.2.3 Visual Studio 2008的安装 5
1.2.4 MSDN的安装 6
1.3 C#开发环境 7
1.3.1 启动Visual Studio 2008 7
1.3.2 Visual C#的界面 8
1.3.3 菜单栏和工具箱窗口 9
1.3.4 代码视图 10
1.3.5 解决方案资源管理器和类视图 10
1.3.6 属性窗口 11
1.4 第一个应用程序“HelloWorld” 12
1.4.1 创建控制台应用程序——“HelloWorld” 12
1.4.2 HelloWorld编码和运行 14
1.5 疑难解答 15
1.6 问答题 16
第2章 C#语法基础 17
2.1 C#程序设计 17
2.1.1 C#程序的组成要素 17
2.1.2 C#程序的格式 18
2.2 数据类型 20
2.2.1 C#的数据类型 20
2.2.2 整数类型 21
2.2.3 实数类型 21
2.2.4 字符类型 22
2.2.5 布尔类型 22
2.2.6 引用类型 23
2.3 变量和常量 24
2.3.1 变量 24
2.3.2 变量的命名规则 24
2.3.3 声明变量和使用变量 25
2.3.4 变量的类型和赋值 25
2.3.5 常量 26
2.4 类型转换 27
2.4.1 隐式转换 27
2.4.2 显式转换 28
2.5 装箱和拆箱 29
2.5.1 装箱 29
2.5.2 拆箱 30
2.6 运算符 31
2.6.1 算术运算符 31
2.6.2 自加和自减运算符 31
2.6.3 逻辑运算符 32
2.6.4 关系运算符 34
2.6.5 赋值运算符 35
2.6.6 位运算符 37
2.6.7 条件运算符 38
2.6.8 字符串运算符 39
2.7 优先级与结合性 40
实训2.1——定义学生结构体 41
2.8 疑难解答 43
2.9 上机题 43
第3章 流程控制 45
3.1 顺序结构程序设计 45
3.1.1 赋值语句 45
3.1.2 控制台输入与输出 46
3.1.3 编写顺序结构程序 47
3.2 选择结构程序设计 49
3.2.1 单分支选择结构(if语句) 49
3.2.2 嵌套if语句 50
3.2.3 多分支选择结构(switch语句) 52
3.3 循环结构程序设计 54
3.3.1 for循环语句 54
3.3.2 foreach循环语句 56
3.3.3 while循环语句 56
3.3.4 do-while循环语句 59
3.3.5 循环的嵌套 61
3.4 循环中断 62
3.4.1 break终止循环语句 62
3.4.2 return返回指定值语句 63
3.4.3 continue停止当前循环语句 64
3.4.4 goto跳转语句 65
实训3.1——常用的排序算法 67
3.5 疑难解答 70
3.6 上机题 71
第4章 方法、数组和定义数据类型 73
4.1 用户自定义方法的定义、调用与说明 73
4.1.1 一个方法调用的例子 73
4.1.2 定义方法 76
4.1.3 方法返回值 76
4.1.4 方法的调用 78
4.1.5 方法的递归调用 79
4.2 参数的传递方式 80
4.2.1 传值调用 80
4.2.2 引用调用 82
4.2.3 输出参数 83
4.3 方法的其他主题 84
4.3.1 Main()方法 84
4.3.2 重载方法 85
4.4 数组概述 86
4.4.1 数组与数组元素 87
4.4.2 数组(Array)类 87
4.5 声明与访问数组 88
4.5.1 声明一维数组 88
4.5.2 访问一维数组 89
4.5.3 声明多维数组 90
4.6 数组列表(ArrayList) 91
4.6.1 声明数组列表 91
4.6.2 用数组列表操作学生信息 92
4.7 使用枚举类型 94
4.7.1 定义枚举类型 94
4.7.2 声明与访问枚举变量 95
4.8 使用结构类型 97
4.8.1 定义结构 97
4.8.2 声明和访问结构变量 98
实训4.1——按成绩对学生排序 98
4.9 疑难解答 101
4.10 上机题 102
第5章 面向对象编程简介 103
5.1 面向对象编程概述 103
5.2 定义类和声明对象 104
5.2.1 定义类 104
5.2.2 声明和使用对象 106
5.3 对象初始化器 108
5.4 访问修饰符 109
5.5 静态成员 112
5.5.1 静态数据成员 112
5.5.2 静态方法 114
5.6 构造方法 116
5.6.1 使用构造方法 116
5.6.2 重载构造方法 117
实训5.1——网站用户注册登录模型 119
5.7 疑难解答 121
5.8 上机题 122
第6章 继承、抽象类、多态及接口 123
6.1 继承简介 123
6.1.1 继承的应用 123
6.1.2 基类和派生类 125
6.1.3 调用基类构造方法 127
6.1.4 虚方法和重写方法 129
6.2 抽象类 130
6.2.1 为什么要使用抽象类 130
6.2.2 声明抽象类 131
6.2.3 实现抽象类 131
6.3 多态 133
6.4 接口 135
实训6.1——多重接口的实现 137
6.5 疑难解答 139
6.6 上机题 140
第7章 索引器、属性、委托和事件 141
7.1 索引器 141
7.1.1 定义索引器 141
7.1.2 使用索引器的例子 142
7.2 属性 144
7.2.1 属性概述 145
7.2.2 属性类型 146
7.2.3 使用属性 148
7.2.4 自动属性 150
7.3 委托 151
7.3.1 声明委托 151
7.3.2 实例化委托 152
7.3.3 委托推断 153
7.3.4 多播委托 155
7.4 事件 156
实训7.1——回答问题闯关节目实例 158
7.5 疑难解答 161
7.6 上机题 162
第8章 C#其他特性 163
8.1 泛型概述 163
8.1.1 泛型概述 163
8.1.2 使用泛型集合 164
8.1.3 定义泛型类 166
8.2 异常处理 168
8.2.1 异常处理语法 168
8.2.2 异常的捕获和处理 168
8.2.3 捕获和清除异常 170
8.2.4 使用异常处理类 171
8.2.5 自定义异常 174
实训8.1——异常处理在判断正确年龄中的使用 176
8.3 疑难解答 179
8.4 上机题 180
第9章 Windows应用程序开发基础 181
9.1 创建Windows窗体 181
9.1.1 第一个Windows窗体应用程序 181
9.1.2 设置窗体标题栏 183
9.1.3 设置窗体大小和起始位置 184
9.1.4 设置窗体的颜色和背景 185
9.1.5 设置窗体边框 185
9.2 Windows窗体基本控件 186
9.2.1 所有控件的基类——Control类 186
9.2.2 使用按钮 189
9.2.3 设置文本框 191
9.2.4 使用标签来显示文本 192
实训9.1——设计自己的计算器 193
9.3 Windows窗体常用控件 196
9.3.1 单选按钮控件 197
9.3.2 复选框控件 198
9.3.3 使用图片框 200
9.3.4 使用图片列表框控件 201
9.3.5 使用列表视图控件 201
9.3.6 使用树视图控件 203
9.4 自定义控件 205
9.4.1 自定义控件概述 205
9.4.2 创建自定义控件 206
实训9.2——员工管理系统 208
9.5 疑难解答 212
9.6 上机题 213
第10章 Windows应用 开发高级功能 215
10.1 创建菜单 215
10.1.1 设计主菜单 215
10.1.2 创建弹出式菜单 218
10.2 工具栏 219
10.2.1 创建工具栏 219
10.2.2 对工具栏进行编程 220
10.3 状态栏 221
10.4 SDI和MDI 221
10.5 通用对话框 223
10.5.1 模式对话框和非模式对话框 223
10.5.2 消息框 223
10.5.3 字体对话框 225
10.5.4 打开文件对话框 226
10.5.5 保存文件对话框 228
10.5.6 颜色对话框 229
10.5.7 自定义对话框 230
实训10.1——打造自己的记事本 231
10.6 疑难解答 235
10.6上机题 236
第11章 部署Windows应用程序 239
11.1 部署概述 239
11.2 Windows Installer部署 239
11.2.1 Windows Installer的部署 240
11.2.2 创建部署 240
11.2.3 文件系统编辑器 242
11.2.4 文件类型编辑器 244
11.2.5 注册表编辑器 244
11.2.6 用户界面编辑器 245
11.2.7 启动条件编辑器 246
11.2.8 自定义操作编辑器 247
11.3 ClickOnce部署 247
11.3.1 ClickOnce的技术概要 247
11.3.2 使用ClickOnce部署应用程序 248
实训11.1——部署在线考试系统 249
11.4 疑难解答 252
11.5 上机题 252
第12章 网络编程 253
12.1 网络通信协议 253
12.1.1 网络通信概述 253
12.1.2 IP地址 254
12.1.3 端口号 256
12.2 网络套接字技术 257
12.2.1 套接字基础 257
12.2.2 利用面向连接的套接字实现客户端和服务器通信 259
12.2.3 利用面向无连接的套接字实现点到点的通信 261
12.3 C#套接字的助手类 264
12.3.1 TcpListener类:处理连接请求 264
12.3.2 TcpClient类:提供客户端连接 265
12.3.3 UdpClient类:发送和接收数据报 266
12.4 网络流 267
12.5 多线程 268
12.5.1 多线程的应用 269
12.5.2 线程的特性 271
12.5.3 利用多线程进行TCP通信——服务器端设计 273
12.5.4 利用多线程进行TCP通信——客户端设计 277
实训12.1——验证注册码 281
12.6 疑难解答 284
12.7 上机题 285
第13章 ASP.NET开发 287
13.1 ASP.NET简介 287
13.1.1 创建第一个ASP.NET应用程序 287
13.1.2 设置Web服务器 290
13.2 ASP.NET控件 291
13.2.1 使用HTML控件 291
13.2.2 服务器控件 294
13.2.3 验证控件 296
13.3 ASP.NET常用对象 299
13.3.1 Response对象 299
13.3.2 Request对象 300
13.3.3 Server对象 302
13.3.4 Application对象 303
13.3.5 Session对象 306
13.3.6 Cookie对象 307
13.4 ASP.NET的用户控件 309
实训13.1——查看旅游景点 311
13.5 疑难解答 314
13.6 上机题 315
第14章 数据库访问 317
14.1 ADO.NET简介 317
14.2 数据库基础 318
14.2.1 数据库简介 318
14.2.2 使用SQL Server Management Studio创建数据库 319
14.2.3 使用SQL语句创建数据库 321
14.3 结构化查询语言——SQL语言 322
14.3.1 数据定义语言 323
14.3.2 数据控制语言 323
14.3.3 数据操纵语言 324
14.4 数据源连接 325
14.4.1 操作数据库的示例 326
14.4.2 通过向导的方式连接数据库 328
14.4.3 通过编程方式连接数据库 329
14.4.4 连接字符串 330
14.4.5 使用连接池 331
14.5 与数据库交互 332
14.5.1 使用SqlCommand对象 332
14.5.2 设置SqlCommand对象属性 334
14.5.3 用SqlCommand命令执行SQL语句 335
14.6 DataSet对象 337
14.6.1 DataSet概念 337
14.6.2 创建DataSet对象 338
14.6.3 使用DataSet对象读取XML中的数据 339
14.7 DataAdapter对象 340
实训14.1——创建通讯录 342
14.8 疑难解答 350
14.9 上机题 351
第15章 LINQ查询语言 353
15.1 LINQ介绍 353
15.1.1 LINQ概述 353
15.1.2 隐式局部变量 354
15.1.3 扩展方法 355
15.1.4 Lambda表达式 357
15.1.5 第一个LINQ程序 359
15.2 LINQ语法与特性 361
15.2.1 指定数据源和元素 361
15.2.2 分组与聚集操作 363
15.2.3 Join查询 364
15.2.4 筛选条件和排序操作 366
15.3 LINQ to SQL 368
15.3.1 创建LINQ to SQL程序步骤 368
15.3.2 数据库对象和LINQ对象之间的映射 370
15.3.3 LrNQ to SQL操作数据库 371
15.4 LINQ to XML 373
15.4.1 使用LrNQ to XML创建XML文档 373
15.4.2 加载和查询XML文档 374
15.4.3 使用LINQ to XML操作XML文档 376
实训15.1——图书管理 378
15.5 疑难解答 382
15.6 上机题 383
第16章 基于C/S的在线考试系统 385
16.1 系统分析 385
16.1.1 需求分析 385
16.1.2 功能分析 385
16.2 系统设计 386
16.2.1 绘制用例图设计系统功能 386
16.2.2 绘制系统流程图 386
16.3 数据库分析与设计 387
16.3.1 数据库概念设计 387
16.3.2 数据库逻辑结构设计 388
16.3.3 创建数据库及数据表 390
16.4 公共类设计 392
16.4.1 服务器端数据库连接类 392
16.4.2 设置考试试题类 394
16.4.3 客户端数据库连接类 395
16.5 考试信息设置模块 397
16.5.1 服务器端管理主窗体 397
16.5.2 考生信息维护 398
16.5.3 试题维护 400
16.6 学生考试模块 401
16.6.1 登录考试系统 401
16.6.2 登录的数据处理类 403
16.6.3 进入考试界面 404
16.6.4 开始考试 407
16.6.5 生成随机选择题 407
16.6.6 考生答题 411
16.6.7 保存选择题结果 412
16.6.8 结束考试 414
16.7 服务器端查询模块 416
16.7.1 考生成绩查询 416
16.7.2 查看考生各题得分 418
第17章 旅游网站系统 421
17.1 系统分析 421
17.1.1 需求分析 421
17.1.2 功能分析 421
17.2 系统设计 422
17.2.1 绘制用例图设计系统功能 422
17.2.2 绘制系统流程图 422
17.2.3 开发工具和开发技术的选择 423
17.3 数据库分析与设计 423
17.3.1 数据库概念设计 424
17.3.2 数据库逻辑结构设计 424
17.3.3 创建数据库及数据表 426
17.4 公共类设计 427
17.4.1 数据库连接类 427
17.4.2 前台母版页 428
17.4.3 后台母版页 429
17.5 旅游景点信息管理模块 430
17.5.1 设计网站首页 430
17.5.2 景点详细信息显示页面 433
17.5.3 添加旅游景点信息 435
17.5.4 加载管理景点信息页面 437
17.5.5 编辑旅游景点信息 439
17.6 旅游景点类型管理 441
17.6.1 添加景点类型 441
17.6.2 编辑景点类型 443
17.7 用户评论模块 446
17.7.1 发布评论内容 446
17.7.2 后台查看评论信息 448
17.7.3 管理评论信息 449
17.8 用户管理模块 450
17.8.1 用户注册页面设计 450
17.8.2 登录系统后台 451
17.8.3 管理用户信息 454