C#实验三Word文档下载推荐.docx

上传人:b****6 文档编号:20168787 上传时间:2023-01-17 格式:DOCX 页数:12 大小:115.46KB
下载 相关 举报
C#实验三Word文档下载推荐.docx_第1页
第1页 / 共12页
C#实验三Word文档下载推荐.docx_第2页
第2页 / 共12页
C#实验三Word文档下载推荐.docx_第3页
第3页 / 共12页
C#实验三Word文档下载推荐.docx_第4页
第4页 / 共12页
C#实验三Word文档下载推荐.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

C#实验三Word文档下载推荐.docx

《C#实验三Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《C#实验三Word文档下载推荐.docx(12页珍藏版)》请在冰豆网上搜索。

C#实验三Word文档下载推荐.docx

if(String.Compare((((Car)o1).Name),((Car)o2).Name)>

0)

returntrue;

elsereturnfalse;

}

publicstaticboolCompareByPrice(Objecto1,Objecto2)

return((Car)o1).Price>

((Car)o2).Price;

}

publicclassCar

publicdelegateboolCompareDelegate(Objecte1,Objecte2);

privateStringname;

privatedoubleprice;

publicStringName

get{returnname;

set{name=value;

publicdoublePrice

get{returnprice;

set{price=value;

publicCar(Strings1,doublePrice)

name=s1;

price=Price;

publicoverridestringToString()

returnstring.Format(Name+"

{0:

C}"

Price);

publicstaticvoidSort(Object[]sortArray,CompareDelegatecompareMethod)

for(inti=0;

i<

sortArray.Length-1;

i++)

for(intj=0;

j<

sortArray.Length-i-1;

j++)

if(compareMethod(sortArray[j],sortArray[j+1]))

Objecttemp=sortArray[j];

sortArray[j]=sortArray[j+1];

sortArray[j+1]=temp;

 

publicstaticvoidinsertSort(Object[]sortArray,CompareDelegatecompareMethod)

intj;

for(inti=1;

sortArray.Length;

Objecttemp=sortArray[i];

for(j=i-1;

(j>

=0)&

&

(compareMethod(sortArray[j],temp));

j--)

sortArray[j+1]=sortArray[j];

sortArray[j+1]=temp;

publicstaticvoidSelectSort(Object[]sortArray,CompareDelegatecompareMethod)

intm;

m=i;

for(intj=i+1;

j<

sortArray.Length;

if(compareMethod(sortArray[m],sortArray[i]))

m=j;

sortArray[i]=sortArray[m];

sortArray[m]=temp;

classTest

publicstaticvoidMain()

Car[]car=newCar[]

{newCar("

奔驰"

600000),

newCar("

大众"

400000),

奥迪"

300000),

宝马"

780000),

保时捷"

900000)};

Car.Sort(car,BubbleSorter.CompareByName);

Console.WriteLine("

冒泡法根据名称排序结果为:

"

);

car.Length;

Console.WriteLine(car[i]);

Car.insertSort(car,BubbleSorter.CompareByPrice);

直接插入法根据价格排序结果为:

Car.SelectSort(car,BubbleSorter.CompareByPrice);

选择排序法根据价格排序结果为:

Console.ReadKey();

2、利用委托,实现一个客户端、服务器简单聊天程序。

参考实验步骤:

(1)创建存储消息的类,类名为MsgPackage。

(2)创建基于委托的聊天服务器类,类名为DchatServer。

1)声明一个委托,当聊天消息到达时,委托将调用在客户端的回调函数。

2)定义一个字段,存储已连接客户端的委托

3)定义连接客户端和服务器的方法

4)定义断开客户端与服务器的方法

5)定义一个发送指定消息给所有已连接的客户端的方法

A将方法命名为SendMsg

B声明为publicstatic无返回类型

C两个参数:

一个MsgPackage类型的消息,一个object类型的参数表示被排

除的客户端。

D具体实现:

如果被排除客户参数是null,那么将调用多播委托给所有的客户端发送消息;

如果被排除的客户端参数不是null,那么给被排除客户端之外的其他客户端发送信息。

(3)创建基于委托的客户端类,类名为DchatClient。

1)添加一个String类型的属性ClientName,代表客户端名字。

2)添加一个构造方法,参数为客户端名。

具体实现:

客户端名存储在ClientName属性;

通过调用服务器的ClientConnect方法将客户端链接到服务器上。

3)定义Show方法。

当服务器接收到聊天信息时,将通过委托调用该方法。

(4)创建基于委托的聊天应用代码。

1)在Program类(默认),创建一个名为DelegateChatServerDemo的静态方法。

2)向控制台输出一行文本,显示程序开始。

.

3)实例化3个DChatClient对象,将客户端名“张三”、“李四”、“王五”传递给构

造函数。

4)调用DChatServer的静态方法SendMsg向服务器发送消息。

该消息由“张三”发

送给所有的客户端。

5)调用DChatServer的静态方法SendMsg向服务器发送消息。

该消息由“李四”发

6)调用DChatServer的静态方法SendMsg向服务器发送消息。

该消息由“王五”发

7)“张三”发送消息给除客户端“王五”以外的所有客户端。

8)“王五”与服务器断开连接。

9)“张三”发送消息给所有的客户端。

10)向控制台上发送一行文本,显示程序结束。

11)在Main函数中调用DelegateChatServerDemo。

publicclassMsgPackage

privateStringname,message;

get

{returnname;

set

{name=value;

publicStringMessage

{returnmessage;

{message=value;

publicMsgPackage(Stringname,Stringmessage)

this.name=name;

this.message=message;

classDchatServer

publicdelegatevoidOnMsgArrived(MsgPackagemsg);

privatestaticOnMsgArrivedmOnMsgArrived;

publicstaticvoidClientConnect(OnMsgArrivedonMsgArrived)

mOnMsgArrived+=onMsgArrived;

publicstaticvoidClientDisConnect(OnMsgArrivedonMsgArrived)

mOnMsgArrived-=onMsgArrived;

publicstaticvoidSendMsg(objectclient,MsgPackagemsg)

if(client==null)

mOnMsgArrived(msg);

else

DChatClientdc=(DChatClient)client;

Delegate[]delelist=mOnMsgArrived.GetInvocationList();

foreach(Delegatedindelelist)

boolb=d.Target.Equals(client);

if(!

b)

d.DynamicInvoke(msg);

Console.WriteLine();

classDChatClient

privateStringclientName;

publicStringClientName

{returnclientName;

{clientName=value;

publicDChatClient(stringclientName)

this.clientName=clientName;

DchatServer.ClientConnect(Show);

publicvoidShow(MsgPackagemsg)

{0}收到一条消息:

\t{1}说:

{2}"

clientName,msg.Name,msg.Message);

classProgram

publicstaticvoidDelegateChatServerDemo()

开始\n"

DChatClientclient1=newDChatClient("

张三"

DChatClientclient2=newDChatClient("

李四"

DChatClientclient3=newDChatClient("

王五"

DchatServer.SendMsg(null,newMsgPackage(client1.ClientName,"

李四,你好!

));

DchatServer.SendMsg(null,newMsgPackage(client2.ClientName,"

张三,你好!

DchatServer.SendMsg(null,newMsgPackage(client3.ClientName,"

大家好!

DchatServer.SendMsg(client3,newMsgPackage(client1.ClientName,"

王五看不见这条消息!

DchatServer.SendMsg(null,newMsgPackage(client1.ClientName,"

DchatServer.ClientDisConnect(client3.Show);

王五离开了!

结束了!

DelegateChatServerDemo();

三、实验学时:

2学时

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 其它课程

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1