成都中医药大学陈明岭-成都中医药大学陈明岭
黎明职业大学计算机与信息工程系
C#
程序设计(下)
实训指导书
2009
年
12
月
《
》
目
录
《
C#
程序 设计(下)
》实训大纲
......................... .................................................. ............ 1
实训一
网络聊天工具
............................. .................................................. ..................... 4
实训二
排序算法的演示
.
..... .................................................. ......................................... 6
实训三
简单游戏制作
.................................................. .................................................1 1
附件一:实训日志模板
............ .................................................. .................................... 15
附件二:实训报告模板
..................... .................................................. ........................... 19
附
件三:实训评分标准
…………………………………………………………………………
20
《
C# p>
程序设计(下)
》实训大纲
适用:计算机应用技术
08
级
学时:
30
学分:
1
一、实训目的:
《
C#
程序设计实训(下)
》课程是软件专业以及与软件有关的专业的岗位技能核心课程。 p>
本课是集于理论与实践一体的综合应用课程。通过学习本课程学生初步掌握面向对象程序设<
/p>
计的概念以及在
.NET
平台下开发应用程序的技能。主要 目的是让学生通过实训熟悉
C#
语言
的语法,面向对象的
程序设计设计思路,运用
Visual
C#.NET
平台开发< /p>
Windows
应用程序,
数据库应用程序以及网络应用程
序等。
二、实训内容和要求
1
、
掌握
.net
中用于读写文件及管理文件系统 的类,
能够使用
.net
中的
IO
操作进行高级应
用程序开发。
2
、掌握各种存储数据的数据结构,如动态数组、队列、栈、哈稀表以及他们的泛型,并
能在应用程序中灵活应用。
3
、理解委托和事件,掌握 在应用程序中使用写代码的形式给控件注册事件。
4
、 掌握实现异步的方法,包括使用委托和在窗体应用程序下使用
BackgroundWork p>
来实
现。
5
、掌握 使用
GDI+
绘图的基本方法。
6
、掌握简单的网络编程方法。
7
、掌握
的结构以及用
访问数据 库的一个简单模型。
8
、在编写程序过程中,培养预测 和寻找错误的能力,并能正确处理错误和异常。
9
、初步掌握编制软件文档。
10
、懂得制作安装程序
具体内容见实训指导。
三、先修课程
《程序设计基础》
、
《
C#
程序设计(上)
》
、< /p>
《数据结构》
四、参考文献
[1]
张立,
《程序天下:
< p>C-#2.0实例自学手册
-200
个例子》
,电子工业出版社,
2008
[2]
章立民研究室,
《
V
isual.C#.2005 .
程序开发与界面设计秘诀》
,
.
机械工业出版社 ,
2006
[3]
代方震,陈冠军,
《
V
isual c#2005
程序设计从入门到精通》
,人民邮电出版社,
2007
< p>
1
[4]
王小科等,
《
V
isual C#2005
程序设计自学手册》
,人民邮电出版社,
2008
[5]
邵鹏鸣,
《
C#
面向对象程序设计》
,清华大学出版社,
2008.4
[6]
万科、覃剑,
《
Visual C#.NET
程序设计基础与上机指导》
,清华大学出版社,
2007.3
[7]
张华、吴浩东,
《
Visual C#
程序设计教程与上机指导》
,清华大学出版社,
2005.3
[8]
杨晓光等,
《
Visual C# .NET
程序设计——习题解析与实习指导》
,清华大学出版社,
2007.1
五.学时分配
学时分配
序号
1
2
3
4
5
实训内容
总学时
实训一
网络聊天工具
实训二
排序算法的演示
实训三
简单游戏制作
实训交流
实训报告
合计
10
8
8
2
2
30
理论学时
实践学时
10
8
8
2
2
30
六.操作与考核办法
采取提交电子材料与实训操作相结合的方法进行考核。
1
、实训操作办法
(
1
)学生实训以小组为单位,小组人数以
3~5
人为宜。< /p>
(
2
)
学生实训时认真做 好小组分工和实训计划,
并书写需求分析报告、
总体设计说明书
< br>和详细设计说明书及测试报告,这些材料一并包含在课程实训说明书中,以电子稿或打印稿
方式提交,同时每个小组必须提供完整的源程序代码。
(
p>
3
)
教师应在小组成绩的基础上认真评定个人成绩,
并 对学生的课程实训说明书进行批
改。
(
4
)
指导教师在实训开始前,
布置若干个难度适中的实训 课题供学生选用。
鼓励学生自
选课题,但要经指导教师审核。
2
、学生在完成实训后须提交如下电子文档:
< /p>
(
1
)把所设计的程序传到
FTP
服务器上。
(
2
)完成实训任务的详细日志。
p>
(
3
)实训的实施过程
(
包括 主要的步骤以及所使用的方法
)
。
2
(
4
)实 训中出现的异常情况及解决办法。
(
5
)对实训改进的探讨。
< p>
3
、成绩考核评定(具体项目评定见附件三)
:
(1)
积极参与课程实训,按质按量完成课程实训要求。
(2)
出勤情况,占
20%.
(3)
在项目开发过程中完成的工作量,占
30%.
(4)
对开发的项目涵盖的知识点的掌握情况,占
40 %
。
(5)
项目中有新功能或创意,占
10%
。
七、参考课题
1
、文件管理器的实现
2
、综合性绘图工具
3
、网络聊天工具的实现
4
、简单网络游戏的实现
5<
/p>
、电子邮箱的实现(需自学
POP3
协议和
SMTP
协议)
6
、移动通信管理和收费系统的实现
7
、数据库管理信息系统的设计与实现
8
、游戏算法的设计与实现
9
、某个算法的实现和过程演示
10
、其它
(
自己寻找课题,需经指导教师认可
)
附件:
1
、实训日志模板
2
、实训报告模板
3
、实训评分标准
3
实训一
网络聊天工具
一、实训目的:
1
、掌握使用同步的方式进行双机通信,进而学会使用异步的方式进行通信。< /p>
2
、将对象在网络中传输的方法。
3
、掌握多线程间调度的知识。
4
、掌握
的结构,并能使用
访问 数据库。
5
、应用
MDI
相关的属性创建多文档窗体,熟练掌握
WinForms
控件的使用。
二、实训内容:
程序功能:
在本实训项目中,
我们要求 实现一个简单的在线聊天工具,
它提供基本的聊
天功能。要求能够实现登
陆判断、维持在线用户列表,支持群聊和私聊等功能。该应用程序
的结构为一个客户机<
/p>
/
服务器结构,要求设计的功能有两个方面:
1
、服务器端:管理着聊天任务,它维持着一张当前在线用户的列表,转发用户发来的信 p>
息,主要功能如下:
(
1
)监听本机
IP
地址中的一个指定的端口。
(
2
)所有合法用户的数据存放在
SQL
数据库中。
(
3
)
当 有客户端向该端口发出请求时,
服务器程序立刻建立一个与该客户端的连接并启
< br>动一个新的线程来处理该客户端的所有请求。
(
4
)
服务器端根据客户端发送来的各种不同的请求,
执行相应的操 作,
并将结果返回给
该客户端。要求至少定义四种请求命令:
(请求登陆)
CHAT
(聊天)
PR IV
(私聊)
EXIT
(离开)
,服务器 接收
ASCII
字符信息,用“
|
”分隔信息的各 个部分,一个信息包含一
条命令,一个或多个信息参数。简单命令格式如下:
A
:
CONN|
用户名
|
密码
|
该命令是在客户端和服务器端连接后由客户端程序登陆时发< /p>
送,服务器程序收到该命令后会将用户名和密码与所连接数据库的“用户”表进行比对,若
是合法用户,允许登陆,添加到在线用户列表,同时向每个在线用户发送更新在线用户列
表
的命令;否则发送错误信息。
B
CHAT|
发送者的用户名:发送信息的内容
|
该命令是用户在客户端程序界面中输
入发送信息的内容后,单击“发送”按钮后,由客户端程序自动发送,服务器程序收到该命
p>
令后,便将“发送者的用户名:发送信息的内容”转发给所有的当前在线用户。
C
:
PRIV|
发送者的用户名 p>
|
接受者的用户名
|
发送信息的内容
|
该命令是用户在客户端
应用程序中选中“悄悄话”复选框(私聊)
,输入发送信息内容并单击“发送”按钮后,由客
4
户端应用程序自动发送,服务器收到该命令后,将“发送者的用户名
send
to
接受者的用户
名:发送
信息的内容”转发给对应的接收者。
D
:
EXIT|
用户名
|
该命令是用户在客户端程序中单击“离开”按钮后,由客户端 程序
自动发送的,
服务器应用程序收到该命令后,
将发送 者的用户名从当前在线用户列表中删除,
并给当前在线的用户发送更新在线用户列表的命
令。
2
、客户端:包含用户登陆窗口和用户聊天的主窗 口,它允许用户登陆到服务器,可以向
服务器发送信息,同时可以接收从服务器返回的信
息,要求设计的主要功能如下:
(
1
)向远程服务器发送连接请求
p>
(
2
)得到服务器程序的确认后,建立于服务器的连接,并获 得与服务器交互的流通道
(
NetworkStream
)
。
(
3
)
< p>通过网络流通道与服务器端进行数据通信。向服务器发送服务器能够识别的命令请
< p>求,同时也接收服务器发回的命令。客户端能够识别的命令有
ERRO
(通知用户名和密码错
误)
、
JOIN
(通知当前在线用户有新的用户进入聊天室)
、
LIST
(更新当 前在线用户)
QUIT
(关闭客户端程序)
。客户端接收
ASCII
字符信息,用“
|
”分隔信息的各个部 分,一个信息
包含一条命令,一个或多个信息参数。简单命令格式如下:
A
:
ERRO|
< /p>
该命令是服务器验证身份时,用户名或密码错误,向客户端发送的,客户
端
收到此命令后,可以关闭与服务器的连接或重新登陆;
B
:
JOIN|
刚刚进入聊天室的用户名
|
该命令是服务器程序确认一个用户登陆后,由服
务器自
动向当前在线的客户端发送的,
以此来通知所有在线用户此时有新的用户进入聊天室,
< p>客户端收到此命令后,在各自的窗口中显示此用户已进入聊天室;
C
:
LIST|
在线用户
1|
< p>在线用户2|
在线用户
2|
…
|
该命令是服务器程序确认一个用户登陆
< br>或
EXIT
命令后,由服务器自动向当前在线的客户端发送的,以此来通知 所有的在线用户刷
新自己的当前在线用户列表,客户端程序收到此命令后,在各自的窗口
中刷新当前在线用户
列表;
D
:
QUIT|
< /p>
该命令是服务器程序收到客户端发送来的
EXIT
命令后,
由服务器自动向该
客户端发送的,
以便通知该客户端关闭连接同时 关闭客户端程序,
客户端程序收到此命令后,
关闭与服务器的连接,并且
关闭客户端程序。
5
图
1-1
服务器端
图
1-2
客户端登陆窗口
图
1-3
客户端登陆提示
6
图
1-4
客户端聊天主窗体
三、相关知识:
TcpListener
p>
和
TcpClient
类实现了对
Socket
的封装,简化了网络编程模型。
1
、使用
TCP
服务
TCPClient
类使用
TCP
从
Internet
资源请求数据。
TcpClient
的方法和属性提取某个
Socket
的创建细节,该实例用于通过
TCP
请求和接 收数据。由于到远程设备的连接表示为
流,因此可以使用
.NET Framework
流处理技术读取和写入数据。
要建立
TCP
连接,必须知道承载所需服务的网络设备的地址以及该服务用于通信的
TCP
端口。
IANA
列表中所没有的服务可使用
1,024
到
65,535
这一范围中的端口号。
2
、
< p>TCP协议通信的流程
TCP
协议 是面向连接的协议,
它的实现需要数据发送方和数据接收方建立数据通信连接,
< br>它的具体流程如下:
(
1
)服务器端首先创建服务器套接字
(
2
)服务器套接字监听一个端口,等待客户端的请求< /p>
(
3
)客户端创建一个客户端套接字
(
4
)客户端向服务器端发送连接请求
(
5
)服务器确认与客户端的连接
7
(
)客户端和服务器利用建立的连接进行通信
(<
/p>
7
)通信完毕后,客户端和服务器关闭各自的连接
3
、
Socket
编程基础
< p>
同步服务器套接字挂起应用程序的执行,直到套接字上接收到连接请求。同步服务器套
接字不适用于在操作中大量使用网络的应用程序,但它们可能适用于简单的网络应用程序。
使用
Bind
和
Listen
方法设置
Socket
以在终结点上侦听之后,
Socket
就可以随时使用
Accept
方法接受传入的连接请求了。应用程序被挂起,直到调用
Accept
方法时接收到连接
请求。接收到
连接请求时,
Accept
返回一个与连接客户端关联的新
Socket
实例。
?
利用
Socket
建立服务器程序
(
1
)
要用
Socket
创建一个
TCP
服务器套接字,
用
IP
地址和端口初始化服务器,
代码如
下:
private const int portNum = 13;
IPAddress ipAdd =
(
TcpListener listener = new
TcpListener(ipAdd, portNum);
(
2
)监听服务器端口,代码如下:
();
(
3
)确认与客户端的连接:
Socket socket = Socket();
(<
/p>
4
)处理客户端的请求并回应客户端,下面的代码演示了向客户端发送字符串: p>
String
message=
Byte[]outbytes = es(Array());
(outbytes, , 0);
(
5 p>
)断开客户端的连接,释放客户端连接:
();
(
6
)关闭服务器,释放服务器连接:
();
?
利用
Socket
建立客户端程序
要用
Socket
建立一个
TCP
客户 端程序,一般需要以下几个步骤
(
1
)创建客户端套接字:
TcpClient tcpclient=new TcpClient();
8
(
2
)连接服务器:
< br>t((
“
219.220.126.6
”
) ,1234);
(
3
)得到与服务器通信的流通道:
NetworkStream Strm=eam();
(
4
)向服务器发送数据:
String cmd=
Byte[]outbytes =
es(Array());
(outbytes,0,);
(
5
)接收从服务器发回的数据:
Byte[] buff=new byte[1024];
int len=(buff,0,);
string
msg=ing(buff,0,len);
(
6
)断开连接:
();
3
、
结构
(
1
)
提供访问各种数据源的方法。应用程序可以使用
连接到诸
如
SQL Server
和
XML
这样的数据源以及通过
OLE DB
和
ODBC
公开的数据源,
并 可以
检索、处理和更新其中包含的数据。
< p>
(
2
)
用于访问和操作数据的两个主 要组件是
.NET Framework
数据提供程序
和
DataSet
。
(
3
)
.NET
Framework
数据提供程序是专门为数据操作以及快速、只进、只读访问 数据
而设计的一组组件,包括
Connection
对象 、
Command
对象及
DataReader
、
DataAdapter
等。
(
4
)
DataSet
是专门为独立于任何数据源的数据访问而设计的。因此,数据,或用于管
理应用程序本地
的数据。
它可以用于多种不同的数据源,
用于
XML DataSet
包含一个或多个
DataTable
对象的集合,这些对象由数据行和数据列以及有关
DataTable
对象中数据的主键、
外键、约束和关系信息组成。
4
、建立连接的方法
String
connectionString
=
“Data
Source
=
(local);
Initial
Catalog
=
NorthwindCS;
Persist
Security Info
= True; User ID = sa; Password = 123”
SqlConnection connection = new
SqlConnection(connectionString);
5
、访问数据库
9
中国石油大学华东地图-中国石油大学华东地图
南昌大学2号门-南昌大学2号门
华北电力大学保定教务处-华北电力大学保定教务处
大学体验英语听说2第三版-大学体验英语听说2第三版
考上大学的祝酒词-考上大学的祝酒词
齐鲁工业大学 崔波-齐鲁工业大学 崔波
北京师范大学在山东录取分数线-北京师范大学在山东录取分数线
西南大学2017预科-西南大学2017预科
-
上一篇:Linux内核源码分析之系统初始化
下一篇:黎明大学是我国最早创立的职业大学之一