描述
开 本: 16开纸 张: 胶版纸包 装: 平装是否套装: 否国际标准书号ISBN: 9787569210477丛书名: 明日外星人
10万读者认可的编程图书,零基础自学编程的入门图书,由浅入深,循序渐进,助您轻松领会C#程序开发精髓,配同步视频教程和源代码,海量资源免费赠送
《零基础学C#》是针对零基础编程学习者全新研发的C#入门教程。从初学者角度出发,通过通俗易懂的语言、流行有趣的实例,详细地介绍了使用C#语言进行程序开发需要掌握的知识和技术。全书共分16章,包括Visual Studio的安装、踏上C#开发的征程、必须学会的C#语法、流程控制语句、看似简单的字符串、面向对象程序设计、Windows交互式图形界面、数据访问技术、程序调试与异常处理、多线程编程技术以及五子棋大厅游戏等。书中所有知识都结合具体实例进行讲解,设计的程序代码给出了详细的注释,可以使读者轻松领会C#程序开发的精髓,快速提高开发技能。本书通过大量实例及一个完整项目案例,帮助读者更好地巩固所学知识,提升能力;随书附赠的《小白实战手册》中给出了3个流行且实用的案例的详细开发流程,力求让学习者能学以致用,真正获得开发经验;附赠的电子资源包中给出视频讲解、实例及项目源码、代码查错器、练一练和动手纠错答案等,方便读者学习;书中设置了200多个二维码,扫描二维码观看视频讲解,解决学习疑难;不易理解的专业术语、代码难点只需手机扫描文字下方的e学码获得更多扩展解释,随时扫除学习障碍。此外,登录明日学院网站(www.mingrisoft.com)还可以获得更多学习资源和技术支持。
*********************************************************************************************************************[特别说明]若仅选择此电子书,不附赠任何资源,敬请谅解!*********************************************************************************************************************
目 录
Content
第 1 篇 基础知识
第 1 章 宇宙 IDE—Visual Studio 2
视频讲解:1 小时 12 分钟 e 学码:21 个
1.1 了解软件 3
1.2 软件开发相关的概念 4
1.3 C#语言入门 6
1.3.1 C#语言的发展 6
1.3.2 C#语言的特点 7
1.3.3 认识.NET Framework 7
1.3.4 C#与.NET Framework 8
1.3.5 C#的应用领域 8
1.4 Visual Studio 2017的安装与卸载 10
1.4.1 安装Visual Studio 2017条件 10
1.4.2 安装Visual Studio 2017 10
1.4.3 卸载Visual Studio 2017 14
1.5 熟悉Visual Studio 2017开发环境 15
1.5.1 创建项目 15
1.5.2 菜单栏 17
1.5.3 工具栏 17
1.5.4 解决方案资源管理器 18
1.5.5 “工具箱”窗口 18
1.5.6 “属性”窗口 19
1.5.7 “错误列表”窗口 19
1.6 难点解答 20
1.6.1 学习C#编程必须安装Visual Studio
开发环境吗? 20
1.6.2 学习C#的网站 20
1.7 小结 20
第 2 章 踏上 C# 开发的征程 21
视频讲解:1 小时 22 分钟 精彩实例:2 个
e 学码:29 个
2.1 编写个C#程序 22
? 实例01 输出“人因梦想而伟大” 23
训练一 打印马云经典语录 24
训练二 绘制情人节快乐图案 24
2.2 C#程序结构预览 24
2.2.1 命名空间 25
2.2.2 类 27
2.2.3 关键字与标识符 28
2.2.4 Main方法 29
2.2.5 C# 语句 30
2.2.6 注释 32
2.2.7 一个完整的C#程序 34
? 实例02 输出软件启动页 34
训练一 模拟手机充值场景 35
训练二 打印彩色的百花园图案 35
2.3 程序编写规范 35
2.3.1 代码编写规则 36
2.3.2 命名规范 36
2.4 难点解答 38
2.4.1 区分常见的3种项目类型 38
2.4.2 为什么要使用注释? 39
2.5 小结 41
2.6 动手纠错 41
第 3 章 必须学会的 C# 语法 43
视频讲解:4 小时 05 分钟 精彩实例:8 个
e 学码:21 个
3.1 为什么要使用变量 44
3.2 变量是什么 44
3.3 变量的声明及初始化 45
3.3.1 声明变量 45
3.3.2 简单数据类型 46
? 实例01 根据身高和体重计算BMI指数 49
训练一 记录用户的年龄 50
训练二 财务系统中如何存储流动资金
金额 50
? 实例02 字符类Char的常用方法应用 52
训练一 打印保险单详情列表 53
训练二 字符与ASCII码的比较 53
? 实例03 输出Windows系统目录 55
训练一 输出Visual Studio 2017的
安装目录 55
训练二 转义字符的特殊效果 55
3.3.3 变量的初始化 55
3.3.4 变量的作用域 57
? 实例04 使用变量记录用户登录名 58
训练一 记录登录用户和登录时间 58
训练二 打印年中促销节日名称 59
3.4 常量 59
3.4.1 常量是什么 59
3.4.2 常量的分类 59
3.5 运算符 61
3.5.1 算术运算符 61
? 实例05 计算学生成绩的分差及平均分 61
训练一 简易加法计算器 62
训练二 使用克莱姆法则求解方程组 62
3.5.2 自增自减运算符 63
3.5.3 赋值运算符 63
3.5.4 关系运算符 65
? 实例06 使用关系运算符比较大小关系 66
训练一 比较两个链球的重量 67
训练二 哪家孩子超生了 67
3.5.5 逻辑运算符 67
? 实例07 参加面包店的打折活动 68
训练一 模拟明日学院的用户登录 68
训练二 模拟企业的招聘要求 68
3.5.6 位运算符 69
3.5.7 移位运算符 70
3.5.8 条件运算符 71
? 实例08 判断人的年龄所处阶段 72
训练一 判断输入年份是否为闰年 72
训练二 模拟用户登录 72
3.6 数据类型转换 73
3.6.1 隐式类型转换 73
3.6.2 显式类型转换 73
3.6.3 使用Convert类进行转换 74
3.7 运算符优先级与结合性 76
3.8 难点解答 77
3.8.1 使用赋值运算符时的注意事项 77
3.8.2 条件运算符不能单独作为语句 78
3.9 小结 78
3.10 动手纠错 79
第 4 章 流程控制语句 81
视频讲解:2 小时 42 分钟 精彩实例:11 个
e 学码:8 个
4.1 决策分支 82
4.2 if语句 82
4.2.1 简单的if语句 83
? 实例01 判断输入的数字是不是奇数 83
训练一 判断一个数字是否为偶数 84
训练二 模拟银行的取钱场景 84
4.2.2 if…else语句 85
? 实例02 根据分数划分优秀等级 86
训练一 报销业务花销 87
训练二 模拟用户拨打电话的场景 87
4.2.3 if…else if…else语句 88
? 实例03 根据用户输入的年龄输出
相应信息提示 89
训练一 设计游戏关卡 90
训练二 根据学生成绩划分等级 90
4.2.4 if语句的嵌套 91
? 实例04 判断输入的年份是不是闰年 91
训练一 根据用户年龄输出相应信息提示 92
训练二 模拟客人用餐场景 92
4.3 switch多分支语句 93
4.3.1 switch语句 93
? 实例05 查询高考录取分数线 95
训练一 参加商场的打折活动 95
训练二 模拟加油站加油场景 96
4.3.2 switch与if…else if…else的区别 97
4.4 while和do…while循环 97
4.4.1 while循环 97
? 实例06 使用while循环挑战数学家高斯 98
训练一 求满足指定条件的小正整数 99
训练二 猜数字游戏 99
4.4.2 do…while循环 100
? 实例07 使用do…while循环挑战
数学家高斯 101
训练一 计算n的阶乘 101
训练二 售卖机自动收费系统 101
4.4.3 while和do…while语句的区别 101
4.5 for循环 102
4.5.1 for循环的一般形式 102
? 实例08 使用for循环挑战数学家高斯 103
训练一 1到100之间奇数的累加 103
训练二 经典面试题 103
4.5.2 for循环的变体 103
4.5.3 for循环中逗号的应用 105
4.6 循环的嵌套 105
? 实例09 打印九九乘法表 107
训练一 输出金字塔形状 108
训练二 百钱买百鸡 108
4.7 跳转语句 108
4.7.1 break语句 108
? 实例10 使用break跳出循环 109
训练一 判断是否为素数 109
训练二 模拟地铁站报站 109
4.7.2 continue语句 110
? 实例11 计算100以内所有偶数的和 110
训练一 模拟剧院出售演出门票过程 110
训练二 显示公司尚未使用的员工卡位 110
4.8 难点解答 111
4.8.1 3种循环的使用场景 111
4.8.2 continue和break语句的区别 111
4.9 小结 112
4.10 动手纠错 112
第 5 章 数组—批量数据处理 113
视频讲解:1 小时 15 分钟 精彩实例:4 个
e 学码:12 个
5.1 数组概述 114
5.2 一维数组 115
5.2.1 一维数组的创建 115
5.2.2 一维数组的初始化 116
5.2.3 一维数组的使用 117
? 实例01 输出一年中每个月的天数 117
训练一 使用数组存取学生成绩 118
训练二 随机抽取4张扑克牌 118
5.3 二维数组 118
5.3.1 二维数组的创建 118
5.3.2 二维数组的初始化 120
5.3.3 二维数组的使用 122
? 实例02 模拟客车售票系统 122
训练一 模拟火车订票 123
训练二 横版和竖版的古诗 123
5.3.4 不规则数组的定义 123
5.4 数组与Array类 124
? 实例03 打印杨辉三角 125
训练一 统计字符串中的英文单词 126
训练二 模拟淘宝购物车场景 126
5.5 数组的基本操作 126
5.5.1 使用foreach语句遍历数组 126
? 实例04 输出狼人杀游戏主要角色 127
训练一 遍历List集合 128
训练二 存取有意思的名字 128
5.5.2 对数组进行排序 128
5.6 难点解答 129
5.6.1 为什么数组的索引从0开始? 129
5.6.2 如何获取二维数组的列数? 129
5.7 小结 130
5.8 动手纠错 130
第 6 章 看似简单的字符串 131
视频讲解:2 小时 52 分钟 精彩实例:8 个
e 学码:9 个
6.1 什么是字符串 132
6.2 字符串的声明与初始化 132
6.2.1 声明字符串 132
6.2.2 字符串的初始化 133
6.3 提取字符串信息 134
6.3.1 获取字符串长度 134
6.3.2 获取指定位置的字符 134
6.3.3 获取子字符串索引位置 135
? 实例01 查找“r”在字符串中出现的
位置 135
训练一 按关键字搜索字符串 136
训练二 书单检索 136
6.3.4 判断字符串首尾内容 137
6.4 字符串操作 138
6.4.1 字符串的拼接 138
6.4.2 比较字符串 139
? 实例02 验证用户名和密码是否正确 139
训练一 馒头=馍馍? 140
训练二 模拟用户注册及登录 140
6.4.3 字符串的大小写转换 141
6.4.4 格式化字符串 141
? 实例03 格式化不同的数值类型数据 142
训练一 格式化货币显示形式 143
训练二 模拟微信抢红包 143
? 实例04 输出不同形式的日期时间 144
训练一 显示天气预报及主要时刻点的
天气情况 145
训练二 输出员工的打卡时间 146
6.4.5 截取字符串 146
? 实例05 从完整文件名中获取文件名和
扩展名 146
训练一 从身份证号中获取生日信息 147
训练二 根据车牌号获取归属地 147
6.4.6 分割字符串 147
? 实例06 学习编程的终目标 148
训练一 分段显示长文本 148
训练二 模拟邮件发送 148
6.4.7 去除空白内容 149
6.4.8 替换字符串 150
? 实例07 “one world,one dream”的
变体 150
训练一 实现Word的全部替换功能 151
训练二 我们的成功秘诀:永不抱怨 151
6.5 可变字符串类 151
6.5.1 StringBuilder类的定义 151
6.5.2 StringBuilder类的使用 152
? 实例08 StringBuilder类中几种方法的
应用 152
训练一 编程解答幼儿园填空题 153
训练二 对比字符串和可变字符串的
执行效率 153
6.6 难点解答 153
6.6.1 null和” “的区别 153
6.6.2 StringBuilder类与string类的
区别 153
6.7 小结 154
6.8 动手纠错 154
第 7 章 面向对象程序设计 155
视频讲解:3 小时 40 分钟 精彩实例:12 个
e 学码:21 个
7.1 面向对象概述 156
7.1.1 对象 156
7.1.2 类 158
7.1.3 三大基本特征 158
7.2 类 160
7.2.1 类的声明 160
7.2.2 类的成员 160
? 实例01 计算圆的面积 161
训练一 定义员工的姓名及年龄字段 161
训练二 定义商品信息类 161
? 实例02 通过属性控制年龄的输入范围 163
训练一 控制库存数量在0~100之间 164
训练二 模拟淘宝商家某商品的库存量 164
7.2.3 构造函数 164
? 实例03 静态构造函数和实例构造函数
的使用 166
训练一 动态改变控制台背景色 167
训练二 修改手机的默认语言 167
7.2.4 析构函数 167
7.2.5 权限修饰符 168
7.3 方法 169
7.3.1 方法的声明 169
7.3.2 方法的参数 170
? 实例04 不同类型参数方法的使用 170
训练一 根据促销规则计算优惠后金额 172
训练二 银行账户资金交易管理 172
7.3.3 方法的重载 172
? 实例05 加法的不同运算形式 172
训练一 不同类型数据的乘法运算 173
训练二 输出NBA各个年代的人 173
7.4 类的静态成员 174
? 实例06 使用静态方法计算两个数的和 174
训练一 控制水池中的水量 174
训练二 银行账户利息的计算 174
7.5 对象的创建及使用 175
7.5.1 对象的创建 175
? 实例07 输出库存的商品名称 176
训练一 模拟华容道游戏场景 176
训练二 进销存管理系统中的库存管理 177
7.5.2 对象的销毁 177
7.5.3 类与对象的关系 178
7.6 继承 178
7.6.1 继承的实现 178
? 实例08 模拟进销存管理系统显示进货
信息 179
训练一 销售类与商品类的关系 180
训练二 Pad和电脑的关系 180
7.6.2 base关键字 181
? 实例09 模拟平板电脑和电脑的关系 181
训练一 重写方法中输出电脑类型 182
训练二 自我介绍 182
7.6.3 继承中的构造函数与析构函数 183
7.7 多态 183
7.7.1 虚方法的重写 184
? 实例10 从交通工具衍生出火车和
汽车的不同形态 184
训练一 不同人的说法方式 185
训练二 电脑和平板电脑的图片展示
方式 186
7.7.2 抽象类与抽象方法 186
? 实例11 模拟商场买衣服的场景 187
训练一 打印进货和销售信息 188
训练二 工厂类在生产汽车和鞋时的
应用 188
7.7.3 接口的使用 188
? 实例12 使用接口模拟老师上课的场景 189
训练一 选择不同的语言 191
训练二 打印每月销售明细 191
7.8 难点解答 192
7.8.1 ref参数和params参数的使用 192
7.8.2 抽象类与接口的区别 193
7.9 小结 193
7.10 动手纠错 193
第 2 篇 核心技术
第 8 章 Windows 交互式图形界面 196
视频讲解:43 分钟 精彩实例:1 个 e 学码:20 个
8.1 开发应用程序的步骤 197
8.2 Form窗体 199
8.2.1 添加和删除窗体 200
8.2.2 多窗体的使用 201
8.2.3 窗体的属性 202
8.2.4 窗体的显示与隐藏 204
8.2.5 窗体的事件 205
8.3 MDI窗体 207
8.3.1 MDI窗体的概念 207
8.3.2 如何设置MDI窗体 208
8.3.3 排列MDI子窗体 209
? 实例01 排列MDI父窗体中的多个子窗体 210 训练一 化打开子窗体 211
训练二 创建圆形窗体 211
8.4 难点解答 211
8.4.1 Show方法和ShowDialog方法的区别 211
8.4.2 如何实现MDI窗体不重复打开
同一个子窗体? 212
8.5 小结 212
8.6 动手纠错 213
第 9 章 Windows 控件—C/S 程序的基础 215
视频讲解:2 小时 35 分钟 精彩实例:8 个
e 学码:16 个
9.1 控件概述 216
9.2 控件的相关操作 217
9.2.1 添加控件 217
9.2.2 对齐控件 217
9.2.3 删除控件 218
9.3 Windows控件的使用 218
9.3.1 Label控件 218
9.3.2 Button控件 219
? 实例01 制作“登录”和“退出”按钮 219
训练一 为按钮添加快捷键 219
训练二 在窗体中动态添加控件 219
9.3.3 TextBox控件 220
? 实例02 制作登录窗体 220
训练一 控制文本框中只能输入数字 221
训练二 为文本框中的内容添加下划线 221
9.3.4 RadioButton控件 221
? 实例03 登录时选择用户角色 222
训练一 模拟红绿灯 223
训练二 单选题 223
9.3.5 CheckBox控件 223
? 实例04 设置并显示用户权限 223
训练一 全选和全不选功能的实现 224
训练二 控制用户权限 224
9.3.6 RichTextBox控件 225
9.3.7 ComboBox控件 227
? 实例05 使用ComboBox控件选择职位 228
训练一 带查询功能的下拉列表 228
训练二 自动匹配输入的网址 228
9.3.8 ListBox控件 228
9.3.9 GroupBox控件 230
9.3.10 ListView控件 230
9.3.11 TreeView控件 233
? 实例06 使用TreeView控件显示部门结构 235 训练一 在树节点上显示复选框 236
训练二 用树形列表动态显示菜单 236
9.3.12 ImageList组件 237
9.3.13 Timer组件 237
? 实例07 双色球彩票选号器 238
训练一 上下飘动的动画窗体 239
训练二 冬奥会倒计时程序 239
9.4 菜单、工具栏与状态栏 239
9.4.1 MenuStrip控件 239
9.4.2 ToolStrip控件 240
9.4.3 StatusStrip控件 241
? 实例08 在状态栏中显示登录用户和
当前时间 242
训练一 动态设置是否显示时间 243
训练二 带进度条的状态栏 243
9.5 对 话框 243
9.5.1 消 息框 244
9.5.2 打开对话框控件 245
9.5.3 另存为对话框控件 246
9.5.4 浏览文件夹对话框控件 247
9.6 难点解答 248
9.6.1 在窗体中看不到可视控件的原因 248
9.6.2 控件和组件的区别 249
9.7 小结 249
9.8 动手纠错 249
第 10 章 数据访问技术 251
视频讲解:2 小时 14 分钟 精彩实例:7 个
e 学码:18 个
10.1 ADO.NET概述 252
10.1.1 ADO.NET对象模型 252
10.1.2 数据访问命名空间 253
10.2 Connection数据连接对象 253
10.2.1 熟悉Connection对象 254
10.2.2 数据库连接字符串 254
10.2.3 应用SqlConnection对象连接数据库 255
? 实例01 连接SQL Server数据库 255
训练一 以Windows身份验证方式连接
数据库 256
训练二 连接Access数据库 256
10.3 Command命令执行对象 256
10.3.1 熟悉Command对象 256
10.3.2 应用Command对象操作数据 257
? 实例02 向数据表中添加编程词典
价格信息 257
训练一 修改指定ID的记录 258
训练二 删除指定ID的记录 258
10.3.3 应用Command对象调用存储过程 258
? 实例03 使用存储过程向数据表中添加信息 259 训练一 使用存储过程修改指定ID的记录 260 训练二 使用存储过程删除指定ID的记录 260
10.4 DataReader数据读取对象 260
10.4.1 DataReader对象概述 260
10.4.2 使用DataReader对象检索数据 261
? 实例04 获取编程词典信息并分列显示 262
训练一 实现用户登录功能 263
训练二 使用DataGridView显示查询结果 263
10.5 DataSet对象和DataAdapter操作对象 263
10.5.1 DataSet对象 263
10.5.2 DataAdapter对象 264
10.5.3 填充DataSet数据集 265
? 实例05 获取数据并显示在表格中 265
训练一 获取价格在指定范围的编程
词典版本 266
训练二 模糊查询包含“C#”的所有
数据 266
10.6 DataGridView控件的使用 266
? 实例06 DateGridView控件综合应用 267
训练一 为表格添加“合计”和“平均值” 269
训练二 分页显示表格中的数据 269
10.7 Entity Framework编程基础 269
10.7.1 什么是Entity Framework 269
10.7.2 Entity Framework实体数据模型 270
10.7.3 Entity Framework运行环境 270
10.7.4 创建实体数据模型 271
10.7.5 通过EF对数据表进行增删改查操作 274
? 实例07 通过EF对数据表进行增删改查 274
训练一 使用EF技术添加数据 276
训练二 使用EF技术删除数据 276
10.8 难点解答 276
10.8.1 DataSet对象与DataReader
对象的区别 276
10.8.2 EF相对于ADO.NET的优势 277
10.9 小结 277
10.10 动手纠错 277
第 11 章 程序调试与异常处理 279
视频讲解:30 分钟 精彩实例:3 个 e 学码:3 个
11.1 程序调试 280
11.1.1 Visual Studio编辑器调试 280
11.1.2 Visual Studio调试器调试 281
11.2 异常处理 285
11.2.1 try…catch语句 286
? 实例01 未将对象引用设置到对象的实例 286
训练一 模拟产生OverflowException
异常 287
训练二 索引超出范围的异常 287
11.2.2 try…catch…finally语句 287
? 实例02 捕捉将字符串转换为整型数据时
的异常 288
训练一 数字格式转换异常 288
训练二 空引用异常 288
11.2.3 throw语句 288
? 实例03 抛出除数为0的异常 289
训练一 将旷课学生自定义为异常 290
训练二 数据库连接异常 290
11.3 难点解答 290
11.3.1 使用多个catch时的注意事项 290
11.3.2 异常的使用原则 291
11.4 小结 292
11.5 动手纠错 292
第 3 篇 高级应用
第 12章 I/O 数据流技术 294
视频讲解:1 小时 34 分钟 精彩实例:3 个
e 学码:14 个
12.1 文件基本操作 295
12.1.1 File类 295
12.1.2 FileInfo类 296
12.1.3 判断文件是否存在 297
12.1.4 创建文件 298
12.1.5 复制文件 299
12.1.6 移动文件 299
12.1.7 删除文件 300
12.1.8 获取文件基本信息 301
? 实例01 获取选定文件的详细信息 301
训练一 根据日期时间动态创建文件 302
训练二 文件批量重命名 302
12.2 文件夹基本操作 302
12.2.1 Directory类 303
12.2.2 DirectoryInfo类 303
12.2.3 判断文件夹是否存在 304
12.2.4 创建文件夹 305
12.2.5 移动文件夹 305
12.2.6 删除文件夹 306
12.2.7 遍历文件夹 307
? 实例02 获取文件夹中的所有子文件夹
及文件信息 308
训练一 根据日期时间动态创建文件夹 309
训练二 对文件夹中的文件进行分类
存储 309
12.3 I/O(输入/输出) 310
12.3.1 流 概述 310
12.3.2 文件I/O流介绍 311
12.3.3 使用I/O流操作文本文件 313
? 实例03 向文本文件中写入和读取
名人名言 314
训练一 记录用户的登录日志 315
训练二 按行读取文本文件中的数据 316
12.4 难点解答 316
12.4.1 文本文件的编码方式 316
12.4.2 什么时候使用输入流?什么时候
使用输出流? 316
12.5 小结 317
12.6 动手纠错 317
第 13 章 GDI 绘图应用 319
视频讲解:37 分钟 精彩实例:3 个 e 学码:17 个
13.1 GDI 绘图基础 320
13.1.1 GDI 概述 320
13.1.2 Graphics绘图类 320
13.2 设置画笔与画刷 321
13.2.1 设置画笔 321
13.2.2 设置画刷 322
13.3 绘制几何图形 323
13.3.1 绘制图形 325
? 实例01 绘制验证码 325
训练一 绘制中文验证码 327
训练二 绘制波形图 327
13.3.2 填充图形 327
? 实例02 利用饼形图分析产品市场占有率 327
训练一 在饼形图外围添加说明文字 328
训练二 使用柱形图分析商品走势 328
13.4 绘制图像 329
? 实例03 绘制公司Logo 329
训练一 为图像批量添加水印文字 330
训练二 开心农场小游戏 330
13.5 难点解答 330
13.5.1 解决图像消失的问题 330
13.5.2 实现图像特殊效果的通用方法 331
13.6 小结 332
13.7 动手纠错 332
第 14 章 Socket 网络编程 333
视频讲解:1 小时 36 分钟 精彩实例:3 个
e 学码:11 个
14.1 计算机网络基础 334
14.1.1 局域网与广域网 334
14.1.2 网络协议 334
14.1.3 端口及套接字 336
14.2 IP地址封装 337
? 实例01 访问同一局域网中的主机的名称 338
训练一 根据IP地址获取主机名 339
训练二 局域网IP地址扫描 339
14.3 TCP程序设计 340
14.3.1 Socket类 340
14.3.2 TcpClient类和TcpListener类 342
14.3.3 TCP网络程序实例 343
? 实例02 客户端与服务器端的交互 343
训练一 点对点聊天程序 346
训练二 使用Socket实现客户端与
服务器端的交互 346
14.4 UDP程序设计 346
14.4.1 UdpClient类 346
14.4.2 UDP网络程序实例 347
? 实例03 广播数据报程序 347
训练一 UDP协议发送和接收数据 350
训练二 广播数据报程序的变体 350
14.5 难点解答 351
14.5.1 TCP协议和UDP协议的区别 351
14.5.2 网络之间可以传递哪些数据? 351
14.6 小结 351
14.7 动手纠错 351
第 15 章 多线程编程技术 353
视频讲解:1 小时 19 分钟 精彩实例:4 个
e 学码:10 个
15.1 线程概述 354
15.1.1 线程的定义与分类 354
15.1.2 多线程的优缺点 355
15.2 线程的实现 355
15.2.1 使用Thread类创建线程 355
? 实例01 向右移动的C#图标 357
训练一 从上往下坠落的C#图标 358
训练二 模拟手机号码抽奖 358
15.2.2 线程的生命周期 358
15.3 操作线程的方法 359
15.3.1 线程的休眠 359
? 实例02 模拟红绿灯变化场景 360
训练一 在窗体中自动绘制彩色线段 361
训练二 霓虹灯效果 361
15.3.2 线程的加入 361
? 实例03 控制进度条的滚动 362
训练一 旅游公司的淡季和旺季 363
训练二 带进度条的文件异步复制 363
15.3.3 线程的终止 363
15.3.4 线程的优先级 364
15.4 线程的同步 365
15.4.1 线程同步机制 366
15.4.2 使用lock关键字实现线程同步 367
? 实例04 设置同步块模拟售票系统 368
训练一 大容量数据的计算 369
训练二 模拟龟兔赛跑 369
15.4.3 使用Monitor类实现线程同步 369
15.4.4 使用Mutex类实现线程同步 371
15.5 难点解答 372
15.5.1 过时的Suspend方法和Resume方法 372
15.5.2 了解线程池 373
15.6 小结 373
15.7 动手纠错 374
第 4 篇 项目实战
第 16 章 五子棋大厅游戏 376
视频讲解:1 小时 35 分钟 e 学码:12 个
16.1 开发背景 377
16.2 系统功能设计 377
16.2.1 系统功能结构 377
16.2.2 系统业务流程 377
16.3 系统开发 378
16.3.1 系统开发环境要求 378
16.3.2 数据库设计 379
16.3.3 项目目录结构预览 379
16.3.4 界面预览 380
16.4 自定义UDP协议控件 382
16.5 服务器窗体设计 386
16.5.1 服务器窗体概述 386
16.5.2 设计服务器窗体 386
16.5.3 开始/停止服务 387
16.5.4 设置分数排名方式 387
16.5.5 关闭服务器 388
16.6 客户端注册窗体设计 389
16.6.1 客户端注册窗体概述 389
16.6.2 设计客户端注册窗体 389
16.6.3 系统加载时获取本地IP地址 390
16.6.4 在下拉列表中绘制图片 391
16.6.5 注册用户功能的实现 392
16.7 五子棋大厅窗体设计 394
16.7.1 五子棋大厅窗体概述 394
16.7.2 设计五子棋大厅窗体 395
16.7.3 循环播放背景音乐 396
16.7.4 进入指定的房间 396
16.7.5 进入指定的座位 399
16.7.6 局域网内的公共聊天 402
16.8 游戏对决窗体设计 403
16.8.1 游戏对决窗体概述 403
16.8.2 设计游戏对决窗体 404
16.8.3 开始五子棋对决 405
16.8.4 五子棋算法实现 407
16.8.5 在棋盘上添加双方的棋子 411
16.8.6 判断双方的输赢 414
16.9 小结 416
评论
还没有评论。