C#程序设计教程 第2版PDF电子书下载
- 电子书积分:15 积分如何计算积分?
- 作 者:江红,余青松编著
- 出 版 社:北京:清华大学出版社
- 出版年份:2014
- ISBN:9787302360438
- 页数:473 页
第1部分C#面向对象程序设计语言的基础知识 2
第1章 C#语言介绍 2
1.1 C#语言概述 2
1.1.1 C#语言简介 2
1.1.2 C#特点和开发应用范围 3
1.2 C#语言的编译和运行环境 3
1.2.1 C#语言与.NET Framework 3
1.2.2 C#的运行环境 4
1.2.3 C#的开发环境 4
1.2.4 Visual Studio集成开发环境 5
1.3 使用记事本创建简单的C#程序 6
1.3.1 Hello World程序 6
1.3.2 代码分析 6
1.3.3 编译和运行结果 7
1.4 基于集成开发环境创建简单的C#程序 7
1.4.1 创建Visual C#控制台应用程序 7
1.4.2 编辑Visual C #源代码文件 8
1.4.3 编译和运行调试程序 8
1.5 C#程序的结构和书写规则 9
1.5.1 C #程序的基本结构 9
1.5.2 C#程序的书写规则 10
1.6 类型的声明和使用 10
1.6.1 类的声明 11
1.6.2 对象的创建和使用 11
1.6.3 Main方法 12
1.7 命名空间 15
1.7.1 定义命名空间 15
1.7.2 访问命名空间 16
1.7.3 命名空间别名 16
1.7.4 全局命名空间 17
1.7.5 命名空间举例 17
1.7.6 外部别名 18
1.8 注释 19
1.8.1 单行注释 19
1.8.2 多行注释 19
1.8.3 内联注释 19
1.8.4 XML文档注释 19
1.9 控制台输入和输出 20
1.9.1 System.Console类 21
1.9.2 格式化输出 21
第2章 数据类型、变量和常量 23
2.1 标识符及其命名规则 23
2.1.1 标识符 23
2.1.2 保留关键字 23
2.1.3 命名约定 23
2.2 变量 24
2.2.1 变量的分类 24
2.2.2 变量的声明 24
2.2.3 变量的赋值和引用 24
2.2.4 变量的作用域 25
2.3 常量 27
2.3.1 文本常量 27
2.3.2 用户声明常量 27
2.4 数据类型 27
2.4.1 类型系统 28
2.4.2 值类型 28
2.4.3 引用类型 28
2.4.4 装箱和拆箱 29
2.4.5 预定义数据类型 30
2.5 整型数据类型 30
2.5.1 预定义整数类型 30
2.5.2 整数类型的主要成员 31
2.5.3 整型常量 31
2.5.4 整型变量的声明和使用 32
2.6 浮点型数据类型 32
2.6.1 浮点类型 32
2.6.2 浮点类型的主要成员 32
2.6.3 浮点数类型常量 33
2.6.4 浮点变量的声明和使用 33
2.7 decimal数据类型 34
2.7.1 decimal类型 34
2.7.2 System.Decimal的主要成员 34
2.7.3 decimal常量 34
2.7.4 decimal变量的声明和使用 35
2.8 布尔数据类型 35
2.8.1 bool类型 35
2.8.2 System.Boolean的主要成员 35
2.8.3 布尔变量的声明和使用 36
2.9 字符数据类型 36
2.9.1 字符类型 36
2.9.2 System.Char类成员 37
2.9.3 字符常量 37
2.9.4 字符变量的声明和使用 38
2.10 可以为null的类型 38
2.11 object类型 39
2.12 string数据类型 39
2.13 类型转换 40
2.13.1 隐式转换(自动转换) 40
2.13.2 显式转换(强制转换) 41
2.13.3 Convert类提供的类型转换方法 42
2.13.4 溢出检查和checked关键字 43
2.14 动态数据类型 44
2.14.1 动态语言运行时 44
2.14.2 dynamic类型 45
第3章 语句、运算符和表达式 47
3.1 语句 47
3.1.1 C#语句的组成 47
3.1.2 C#语句的示例 48
3.1.3 C#语句的使用 51
3.2 运算符 51
3.2.1 算术运算符 52
3.2.2 关系和类型测试运算符 54
3.2.3 逻辑运算符 54
3.2.4 赋值运算 57
3.2.5 字符串运算符 58
3.2.6 位运算符 58
3.2.7 条件运算符 59
3.2.8 其他运算符 60
3.2.9 运算符优先级 61
3.3 表达式 62
3.3.1 表达式的组成 63
3.3.2 表达式的书写规则 63
3.3.3 表达式的示例 63
第4章 程序流程和异常处理 65
4.1 顺序结构 65
4.2 选择结构 66
4.2.1 if语句 66
4.2.2 switch语句 71
4.3 循环结构 73
4.3.1 for循环 73
4.3.2 while循环 75
4.3.3 do…while循环 76
4.3.4 foreach循环 77
4.3.5 循环的嵌套 78
4.4 跳转语句 79
4.4.1 goto语句 79
4.4.2 break语句 80
4.4.3 continue语句 81
4.4.4 return语句 81
4.5 异常处理 82
4.5.1 错误和异常 82
4.5.2 异常处理概述 82
4.5.3 内置的异常类 84
4.5.4 自定义异常类 84
4.5.5 引发异常 85
4.5.6 捕获处理异常try…catch…finally 86
第5章 数组和指针 88
5.1 数组 88
5.1.1 一维数组 89
5.1.2 多维数组 91
5.1.3 交错数组 94
5.1.4 数组的基本操作和排序 96
5.1.5 作为对象的数组 101
5.2 指针和不安全代码 103
5.2.1 不安全代码 103
5.2.2 指针 104
第6章 类和对象 110
6.1 面向对象概念 110
6.1.1 对象的定义 110
6.1.2 封装 110
6.1.3 继承 111
6.1.4 多态性 111
6.2 类的声明 111
6.2.1 声明类的基本语法 112
6.2.2 类的访问修饰符 113
6.3 创建和使用对象 114
6.3.1 对象的创建和使用 114
6.3.2 对象的比较 115
6.4 分部类 116
6.4.1 分部类的声明 116
6.4.2 分部类的应用 118
6.5 System.Object类和通用方法 118
6.5.1 System.Object类 118
6.5.2 System.Object类的通用方法 119
6.6 对象的生命周期 119
6.6.1 对象的创建 120
6.6.2 对象的使用 120
6.6.3 对象的销毁 120
第7章 类成员 121
7.1 类的成员 121
7.1.1 数据成员和函数成员 121
7.1.2 静态成员和实例成员 122
7.1.3 this关键字 123
7.1.4 类成员的访问修饰符 124
7.2 字段和常量 126
7.2.1 字段的声明和访问 126
7.2.2 实例字段和静态字段 126
7.2.3 常量字段 127
7.2.4 只读字段 127
7.2.5 可变字段 129
7.3 方法 130
7.3.1 方法的声明和调用 130
7.3.2 参数的传递 131
7.3.3 方法的重载 135
7.3.4 实例方法和静态方法 136
7.3.5 分部方法 137
7.3.6 外部方法 138
7.3.7 递归方法 138
7.3.8 迭代器方法 139
7.3.9 迭代器对象 140
7.4 属性 141
7.4.1 属性的声明和访问 141
7.4.2 实例属性和静态属性 142
7.4.3 自动实现的属性 143
7.5 索引器 143
7.5.1 索引器的声明和访问 143
7.5.2 索引器的重载 145
7.6 运算符重载 146
7.6.1 运算符重载 146
7.6.2 转换运算符 147
7.7 构造函数 149
7.7.1 实例构造函数 149
7.7.2 私有构造函数 150
7.7.3 静态构造函数 151
7.8 析构函数 152
7.9 嵌套类 154
7.9.1 嵌套类的声明 154
7.9.2 嵌套类和包含类的关系 155
7.9.3 嵌套类的访问 156
第8章 继承和多态 157
8.1 继承和多态的基本概念 157
8.1.1 继承和多态 157
8.1.2 继承的类型 157
8.1.3 继承的层次关系 158
8.2 继承 158
8.2.1 派生类 158
8.2.2 base关键字 158
8.2.3 构造函数的调用 159
8.2.4 类成员的继承 161
8.2.5 类成员的隐藏 163
8.2.6 虚方法和隐藏方法 164
8.2.7 虚方法和重写方法 164
8.3 抽象类和抽象方法 166
8.3.1 抽象类 166
8.3.2 抽象方法 166
8.4 密封类和密封方法 168
8.4.1 密封类 168
8.4.2 密封方法 168
8.5 接口 169
8.5.1 接口声明 169
8.5.2 接口成员 170
8.5.3 接口实现 170
8.5.4 分部接口 172
8.5.5 接口继承 172
8.6 多态 174
8.6.1 多态的概念 174
8.6.2 通过继承实现多态性 174
8.6.3 通过方法重载实现多态性 176
8.6.4 通过方法重写实现多态性 177
8.6.5 多态性综合举例 178
第9章 委托和事件 180
9.1 委托 180
9.1.1 委托的声明 180
9.1.2 委托的实例化和调用 181
9.1.3 匿名方法委托 183
9.1.4 多播委托 184
9.1.5 委托的异步调用 185
9.1.6 委托的兼容性 186
9.2 事件 187
9.2.1 事件处理机制 187
9.2.2 事件的声明和引发 189
9.2.3 事件的订阅和取消 189
9.2.4 静态事件和实例事件 191
9.2.5.NET Framework事件模型 191
9.2.6 综合举例:事件实现的步骤 191
第10章 结构和枚举 193
10.1 结构 193
10.1.1 结构概述 193
10.1.2 结构的声明 194
10.1.3 结构的调用 194
10.1.4 分部结构 195
10.1.5 结构成员 195
10.1.6 嵌套结构 196
10.2 枚举 197
10.2.1 枚举概述 197
10.2.2 枚举声明 198
10.2.3 枚举的使用 199
10.2.4 Flags枚举 199
10.2.5 枚举的运算和操作 200
第11章 泛型 203
11.1 泛型的基本概念 203
11.1.1 引例ArrayList 203
11.1.2 引例List〈T〉 204
11.1.3 泛型的概念 204
11.2 泛型的定义 205
11.2.1 泛型的定义 205
11.2.2 开放式泛型类型和封闭式泛型类型 205
11.2.3 泛型类型参数 206
11.2.4 泛型类型参数的约束 206
11.3 泛型类 207
11.3.1 泛型类的声明和使用 207
11.3.2 泛型类的继承规则 208
11.4 泛型接口 209
11.4.1 泛型接口的声明和使用 209
11.4.2 泛型接口的继承和实现规则 210
11.5 泛型结构 210
11.6 泛型方法 211
11.6.1 泛型方法的声明和使用 211
11.6.2 泛型方法的设计规则 212
11.7 泛型委托和泛型事件 212
11.7.1 泛型委托 212
11.7.2 泛型事件 213
11.8 default关键字 214
11.9 协变和逆变 215
11.9.1 泛型类型转换 215
11.9.2 泛型委托的协变和逆变 216
11.9.3 泛型接口的协变和逆变 216
第12章 特性 218
12.1 特性概述 218
12.2 特性的使用 219
12.3 预定义通用特性类 219
12.3.1 ConditionalAttribute类 219
12.3.2 ObsoleteAttribute类 221
12.3.3 AttributeUsageAttribute类 222
12.3.4 调用方信息特性类 223
12.3.5 全局特性 224
12.4 自定义特性类 224
12.5 使用反射访问特性 225
第13章 语言集成查询 227
13.1 相关语言要素 227
13.1.1 初始值设定项 227
13.1.2 匿名类型 228
13.1.3 Lambda表达式(匿名函数) 229
13.1.4 扩展方法 229
13.2 LINQ基本操作 231
13.2.1 LINQ基本概念 231
13.2.2 LINQ查询操作概述 231
13.2.3 获取数据源 232
13.2.4 创建查询 232
13.2.5 执行查询 233
13.3 标准查询运算符 234
13.3.1 数据排序 234
13.3.2 数据筛选 235
13.3.3 数据投影 235
13.3.4 数据分组 235
13.3.5 联接运算 237
13.3.6 数据分区 239
13.3.7 限定运算 239
13.3.8 聚合运算 239
13.3.9 集合运算 239
13.3.10 生成运算 240
13.3.11 元素操作 241
13.3.12 串联运算 242
13.3.13 相等运算 242
13.3.14 数据类型转换 242
13.4 LINQ to Objects 243
13.4.1 LINQ to Objects概述 243
13.4.2 LINQ和字符串 243
13.4.3 LINQ和文件目录 247
第14章 线程、并行和异步处理 250
14.1 线程处理概述 250
14.1.1 进程和线程 250
14.1.2 线程的优缺点 250
14.2 创建多线程应用程序 251
14.2.1 C#应用程序主线程 251
14.2.2 创建和启动新线程 251
14.3 线程状态和生命周期 253
14.3.1 线程状态和生命周期 253
14.3.2 Thread类 254
14.3.3 线程的启动、终止、挂起和唤醒 255
14.3.4 休眠(暂停)线程SleepO 255
14.3.5 线程让步YieldO 256
14.3.6 线程加入Join() 256
14.3.7 线程中断Interrupt() 256
14.3.8 线程终止/销毁Abort() 257
14.4 前台线程和后台线程 258
14.5 线程优先级和线程调度 259
14.6 线程同步和通信 260
14.6.1 线程同步处理 260
14.6.2 使用lock语句同步代码块 260
14.6.3 使用监视器同步代码块 261
14.6.4 使用MethodImplAttribute特性实现方法同步处理 262
14.6.5 使用SynchronizationAttribute特性实现类同步处理 262
14.6.6 同步事件和等待句柄 262
14.6.7 使用Mutex同步代码块 263
14.7 线程池 264
14.7.1 线程池的基本概念 264
14.7.2 创建和使用线程池 264
14.8 定时器Timer 265
14.9 并行处理 266
14.9.1 任务并行库 266
14.9.2 隐式创建和运行任务 266
14.9.3 显式创建和运行任务 267
14.9.4 任务的交互操作 268
14.9.5 从任务中返回值 268
14.9.6 数据并行处理 269
14.10 异步处理 269
14.10.1 委托的异步调用 270
14.10.2 async和await关键字 271
第2部分.NET Framework类库基本应用 274
第15章 数值、日期和字符串处理 274
15.1 数学函数 274
15.1.1 Math类和数学函数 274
15.1.2 Random类和随机函数 277
15.2 日期和时间处理 278
15.2.1 DateTime结构 278
15.2.2 TimeSpan结构 280
15.2.3 日期格式化字符串 281
15.3 字符串处理 281
15.3.1 String类 281
15.3.2 StringBuilder类 285
15.3.3 字符编码 287
15.4 正则表达式 288
15.4.1 正则表达式语言 288
15.4.2 正则表达式类 291
15.4.3 正则表达式示例 291
第16章 文件和流I/O 294
16.1 文件和流操作概述 294
16.2 磁盘、目录和文件的基本操作 295
16.2.1 磁盘的基本操作 295
16.2.2 目录的基本操作 296
16.2.3 文件的基本操作 297
16.3 文本文件的读取和写入 299
16.3.1 文本文件的写入(StreamWriter类) 299
16.3.2 文本文件的读取(StreamReader类) 300
16.4 二进制文件的读取和写入 301
16.4.1 二进制文件的写入(BinaryWriter类) 301
16.4.2 二进制文件的读取(BinaryReader类) 302
16.5 随机文件访问 303
16.6 通用I/O流类 304
第17章 集合和数据结构 305
17.1 C#集合和数据结构概述 305
17.2 列表类集合类型 307
17.2.1 数组列表ArrayList 307
17.2.2 列表List〈T〉 308
17.2.3 双向链表LinkedList〈T〉 309
17.3 字典类集合类型 310
17.3.1 哈希表Hashtable 310
17.3.2 字典Dictionary〈TKey, TValue〉 311
17.3.3 排序列表SortedList 312
17.3.4 泛型排序列表Sorted List〈TKey, TValue〉 313
17.3.5 排序字典SortedDictionary〈TKey, TValue〉 314
17.4 队列集合类型(Queue) 315
17.5 堆栈集合类型 316
17.6 散列集集合类型(HashSet〈T〉) 317
17.7 位集合 319
17.8 专用集合 320
第18章 数据库访问 321
18.1 ADO.NET概述 321
18.1.1 ADO.NET的基本概念 321
18.1.2 ADO.NET的结构 321
18.1.3.NET Framework数据提供程序 321
18.1.4 ADO.NET DataSet 323
18.2 使用ADO.NET连接和操作数据库 324
18.2.1 使用数据提供程序访问数据库的步骤 324
18.2.2 范例数据库Northwnd.mdf 325
18.2.3 查询数据库表数据 327
18.2.4 插入数据库表数据 328
18.2.5 更新数据库表数据 329
18.2.6 删除数据库表数据 329
18.2.7 使用存储过程访问数据库 330
18.3 使用DataAdapter和DataSet访问数据库 331
18.3.1 使用DataAdapter和DataSet访问数据库的步骤 331
18.3.2 查询数据库表数据 332
18.3.3 维护数据库表数据 333
第3部分C#应用程序开发 336
第19章 Windows窗体应用程序 336
19.1 Windows窗体应用程序 336
19.1.1 Windows窗体应用程序概述 336
19.1.2 创建Windows窗体应用程序的一般步骤 338
19.1.3 窗体和控件概述 340
19.2 常用的Windows窗体控件 341
19.2.1 标签、文本框和命令按钮 341
19.2.2 单选按钮、复选框和分组 343
19.2.3 列表选择控件 344
19.2.4 图形存储和显示控件 347
19.2.5 Timer控件 349
19.3 通用对话框 351
19.3.1 OpenFileDialog对话框 351
19.3.2 SaveFileDialog对话框 351
19.3.3 FontDialog对话框 352
19.3.4 通用对话框应用举例 352
19.4 菜单和工具栏 354
19.4.1 MenuStrip控件 354
19.4.2 ContextMenuStrip控件 355
19.4.3 ToolStrip控件 355
19.4.4 菜单和工具栏应用举例 355
19.5 多重窗体 357
19.5.1 添加新窗体 357
19.5.2 调用其他窗体 357
19.5.3 多重窗体应用举例 358
19.6 多文档界面 359
19.6.1 创建MDI父窗体 359
19.6.2 创建MDI子窗体 359
19.6.3 处理MDI子窗体 359
19.7 图形绘制 360
19.7.1 GDI+图形绘制概述 360
19.7.2 绘制字符串 361
19.7.3 绘制图形 362
第20章 WPF应用程序 365
20.1 WPF应用程序概述 365
20.1.1 WPF简介 365
20.1.2 WPF应用程序的构成 365
20.2 创建WPF应用程序 368
20.2.1 创建简单的WPF应用程序 368
20.2.2 WPF应用程序布局 370
20.2.3 WPF应用程序常用控件 372
20.3 WPF应用程序与图形和多媒体 375
20.3.1 图形和多媒体概述 375
20.3.2 图形、图像、画笔和位图效果 375
20.3.3 多媒体 382
20.3.4 动画 384
第21章 ASP.NET Web应用程序 387
21.1 ASP.NET Web应用程序 387
21.1.1 ASP.NET Web应用程序概述 387
21.1.2 创建ASP.NET Web应用程序 388
21.2 ASP.NET Web页面 389
21.2.1 ASP.NET Web页面概述 389
21.2.2 创建ASP.NET页面 390
21.3 ASP.NET Web服务器控件 391
21.3.1 ASP.NET Web服务器控件概述 391
21.3.2 使用标准服务器控件创建Web页面 392
21.4 验证服务器控件 396
21.4.1 验证服务器控件概述 396
21.4.2 使用验证服务器控件创建Web页面 396
21.5 数据服务器控件 399
21.5.1 数据服务器控件概述 399
21.5.2 使用数据服务器控件创建Web页面 399
21.6 使用ADO.NET连接和操作数据库 402
21.7 ASP.NET页面会话状态和页面导航 403
21.7.1 ASP.NET Web应用程序上下文 403
21.7.2 ASP.NET Web应用程序事件 404
21.7.3 ASP.NET Web页面导航 406
21.8 ASP.NET Web应用程序的布局和导航 407
21.8.1 ASP.NET Web母版页 407
21.8.2 ASP.NET Web导航控件 408
21.8.3 应用举例:设计ASP.NET Web站点 409
21.9 ASP.NET主题和外观概述 414
21.9.1 ASP.NET主题和外观 414
21.9.2 定义主题 415
21.9.3 定义外观 415
21.9.4 定义CSS样式 415
21.9.5 在页面中使用主题 416
21.9.6 应用举例:使用ASP.NET主题和外观自定义Web站点 417
第22章 综合应用案例 420
22.1 多窗口文本编辑器系统设计 420
22.1.1 系统基本功能 420
22.1.2 功能模块设计 420
22.1.3 系统的实现 420
22.2 ASP.NET网上书店系统的设计 424
22.2.1 系统总体设计 424
22.2.2 数据库设计 424
22.2.3 功能模块设计 425
22.2.4 系统的实现 426
附录 440
附录A.NET Framework概述 440
A1 .NET Framework的概念 440
A1.1 公共语言运行时 440
A1.2 .NET Framework类库 440
A2.NET Framework的功能特点 441
A3.NET Framework环境 441
A4.NET Framework的主要版本 442
附录B C#编译器和预处理器指令 443
B1 C#编译器概述 443
B2 C#编译器选项 444
B3 C#预处理器指令 445
附录C Visual Studio快速入门 448
C1集成开发环境(IDE)界面 448
C2创建解决方案和项目 448
C3设计器/编辑器 449
C4生成和调试工具 451
C5安装和部署工具 452
C6帮助系统 452
附录D C#关键字和上下文关键字 453
D1关键字 453
D2上下文关键字 456
附录E格式化字符串 457
E1复合格式设置 457
E2复合格式字符串 457
E3数字格式字符串 458
E4标准日期和时间格式字符串 461
附录F XML文档注释 464
附录G ASCII码表 468
附录H程序集、应用程序域和反射 469
H1程序集 469
H1.1 程序集概述 469
H1.2 创建程序集 469
H2应用程序域 469
H2.1 应用程序域概述 469
H2.2 创建应用程序域 469
H3反射 470
H3.1 反射概述 470
H3.2 查看类型信息 471
H3.3 动态加载和使用类型 471
参考文献 473
- 《指向核心素养 北京十一学校名师教学设计 英语 七年级 上 配人教版》周志英总主编 2019
- 《名医教你练走颈肩腰腿痛》许学猛 2018
- 《设计十六日 国内外美术院校报考攻略》沈海泯著 2018
- 《计算机辅助平面设计》吴轶博主编 2019
- 《高校转型发展系列教材 素描基础与设计》施猛责任编辑;(中国)魏伏一,徐红 2019
- 《景观艺术设计》林春水,马俊 2019
- 《程序逻辑及C语言编程》卢卫中,杨丽芳主编 2019
- 《高等教育双机械基础课程系列教材 高等学校教材 机械设计课程设计手册 第5版》吴宗泽,罗圣国,高志,李威 2018
- 《指向核心素养 北京十一学校名师教学设计 英语 九年级 上 配人教版》周志英总主编 2019
- 《博士教你识中药》(中国)黄汉超 2019
- 《市政工程基础》杨岚编著 2009
- 《家畜百宝 猪、牛、羊、鸡的综合利用》山西省商业厅组织技术处编著 1959
- 《《道德经》200句》崇贤书院编著 2018
- 《高级英语阅读与听说教程》刘秀梅编著 2019
- 《计算机网络与通信基础》谢雨飞,田启川编著 2019
- 《看图自学吉他弹唱教程》陈飞编著 2019
- 《法语词汇认知联想记忆法》刘莲编著 2020
- 《培智学校义务教育实验教科书教师教学用书 生活适应 二年级 上》人民教育出版社,课程教材研究所,特殊教育课程教材研究中心编著 2019
- 《国家社科基金项目申报规范 技巧与案例 第3版 2020》文传浩,夏宇编著 2019
- 《流体力学》张扬军,彭杰,诸葛伟林编著 2019
- 《大学计算机实验指导及习题解答》曹成志,宋长龙 2019
- 《指向核心素养 北京十一学校名师教学设计 英语 七年级 上 配人教版》周志英总主编 2019
- 《大学生心理健康与人生发展》王琳责任编辑;(中国)肖宇 2019
- 《大学英语四级考试全真试题 标准模拟 四级》汪开虎主编 2012
- 《大学英语教学的跨文化交际视角研究与创新发展》许丽云,刘枫,尚利明著 2020
- 《北京生态环境保护》《北京环境保护丛书》编委会编著 2018
- 《复旦大学新闻学院教授学术丛书 新闻实务随想录》刘海贵 2019
- 《大学英语综合教程 1》王佃春,骆敏主编 2015
- 《大学物理简明教程 下 第2版》施卫主编 2020
- 《指向核心素养 北京十一学校名师教学设计 英语 九年级 上 配人教版》周志英总主编 2019