VisualBasic程序设计形成性考核册作业答案四
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Visual Basic程序设计形成性考核册作业答案四
一、选择题
1、WinsockServer.LocalPort=10001语句的含义是( A )。
A、设置侦听端口
B、设置计算机IP地址
C、设置中断地址
D、设置通讯协议
2、当Winsock控件处于关闭状态时,其State属性的值是( B )。
A、1
B、0
C、2
D、6
3、相对于UDP协议而言,TCP协议是一种( A )。
A、面向连接的协议
B、无连接协议
C、计算机间不建立连接
D、适用于传送少量数据
4、VB程序中通常不会产生错误提示的( D )。
A、编译错误
B、实时错误
C、运行时错误
D、逻辑错误
5、VB程序的编译错误一般可通过VB集成环境的何种设置,自动检测( B )。
A、要求变量声明
B、自动语法检测
C、自动显示快速信息量
D、根本无法自动检测
6、VB程序中设置断点的按键是( C )。
A、F5键
B、F6键
C、F9键
D、F10键
7、On Error Go To ErrLB语句中,ErrLB的含义是( A )。
A、行标识号
B、SUB过程名
C、FUNCTION过程名
D、错误号
8、Err对象中,用来表示错误描述的属性是( B )。
A、ErrNo
B、Description
C、Number
D、Source
二、填空题。
1、使用Winsock控件时,一旦有数据到达,将首先触发该控件的DataArrival事件。
而如果要发送数据,则通常使用该控件的senddata方法。
2、Winsock控件主要用来编制或基于TCP/IP经UDP协议的通话程序。
3、ActiveXEX文件的后缀是exe。
4、COM对象有两种类型接口,即标准接口和用户接口。
5、如果希望得到本地计算机的IP地址,可以使用Winsock控件的localIP属性。
6、Winsock控件的BytesReceived属性返回接受到的数据,通常使用getdata方法来获取这些数据了。
7、Winsock1.Listen语句的含义是使服务程序处于侦听状态等待客户访问。
8、常用中的VB网络编程控件主要有Winsock 、Internet Transfer、WebBrowser 三种。
9、VB中的程序错误类型主要有编译错误、逻辑错误、实时错误等三种。
10、VB中用于关闭错误捕获机制的语句是on error goto 0。
三、问答题。
1、简述基于Sock e t的通信过程。
Socket在计算机提供了一个通信端口,可以通过这个端口与
任何一个也同时具有Socket接口的计算机进行通信,应用程序在网络上传输、接收的信息都通过这个Socket接口实现,只需要对Socket 接口进行数据的读写操作就可以了。
2、简要设计错误处理程序的3个步骤。
(1)捕捉错误,并强制程序跳转
(2)编写错误处理程序,对所有可预见的错误作出反应
(3)退出错误处理程序
3、简述常用的程序调式技巧
(1)事先做好备份
(2)分离受怀疑的程序
(3)缩小搜索范围
(4)使用MSGBOX语句
4、简述基于Winsock控件的开发模式。
(1)服务器程序的开发模式
(A)服务器程序必须设置好LOCALPORT,作为侦听端口,该值可设置成任意一个整数,只要其他应用和谐没有使用过的值均可,但习惯上应大于1000
(B)使用LISTRN方法使用服务器进入侦听状态,等待客户机程序的连接请求。
(C)客户机程序发出连接请求后,将触发服务器程序的CONNECTIONREQUEST事件,该事件得到一个参数REQUESTID。
(D)服务器程序使用ACCEPT方法接受客户机程序的REQUESTID请求,至此,服务器程序就可以使用SRNDDATA方法向客户机发送数据了。
此时应特别注意两点:一是ACCEPT方法必须用到上一步的REQUESTID 作为其参数;二是在执行ACCEPT方法前,服务器仍处于侦听状态,此时应首先使用CLOSE方法关闭服务器,然后再调用ACCEPT方法。
(E)当服务器程序接收到数据时,会产生DATAARRIVAL事件。
在该事件中可以使用GETDATA方法接收数据。
(2)客户机程序的开发模式
(A)客户程序首先应设置好REMOTEHOST属性,用来指向运行器程序的主机名或IP地址
(B)设置REMOTEPORT属性,用来指向服务器程序和侦听端口号。
(C)使用CONNECT方法向服务器提出连接请求。
(D)如果服务器接受上述连接请求,客户机程序会产生CONNECT事件。
可以根据需要,在此事件中编写程序,比如使用MSGBOX函数向用户提示“连接已成功”之类的信息。
(E)连接成功之后,就可以根据需要使用SENDDATA方法向服务器发送数据了。
(F)当客户机程序接收到数据时,会产生DATAARRIVAL事件,可以
用GETDATA方法接收数据。
四、程序设计题。
1、利用冒泡排序算法开发以下程序,请指出程序中存在的错误并改正。
Private Sub Command1_Click()
Dim A( 1 To 20 )As Integer
Dim c , j , T As Integer '此处有错,应为Dim c ,j ,T as integer
‘随机生成一组数据
For c= 1 To 20
A(c) = Int ( Rnd *100 )
Next c
‘排序
For c = 1 To 20
For j = c+ 1 To 20
IF A(c)>A( j )Then
T=A ( j )
A( j )=A (c)
A( j )=T '此处有错,应为A(C)=T,实现
End If 'A(C)和A(J)的交换
Next
Next
‘在窗体上输出结果
Cls
For c = 1 To 20
Print A ( i ) '此处有错,应为A(C).下标越界.
Next c
End Sub
2、利用Winsock控件开发一个点对点聊天系统,该系统由一个服务器应用程序和一个客户端应用程序组成,能够实现网络中两台计算机间的通话任务。
解:如下界面的设计中,若不说明,各对象均采用默认的名称。
服务器程序的界面设计
1、创建一个“标准EXE”工程。
选中“工程”菜单的“部件”选项,在控件中找到Microsoft Winsock Control 并将其选中。
如果没有找到,通常是由于VB安装不安全的缘故,可以找到安装盘并安装其中的Mswinsck.cad 压缩包。
2、将form1的名称改为 frmSvr ,并在其中添加一个命令按钮控件,将其Caption属性修改为“退出”。
3、在窗体上添加三个添加TextBox控件,分别将其名称修改为
txtServerIP , txtSend 和txtReceive,用来显示服务器的IP地址和需收发的信息。
4、在窗体上添加一个Winsock控件,将其名称改为WinsockServer,将Protocol(协议)属性设置为0(即sckTCPProtocol)
各控件及事件代码如下:
Private Sub Command1_Click()
Unload Me
End Sub
Private Sub Form_Load()
txtreceive.Text = ""
txtsend.Text = ""
Winsockserver.LocalPort = 10001
txtserverip.Text = Winsockserver.LocalIP
Winsockserver.Listen
End Sub
Private Sub txtsend_Change()
Winsockserver.SendData txtsend.Text
End Sub
Private Sub Winsockserver_ConnectionRequest(ByVal requestID As Long)
Winsockserver.Close
Winsockserver.Accept requestID
End Sub
Private Sub Winsockserver_DataArrival(ByVal bytesTotal As Long)
Dim mystr As String
Winsockserver.GetData mystr
txtreceive.Text = mystr
End Sub
客户机程序的界面设计
1、与服务器程序类似,创建一个新的“标准EXE”工程,并添加Winsock 控件。
2、将form1的名称改为 frmClt,并添加两个命令按钮控件,分别将它们的Caption属性设置为“退出”和“连接聊天服务器”。
3、在窗体添加四个文本框控件,分别将其名修改为txtClientIP, txtSenerIP, txtsend和txtReceive,用来显示客户机和要连接的服务器的IP地址以及需收发的信息。
4、在窗体上添加一个Winsock控件,将其名称改为WinsockClient,将(协议)属性设置为0(即sckTCPProtocol)
各控件及事件代码如下:
Private Sub Command1_Click()
Unload Me
End Sub
Private Sub Command2_Click()
Winsockclient.RemoteHost = txtserverIP.Text Winsockclient.Connect
End Sub
Private Sub Form_Load()
txtreceive.Text = ""
txtsend.Text = ""
Winsockclient.RemotePort = 10001
txtclientIP.Text = Winsockclient.LocalIP
End Sub
Private Sub txtsend_Change()
Winsockclient.SendData txtsend.Text
End Sub
Private Sub Winsockclient_Connect()
MsgBox "你成功地与聊天室服务器进行了联接", vbInformation End Sub
Private Sub Winsockclient_DataArrival(ByVal bytesTotal As Long)
Dim mystr As String
Winsockclient.GetData mystr
txtreceive.Text = mystr
End Sub
评论这张
转发至微博。