《电大VisualBasic程序设计作业答案.pdf》由会员分享,可在线阅读,更多相关《电大VisualBasic程序设计作业答案.pdf(15页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、真诚为您提供优质参考资料,若有不当之处,请指正。1/15 Visual Basic 程序设计作业 1 一、选择题 1D 2B 3C 4C 5B 6D 7A 8B 9A 10C 11C 12C 13B 14D 15A 二、填空题 1视图 工具箱 2对象 事件 3.vbp .frm 4窗体 控件 菜单 5完成某种特定的功能 对象名.方法名 Form1.Show 6Multiline True 74000 8AutoSize True 9窗体布局窗口 10txtshow.text=GOOD WORK!11Click()、frm1.show 12单击 双击 装载 多 响应某个事件后所执行的程序代玛 c
2、md1 Click 13完成某种特定的功能 对象名.方法名 Form1.Show 14工具 选项 选项 自动语法检测 15Timer Interval ms 三、问答题 1参考答案 答:可视化编程是目前最直观的一种编程方法,人们一般用 Visual 一词表示它。之所以叫做“可视”,是指你无需编程,仅通过直观的操作方式即可完成界面的设计工作。因此,可视化语言是目前最好的 Windows 应用程序开发工具。在这种语言中引入了控件的概念,每个控件都有若干方法和事件,并通过一系列的属性来控制控件的外观。利用这些控件,编程过程就如同画画,随意点几下鼠标,一个按钮就完成了,这些工作在使用传统编程语言的情况
3、下,需要编写大量复杂的程序代码才能实现。可视化编程主要用到了事件驱动机制,其原理是:当应用程序运行后,程序处于等待状态,当某个事件发生后,程序就去执行此事件的事件过程,当这个事件过程执行完后,应用程序又处于等待另一个事件发生的状态。2参考答案 答:对象是代码和数据的封装体,在 VB 中,“数据”表现为属性,“代码”则表现为事件和方法。建立一个对象后,其操作通过与该对象的有关属性、事件和方法来描述。属性是一个对象的基本特性,每个对象都有它自己的属性。通过修改对象的属性,可以改变对象的外观和功能。方法就是要对象执行的动作,一般可以将它理解为 VB 提供的一种特殊的过程和函数。其特殊性在于,这些过程
4、和函数是封装在对象内部的,是在对象上实施的某种操作功能。真诚为您提供优质参考资料,若有不当之处,请指正。2/15 事件就是在对象上所发生的事情。对象的事件是由 VB 预先设置好的、能被对象识别的动作。用户不能建立新的事件,但可以根据需要对事件进行编程。从非严格意义上讲,可以将事件理解为一种特殊的方法。3参考答案 答:传统的面向过程的应用程序中,应用程序自身控制了执行哪一部分代码和按何种顺序执行代码,程序从第一行代码开始执行并按应用程序中预定的路径执行,用户无法改变程序的执行流程。在事件驱动的应用程序中,程序的执行发生了根本的变化,代码不是按照预定的路径执行,而是在响应不同的事件时执行不同的代码
5、片段。每个对象都有一个相应的事件集,每个事件发生都要执行一段程序代码。事件可以由用户操作触发,也可以由操作系统或其它应用程序的消息触发,甚至可由应用程序本身的消息触发。这些事件的顺序决定了代码执行的顺序,因此,应用程序每次运行所经过的代码路径是不确定的,它的执行流程由用户来决定。在程序设计时,不需要指出先执行哪部分代码,或按什么顺序执行代码,只需编写针对某个事件的程序代码即可。4参考答案 答:事件驱动是 VB 应用程序的基本机制,其基本过程是:(1)启动应用程序,装载和显示窗体。(2)窗体或窗体上的控件等待事件的发生。事件可由用户引发(例如键盘操作或鼠标点击)、可由系统引发(例如定时器控件)、
6、也可由代码间接引发(例如当代码装载其他窗体时产生的 Load 事件)。(3)当某个事件发生后,执行其对应的事件过程代码。(4)重复执行第 2 和第 3 步。直到遇到 End 语句或单击“结束”按钮停止程序的运行。四、程序设计题 1 Private Sub Form_Load()Text1.Text=VB 程序设计 Text1.FontSize=16 End Sub Private Sub Command1_Click()Text1.Visible=False End Sub Private Sub Command2_Click()Text1.Visible=True End Sub 2 Pri
7、vate Sub Command1_Click()Text1.Text=Text2.Text =Text3.Text=End Sub 真诚为您提供优质参考资料,若有不当之处,请指正。3/15 Private Sub Command2_Click()If Text1 Text=Or Text2.Text=Or Text3.Text=Then MsgBox 成绩输入不全!Else Text4.Text=(Val(Text1.Text)+Val(Text2.Text)+Val(Text3.Text)/3 End If Sub End Private Sub Command3_Click()Unloa
8、d Me End Sub 3 Private Sub Command1_Click()If Text1.Text=Then MsgBox 至少要输出单价!Text1.SetFocus Exit Sub End If If Text2.Text=Then Text2.Text=1 If Text3.Text=Then Text3.Text=1 Text4.Text=Text1.Text*Text2.Text*Text3.Text End Sub 电大天堂【Visual Basic 程序设计】作业 2 一、选择题 1 B 2 C 3 D 4 B 5 D 6 A 7 B 8 C 9 A 10 D 1
9、1 C 12B 13D 14C 15A 16B 17C 18B 19D 20B 二、填空题 1下拉式菜单 弹出式菜单 2打开 另存为 颜色 字体 打印 3文本框 列表框 4Option Base 1 5Call 语句 6工程 工程属性 通用 Form1.Show 70 8Sub 过程的过程名不能返回值,而 Function 过程能通过过程名返回值 9窗体模块 标准模块 类模块 真诚为您提供优质参考资料,若有不当之处,请指正。4/15 10移出内存 无效状态 11(1)2*Cos*Sin/(2*)(2)Sqr(s*(s-a)*(s-b)*(s-c)(3)Sin(45*3.14/180)12(1)
10、x=1 And x=C Or a-c0 And b0 Or(a0 And b0)13False 14For While Do 153 三、阅读下列程序,给出程序运行结果。1程序运行后,单击窗体,输出结果为:5050。2 3 4 3.4 3 5 *四、程序设计题 1 Private Sub Command1_Click()Dim x As Single,y As Single x=Val(Text1.Text)If x 100 Then y=x Else If x 200 Then y=9.5*x Else 真诚为您提供优质参考资料,若有不当之处,请指正。5/15 If x 300 Then y
11、=0.9*x Else If x 200 If x Mod 3 0 Then Text1.Text=Text1.Text&Str(x)&Chr(13)&Chr(10)End If x=x+1 Loop End Sub 3 Private Sub Form_Click()Print*;Tab(9);3,Tab(18);6;Tab(27);9;Tab(36);12 Print For I=15 to 18 Print I;For j=3 to 12 Step 3 Print Tab(3*j);j*I;Next j Print Next I End sub 4 Private Sub Command
12、1_Click()Unload Me 真诚为您提供优质参考资料,若有不当之处,请指正。6/15 End Sub Private Sub Option1_Click()Text1.Text=10*2 End Sub Private Sub Option2_Click()Text1.Text=10/2 End Sub Private Sub Option3_Click()Text1.Text=10+2 End Sub Private Sub Option4_Click()Text1.Text=10-2 End Sub 5 Private Function Day(n As Integer)Sele
13、ct Case n Case 0 Day=星期日&Chr(13)&(Sunday)Case 1 Day=星期一&Chr(13)&(Monday)Case 2 Day=星期二&Chr(13)&(Tuesday)Case 3 Day=星期三&Chr(13)&(Wednesday)Case 4 Day=星期四&Chr(13)&(Thursday)Case 5 Day=星期五&Chr(13)&(Friday)Case 6 Day=星期六&Chr(13)&(Saturday)End Select End Function Private Sub Text1_KeyPress(KeyAscii As In
14、teger)Dim n As Integer n=Val(Text1.Text)If KeyAscii=13 Then If n=0 And n 7 Then Label1.Caption=Day(n)真诚为您提供优质参考资料,若有不当之处,请指正。7/15 Else MsgBox 请输入 06 之间的整数!End If End If Text1.SelStart=0 Text1.SelLength=Len(Text1.Text)End Sub 6 新建一个工程,在默认的窗体 Form1 上放置一个 Picture 控件,然后编写如下代码。Private Sub Picture1_MouseD
15、own(Button As Integer,Shift As Integer,X As Single,Y As Single)If Button=2 Then MsgBox You pressed right Button Picture1.MousePointer=vbArrow End If End Sub Private Sub Picture1_MouseMove(Button As Integer,Shift As Integer,X As Single,Y As Single)Picture1.MousePointer=vbUpArrow End Sub 7 Private Sub
16、 Form_Load()List1.AddItem 李敏 List1.AddItem 张华 List1.AddItem 吕晓烨 List1.AddItem 赵巍 List1.AddItem 袁莉 List1.AddItem 王津 List1.AddItem 何小渴 List1.AddItem 崔宁 List1.AddItem 陈曦 List1.AddItem 刘伟楠 End Sub Private Sub Command1_Click()If Text1.Text Then List1.AddItem Text1.Text Text1.Text=Else MsgBox 请在文本框中输入信息!E
17、nd If End Sub Private Sub Command2_Click()List1.RemoveItem List1.ListIndex 真诚为您提供优质参考资料,若有不当之处,请指正。8/15 End Sub Private Sub Command3_Click()If Command3.Caption=修改 Then Text1.Text=List1.Text Text1.SetFocus Command1.Enabled=False Command2.Enabled=False Command3.Caption=修改确认 Else List1.List(List1.ListI
18、ndex)=Text1.Text Command1.Enabled=True Command2.Enabled=True Text1.Text=Command3.Caption=修改 End If End Sub Private Sub List1_Click()If List1.ListIndex -1 Then Command2.Enabled=True Command3.Enabled=True End If End Sub 电大天堂【Visual Basic 程序设计】作业 3 一、选择题 1B 2B 3B 4A 5C 6C 7D 8C 9C 10C 11B 12 B 13 A 14
19、B 15 C 16 C 17 B 18 A 19 C 20 B 21 A 二、填空题 1Output 2FileCopy”c:commandaaa”,”d:commandaaa”3Kill”d:tem.tmp”4Open”SEQNEW.DAT”For Output As#1 5Open”SEQOLD.DAT”For Input As#2 6右 上 7False 8Picture1.Line(500,500)-(1000,1000),RGB(255,0,0),BF 9520 10ActiveConnection 11外部数据库、远程数据库 12ADOrs(学号)13增加、删除、修改(或者 Sel
20、ect、Delete、Update)14Select*from Table1 Where 学号=001 真诚为您提供优质参考资料,若有不当之处,请指正。9/15 15本地数据库、远程数据库 三、程序设计题 1 Private Sub Form_Load()Drive1.Drive=c:File1.Pattern=*.bmp;*.gif;*.jpg End Sub Private Sub Drive1_change()Dir1.Path=Drive1.Drive End Sub Private Sub Dir1_Change()File1.Path=Dir1.Path End Sub Priva
21、te Sub File1_click()If Right(File1.Path,1)=Then f$=Form1.File1.Path+Form1.File1.FileName Else f$=Form1.File1.Path+Form1.File1.FileName End If Picture1.Picture=LoadPicture(f$)Picture1.AutoSize=True End Sub 2 Private Sub Form_Click()Dim i As Single,twopie As Single twopie=8*Atn(1)求 pi DrawWidth=2 设置点的
22、大小 Scale(-twopie,1)-(twopie,-1)设置坐标系 For i=-twopie To twopie Step twopie/360 画 x 轴 PSet(i,0)Next i 标 x 轴 CurrentY=0 CurrentX=-twopie Print-2pi;CurrentX=-twopie/2 Print-pi;CurrentX=twopie/2 Print pi;CurrentX=twopie-0.6 Print 2pi;Print p For i=-1 To 1 Step 0.01 画 y 轴 真诚为您提供优质参考资料,若有不当之处,请指正。10/15 PSet
23、(0,i)Next i CurrentX=0 标 y 轴刻度 For i=-1 To 1 Step 0.5 CurrentY=i Print i Next i For i=-twopie To twopie Step 0.1 画余弦曲线 PSet(i,Cos(i)Next i End Sub 3 Private Sub Check1_Click()If Check1.Value=1 Then Line1.BorderWidth=4 Else Line1.BorderWidth=1 End If End Sub Private Sub Option1_Click(Index As Integer
24、)Line1.BorderWidth=1 Check1.Value=0 Select Case Index Case 1 Line1.BorderStyle=1 Case 2 Line1.BorderStyle=2 Case 3 Line1.BorderStyle=3 End Select End Sub 4 Private Sub Option1_Click(Index As Integer)Select Case Index Case 0 Shape1.Shape=0 Case 1 Shape1.Shape=1 Case 2 真诚为您提供优质参考资料,若有不当之处,请指正。11/15 Sh
25、ape1.Shape=3 Case 3 Shape1.Shape=4 End Select End Sub Private Sub Option2_Click(Index As Integer)Select Case Index Case 0 Shape1.FillStyle=1 Case 1 Shape1.FillStyle=3 Case 2 Shape1.FillStyle=2 Case 3 Shape1.FillStyle=6 End Select End Sub Private Sub Option3_Click(Index As Integer)Shape1.BorderWidth=
26、1 Select Case Index Case 0 Shape1.BorderStyle=0 Case 1 Shape1.BorderStyle=1 Case 2 Shape1.BorderStyle=4 Case 3 Shape1.BorderStyle=2 Case 4 Shape1.BorderStyle=3 End Select End Sub 5(以 SQL Server 数据库为例)声明对象变量 ADOcn,用于创建与数据库的连接 Private ADOcn As Connection Private Sub ReadFromTable()Dim strtmp As String
27、 Dim ADOrs As New Recordset ADOrs.ActiveConnection=ADOcn ADOrs.Open select*from students order by 学号 真诚为您提供优质参考资料,若有不当之处,请指正。12/15 MSFlexGrid1.Clear MSFlexGrid1.Rows=0 MSFlexGrid1.Cols=3 strtmp=学号+vbTab+姓名+vbTab+专业 MSFlexGrid1.AddItem strtmp Do While Not ADOrs.EOF strtmp=ADOrs(学号)+vbTab+ADOrs(姓名)+vb
28、Tab+ADOrs(专业)MSFlexGrid1.AddItem strtmp ADOrs.MoveNext Loop MSFlexGrid1.FixedCols=0 MSFlexGrid1.FixedRows=1 End Sub Private Sub Command1_Click()Unload Me End Sub Private Sub Form_Load()定义数据库连接字符串 Dim strDB As String 用于连接 SQL Server 数据库,其中:Server 为服务器名称 User ID 为登录账号 Password 为登录口令 Database 为具体的数据库名
29、strDB=Provider=SQLOLEDB;LSF;User ID=sa;Password=;Database=学生 如果还没有建立与数据库的连接,则用以下代码创建。If ADOcn Is Nothing Then Set ADOcn=New Connection ADOcn.Open strDB 连接 SQL Server 数据库 End If ReadFromTable 调用过程显示 students 表中的记录 End Sub 行结果及代码请参考主教材和实验教材相关内容。真诚为您提供优质参考资料,若有不当之处,请指正。13/15 电大天堂【Visual Basic 程序设计】作业 4
30、 一、选择题 1A 2B 3A 4D 5B 6C 7A 8B 二、填空题 1ADataArrival 事件、SendData 方法 2TCP/IP(或者回答 TCP 协议)3EXE 4用户自定义接口、标准接口 5LocalIp 方法 6GetData 方法 7使用服务程序处于侦听状态;8Winsock 9实时错误、逻辑错误 10On Error Goto 0 三、问答题 1参考答案 答:Socket 是 TCP/IP 网络中最为通用的 API(应用程序接口),也是在 Internet 上进行应用程序开发最为通用的 API。它为网络中的每台计算机中提供了一个通信端口,通过这个端口,任何两台具有
31、Socket 接口应用程序就可进行信息收发通信了。程序员只需要对 Socket接口进行数据的读写操作,根本不必关心两台计算机间的通信细节就能够完成数据的发送和接收工作。基于 Socket 的通信过程如图 1 所示。应用程序A应用程序BSocketSocket发送接收接收发送通信细节 图 1 2参考答案 答:VB 中一般可按下列步骤设计错误处理程序:第 1 步:捕获错误,并强制程序跳转 即在错误发生时,捕获并告知应用转向哪段代码进行错误处理。VB 中通常可采用 On Error GoTo 语句启用错误捕获机制。第 2 步:编写错误处理程序,对所有可预见的错误做出反应 编写错误处理程序的第一步是添
32、加一个行标识符,比如“CheckError:”,以标志错误处理程序的开始。行标识符的名称最好具有良好的可读性,并且后面必须跟一个冒号。常规错误处理程序通常放在过程的结束处,紧跟 Exit Sub 或 Exit Function 的行标识符之后。这真诚为您提供优质参考资料,若有不当之处,请指正。14/15 样在没有错误发生时,过程就不会执行错误处理程序了。第 3 步:退出错误处理程序 通常情况下,只有当错误处理程序位于过程中间位置时,才需要用到专门的错误处理程序退出语句。一般可使用 Resume 或 Resume Next 语句退出错误处理程序。Resume 语句会继续执行引发错误的那句代码,而
33、 Resume Next 语句则会跳过该语句,执行引发错误代码的下一句代码。如果通过错误处理程序能够修正错误,则可以使用 Resume 语句,否则就使用 Resume Next 语句,或者直接使用 Exit Sub 或 Exit Function 语句直接退出过程。3参考答案 答:调试程序是一件复杂的工程,不但要求程序员对系统设计结果非常熟悉,思路清晰,更需要不断地在实践中积累经验。以下技巧可供参考:首先,应事先做好备份:尽管 VB 提供了众多的调试工具,但要利用这些工具查找、定位程序中的错误并非易事,对于一些规模较大的程序,即使是有经验的程序员也常常要损失好几小时甚至几天的时间来查找错误。在
34、调试过程中,很容易意外地修改、覆盖或删除掉必要的代码部分。因此事先做好备份非常重要。其次,尽可能地分离受怀疑的程序:对于那些代码规模较大,窗口众多的程序而言,如果能将错误的范围定位于某个窗体或某段代码,则可以使用分离程序的调试方法。基本思路是:试着找到出错的代码行(块)或窗体,选择并复制这些代码到一个新的工程中,然后运行新工程,看一看是否还会出现同样的错误。这样就可以尽可能地排除程序其他部分的干扰,提高调试的效率。第三,缩小搜索范围:如果有可能的话,可删除工程中任何第三方控件和自定义控件,或者任何看来与问题无关的代码,逐步缩小搜索范围。或者采用相反的策略,先调试某一段代码或窗体,再象搭积木似的
35、逐步扩大调试的范围。这种方法与“分离受怀疑的程序”方法相结合,对复杂大系统的调试非常有效。最后,使用 MsgBox 语句:如果怀疑程序的错误是由于执行路径或者变量的值不正确等原因造成的,除了采用设置断点的方式进行调试外,还可以借助于 MsgBox 语句。即在程序运行路径的关键点上插入一系列的 MsgBox 语句,用来展示程序运行的路径和重要变量的值。4参考答案 答:利用 Winsock 控件开发网络通信系统时,通常要涉及服务器和客户机两类应用程序。一般过程是:(1)服务器程序的开发模式 服务器程序必须设置好 LocalPort 属性,作为侦听端口。该值可设置成任意一个整数,只要其他应用程序没有
36、使用过的值均可,但习惯上应大于 1000。使用 Listen 方法使服务器进入侦听状态,等待客户机程序的连接请求。客户机程序发出连接请求后,将触发服务器程序的 ConnectionRequest 事件,该事件得到一个参数 requestID。服务器程序使用 Accept 方法接受客户机程序的 requestID 请求。至此,服务器程序就可以使用 SendData 方法向客户机发送数据了。此时应特别注意两点:一是 Accept方法必须用到上一步得到的 requestID 作为其参数;二是在执行 Accept 方法前,服务器仍处于侦听状态,此时应首先使用 Close 方法关闭服务器,然后再调用 A
37、ccept方法。当服务器程序接收到数据时,会产生 DataArrival事件。在该事件中可以使用GetData真诚为您提供优质参考资料,若有不当之处,请指正。15/15 方法接收数据。(2)客户机程序的开发模式 客户程序首先应设置好 RemoteHost 属性,用来指向运行服务器程序的主机名或IPXXX。设置 RemotePort 属性,用来指向服务器程序的侦听端口号。使用 Connect 方法向服务器提出连接请求。如果服务器接受了上述连接请求,客户机程序会产生 Connect 事件。可以根据需要,在此事件中编写程序,比如使用 MsgBox 函数向用户提示“连接已成功”之类的信息。连接成功后,就可以根据需要使用 SendData 方法向服务器发送数据了。当客户机程序接收到数据时,会产生 DataArrival 事件,可以用 GetData 方法接收数据。四、程序题 1共有两处错误,改正如下:错误 1:排序 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(c)=T End If Next Next 错误 2:在窗体上输出结果 Cls For c=1 To 20 Print A(c)Next c 2程序运行结果及代码请参考主教材和实验教材相关内容。
限制150内