第1部分 C#基础 1
第1章 C#简介 2
1.1 .NET Framework 3.5与C 2
1.1.1 .NET Framework 3.5介绍 2
1.1.2 .NET Framework 3.5新增功能 3
1.1.3 Common Language Runtime 3
1.1.4 Visual C# 2008介绍 4
1.1.5 Visual C# 2008新增功能 5
1.2 Visual Studio 2008概述 6
1.2.1 .NET开发环境Visual Studio 6
1.2.2 Visual Studio 2008的安装 7
1.2.3 MSDN的安装 8
1.3 Visual Studio 2008开发环境 9
1.3.1 Visual Studio 2008概览 9
1.3.2 菜单栏 9
1.3.3 工具栏 11
1.3.4 工具箱 11
1.3.5 “属性”面板 12
1.3.6 “类视图”面板 12
1.3.7 对象浏览器 13
1.3.8 代码编辑器 13
1.3.9 “错误列表”面板 14
1.3.10 “输出”面板 14
1.4 MSDN简介 15
1.4.1 进入MSDN 15
1.4.2 目录浏览 16
1.4.3 索引快速访问 16
1.4.4 搜索MSDN文档库 16
1.5 命名空间 17
1.5.1 命名空间简介 17
1.5.2 using语句 18
1.5.3 命名空间的别名 19
1.6 创建第一个C#项目 20
1.6.1 C#中的Hello World 20
1.6.2 实例改进 21
1.7 创建Windows窗体应用程序 22
1.7.1 窗体应用程序Hello World 22
1.7.2 实例改进 23
1.8 其他常用工具 25
1.8.1 集成开发环境软件——SharpDevelop 26
1.8.2 轻量级的开发工具——Snippet Compiler 27
1.8.3 通用编辑器——UltraEdit 28
1.8.4 反编译软件——.NET Reflector 30
1.8.5 NUnit 31
1.8.6 代码生成工具——CodeSmith 32
1.8.7 代码标准检测工具——FxCop 34
1.8.8 其他工具 35
1.9 小结 36
第2章 C#基础元素 37
2.1 语句 37
2.1.1 语句的基本概念与分类 37
2.1.2 编译器对C#语句的处理 38
2.1.3 编程风格的通用约定 38
2.1.4 代码块 39
2.1.5 编程风格建议 39
2.2 标识符 42
2.2.1 标识符简介及命名 42
2.2.2 标识符的大小写 42
2.2.3 中文标识符 42
2.3 关键字 43
2.3.1 关键字列表 43
2.3.2 关键字的显示方式 44
2.3.3 其他语言关键字 45
2.3.4 使用关键字作为标识符 47
2.4 变量 48
2.4.1 变量的声明 48
2.4.2 变量的命名规则 49
2.4.3 对变量进行赋值 49
2.4.4 数值变量的类型 50
2.4.5 类型之间的转换 50
2.4.6 全局变量解决方法 52
2.4.7 调试程序:如何查看变量内容 53
2.5 运算符 56
2.5.1 二元运算符 56
2.5.2 一元运算符 57
2.5.3 简化运算符列表 58
2.5.4 溢出检测 58
2.5.5 类型检测 60
2.5.6 容量检测 61
2.5.7 三元运算符 61
2.5.8 运算符列表 62
2.5.9 运算符的优先级 62
2.6 表达式 63
2.6.1 数学表达式 63
2.6.2 数学运算实例 64
2.6.3 调试程序:计算表达式 65
2.6.4 数学求解实例 66
2.7 隐型局部变量 69
2.7.1 隐型局部变量的声明 69
2.7.2 隐型局部变量的使用 70
2.8 小结 70
第3章 布尔逻辑与分支语句 71
3.1 布尔逻辑 71
3.1.1 逻辑变量 71
3.1.2 逻辑与运算符:“&” 71
3.1.3 逻辑或运算符:“→” 73
3.1.4 逻辑异或运算符:“∧” 74
3.1.5 逻辑非运算符:“!” 76
3.1.6 条件逻辑与运算符:“&&” 77
3.1.7 条件逻辑或运算符:“→→” 79
3.1.8 常用比较运算符 80
3.1.9 逻辑运算符的优先级 81
3.2 if语句 82
3.2.1 if条件转移 82
3.2.2 if…else语句 84
3.2.3 嵌套if语句 85
3.2.4 if与else的匹配 87
3.2.5 调试程序:单步调试 89
3.3 switch语句 90
3.3.1 switch条件转移 90
3.3.2 使用switch进行成绩查询 91
3.3.3 case条件判断 93
3.3.4 实例:星期提示程序 94
3.4 三元运算符 96
3.4.1 非三元运算符条件判断 96
3.4.2 使用三元运算符简化程序 97
3.5 goto语句 99
3.6 小结 101
第4章 循环 102
4.1 for循环 102
4.1.1 循环条件 102
4.1.2 增加步进幅度 102
4.1.3 逆向步进 103
4.1.4 注意事项 105
4.1.5 使用for循环 106
4.1.6 使用for循环遍历数组 106
4.1.7 使用for循环对数组进行排序 107
4.1.8 调试程序:跳出循环 109
4.2 while循环 109
4.2.1 while循环简介 109
4.2.2 while循环的中断与继续 110
4.2.3 使用while循环实现简单人机交互 111
4.3 do循环 112
4.3.1 do循环简介 113
4.3.2 与while循环的比较 113
4.3.3 使用do循环实现简单密码验证 114
4.4 中断循环 116
4.5 小结 116
第5章 方法 117
5.1 方法的定义 117
5.1.1 方法的引入 117
5.1.2 方法的构成 118
5.1.3 方法的调用 119
5.1.4 方法的返回值 120
5.1.5 方法的参数 122
5.1.6 方法的注释 123
5.1.7 ref关键字 126
5.1.8 out关键字 127
5.2 作用域 129
5.2.1 方法中变量的作用域 129
5.2.2 其他代码结构中变量的作用域 131
5.3 方法的重载 134
5.3.1 参数类型重载的方法 134
5.3.2 参数引用重载的方法 136
5.3.3 参数个数重载的方法 137
5.4 特殊方法 138
5.4.1 Main方法 138
5.4.2 Main方法的参数 140
5.4.3 Main方法的注意事项 142
5.5 扩展方法 143
5.5.1 声明扩展方法 143
5.5.2 扩展方法的调用 144
5.6 Lambda表达式 145
5.6.1 Lambda表达式的声明 145
5.6.2 Lambda表达式的参数 145
5.6.3 Lambda表达式的变量 146
5.7 小结 147
第6章 错误及异常处理 148
6.1 异常简介 148
6.1.1 什么是异常 148
6.1.2 异常类常用属性 148
6.1.3 C#中常见异常类 149
6.1.4 自定义异常 151
6.2 捕获异常 151
6.2.1 try…catch语句 151
6.2.2 异常类型变量的使用 153
6.2.3 抛出异常 154
6.2.4 finally的使用 156
6.2.5 使用Visual Studio 2008的异常提示对话框 158
6.3 异常处理 159
6.3.1 默认的异常提示 160
6.3.2 创建异常抛出窗体 160
6.3.3 创建异常显示窗体 161
6.3.4 实例运行情况 164
6.4 小结 166
第2部分 C#集合与面向对象 167
第7章 类与对象 168
7.1 面向对象编程技术 168
7.1.1 面向对象编程基础 168
7.1.2 对象和类 169
7.1.3 类的形式化描述 169
7.2 类 171
7.2.1 定义类 171
7.2.2 类的构造 171
7.2.3 类的析构 174
7.2.4 定义字段 176
7.2.5 定义属性 177
7.2.6 定义方法 181
7.2.7 常见命名规则 184
7.2.8 访问控制 184
7.2.9 类的继承 190
7.2.10 继承关系中的构造和析构 193
7.2.11 this关键字 197
7.3 Visual Studio 2008成员向导 198
7.3.1 在Visual Studio 2008中创建类 198
7.3.2 添加类成员 201
7.4 自动实现的属性 204
7.5 小结 205
第8章 枚举与结构 206
8.1 枚举 206
8.1.1 什么是枚举 206
8.1.2 枚举的定义 207
8.1.3 枚举的使用 207
8.1.4 实例:用枚举表示一周 208
8.2 结构 210
8.2.1 结构的变量 210
8.2.2 结构的初始化 211
8.2.3 结构的方法 213
8.2.4 结构的使用 215
8.2.5 类与结构的区别 216
8.3 小结 219
第9章 数组与集合 220
9.1 数组 220
9.1.1 什么是数组 220
9.1.2 数组的定义 221
9.1.3 数组的索引 221
9.1.4 数组的遍历 224
9.1.5 数组元素的清空 225
9.1.6 数组的查找 227
9.1.7 数组的排序 229
9.1.8 数组的应用 231
9.2 集合 232
9.2.1 什么是集合 232
9.2.2 为什么使用集合 234
9.3 ArrayList动态数组 234
9.3.1 ArrayList的构造 234
9.3.2 ArrayList元素的添加 236
9.3.3 ArrayList元素的删除 239
9.3.4 ArrayList元素的获取 242
9.3.5 ArrayList的遍历 243
9.3.6 ArrayList向Array的转换 244
9.3.7 缩减ArrayList的容量 246
9.4 Hashtable 247
9.4.1 Hashtable的构造 247
9.4.2 Hashtable元素的特点 247
9.4.3 Hashtable元素的操作 249
9.4.4 Hashtable的优点 254
9.5 Queue 254
9.5.1 什么是Queue 254
9.5.2 Queue的构造 254
9.5.3 Queue的相关属性 255
9.5.4 Queue的操作 256
9.5.5 Queue与其他集合的区别 258
9.6 Stack 260
9.6.1 什么是Stack 260
9.6.2 定义Stack 260
9.6.3 Stack元素的操作 261
9.6.4 Stack元素的获取规则 264
9.7 SortedList 265
9.7.1 什么是SortedList 265
9.7.2 SortedList元素的操作 265
9.7.3 何时使用SortedList 268
9.8 Dictionary 268
9.8.1 Dictionary类简介 268
9.8.2 更改Dictionary类中的条目 269
9.8.3 更改条目的值 271
9.8.4 查找条目 272
9.8.5 遍历Dictionary 273
9.9 对象和集合初始化器 274
9.9.1 什么是对象和集合初始化器 274
9.9.2 集合初始化器的声明 275
9.10 匿名类型 275
9.10.1 创建匿名类型对象 275
9.10.2 匿名类型的特点 276
9.11 小结 276
第10章 面向对象进阶 277
10.1 接口 277
10.1.1 接口的定义 277
10.1.2 接口的继承与实现 279
10.1.3 接口与多重继承 282
10.1.4 使用接口作为参数 287
10.1.5 使用接口作为返回值 289
10.1.6 名称冲突 292
10.2 抽象类与抽象方法 295
10.2.1 抽象类的定义 295
10.2.2 抽象方法 296
10.2.3 抽象类的使用 299
10.3 密封类与密封方法 302
10.3.1 密封类 302
10.3.2 密封方法 303
10.4 高级转换 305
10.4.1 is运算符 305
10.4.2 强制转换 308
10.4.3 as运算符 309
10.5 virtual和override关键字 310
10.6 static关键字 311
10.7 小结 313
第11章 字段与属性 314
11.1 字段 314
11.1.1 字段的可访问性 314
11.1.2 常量字段 315
11.2 属性 316
11.2.1 只读属性 316
11.2.2 只写属性 318
11.2.3 属性的默认值 320
11.2.4 属性中的代码 320
11.3 小结 324
第12章 迭代器和分部类 325
12.1 迭代器 325
12.1.1 什么是迭代器 325
12.1.2 创建迭代器 325
12.1.3 foreach语句 331
12.2 分部类 333
12.2.1 什么是分部类 333
12.2.2 定义分部类 334
12.2.3 分部类的注意事项 338
12.3 小结 343
第13章 索引器 344
13.1 类中的索引器 344
13.1.1 什么是索引器 344
13.1.2 索引器的目的 344
13.1.3 定义索引器 346
13.1.4 使用索引器 346
13.1.5 只读索引器 351
13.1.6 索引器与属性的比较 352
13.2 其他结构中的索引器 353
13.2.1 结构中的索引器 353
13.2.2 接口中的索引器 355
13.3 小结 357
第14章 泛型 358
14.1 泛型简介 358
14.1.1 泛型问题简述 358
14.1.2 泛型概述 358
14.1.3 泛型的优点 362
14.1.4 泛型实例:让程序说多种语言 364
14.2 泛型的使用 366
14.2.1 泛型应用实例 367
14.2.2 泛型的限制 369
14.2.3 泛型接口 371
14.2.4 泛型方法 372
14.2.5 泛型类的重载 373
14.2.6 泛型类的继承 374
14.3 .NET中泛型的应用 378
14.3.1 .NET典型泛型类:List<T> 378
14.3.2 泛型结构 379
14.4 小结 381
第15章 委托和事件 382
15.1 委托 382
15.1.1 C#中的委托 382
15.1.2 委托与接口 383
15.1.3 委托示例 383
15.1.4 多路委托 387
15.2 事件 389
15.2.1 事件简介 389
15.2.2 事件实例 391
15.2.3 GUI事件 398
15.3 小结 398
第16章 运算符重载 399
16.1 运算符的限制 399
16.2 运算符重载 402
16.2.1 背景介绍 402
16.2.2 运算规则 402
16.2.3 运算符重载语法 404
16.2.4 主体程序代码 404
16.2.5 定义操作数 405
16.2.6 相关属性实现 407
16.2.7 相关方法 410
16.2.8 一元运算符“-”重载 414
16.2.9 二元运算符重载:相等“==”和不等“!=” 415
16.2.10 二元运算符重载:加法“+” 416
16.2.11 二元运算符重载:减法“-” 417
16.2.12 二元运算符重载:乘法“×” 418
16.2.13 其他实现 421
16.2.14 可重载运算符 423
16.3 小结 423
第3部分 Windows窗体程序设计 425
第17章 Windows窗体应用程序 426
17.1 窗体设计器 426
17.1.1 认识窗体设计器 426
17.1.2 使用窗体设计器 427
17.2 其他窗体 431
17.2.1 “工具箱”面板 431
17.2.2 “属性”面板 435
17.2.3 “服务器资源管理器”面板 442
17.3 常用控件 445
17.3.1 添加控件 445
17.3.2 修改控件属性 445
17.3.3 处理控件事件 446
17.3.4 按钮控件Button 446
17.3.5 标签控件Label 449
17.3.6 文本框控件TextBox 450
17.3.7 单选框控件RadioButton 454
17.3.8 复选框控件CheckBox 458
17.3.9 分组框控件GroupBox 462
17.3.10 面板控件Panel 465
17.3.11 链接标签控件LinkLabel 466
17.3.12 列表框控件ListBox 466
17.3.13 可选列表框控件CheckedListBox 469
17.3.14 组合框控件ComboBox 472
17.3.15 微调按钮控件NumericUpDown 475
17.4 控件格式 476
17.4.1 对齐控件 476
17.4.2 控件顺序和层次 477
17.4.3 控件的大小 477
17.4.4 控件的间距 478
17.4.5 锁定控件 478
17.5 自定义控件 478
17.5.1 自定义控件介绍 478
17.5.2 创建自定义控件 480
17.6 小结 483
第18章 菜单与工具栏设计 484
18.1 主菜单 484
18.1.1 添加主菜单 484
18.1.2 修改主菜单属性 485
18.1.3 处理主菜单事件 486
18.1.4 添加子菜单 487
18.1.5 添加分割线 488
18.2 工具栏 489
18.2.1 添加工具栏 489
18.2.2 工具栏事件处理程序 490
18.3 上下文菜单 491
18.3.1 添加上下文菜单 491
18.3.2 处理上下文菜单事件 492
18.4 状态栏 492
18.4.1 添加状态栏 492
18.4.2 处理状态栏显示 493
18.5 小结 497
第19章 Windows窗体程序进阶 498
19.1 SDI和MDI应用程序 498
19.1.1 基于对话框的应用程序 498
19.1.2 SDI应用程序 499
19.1.3 MDI应用程序 501
19.2 使用对话框 507
19.2.1 打开文件对话框OpenFileDialog 507
19.2.2 保存文件对话框SaveFileDialog 513
19.2.3 打印对话框 517
19.2.4 字体设置对话框FontDialog 520
19.2.5 颜色设置对话框ColorDialog 520
19.2.6 对话框的模式 521
19.2.7 自定义对话框 521
19.3 使用GDI+ 524
19.3.1 GDI+概述 524
19.3.2 Graphics类 524
19.3.3 画笔Pen类 525
19.3.4 字体Font类 527
19.3.5 位图Bitmap类 529
19.3.6 实例扩展 530
19.4 高级控件 531
19.4.1 MonthCalendar控件 531
19.4.2 DateTimePicker控件 533
19.4.3 TreeView控件 536
19.4.4 TabControl控件 541
19.5 Windows媒体播放器 545
19.5.1 Windows Media Player 545
19.5.2 为程序添加多媒体播放功能 545
19.6 小结 548
第20章 WPF,WCF和WF 549
20.1 WPF基础应用 549
20.1.1 什么是WPF 549
20.1.2 独立WPF应用程序 550
20.1.3 用于浏览器承载的WPF应用程序 552
20.2 XAML标记语言 554
20.2.1 XAML标记组成 554
20.2.2 用XAML设置窗体布局 555
20.2.3 用XAML绑定XML数据 556
20.3 WPF的控件库 557
20.3.1 基本控件 557
20.3.2 动态创建控件 558
20.3.3 创建自定义的动画按钮控件 560
20.4 生成WPF应用程序 565
20.5 WCF基本应用 566
20.5.1 什么是WCF 566
20.5.2 一个简单的WCF服务 566
20.5.3 客户端调用WCF服务 569
20.6 WCF基本组成 570
20.6.1 WCF的服务端和客户端 570
20.6.2 终结点的地址(Address) 571
20.6.3 终结点的绑定类型(Binding) 572
20.6.4 终结点的协定(Contract) 572
20.7 WCF与Web服务的交互实例 573
20.7.1 创建用于计算的Web服务 573
20.7.2 生成客户端代理 574
20.7.3 配置WCF的ABC 575
20.7.4 客户端调用WCF服务 575
20.8 WF工作流 576
20.8.1 什么是WF 576
20.8.2 工作流的组成 577
20.8.3 创建顺序工作流 577
20.8.4 创建状态机工作流 581
20.9 小结 585
第4部分 数据库应用程序设计 587
第21章 数据库访问技术 588
21.1 数据库基础知识 588
21.1.1 数据库简介 588
21.1.2 数据库分类 589
21.1.3 SQL语言简介 589
21.1.4 Access数据库简介 589
21.1.5 SQL Server 2005 Express数据库简介 590
21.1.6 其他数据库简介 596
21.2 SQL语言介绍 598
21.2.1 数据定义 598
21.2.2 数据查询 601
21.2.3 数据更新 609
21.2.4 数据控制 610
21.2.5 常用函数 611
21.3 ADO.NET 612
21.3.1 ADO.NET简介 612
21.3.2 ADO.NET类介绍 612
21.3.3 ADO.NET中的XML 615
21.3.4 ADO.NET中的SQL 617
21.3.5 DataReader类简介 618
21.3.6 DataSet类简介 618
21.3.7 注意事项 618
21.4 ADO.NET与各种数据库的连接 619
21.4.1 Access 619
21.4.2 SQL Server 619
21.4.3 MySQL 620
21.4.4 Oracle 620
21.4.5 其他数据库 620
21.5 小结 620
第22章 Windows窗体应用程序与数据库应用 621
22.1 窗体控件的数据绑定 621
22.1.1 定义数据源 621
22.1.2 创建DataSet 623
22.1.3 添加数据绑定控件 624
22.1.4 绑定数据 624
22.2 应用程序实例 625
22.3 小结 626
第23章 LINQ集成查询详解 627
23.1 LINQ实现字符串查询 627
23.1.1 用LINQ查询字符串中的数字 627
23.1.2 用LINQ统计单词出现的次数 628
23.2 .LINQ访问ArrayList数组 629
23.2.1 使用LINQ访问简单字符串ArrayList数组 629
23.2.2 使用LINQ访问对象ArrayList数组 630
23.3 LINQ访问文件目录 631
23.4 LINQ to XML详解 633
23.4.1 什么是LINQ to XML 633
23.4.2 使用LINQ to XML创建XML树 633
23.4.3 使用LINQ to XML加载XML文件 634
23.4.4 用XmlReader创建树 635
23.4.5 检测不正确的XML文档 636
23.5 LINQ TO SQL详解 637
23.5.1 什么是LINQ to SQL 637
23.5.2 使用LINQ to SQL连接数据库 637
23.5.3 使用LINQ to SQL直接执行SQL命令 638
23.6 小结 638
第5部分 ASP.NET程序开发 639
第24章 Web应用 640
24.1 HTML简介 640
24.1.1 HTML的由来 640
24.1.2 页面标记 641
24.1.3 格式设置标记 642
24.1.4 文本标记 645
24.1.5 图像标记 646
24.1.6 表格标记 648
24.1.7 链接标记 650
24.1.8 框架标记 652
24.1.9 表单标记 654
24.2 ASP.NET简介 656
24.2.1 静态页面与动态页面 657
24.2.2 其他动态页面技术 657
24.3 第一个ASP.NET程序 657
24.4 常用控件介绍 659
24.4.1 Label控件 659
24.4.2 TextBox控件 660
24.4.3 Button控件 660
24.4.4 DropDownList控件 661
24.4.5 ListBox控件 662
24.4.6 CheckBox控件和CheckBoxList控件 663
24.4.7 RadioButton控件和RadioButtonList控件 665
24.4.8 Image控件 666
24.4.9 Table控件 667
24.4.10 Calendar控件 668
24.5 ASP.NET服务端支持(IIS) 669
24.6 小结 670
第25章 数据校验 671
25.1 校验简介 671
25.1.1 什么是校验 671
25.1.2 客户端校验和服务器端校验 672
25.2 验证控件 672
25.2.1 必需字段验证 673
25.2.2 比较验证 677
25.2.3 范围验证 681
25.2.4 正则表达式验证 685
25.2.5 自定义验证 689
25.2.6 验证总结 693
25.3 小结 696
第26章 输入输出 697
26.1 文件 697
26.1.1 System.IO介绍 697
26.1.2 文件类File 699
26.1.3 目录类Directory 700
26.1.4 文件信息类FileInfo 701
26.1.5 目录信息类DirectoryInfo 702
26.1.6 文件信息类与目录信息类的选择 703
26.2 流 703
26.2.1 流操作类介绍 703
26.2.2 文件流类FileStream 704
26.2.3 流写入类StreamWriter 707
26.2.4 流读取类StreamReader 709
26.2.5 二进制流写入类BinaryWriter 710
26.2.6 二进制流读取类BinaryReader 711
26.3 高级实例 712
26.3.1 窗体布局 713
26.3.2 代码实现 715
26.3.3 实例进阶 719
26.4 小结 720
第27章 应用程序部署 721
27.1 部署工程的建立 721
27.1.1 Windows Installer介绍 721
27.1.2 Visual Studio 2008向导 723
27.2 规划安装程序 726
27.2.1 安装目录 726
27.2.2 快捷方式 726
27.2.3 依赖项 727
27.2.4 文件类型 727
27.3 制作安装程序 727
27.3.1 用户界面编辑器 728
27.3.2 欢迎界面 728
27.3.3 安装目录 730
27.3.4 确认安装 730
27.3.5 安装进度 730
27.3.6 完成界面 730
27.3.7 程序的删除 731
27.3.8 添加快捷方式 731
27.3.9 添加文件 732
27.3.10 注册表编辑器 732
27.3.11 文件类型编辑器 733
27.3.12 自定义操作编辑器 733
27.3.13 启动条件编辑器 734
27.4 小结 734
第6部分 综合实例 735
第28章 学生管理信息系统 736
28.1 需求分析 736
28.1.1 数据访问 736
28.1.2 权限分析 736
28.1.3 系统业务功能 737
28.2 界面设计 740
28.2.1 登录界面 740
28.2.2 主界面 740
28.2.3 字典界面 740
28.2.4 用户管理 742
28.2.5 学生管理界面 742
28.3 数据访问代码 743
28.3.1 数据连接类 743
28.3.2 数据库命令 744
28.3.3 关闭数据库 745
28.4 通用类代码 746
28.4.1 字符串验证 746
28.4.2 日期时间类 747
28.4.3 下拉列表绑定类 748
28.5 权限管理 751
28.5.1 系统用户 751
28.5.2 用户实体 753
28.5.3 用户管理 754
28.6 业务相关类 757
28.6.1 奖励实体 757
28.6.2 奖励管理类 759
28.6.3 关系变动类 760
28.6.4 关系变动管理类 761
28.6.5 关系变动类型管理类 763
28.6.6 班级实体类 764
28.6.7 班级管理类 766
28.6.8 学院管理类 767
28.6.9 实体接口 769
28.6.10 管理类接口 769
28.6.11 惩罚实体类 770
28.6.12 惩罚管理类 771
28.6.13 惩罚类型管理类 773
28.6.14 专业管理类 774
28.6.15 学生实体类 776
28.6.16 学生管理类 781
28.7 界面代码 785
28.7.1 更改密码界面 785
28.7.2 编辑窗体 787
28.7.3 新建学生界面 793
28.7.4 属性窗体 799
28.7.5 主窗体 801
28.7.6 组织窗体 809
28.7.7 类型设定窗体 820
28.7.8 登录窗体 825
28.7.9 用户管理窗体 827
28.8 小结 829
第29章 ASP.NET学生管理信息系统 830
29.1 需求分析 830
29.1.1 数据实体上下文 830
29.1.2 权限分析 830
29.1.3 系统业务功能 831
29.2 界面设计 832
29.2.1 登录页面设计 832
29.2.2 学生管理界面 833
29.2.3 组织机构管理界面 836
29.2.4 字典管理界面 837
29.2.5 系统管理界面 838
29.3 主页面及控件实现 839
29.3.1 主页面 839
29.3.2 页脚控件 840
29.3.3 菜单控件 841
29.4 学生管理实现 846
29.4.1 学籍变动及奖惩 846
29.4.2 新增学生 856
29.4.3 管理学生信息 863
29.4.4 查看学生信息 870
29.4.5 更新学生信息 875
29.5 组织管理实现 883
29.5.1 班级管理 883
29.5.2 学院管理 890
29.5.3 专业管理 895
29.6 系统管理实现 901
29.6.1 用户登录 901
29.6.2 用户更新 904
29.6.3 用户管理 907
29.7 字典管理实现 913
29.7.1 学籍变动类型管理 913
29.7.2 奖惩类型管理 918
29.8 小结 923