《Visual Basic程序设计》形成性考核册作业及答案
《Visual Basic程序设计》形成性考核册作业及答案
作业1
一、选择题
1、在设计应用程序时,可以查看到应用程序工程所有组成部分的窗口是(D)。
  A、窗体设计    B、代码      C、属性    D、工程资源管理器窗口
2、窗体的load事件的触发时机是(B)。
 A、用户单击窗体时  B、窗体被加载时  C、窗体显示之后  D、窗体卸载时
3、与传统的程序设计语言相比,Visual Basic 最突出的特点是(C)。
  A、结构化程序设计  B、程序开发环境  C、事件驱动编程机制  D、程序调试技术
4、VB6.0集成开发环境的主窗口中不包括(C)。
  A、标题栏    B、菜单栏    C、状态栏    D、工具栏
5、如果对象的名称为Mytext ,而且对象有一个属性Text,那么在代码中引用该属性的正确格式是(B)。
  A、 text.Mytext    B、Mytext.Text    C、Mytext.(Text)  D、Mytext*Text
6、下列可以激活属性窗口的操作是(D)。
  A、用鼠标双击窗体的任何部位    B、执行“工程“菜单中的”属性窗口“命令
  C、按Ctrl+F4        D、按F4
7、假定已在窗体上画了多个控件,并有一个控件是活动的,为了在属性窗口中设置窗体的属性,预先应执行的操作是(A)。
  A、单击窗体上没有控件的地方      B、单击任一个控件    C、不执行任何操作  D、双击窗体的标题栏
8、如果要在文本框键入字符时,只显示某个字符,如果(*),应设置文本框的(B)属性。
  A 、Caption    B、PasswordChar  C、Text    D、Char
9、如果想要在文本框中的内容在运行时不能编辑,需要文本框的(A)属性设置为True.
A Locked          B、MultiLine      C、TabStop  DVisible
10 对于定时器(Tiner)控制,设置其定时是否开启的属性是(C)
A、Index          B、Tag            C、Enabled  D、Left
11、要在窗口体Fornl 内显示“myfrm”使用的语句是( C)
A、Form.caption=“myfrm”B、Fornl.caption=“myfrm”
C、forml.print“myfrm”D、form.print“myfrm”
12、对象的性质和状态特征称为(C)
A、事件        B、方法          C、属性      D、类
13、下列正确的赋值语句是(B)
A、x+y=20      B、y=x+20          C、3x=y    D、s=
14、当使用上下文相关的帮助时,选择要帮助的内容,然后按(D)键,就可出现MSDN窗口直接显示所需的帮助信息。
  A、Help  B、F10    C、Ese      D、F1
15、将调试通过的工程经“文件”菜单的“生成.exe文件“编绎成名.exe后,将该可执行文件放到其它机器上不能运行的主要原因是(D)。
A、运行的机器上无VB系统      B、缺少.frm 窗体文件    C、该执行文件有病毒    D、以上原因都不对
二、填空题
1、当进入VB集成开发环境后,发现没有显示“工具箱”窗口。应选择 视图 菜单的              工具箱 选项,使“工具箱”窗口显示。
2、在VB中,事件过程名由 对象名 和  事件名  构成。
3、工程文件的扩展名是  vbp ,窗体文件扩展名是  frm  。
4、对象时代码和数据的集合,例如,Visual Basic 中的  窗体 、  按钮 、
  文本框  等都是对象。
5、对象的方法用于  实施某种操作功能  。当方法不需要任何参数并且也没有返回值,调用对象的方法的格式为  对象名.方法名  。例如对窗体Forml 使用Show 方法,应写成  form1.show  。
6、要使文本框显示滚动条,需要将其 ScrollBars  属性设置为  3  。
7、欲设置定时的时间间隔为4秒,则属性Interval 的值为  4000 。
8、要使标签框的大小随Caption属性做自动调整,应将 AutoSize  属性设置为  True  。
9、通过  窗体布局窗口  可以在设计时直观地调整窗体在屏幕的位置。
10、要想在代码中给名为 txtshow 的文框赋予文本:GOOD WORK!时,应当编写的语句是  =” GOOD WORK!”  。
11、若命令按钮的名称为Cmdopen,程序要求单击以上命令按钮,打开一个窗口frml,请对以下事件过程填空。
Private Sub Cmdopen    click() 
 Frm1.show 
End Sud
12、事件就是对象上所发生的事情,Visual Basic中的事件如 单击  、  装入  、
 鼠标移动 等。一个对象响应的事件可以有  多 个,用户不能建立新的事件。事件过程是指  响应某个事件后所执行的代码  。假设某一事件过程如下:
Private Sub cmd1_Click()
  Form1.Caption=”VB示例”
End Sub
则响应过程的对象名是  cmd1  ,事件名是  Click  。     
13、对象的方法用于 在对象上实施某种操作功能  。当方法不需要任何参数并且也没有返回值,调用对象的方法格式为  对象名.方法名  ,例如,对窗体Form1 使用Show 方法,应写成  Form1 .Show  。
14、为了在编写代码时能自动语法检查,必须执行 工具  菜单中的  选项 
 命令,打开  选项  对话框,然后选择“编辑器”选项卡中的 自动语法检测 。
15、定时器(Timer)控件可识别的事件是 Timer ,了生该事件的时间间隔定时由定时器的  Interval 属性设置,其单位为 毫秒 。 
三、问答题
1、什么是可视化编程和事件驱动?           
答:可视化编程是指无须编程,仅通过直观的操作方式即可完成界面的设计工作的这种编程方式。
当VB的应用程序运行后,系统处于等待状态,当某个事件发生后,程序就去执行此事件的事件过程,当这个事件过程执行完后,系统又处于等待另一个事件发生的状态,这就是事件驱动程序方式。
2、对象、属性、事件和文件之间的关系如何?
答:对象是代码和数据的封装体。对象的操作通过与该对象有关的属性、事件、方法来描述。
属性是一个对象的基本特性,每个对象都有它自己的属性。
方法是对象要执行的动作。
事件是在对象上所发生的事情。
3、简述事件驱动机制与传统编程方式的不同。
答:传统的面向过程的应用程序中,应用程序自身控制了执行那一部分代码按何种顺序执行代码,程序从第一行代码开始执行并按应用程序中预定的路径执行,用户无法改变程序的执行流程。而事件驱动机制则由用户来决定执行的路线。这就是两者的不同。
4、简述事件驱动的工作过程。
答:事件驱动的工作过程如下:(1)启动应用程序,装载和显示窗体。(2)窗体或窗体上的控件等待事件的发生。(3)当某个事件发生后,执行其对应的事件过程代码。(4)重复执行(2)和(3),直到遇到END语句或单击“结束”按钮停止程序的运行。
四、程序设计题
1、在窗体上添加一个文本框和两个命令按钮,并把两个命令按钮的标题分别设置为“隐藏文本框”和“显示文本框”。当单击第一个命令按钮时,文本框消失;而当单击第二个命令按钮时,文本框重新出现,并在文本框中显示“VB程序设计”(字体大小为16)。程序运行界面如图所示。
图1
解:“隐藏文本框”按钮中的代码为:Text1.Visible=False
“显示文本框” 按钮中的代码为:Text1.Visible=True
                              Text1.Text=”VB程序设计”
                              Text1.FontSize=”16”
2、设计一个计算程序。该程序用户界面如图2所示,由四个文本框:文本框1(text1)、文本框2(text2)、文本框3(text3)、文本框4(text4),和三个按钮:命令按钮1(command1)、命令按钮2(command2)、命令按钮3(command3)组成。程序运行后,用户按清除按钮,则清除文本框中显示的内容,按计算按钮,则计算三科平均成绩。单击退出按钮则退出。
解:command1中的代码为:text1=””: text2=””: text3=””: text4=””
command2中的代码为:text4=(val(Text1)+ val(Text2)+ val(Text3))/3
command2中的代码为:End
3、编写一收款计算程序。要求用户输入商品的“单价”、“数量”和“折扣”后,单击“计算”按钮显示“应付款”,单击“清除”按钮,清除文本框中所有的数据。程序运行界面如图3所示。
答:“计算”按钮的代码:text4=val(Text1)* val(Text2)* val(Text3)/100
“清除”按钮的代码:text1=””: text2=””: text3=””: text4=””
作业2
一、选择题
1.按照变量的作用域可将变量划分为( B  )。
A、公有、私有、系统        B、全局变量、模块级变量、过程变量
C、动态、常数、静态        D、Public、Private、Protected
2. 可获得字符的ASCII码的函数是( C )。
A、Val  B、Fix  C、Asc    D、Chr
3、要退出Do….Loop循环,可使用的语句的( D )语句。
A、Exit  B、Exit  For  C、End Do  D、Exit Do
4. 把数值型转换为字符串型需要使用的函数是(B  )。
A、Val    B、Str  C、Asc    D、Chr
5.关于语句行,下列说法正确的是( B )。
 A.一行只能写一条语句    B.一条语句可以分多行书写
 C.每行的首字符必须大写  D.长度不能超过255个字符
6.表达式6+10 Mod 4*2+1的值是( A ).
 A.9   B.11  C.1  D.3
7.以下可以作为Visual Basic 变量名的是(B).
A.SIN      B.CO1    C.COS(X)  D.X(-1)
8.表达式Abs(-5)+Len(“ABCDE”)的值为(C).
 A.5ABCDE  B.-5ABCDE      C.10    D.0
9.在代码编辑器中,如果一条语句太长,无法在一行内写下(不包括注释),要折行书写,可以在行末使用续行字符(A),表示下一行是当前行的继续.
 A.一个空格加一个下划字符(_)   B.一个下划字符(_)
 C.直接回车                  D.一个空格加一个字符(-)
10.Sub过程与Function过程最根本的区别是(D).
 A.Sub过程可以使用Call语句或直接使用过程名调用,而Function过程不可以.
 B.Function过程可以有参数,Sub过程不可以.
C.两种过程参数的传递方式不同.
D.Sub过程的过程名不能返回值,而Function过程能够通过过程名返回值.
11."X是小于80的非负数",用VB表达式表示正确的是(C).
  A..0≤X<80                        B.0<=X<80
  C.0<=x and x<80                    D.0<=x Orx<80
12.在设计菜单时,如果要在菜单中加入一个菜单分隔条,则菜单分隔条的标题必须设置为(B )
A.加号(+)      B.减号(-)    C.星号(*)  D.感叹号(!)
13.如果要在程序中显示一个弹出式菜单,那么要调用Visual Basic中提供的方法是(D).
  A.Print        B.Move      C.Refresh  D.PopupMenu
14.下列可以用来存储图像供其他对象使用的控件是(C ).
  A.ToolBar      B.StatursBar    C.ImageList  D.TreeView
15.当单击工具拦上的按扭时,会触发的事件是(A ).
  A.ButtonClick    B.Change  C.Load        D.KeyPress
16.要利用公用对话框控件来显示”打开文件”对话框,需要调用控件的(B )方法.
  A.ShowPrinter  B.ShowOpen  C.ShowSave    D.ShowColor
17.对于窗体级变量,下列说法中错误的是(C ).
A.所在窗体的各子程序都可以访问
B.其他窗体的子程序不能访问
C.所在窗体发子程序不能访问用Private定义的窗体级变量
D.一定要在所在窗体的通用区内定义
18.从一个字符串中的第3个字符开始,获取5个字符,应使用(B)
  A.Len函数  B.Mid函数  C.Left函数    D.Right函数
19.用下面的语句所定义的数组的元素的个数是(D ).
  DimA(-3 To 5)As  Integer
  A.6    B.7  C.8        D.9
20.有如下程序段:
Dim strl As String*5
Strl=”Visual Basic”
当该段程序被执行完时,变量strl的值为(B ).
  A.”Visual”    B.”Visua”  C.”V”  D.”Visual  Basic”
二、填空题
1.菜单一般有_下拉式_和_弹出式__两种基本类型。
2.通用对话框控件可显示的常用对话框有__打开_、_保存_、__颜_、__字体_、__打印_。
3.组合框具有__文本框_和__列表框_两种控件的基本功能。
4.要使数组的默认下标从“1开始,则应在窗体或标准模块代码的声明部分使用语句__Option Base 1_。
5.调用Sub过程时,使用__call__语句,语句用于把程序控制传送到一个Visual Basic的Sub过程。
6.若已建立了Form1和Form2两个窗体,默认启动窗体为Form1。通过_工程_菜单__属性_命令的_通用_选项卡,可将启动窗体设置为Form2。在程序中若要显示Form1窗体,则执行_Form1.show_语句。
7.列表框中项目的序号是从_0_开始的。
8.Sub过程与Function过程最根本的区别是_Sub过程名无返回值,Function过程名有返回值 。
9.VB的代码存储在模块中。在VB中提供了三种类型的模块:_类模块_、_窗体模块__和_标准模块_。
10.使用Hide方法会隐藏被调用的窗体,但是在调用Hide方法之后不会把窗体__卸载_,被调用的窗体中的属性等已处于_内存中_。
11.将下列数学式子写成VisualBasic表达式。
    答:2*cos(a)*sin(a)/(2*a)
  答:sqr(s*(s-a)*(s-b)*(s-c))
  sin45°:sin(45*2*3.1415/360)_
12.将下列数学式子各条件写成VisualBasic逻辑表达式。
  1≤x<12: 1<=x and x<12
  A+B≥C或a-c≤c: (A+B)>=C OR (a-c)<=c
  a和b都为正整数或同为负数: (a>=0 and b>=0) or (a<=0 and b<=0)
13.设A=2,B=3,C=4,D=5。表达式Not A<=C Or4*B^2 And B< >A+C的值为_False_。
14.在Visual Basic语言中有三种形式的循环结构。其中,若循环的次数可以事先确定,可使用_For…next__循环;若要求先判断循环进行的条件,可使用_Do while…loop_循环或_ while…Wend_循环。
15.以下语句的输出结果是__3_。
a%=3.14159
Print a%
三、阅读下列程序,写出程序运行结果。
1、Private Sub Form_Click( )
        Static Sum As Integer
        For I= 1 to 100
        Sum=Sum+I
        Next I
Print Sum
End Sub
程序运行结果为:1+2+…….+99+100=5050
2、private Sub Form_Click( )
    A=10: b=15:c=20:d=25
    Print A;Spc(5);b;Spc(7);c
    Print A;Spc(8);b;Space$(5);c
    Print c;Spc(3);”+”;Spc(3);c+d
  End Sub
10(5个空格)15(7个空格)20
10(8个空格)15(5个空格)20
20(三个空格)+(三个空格)45
3、Private Sub Form_click( )
    For i% =1 to3
      Forj% = 1 to i
      Print L Trim(Str(i%))+ “*”+L Trim(Str(j%))+ “=”;i% * j%;
          Next j%
        Print
Next i%
End Sub
1*1= 1
2*1= 2  2*2= 4
3*1= 3  3*2= 6  3*3= 9
 
4、Private Sub Command1_Click( )
  Dim a,b As Integer
  A=3.4
B=3.4
Text1.Text=a
Text2.Text=b
End Sub
Text1显示3 、4
Text2显示3
5、Private Sub Form_Click()
    For I =1 to 5
        Print Tab( 11 – I )
      For J =1 To I * 2 – 1
              Print “*”;
        Next
      Next i
End Sub
              *
              ***
            *****
            *******
          *********
 
四、程序设计题
1、购物优惠程序。某商场为了加速促成商品流通,采用购物打折的优惠办法,每位顾客一次购物(1)在100元以上者,按九五折优惠;(2)在200元以上者,按九折优惠;(3)300元以上者,按八折优惠;(4)500元以上者按七折优惠。在窗体上添加两个文本框和一个命令按钮,要求在Text1中输入购物商品总金额,单击命令按钮,在Text2中输入优惠后的价格。程序运行结果如图解所示。
 If Val(text1)>=500 then text2=Val(text1)*0.7
Else if Val(text1)>=300 then text2=Val(text1)*0.85
  Else if Val(text1)>=200 then text2=val(text1)*0.9
  Else if val(text1)>=100 then text2=val(text1)*0.95
End if
       
                                     
2、输出100~200之间不能被3整除的的数,要求用Do语句的一种形式来实现,程序运行结果如图5所示。
窗体的装入事件中加入如下代码:
Dim a as integer
A=100
Do while a <=200
If (a mod 3)<> 0 then
List1.additen str(a)
End if
A=a+1
loop
3、编写程序,打印如下的乘积表:
Dim I ,j as integer
Print”*”:space(5):
For i=3 to 12 step 3
 Print str(i);space(5);
Next i
Print
For I = 15 to18
Print str(i);space(3);
For j=3 to 12 step3
Print str(i*j);space(4);
Next j
Print
Next j
 
4、设计一个计算程序。该程序用户界面如图7所示。要求程序运行后,用户选中单击选按钮,则程序作10和2的相应计算,并把计算结果在文本框中显示出来。如用户选中加法单选按钮,则程序作10和2的相加,计算结果12在文本框中显示出来。按结束,则退出。
乘法单选按钮的单击事件中添加如下代码:
Text1=10*2
除法单选按钮中添加如下代码:
Text1=10/2
加法单选按钮中添加如下代码:
Text1=10+2
减法单选按钮中添加如下代码:text1=10-2
结束按钮中代码: end 或unload me
5、编写输入一个0~6数字,显示汉字对照输出星期的Function过程。程序运行结果如图8所示。
文本框的change事件中代码如下:
Select case val(text1)
Case 0
Label1.caption=”星期天”+chr(13)+”(Sunday)”
Case 1
Label1.caption=”星期一”+chr(13)+”(monday)”
Case2
Label1.caption=”星期二”+chr(13)+”(Tuesday)”
Case 3
Label1.caption=”星期三”+chr(13)+”(wednesday)”
Case 4
Label1.caption=”星期四”+chr(13)+”(thursday)”
Case 5
Label1.caption=”星期五”+chr(13)+”(firday)”
Case 6
Label1.caption=”星期六”+chr(13)+”(saturday)”
End select
 
6、编写一个程序,当鼠标移到Picturel控件时,鼠标指针改变形状;当在Picturel控件上单击鼠标右键时,通过消息框显示“You pressed right button”,并再次改变鼠标指针的形状。
Picture1_mouseup
If button=2 then
I=1
Msgbox” you pressed right button”
End if
End sub
7、列表框应用程序。要求从文本框中输入姓名,然后按“添加”按钮,把姓名添加到列表框中;当选择列表框中某一项时,按“删除”按钮,从列表框中删除;当列表框中某一项时,按“修改”按钮,把列表框中选取的项送往文本框且“修改”按钮变为“修改确认”。在文本框的内容修改好后,按“修改确认”按钮,再把文本框中修改后的信息送到列表框且“修改确认”按钮变为“修改”。程序运行结果如图9所示。
添加按钮代码:list1.
=””
删除: <>”” then
veitem =list1.listindex
End if
修改:
If command3.caption=“修改” then
=
Command3.caption=”修改确认”
Else
If  command3.caption=”修改确认” then
List1.list=list1.listindex>=
Command3.caption=”修改”
End if
End if
作业3
一、选择题
1、Visible Basic根据计算机访问文件的方式将文件分成三类,其中不包括(B)
A.顺序文件  B. Unix文件  C. 二进制文件  D. 随机文件
2、随机文件进行文件读取的单位是(B)
A.字节    B。记录  C。整个文件    D。字符
3、为了使目录路径列表框Dir1的内容符合驱动器列表框Drive1的选择,应当(B)。
A. 在Dir1_Click事件中加入Dir1.Path=Drive1.Drive
B. 在Drive1_Click事件中加入Dir1.Path=Drive1.Drive
C. 在Dir1_Click事件中加入Drive1.Path= Dir1.Drive
D.在Dir1_Click事件中加入Drive1.Path= Dir1.Drive
4、为了使drive1驱动器列表框、dir1目录路径列表框和file1文件列表框能同步协调工作,需要在(B)
A. drive1的Change事件过程中加入drive1.Drive=dir1.Path,在dir1的Change事件过程中加入dir1.Path=file1.Path代码。
B. drive1的Change事件过程中加入dir1.Path = drive1.Drive,在dir1的Change事件过程中加入file1.Path =dir1.Path代码。
C. dir1的Change事件过程中加入dir1.Path = drive1.Drive,在file1的Click事件过程中加入file1.Path =file1.fileName代码。
D.dir1的Change事件过程中加入dir1.Path = drive1.Drive,在file1的Click事件过程中加入file1.Path =dir1.Path代码。
5、下面关于顺序文件的描述正确的是(A)
A. 每条记录的长度必须相同
B. 可通过编程对文件中的某条记录方便地修改
C. 数据只能以ASCII码形式存放在文件中,所以可通过文本编辑软件显示
D.文件的组织结构复杂
6、KILL语句在VB语言中的功能是(C)。
A.清内存    B。清病毒  C。删除磁盘上的文件    D。清屏幕
7、可用来改变坐标度量单位的是(D)
A. Drawstyle属性    B. DrawWidth属性    C. Scale方法  D. ScaleMode属性
8、以下的属性和方法中,可重定义坐标系的是(C)
A.Drawstyle属性  B.DrawWidth属性    C. Scale    D.  ScaleMode属性
9、当用Line方法画直线后,当前坐标在(C)
A.(0,0)  B.直线起点  C. 直线终点  D. 容器的中心
10、Line (200, 200)-Step( 500, 500)将在窗体(C)画一直线。
A.(200, 200)到(500, 500)    B. (200, 200)到(300, 300)
C. (200, 200)到(700, 700)    D. (300, 300)到(500, 500)
11、设置对象的边框类型的属性是(B)。
A. Drawstyle  B. Borderstyle  C. DrawWidth  D. ScaleMode
12、为了清除图片框Picture1中的图形,应采取的正确方法是(B)
A. 选择图片框,然后按Del键
B. 执行语句Picture1.picture=LoadPicture(“”)
C. 执行语句Picture1.picture= “”
D.选择图片框,在属性窗口中选择Picture属性条,然后按回车键
13、绘制多种形状的图形,需要设置Shape控件的(A)属性。
        A.Shape  B.Borderstyle  C. FillStyle  D. Style
14、绘制多种形状的直线,需要设置Line控件的(B)属性。
        A.Shape  B.Borderstyle  C. FillStyle  D. Style
15、如果准备读文件,打开顺序文件“text.dat”的正确语句是(C)
A.      open “text.dat” for write As #1
B.      open “text.dat” for Binary  As #1
C.      open “text.dat” for Input  As #1
D.    open “text.dat” for Random  As #1
16、如果准备向随机文件中写入数据,正确的语句是(C)
A. Print #1, rec  B. Write  #1, rec  C. Put #1, rec  D.  Get #1, rec
17、下列“CommandDialog1”控件程序代码,CommandDialog1.Action=1,代表(B)
A.文件另存为  B. 打开文件  C. 彩  D. 打印
18、FileFilter.Pattern=”*.bat” 程序代码执行后,会显示(A)。
A 只包含扩展文件名为”*.bat”的文件    B。 第一个bat文件
C. 包含所有的文件      D。 会显示磁盘的路径
19、下列数据对象模型中采用OLE DB访问数据库的是(C)。
A. DAO  B. RDO  C. ADO    D. RDO和ADO
20. 设ADOrs为Recordset对象,从“学生基本情况表”中获取所有记录的语句是(B)
A. ADOrs.New “Select * From 学生基本情况表”
B. ADOrs.Open “Select * From 学生基本情况表”
C. ADOrs.Execute “Select * From 学生基本情况表”
D.ADOrs. Select “Select * From 学生基本情况表”
21、VB中将变量xl声明为Excel应用程序对象的方法是(A)
A. Dim xl As Excel.Application  B. Dim xl As Excel.Workbook
C.  Dim xl As Excel.Worksheet  D. Dim xl As Excel.Worksheets
二、填空题
1、如果要新建一个顺序文件,用Open语句时,操作方式关键词是 output 。
2.在Visual Basic程序中实现复制文件“C:\command”到D:盘根目录下的语句
为 filecopy  “c:\command”,”d:\” 。
3. 在Visual Basic程序中实现删除文件”D:\p”的语句为__kill ”d:\p” 。
4.按文件号为1打开顺序文件SEQNEW.DAT,用于写入数据,语句
为___open ”SEQNEW.DAT” for output as  # 1 。
5.按文件号为2打开顺序文件SEQOLD.DAT,用于从该文件读出数据,语句为___open ”SEQOLD.DAT” for input as #2 。
6.若窗体的左上角坐标为(-200,250),右下角坐标为(300,-150),则X轴的正向向 右 ,Y轴的正向向 上_。
7.Stretch属性设置为_false_时,图像框可自动改变大小以适应其中的图形.
8.在图片框Picture1中画一个左上角在(500,500),边长为500的红实心正方形的语句为_picture1.line (500,500)-step(500,500), vbred , BF 。
9.设  CurrentX=50,CurrentY=100,执行指令”line(100,20)-Step(300,500)”后,Current=_(400,520)_.
10.使用ADO模型时,可通过_ActiveConnect_属性建立Recordset和Connection对象的连接.
11.VB中将数据库分为本地数据库、 远程数据库和__外部数据库_三种类型.
12.采用ADO模型时,当使用Open方法打开一个记录集后,与ADOrs.Fields(“学号”)等效的语句是_ADOrs(“符号”)_.
13.ADO模型中一般可通过Connection对象的Execute方法执行__增加_、__删除_、__修改__等三类不返回结果集的SQL语句.
14.设StrSQL、Str1为字符串变量,其中Str1的值为”001”,那么执行赋值语句StrSQL=”Select * from Tabel1 Where学号=’”+Str1+”’”后,StrSQL的值等于_”select. * from tabel1 where 学号=’001’”_.
15.在VB中,将Foxpro称为外部数据库,Access称为__本地数据库_,SQL Server称为__远程数据库__.
三、程序设计题
1、在窗体上建立一个驱动器列表框、目录列表框、文件列表框、图片框。要求程序运行后,驱动器列表框Drive1的默认驱动器设置为C盘,选择File1中所列的确图片文件(*.Bmp和*.jpg),则相应的图片显示在图片框Picture1中。程序运行结果如图10所示。
解:依据图10设计界面,文件列表框的pattern属性设置为:*.Bmp ; *.jpg
驱动器列表框的change事件中添加如下代码:
chdrive drive1.drive
dir1.path=drive1.drive
目录列表框的change事件中添加如下代码:
chdir dir1.path
file1.path=dir1.path
文件列表框的click事件中添加如下代码:
    picture1.picture=loadpicture file1.filename
2.余弦曲线的方程为y=cosx,画出x从-2到2的确余弦曲线,并在坐标轴上标出刻度,如图11所示。
如图窗体的单击事件中添加如下代码:
Form1.scale ( -2*3.14159,1)- (2*3.14159, -1)
Form1.line (-2*3.14159,0)- (2*3.14159,0)
Form1.line (0,1)-(0,-1)
Form1.currentx =0.2:form1.currentY= -0.1:print ”0”
Form1.currentx =-3.2:form1.currentY= -0.1:print ”-pi”
Form1.currentx =3.3:form1.currentY= -0.1:print ”pi”
Form1.currentx =-6.2:form1.currentY= -0.1:print ”-2pi”
Form1.currentx =5.7:form1.currentY= -0.1:print ”2pi”
Form1.currentx =0.2:form1.currentY= 0.5:print ”0.5”
Form1.currentx =0.2:form1.currentY= -0.5:print ”-0.5”
For I =-6.282 to 6.282 step 0.08
 Form1.pset(I, cos(I))
  Next I
3,使用Line控件显示直线,并且可以显示直线的线宽和线型.程序运行界面如图12所示.
如图 添加代码如下
复选框的单击事件代码:
If check1.value =1 then
  Line1.border width =4
Else
Line1.border width = 1
End if
实线、虚线、单选框要弄成一个option1单选框控件数组。单选框单击事件代码:
Select case index
 Case 0
Line1.borderstyle = 1
 Case 1
Line1.borderstyle = 2
 Case 2
Line1.borderstyle = 3
End select
4.使用Shape控件显示几种图形,并可以设置图形的边框和填充效果等.程序运行界面如图13所示.
首先按图作出程序界面。形状框架里的单选框要做成option1控件数组,边框类型框架里的单选框最成option2控件数组,填充风格框架里的单选做成option3控件数组。
Option 1单击事件代码如下:
Select case index
Case 0
Shape1.shape = 0
Case 1
Shape1.shape = 1
Case 2
Shape1.shape = 3
Case 3
Shape1.shape = 4
End select
Option 2单击事件代码如下:
Select case index
Case 0
Shape1.borderstyle = 0
Case 1
Shape1. borderstyle = 2
Case 2
Shape1. borderstyle = 1
Case 3
Shape1. borderstyle = 3
      Case 4
Shape1. borderstyle =4
End select
Option 3单击事件代码如下:
 
Select case index
Case 0
Shape1.fillstyle = 1
Case 1
Shape1. fillstyle = 1
Case 2
Shape1. fillstyle = 3
Case 3
Shape1. fillstyle = 6
End select
5.使用SQL Server或Access建立名称为”学生的数据库,并在其中创建”students”的数据库表,其结构及初始记录如表1所示.使用ADO对象和MSFlexGrid控件设计数据库列表显示程序.程序的设计界面和运行结果如图14、图15所示。
                    表1
学号      姓名      专业
2004001      张红      软件专业
2004003      李强      会计专业
2004002      王丽      软件专业
声名对象变量ADOcn,用于创建与数据库的连接
Private ADOcn As connection
Readfromtable
Private sub readfromtable( )
Dim strtmp As string
Dim ADOrs As new recordset
ADOrs.activeconnection =ADOcn
ADOrs.open “select*from students order by “学号”
MSFlexgrid1.clear
ws = 0
ls = 3
Strtmp = “学号”+vbtab+“姓名”+vbtab+“专业”
MSFlexgrid1.additem strtmp
Do while f
Strtmp=ADOrs(“学号”)+vbtab+ADOrs(“ 姓名”)+vbtab+ADOrs(“专业”)
MSFlexgrid1.addttem strtmp
ADOrs movenext
Loop
MSFlexgrid1.fixedcols = 0
MSFlexgrid1.fixedrows = 1
End sub
Private sub form_load()
Dim strDB As string
strDB=”provider=SQLOLEDB;LSF;User ID=sa;password=;database=学生”
if ADOcn is nothing then
set ADOcn=new connection
ADOcn.open strDB
End if
Readfrom table
End sub
Private sub command1_click()
Unload me
End sub
作业4
一、选择题
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大一vb程序设计基础
 
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

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。