本书详细介绍了C#语言编程的相关知识。
在本书中,我们精选了两个游戏案例、五个信息系统案例和三个系统应用案例,按照软件开发和游戏开发的步骤,详细地阐述系统的开发过程。
本书适合作为大中专院校计算机专业课程的教材,也可供自学者参考使用。
在基础知识中,本书使用两章的篇幅重点介绍了.Net框架和C#语言的基本语法结构,对于初学者来说非常的实用,同时也涉及到本书其它章节中所用到的知识点,比如数据库的连接等。
在游戏开发中,我们介绍了俄罗斯方块、贪吃蛇游戏的设计和实现,告诉读者如何使用C#语言进行绘图、响应键盘按键操作和播放音乐文件。
在文件操作中,本书介绍了目前应用十分广泛的员工管理信息系统、房屋出租管理系统、仓库管理信息系统、研究生管理信息系统、图书馆管理信息系统、影院语音播报系统的设计与实现,在这些案例当中包含了数据库的操作、Excel文件的操作和Windows语音功能的调用。
在网络编程中,结合物联网相关内容,本书介绍了网站监控系统、PM2.5模拟采集系统的设计与实现,这部分内容涵盖了网络协议、多线程和地图API等相关技术。
本书从实践性和应用性出发,所有案例程序的开发都遵循软件工程的方法,即分析→设计→编码→运行调试的路线,内容组织合理、分析详细、通俗易懂。
再 版 前 言
C#编程语言是由微软公司专门为.NET平台设计的语言,它可以使程序员把工作迁移到.NET上。这种迁移对于广大的程序员来说是比较容易的,因为C#从C、C++和Java发展而来,采用了这三种语言最优秀的特点,并加入了它自己的特性。
C#是事件驱动的、完全面向对象的可视化编程语言,我们可以使用集成开发环境来编写C#程序,程序员可以方便快速地建立、运行、测试和调试C#程序。所以它一经推出,马上就受到广大程序员的青睐。
《C#课程设计案例精编》是清华大学出版社高等院校课程设计案例精编系列教材之一,第1版出版至今,已受到读者广泛好评。第2版在保持了前一版风格的基础上,根据读者的反馈,对部分内容进行了更新和修订,以达到与时俱进、满足读者需求的目的。
本书内容丰富,案例经典,从实际应用角度出发,涵盖了游戏开发、文件操作、网络编程等范畴,共12章,涉及10个经典案例,由浅入深、从简单到复杂,详细介绍了使用C#开发应用程序的方法。本书是一本实践性和应用性很强的C#语言实用教材。
在基础知识中,我们使用两章的篇幅重点介绍了.NET框架和C#语言的基本语法结构,对于初学者来说非常实用,同时也涉及到本书其他章节中所用到的知识点,比如数据库的连接等。
在游戏开发中,介绍了俄罗斯方块、贪吃蛇游戏的设计和实现,告诉读者如何使用C#语言进行绘图、如何响应键盘按键操作和播放音乐文件;在文件操作中,介绍了目前应用十分广泛的员工管理信息系统、房屋出租管理系统、仓库管理信息系统、研究生管理信息系统、图书馆管理信息系统、影院语音播报系统的设计与实现,在这些案例中包含了数据库的操作、Excel文件的操作和Windows语音功能的调用;在网络编程中,结合物联网的相关内容,介绍了网站监控系统、PM2.5模拟采集系统的设计与实现,这部分内容涵盖了网络协议、多线程和地图API等相关技术。
本书从实践性和应用性出发,所有案例程序的开发都遵循软件工程的方法,即采取分析→设计→编码→运行调试的路线,内容组织合理、分析详细、通俗易懂。
本书中,所有案例均需在VS开发环境中进行开发和调试,其中前7个案例均在Visual Studio 2003中调试通过,后3个案例均在Visual Studio 2013 + Windows 7中调试通过。此外,文件操作和网络编程部分案例需要安装微软Office办公软件中的Access数据库和Excel电子表格应用。
本书适合作为本科、高职高专院校计算机、机械、电子、自动化等专业的学生进行课程设计的参考教材,可供计算机专业编程人员参考使用,同时,也可以作为C#语言开发人员和爱好者的参考读物。
第1版前言
C#是一种先进的、面向对象的语言,使用C# 语言可以让开发人员快速地建立大范围的基于MS网络平台的应用,并且提供大量的开发工具和服务,帮助开发人员开发基于计算和通信的各种应用。由于C#是一种面向对象的开发语言,所以C#可以大范围地适用于高层商业应用和底层系统的开发。即使是通过简单的C# 构造,也可以让各种组件方便地转变为基于Web的应用,并且能够通过Internet被各种系统或是其他开发语言所开发的应用调用。
本书精选了八个信息系统案例和两个游戏案例,按照开发信息系统和游戏的步骤详细阐述了系统的开发过程。这十个案例分别是员工管理信息系统、房屋出租管理系统、仓库管理信息系统、研究生管理信息系统、图书馆管理信息系统、宿舍管理信息系统、理财管理信息系统、IT设备资产管理系统、俄罗斯方块游戏的编制和贪吃蛇游戏的编制。其中,房屋出租管理系统后台数据库采用Microsoft SQL Server,其他系统后台数据库采用Microsoft Access。Access是Office系列软件中用来专门管理数据库的应用软件,是一种功能强大并且使用方便的关系型数据库管理系统,一般也称为关系型数据库管理软件。它可运行于各种Microsoft Windows系统环境中,由于它继承了Windows的特性,不仅易于使用,而且界面友好,如今在世界各地广泛流行。它不需要数据库管理者具有专业的程序设计水平,任何非专业的用户都可以用它来创建功能强大的数据库管理系统。
本书适合作为高等院校计算机、自动化、机械、电子等专业学生课程设计的指导书,也适合作为开发人员的参考书。
本书由段德亮、余健、张仁才等编著。参与编写的人员还包括张伟、陈嗥、蔚辉、张坤、陈运来、田野、仇亚飞、刘广兴、王翠翠、代小华、王莹莹、韩忠明、张辰威。由于编者水平有限,加上时间仓促,书中难免有一些不足之处,欢迎同行和读者批评指正。
编 者
第1章 C#基础知识 1
1.1 Visual Studio .NET 2
1.1.1 什么是.NET 2
1.1.2 .NET结构 2
1.2 初识C# 2
1.2.1 什么是C# 2
1.2.2 C#代码的结构 3
1.2.3 C#注释 4
1.2.4 标识符与关键字 5
1.3 C#基本类型 6
1.3.1 值类型 7
1.3.2 引用类型 10
1.3.3 类型转换 14
1.4 变量和常量 17
1.4.1 变量的定义 17
1.4.2 变量的命名 17
1.4.3 变量的类型 18
1.4.4 常量 18
1.5 运算符与表达式 19
1.5.1 运算符分类 19
1.5.2 算术运算符 19
1.5.3 关系运算符 20
1.5.4 赋值运算符 22
1.5.5 逻辑运算符 23
1.5.6 位运算符 24
1.5.7 其他运算符 25
1.5.8 运算符的优先级和结合性 27
第2章 C#程序设计 29
2.1 C#控制台应用程序 30
2.1.1 创建工程 30
2.1.2 修改代码 31
2.1.3 运行程序 32
2.2 C# Windows应用程序 33
2.2.1 新建项目 33
2.2.2 添加新的窗口 35
2.2.3 添加菜单 36
2.3 SQL入门 37
2.3.1 SQL简介 37
2.3.2 SQL的优点 37
2.3.3 从服务器资源管理器连接
数据库 38
2.4 连接数据库 40
2.4.1 .NET中的连接对象 40
2.4.2 C#连接Access 40
2.4.3 C#连接SQL Server 41
2.4.4 C#连接Oracle 42
2.4.5 C#连接MySQL 43
第3章 俄罗斯方块游戏的编制 45
3.1 程序概述 46
3.1.1 游戏的功能 46
3.1.2 游戏的预览 46
3.2 游戏的概要设计 48
3.2.1 游戏实现方案 48
3.2.2 游戏逻辑设计 48
3.3 游戏的详细设计及编码 48
3.3.1 主界面设计编码 48
3.3.2 游戏控制设置设计编码 56
3.3.3 游戏方块设计编码 58
3.3.4 游戏声音设计编码 73
本章小结 74
第4章 贪吃蛇游戏的编制 75
4.1 程序概述 76
4.1.1 游戏的功能 76
4.1.2 游戏的预览 76
4.2 游戏的概要设计 77
4.2.1 游戏实现方案 77
4.2.2 游戏逻辑设计 77
4.3 游戏的详细设计及编码 77
4.3.1 主界面设计编码 77
4.3.2 游戏颜色设置设计编码 82
4.3.3 游戏蛇设计编码 85
本章小结 89
第5章 员工管理信息系统 91
5.1 系统概述 92
5.1.1 系统功能与应用背景 92
5.1.2 系统预览 92
5.2 系统设计 94
5.2.1 系统设计思想 94
5.2.2 系统结构设计 95
5.3 数据库设计 95
5.3.1 数据库需求分析 95
5.3.2 数据库概念结构设计 95
5.3.3 数据库逻辑结构设计 97
5.3.4 设置表与表之间的关系 98
5.4 工种种类设置 99
5.4.1 添加工种种类 99
5.4.2 浏览工种种类 101
5.4.3 修改工种种类 102
5.4.4 删除工种种类 103
5.5 员工个人信息管理 104
5.5.1 添加员工信息 104
5.5.2 浏览员工信息 106
5.5.3 修改员工信息 108
5.5.4 删除员工信息 110
5.6 员工所属部门信息管理 111
5.6.1 添加部门信息 111
5.6.2 浏览部门信息 112
5.6.3 修改部门信息 113
5.6.4 删除部门信息 115
5.7 员工月收入信息管理 116
5.7.1 添加员工月收入信息 116
5.7.2 浏览员工月收入信息 117
5.7.3 修改员工月收入信息 119
5.7.4 删除员工月收入信息 120
本章小结 121
第6章 房屋出租管理系统 123
6.1 系统概述 124
6.1.1 系统的应用背景 124
6.1.2 系统的功能 124
6.1.3 系统的预览 124
6.2 系统概要设计 128
6.2.1 系统实现方案和系统模块
划分 128
6.2.2 数据库逻辑设计 130
6.3 系统详细设计 134
6.3.1 数据库连接 134
6.3.2 出租人信息管理 135
6.3.3 房屋信息管理 135
6.3.4 房屋查询 136
6.3.5 承租者入住管理 137
6.3.6 承租者查询 138
6.3.7 利润信息 138
6.4 系统编制 139
6.4.1 主界面的编码 139
6.4.2 出租人信息管理部分的
编码 148
6.4.3 房屋信息管理部分的编码 153
6.4.4 房屋查询部分的编码 155
6.4.5 承租者入住部分的编码 159
6.4.6 承租者查询部分的编码 160
6.4.7 利润信息部分的编码 161
本章小结 161
第7章 仓库管理信息系统 163
7.1 系统概述 164
7.1.1 系统功能与应用背景 164
7.1.2 系统预览 164
7.2 系统设计 165
7.2.1 系统设计思想 165
7.2.2 系统功能模块设计 165
7.2.3 数据库设计 167
7.3 登录界面与用户模块设计 169
7.3.1 登录界面设计 169
7.3.2 用户模块设计 170
7.3.3 系统模块设计 171
7.4 物资信息管理 174
7.4.1 添加物资信息 174
7.4.2 浏览物资信息 175
7.4.3 修改物资信息 177
7.4.4 查询物资信息 178
7.5 入库信息管理 180
7.5.1 添加入库信息 180
7.5.2 浏览入库信息 182
7.5.3 修改入库信息 183
7.5.4 查询入库信息 185
7.6 出库信息管理 187
7.6.1 添加出库信息 187
7.6.2 浏览出库信息 189
7.6.3 修改出库信息 190
7.6.4 查询出库信息 192
7.7 库存信息管理 194
7.7.1 浏览库存信息 194
7.7.2 查询库存信息 195
本章小结 196
第8章 研究生管理信息系统 197
8.1 系统概述 198
8.1.1 系统功能 198
8.1.2 系统预览 198
8.2 系统概要设计 199
8.2.1 功能模块设计 199
8.2.2 文件架构设计 200
8.2.3 数据库设计 201
8.3 系统详细设计 204
8.3.1 数据库连接 204
8.3.2 主界面 204
8.3.3 系统管理 205
8.3.4 专业管理 206
8.3.5 课程管理 207
8.3.6 研究生管理 209
8.3.7 成绩管理 210
8.3.8 用户管理 212
8.4 系统程序设计 212
8.4.1 登录界面编码 212
8.4.2 主界面编码 214
8.4.3 系统管理编码 217
8.4.4 专业管理编码 219
8.4.5 课程管理编码 222
8.4.6 研究生管理编码 226
8.4.7 成绩管理编码 227
8.4.8 用户管理编码 231
本章小结 232
第9章 图书馆管理信息系统 233
9.1 系统概述 234
9.1.1 系统功能 234
9.1.2 系统预览 235
9.2 系统概要设计 236
9.2.1 系统设计思想 236
9.2.2 功能模块设计 237
9.3 数据库设计 238
9.3.1 数据库概念设计 238
9.3.2 数据库逻辑设计 239
9.3.3 数据库表之间的关系 241
9.4 系统详细设计 241
9.4.1 数据库连接 241
9.4.2 系统管理设计 242
9.4.3 图书管理设计 243
9.4.4 读者管理设计 246
9.4.5 借还管理设计 248
9.4.6 查询管理设计 251
9.4.7 用户管理设计 252
9.5 系统程序设计 253
9.5.1 登录界面的编码 253
9.5.2 主界面编码 255
9.5.3 系统管理编码 259
9.5.4 图书管理编码 261
9.5.5 读者管理信息 263
9.5.6 借还管理信息 264
9.5.7 查询管理信息 269
9.5.8 用户管理信息 271
本章小结 272
第10章 影院语音播报系统 273
10.1 系统概述 274
10.1.1 系统功能 274
10.1.2 系统预览 274
10.2 系统概要设计 275
10.2.1 系统设计思想 275
10.2.2 功能模块设计 276
10.2.3 数据库设计 276
10.3 系统详细设计 277
10.3.1 数据库连接 277
10.3.2 系统登录设计 278
10.3.3 系统主界面设计 278
10.3.4 系统管理设计 279
10.3.5 场次管理设计 281
10.3.6 紧急播报设计 283
10.4 系统程序设计 284
10.4.1 登录界面编码 284
10.4.2 主界面编码 286
10.4.3 用户管理编码 295
10.4.4 修改密码编码 297
10.4.5 场次管理编码 298
10.4.6 播报设置编码 300
10.4.7 紧急播报编码 301
10.4.8 编码补充说明 301
本章小结 304
第11章 网站监控系统 305
11.1 系统概述 306
11.1.1 系统功能 306
11.1.2 系统预览 306
11.2 系统概要设计 307
11.2.1 系统设计思想 307
11.2.2 功能模块设计 308
11.2.3 数据库设计 308
11.3 系统详细设计 310
11.3.1 数据库连接 310
11.3.2 系统登录设计 311
11.3.3 系统主界面设计 312
11.3.4 系统管理设计 313
11.3.5 监控项目设计 314
11.3.6 报警配置设计 315
11.4 系统程序设计 316
11.4.1 登录界面编码 316
11.4.2 主界面编码 318
11.4.3 用户管理编码 328
11.4.4 修改密码编码 331
11.4.5 监控项目编码 332
11.4.6 报警配置编码 333
11.4.7 编码补充说明 335
本章小结 335
第12章 PM2.5模拟采集系统 337
12.1 系统概述 338
12.1.1 系统功能 338
12.1.2 系统预览 338
12.2 系统概要设计 340
12.2.1 系统设计思想 340
12.2.2 系统功能模块设计 340
12.2.3 数据库设计 340
12.3 系统详细设计 341
12.3.1 数据库连接 341
12.3.2 服务端界面设计 343
12.3.3 系统管理设计 344
12.3.4 设备管理设计 345
12.3.5 虚拟终端设计 347
12.4 系统程序设计 348
12.4.1 Socket调用编码 348
12.4.2 主服务端编码 350
12.4.3 采集端口编码 356
12.4.4 设备管理编码 356
12.4.5 虚拟终端编码 360
12.4.6 编码补充说明 364
本章小结 364
第2章 C#程序设计
C#应用程序可以分为两类:命令行(或控制台)应用程序和Windows应用程序。使用AppWizard,借助于项目中的一些模板代码,这两种应用程序都很容易创建。
2.1 C#控制台应用程序
2.1.1 创建工程
要想用C#创建一个控制台应用程序,应启动.NET开发环境主界面,如图2-1所示。
图2-1 .NET开发环境主界面
选择"文件"→"新建"→"项目"菜单命令,来打开"新建项目"对话框,或者直接单击主界面上的"新建项目"按钮。在项目类型中单击"Visual C#项目",并在模板中选择"控制台应用程序"。将这个项目命名为"HelloWorld",并单击"浏览"按钮,选择一个合适的目录,如图2-2所示。
图2-2 "新建项目"对话框
单击"确定"按钮后,C# AppWizard就会创建一个如图2-3所示的模板代码。
图2-3 C#模板代码
2.1.2 修改代码
现在就可以修改这个模板代码,来实现应用程序了。下面是我们修改后的代码:
//例2-1:HelloWorld程序代码
using System;
namespace HelloWorld
{
///
/// Class1 的摘要说明。
///
class Class1
{
///
/// 应用程序的主入口点。
///
[STAThread]
static void Main(string[] args)
{
//
// TODO: 在此处添加代码以启动应用程序
//
Console.WriteLine("Hello World!");
}
}
}
观察图2-3中的模板代码和例2-1中的代码。
可以发现,例2-1中多了一行代码:
Console.WriteLine("Hello World!");
这行代码中所使用的Console.WriteLine()实际上是System.Console.WriteLine()的缩写形式,在这里,System代表一个命名空间,Console代表在这个命名空间中定义的一个类,表示控制台应用程序的标准输入流、输出流和错误流。WriteLine()是这个Console类中定义的一个静态方法。
2.1.3 运行程序
选择"项目"→"重新生成解决方案"菜单命令,来生成解决方案。然后选择"调试"→"开始执行(不调试)"菜单命令,如图2-4所示,就可以在Visual Studio集成开发环境中运行这个应用程序了。
图2-4 运行程序
当执行这个程序的时候,一个控制台窗口将会出现,并展示程序的输出。图2-5展示了这个应用程序的输出结果。
图2-5 控制台窗口中的程序输出结果
2.2 C# Windows应用程序
2.2.1 新建项目
如图2-6所示,在集成开发环境的"文件"菜单中选择"新建"→"项目"命令,来打开"新建项目"对话框。
图2-6 新建项目
我们选择工程类型为"Visual C#项目",在模板中选择"Windows应用程序",在"名称"文本框中输入工程名称"HelloWindows",在"位置"文本框中输入保存的路径,如图2-7所示。
确定后,系统自动生成了程序框架,如图2-8所示。现在,我们来简单地熟悉一下这个开发环境。
A区:是工具箱,包括对数据库、组件、窗体控件等的支持,我们都可以选择并加入到Form中,假如找不到工具箱,可选择View→Toolbox菜单命令来打开它。
B区:是我们的设计工作区(包括对界面、代码的设计),图2-8中显示的是我们刚才新建的应用程序的主窗口Form1。
C区:是解决方案资源管理器,其中的Form1.cs就是Form1对应的C#文件,双击它就可以对Form1进行界面设计,以鼠标右键单击Form1.cs,在弹出快捷菜单中选择View Code命令,就可以查看对应的代码。
图2-7 "新建项目"对话框
图2-8 程序框架
D区:是属性窗口,类似于VC6中资源编辑器里的属性窗口,但功能更强大。对于屏幕上的组件,比如按钮、列表框,都可以在这里直接修改其属性,如文字、背景色等。
我们接下来的任务,是制作一个"关于"对话框,并添加菜单,用于打开此对话框。
2.2.2 添加新的窗口
选择"项目"→"添加新的窗口"菜单命令,在弹出的"添加新项"对话框中选择模板为"Windows窗体",在"名称"文本框中输入文件名"AboutDlg.cs",如图2-9所示,然后单击"打开"按钮确认。
图2-9 添加新的窗口
新的窗口会出现在工作区中,我们在D区的属性界面中修改Text为"关于",选择BackColor为snow,也可以尝试去改变其他的属性。
接下来,我们打开A区的工具箱,选择"Windows窗体"中的Label,然后在窗体中画出标签,并在属性对话框中修改其Text属性为"Hello Windows!",并在Font属性中设置字体和大小,把ForeColor属性设置为Red。在Windows窗体中再加入一个Button,修改其Text属性为"确认"。
至此,对话框的界面就设计好了,但当用户单击"确认"按钮的时候,如何关闭对话框呢?
双击"确认"按钮,这样,系统会为该按钮自动添加按钮的处理代码框架,在其中,我们添加Close()函数用以关闭对话框,代码如下所示:
//例2-2:"确认"按钮的代码
private void button1_Click(object sender, System.EventArgs e)
{
this.Close();
}
这样,这个"关于"对话框就已经完成了,我们接下去要做的,是为主视窗添加菜单,当用户选择菜单中的"关于"命令时,就会弹出"关于"对话框。