1、“Visual Basic 编程与应用”期末复习资料第一章 Visual Basic 6.0 程序设计概述重点掌握的内容: 对象与事件驱动对象:世界上存在的任何具体的事物都可以称之为对象。对象是具体存在的, 每个对象都是唯一的,有着自己独特的个性。类:是具有相同性质的对象的集合。对象和类的区别在于前者是具体的,而后者则是抽象的。属性、方法和事件:VB 采用一种所谓的事件驱动的编程机制,由用户来掌握程序的运行流向。可以把属性看作一个对象的性质,把方法看作对象的动作, 把事件看作对象的响应。对象的属性的设置可以通过两种方法来实现:(1) 通过属性窗口直接设置;(2) 在程序代码中通过赋值实现,其格
2、式为: 对象.属性=属性值事件过程:事件即对象相应的动作,是 Visual Basic 预先定义好的对象能识别的动作, 如 Click、DbClick、LostFocus 等等。事件过程是指附在该对象上的程序代码,是事件的处理程序,即用来完成事件发生后所要做的动作创建 Visual Basic 应用程序有三个主要步骤: 1创建应用程序界面。2. 设置属性。3. 编写代码。窗体的属性和方法窗体属性:重点掌握:Name,Caption,BorderStyle,MinButton,MaxButton 等属性。Print 方法: 在 Visual Basic 中,Print 方法是用来输出信息的专用过
3、程, Print 方法应重点掌握如下:(1) 语法结构对象.Print表达式列表(2) 表达式列表中的分隔符:若用分号(;):输出的各表达式的值中间没有空格,数值型前留有一个符号位。例如 Print “1”;“2”;“3”输出格式为123若用逗号(,):输出的各表达式的值将被分配在各个区段内,例如Print “1”,“2”,“3”输出格式为123Spc(n)函数,用于产生空格,这里 n 为要插入的空格数,例如 Print “1”; Spc(3);“2”输出格式为12Tab(n)函数,用于将插入点定位在绝对列号上,这里 n 为列号。例如 Print “1”;Tab(20);“2”输出格式为12自
4、测与练习题一、判断题1、为了使一个控件在运行时不可见,应对该控件的 Visable 属性值设置为False。()2、当用 Load 命令将窗体装入内存时,一定触发窗体的 load 事件和Activate 事件。()3、面向对象程序设计是一种以对象为基础,由事件驱动对象执行的设计方法。()4、将焦点主动设置到指定的控件或窗体上,应采用 Setfocus 方法。()5、方法是 VB 对象可以响应的用户操作。()6、对象是基本的运行时实体,它既包括了数据(属性),也包括作用于对象的操作(方法)和对象的响应动作()。7、属性是用来描述和反映对象特征的参数,对象的所有属性都可以在属性窗口中设置。()8、
5、VB 中将一些通用的过程和函数编写好并封装作为方法供用户直接调用。()9、每个对象都有一系列预先定义好的事件,但要使对象能响应具体的事件, 则应编写该对象相应的事件过程。()10、属性是 VB 对象性质的描述,对象的数据就保存在属性中。11、同一个窗体文件只能用于一个工程中。()12、当打开一个VB 工程后要另存为一个版本,单击“工程另存为”就行, 因为其同时会保存窗体文件。()13、标签的Capton 属性用于设置标签框中显示的文本内容,该内容可以编辑。()14、标签的 Alignment 属性值为 1,表示标签中的文本右对齐。()15、文本框既用于输出,又可在其中输入、编辑文本。()16、
6、要想在文本框中输入或显示多行文本,必须将该文本框的 MultiLine 属性设置为 False。()17、要想一个文本框中文本长度或宽度超过文本框的长度或宽度时既有水平滚动条又有垂直滚动条,应将该文本框的 ScrollBars 属性设置为3。()18、要想让一个命令按钮无效,应将该命令按钮的 Visable 属性设置为False。()19、某控件的 Visable 属性设置为 True,表示该控件在程序运行时是可见的。()参考答案:12345678910111213141516171819 二、填空题1. 为了在窗体上输出具有相同的字体格式,应对的属性进行设置。2. 在代码窗口对窗体的 Bor
7、derStyle、MaxButton 属性进行了设置,但运行后没有效果,原因是这些属性。3. 在文本框中,通过属性能获得当前插入点所在的位置。4. 要对文本框中已有的内容进行编辑,按下键盘上的键,就是不起作用, 原因是设置了属性为 True。5. 在窗体上已建立多个控件如 Text1、Labell、Command1,若要使程序一运行焦点就定位在 Command1 控件上,应对 Command1 控件设置属性的值为。6. 在用 Show 方法后显示自定义对话框时,如果 Show 方法后带参数就将窗体作为模式对话框显示。7. 每当一个窗体成为活动窗口时触发事件,当另一个窗体或应用程序被激活时在原活
8、动窗体上产生事件。8. VB 中可作为其它控件的容器的除窗体外还有和控件。参考答案:1窗体font2不能在代码中设置3selstart4Locked5TabIndex06vbModal 或17. ActivateDeactivate8. PictureBox(或图片框)Frame(或框架)三、选择题1. 对于窗体,下面属性在程序运行时对于其在屏幕上的位置起作用。(A)MaxButton(B)BorderStyle(C)Name(D)Left2. 要使 Print 方法在 Form_Load 事件中起作用,要对窗体的属性进行设置。(A)BackColor(B)ForeColor(C)AutoRe
9、draw(D)Caption 3若要使标签控件显示时不覆盖其背景内容,要对属性进行设置。(A)BackColor(B)BorderStyle(C)ForeColor(D)BackStyle 4若要使命令按钮不可操作,要对属性设置。(A)Enabled(B)Visible(C)BackColor(D)Caption5文本框没有属性。(A)Enabled(B)Visible(C)BackColor(D)Caption 6不论何对象,都具有属性。(A)Text(B)Name(C)ForeColor(D)Caption 7要使某控件在运行时不可显示,应对属性进行设置。(A)Enabled(B)Visi
10、ble(C)BackColor(D)Caption8要使窗体在运行时不可改变窗体的大小和没有最大化和最小化按钮,只要对下列属性设置就有效。(A)MaxButton(B)Borderstyle(C)Width(D)MinButton 9当运行程序时,系统自动执行启动窗体的事件过程。(A)Load(B)Click(C)UnLoad(D)MinButton 10改变控件在窗体中的上下位置应修改该控件的属性。(A)Top(B)Left(C) Width(D)Right 参考答案:1、D2、C3、D4、A5、D6、B7、B8、B9、A10、A四、编程题:在窗体上建立 5 个命令按钮 Command1、C
11、ommand2、Command3、Command4、Command5 和 1 个标签 Label1。将这些控件作适当布置,如下图。编程序完成如下要求:(1) 程序运行后,4 个命令按钮显示分别为:“放大”、“加粗”,“下画线”、“还原”“移动”,标签显示为“VB 程序设计”(2) 单击“放大”,标签显示的文字放大 3 倍,单击“加粗”,标签显示的文字则加粗,单击“下画线”则标签显示的文字加下画线、单击“还原”,则标签显示的文字格式回到起初状态。(3) 每单击“移动”命令按钮一次,标签则向左移动一定距离,单击 10 次,则移动到最左边(Label1.Left=0)。代码如下:Dim size A
12、s Integer, ft As Double, bd As Boolean, dl As Boolean Private Sub Command1_Click()Label1.FontSize = Label1.FontSize * 3 End SubPrivate Sub Command2_Click() Label1.FontBold = TrueEnd SubPrivate Sub Command3_Click() Label1.FontUnderline = TrueEnd SubPrivate Sub Command4_Click() Label1.FontSize = size
13、Label1.FontBold = bd Label1.FontUnderline = bl Label1.Left = ftEnd SubPrivate Sub Command5_Click()Label1.Left = Label1.Left - ft / 10 End SubPrivate Sub Form_Load() size = Label1.FontSize bd = Label1.FontBoldbl = Label1.FontUnderlineft = Label1.Left End Sub第二章Visual Basic 6.0 语言基础重点掌握的内容:1、数据类型Visua
14、l Basic中的数据以四种形式存储:变量、常量、数组和记录。每一种形式都适合于不同的特定任务。2、变量:变量的概念、命名、声明。命名规则:(1) 变量名的第一个字母必须是字母,后接字母、数字、下划线,但不可是小数点、空格。(2) 变量名的最后一个字符可以是类型说明符(!,#,$,%,&),但它们不能出现在变量名的其它位置。例如:A%说明了变量 A 是整型B&说明了变量 B 是长整型C!说明了变量 C 是单精度型D #说明了变量 D 是双精度型E 说明了变量 E 是货币型F$说明了变量 F 是字符串型注意:变量名不能与保留字重名。声明变量:(1) 隐式声明变量不经声明直接使用,如:A=123其
15、类型由赋值的类型所决定(2) 显式声明变量用 Dim变量名As类型名声明后再使用的方式就是显式声明。OptionExplicit 的作用就是强制显式声明模块中的所有变量。3、常量:常量的概念、分类、声明。常量分为系统内在常量和自定义常量(符号常量)。符号常量用 Const 语句声明。例如ConstPIAsDouble=3.14159264、运算符与表达式:运算符是用来对运算对象进行各种运算的操作符号, 而表达式是由多个运算对象和运算符组合在一起的合法算式。Visual Basic 中的运算符分为五类:算术运算符、连接运算符、关系运算符、逻辑运算符和特殊运算符;主要有三种表达式,即算术表达式,关
16、系表达式和逻辑表达式。(1) 数学运算:运算符有 */ (整除)Mod(求余运算)。例如:a Mod b 表示 a 被 b 整除以后的余数。(2) 关系运算::关系运算也称比较运算,VB 共提供六种运算符,分别是=(等于),(大于),=(大于等于),=(小于等于),(不等于),Like(模糊匹配)和 Is(一致比较)。(3) 逻辑运算: NotAndOr(4) 日期运算: 5、常见标准函数:(1) 数学函数:SqrRnd(2) 转换函数:AscChrIntValStr(3) 字符串函数:SpaceTrimMid(4) 日期和时间函数:DateTimeNowYear(5) 交互式函数:Msgbo
17、x 函数和 InputBox 函数的使用。自测与练习题一、写出下列函数的值(1)Int(-3.14159)(2)Chr$(Sqr(64)(3)Fix(-3.1415926)(4)Sgn(-72+2)(5)Mid(Hello,2)(6)Val(16 Year)(7)Str(-459.65)(8)Len(Hello) 参考答案:(1)-4(2)退格符(3)-3(4)-1(5)“ello”(6)16(7)“-459.65”(8)5 二、填空题1、整型变量X 中存放了一个两位数,要将两位数交换位置,例如,13 变成31,实现的表达式是。2、表示 x 是 5 的倍数或是 9 的倍数的逻辑表达式为。3、表
18、达式 Ucase(Mid(abcdefgh,3,4)的值是。4、在直角坐标系中, x,y 是坐标中任意点的位置,用x 与 y 表示在第一或第三象限的表达式是。5、表示 S 字符变量是字母字符(大小写字母不区分)的逻辑表达式为。参考答案:1、(X mod 10)*10+X102、xmod5=0ORxmod9=0 3、“CDEF “4、 x0ANDy0ORx0ANDy=”A”ANDs=”a”ANDs=B And B=C And C0B. A+CB And B+Ca And C0C. (A+B=C or A-B 0D. A+BC And A-B0 4、下面哪个是算术运算符:A.ImpB.ModC.N
19、otD. Like 5、下面的运算符中,优先级最高的是:A.NotB.IsC. LikeD.& 6、下面的哪一条语句与 Visual Basic 的默认设置相同:A.Option Base 1B.Option Base 2C.Option Cmpare TextD.Option Explicit 参考答案:CBBBDD四、编程题1在窗体上放 1 个标签 Label1,1 个命令按钮 Command1,当窗体启动时使标签居于窗体的中间,并显示系统的当前时间,命令按钮显示为“放大”,当单击命令按钮时,将标签中显示显示文字放大 13 倍,并重新显示系统当前时间。Option ExplicitPriv
20、ate Sub Command1_Click()Label1.FontSize = Label1.FontSize * (Int(Rnd * 3 + 1) 放大字体Label1.Caption = 当前时间为 & Time显示时间 以下让 Label1 居中显示Label1.Left = Form1.ScaleWidth / 2 - Label1.Width / 2 Label1.Top = Form1.ScaleHeight / 2 - Label1.Height / 2End SubPrivate Sub Form_Load()Label1.Caption = 当前时间为 & TimeLa
21、bel1.Left = Form1.ScaleWidth / 2 - Label1.Width / 2 Label1.Top = Form1.ScaleHeight / 2 - Label1.Height / 2End Sub 2编一模拟简易计算器的程序,运行界面如下图所示。Option ExplicitPrivate Sub Form_Load()Label1.Caption = End SubPrivate Sub Command1_Click() 加法Label1.Caption = Text3.Text = Val(Text1) + Val(Text2) End SubPrivate
22、Sub Command2_Click() Label1.Caption = Text3 = Str$(Val(Text1) - Val(Text2) End SubPrivate Sub Command3_Click() Label1.Caption = Text3 = Str$(Val(Text1) * Val(Text2) End SubPrivate Sub Command4_Click() Label1.Caption = Text3 = Str$(Val(Text1) / Val(Text2) End SubPrivate Sub Command5_Click() Text1.Tex
23、t = Text2.Text = Text3.Text = Label1.Caption = End Sub 减法 乘法 除法 清除第三章 程序设计的 3 种基本结构重点掌握的内容:InputBox(函数):使用 InputBox 函数可以建立输入对话框并返回字符型数据。MsgBox 函数与语句:MsgBox 函数产生的消息对话框可以看作是输出对话框。消息对话框能显示“错误”、“指示”、“警告”之类的简短信息以及“确定”、“取消”等按钮。详见 4.2 节。三种程序结构以及 If 条件语句、Select Case 语句、ForNext 语句、Do While Loop 语句等。能够分析阅读程序,
24、正确输出程序运行结果,能够编写简单的程序。自测与练习题一、判断题1、使用 MsgBox 函数与 MsgBox 过程均可接受用户输入数据。()2、IF 语句中的条件表达式中只能使用关系或逻辑表达式。()3、在 Select Case 情况语句中,各分支(即 Case 表达式)的先后顺序无关 。 ( )4、要实现同样的循环控制,在 Do While-Loop 和 DO-Loop While 循环结构中给定的循环条件是一样的。()5、Do-Loop While 语句实现循环时,不管条件真假,首先无条件地执行一次循环。()6、Do-Loop Until 语句实现循环时,只要条件是假,循环将一直进行下去
25、。()7、一个 Do 循环只能使用一个 Loop 关键字,但是可以使用多个 Exit 语句。()8、For 循环语句正常结束(即不是通过Exit For 语句或强制中断)其循环控制变量的值一定大于“终值”,并等于“终值”+“步长”。()9、Print 方法既可以在窗体中输出数据,又可以在图片框和立即窗口中输出数据。()参考答案:123456 789 二、选择题1、下面程序段运行后,显示的结果是。Dim As IntegerIf x Then Print x Else Print x+1(A)1(B)0(C)-1(D)显示出错信息2、下面程序段求两个数中的大数,不正确。(A)Max = Iif(
26、xy,x,y)(B) If xy Then Max = xElseMax=y(C) Max=x Ify=xThenMax =y(D) Ify=xThenMax=y Max = x3、下段程序执行的输出结果是。S=0:T=0:U=0For I=1 To 3 For J=1 To IFor K=J To 3S=S+1Next K T=T+1Next JU=U+1Next I Print S;T;U(A)3 6 14(B)1 4 6 3(C) 14 3 6(D)16 4 3参考答案:1A2D3B 三、程序阅读写出下列各段程序执行后的输出结果。1程序 1Private Sub Form_Click()
27、Dim i As Integer, j As Integer Dim k As IntegerFor I=0 To 10 Step 3 For j=1 To 10Ifj=5ThenI=I+4 :Exit For J=j+1K=k+1Next jIfI8 Then Exit ForNext I Print k EndSub程序运行后,当单击窗体之后,窗体上输出的是 。2程序 2PrivateSubForm_Click()Dim b As Integera=Val(InputBox(请输入数据 , ,100) Select Casea Mod 5CaseIs 4 w=a+10CaseIs = A
28、And c Asc(Z) Then k = k - 26 ElseIf c = a And c Asc(z) Then k = k - 26End IfText2.Text = Text2.Text + Chr(k)End Sub程序运行后,在文本框 Text1 输入“Ab,X4y5”,文本框 Text2 中显示的内容是什么?参考答案:142 413135313!uoy erawho4A5Fg,c4d5BBB CCCCC DDDDDDDEEEEEEEEE四、程序填空题 1下面的程序段是检查输入的算术表达式中圆括号是否配对,并显示相应的结果。本程序在文本框中输入表达式,边输入,边统计,以输入回车
29、作为表达式输入结束,然后显示结果。Dim count1%Private Sub Text1_KeyPress(KeyAscii As Intcger)If=( ThenCount1 =Count1+1ElselfThenEnd IfIf KeyAscii=13_ThenIfThenPrint左右括号配对ElseifThenPrint左括号多于右括号; count1; 个 ElsePrint右括号多于左括号; -count1; 个 End IfEnd If End Sub2. 输入任意长度的字符串,要求将字母顺序倒置,例如,将输入的“ABCDEFG”变换成“GFEDCBA”。Private Su
30、b Command1_Click() Dim a$,c$,d$,n%,i% a=InputBox$(输入字符串) n=For i=1 Ton C=Mid(a,i,1)Next iPrint aEnd Sub3. 下程序用辗转相除法求两自然数 m、n 的最大公约数和最小公倍数。Private Sub Form_Click()Dim m %,n%,mn% n=Val(InputBox(“n=”)m=Val(InputBox(“m=”)If n=0 OR m=0 ThenMsgBox “数据出错” :EndIf Thent=m: m=n: n=tEnd Ifr= m mod nDo While r0
31、m=n n=rLoopForm1.Print “最大公约数=”,n, Form1.Print “最小公倍数=”,mn/n,End Sub4. 某次大奖赛,有 10 个评委打分,下面的程序是对一名参赛者,输入 10 个评委的打分分数,去掉一个最高分、一个最低分后,求出平均分为该参赛者的得分。Private Sub Command1_Click() Dim mark!,aver!,max1!,min1! Aver=0For I=1 To 10Mark=Val(InputBox(输入第 & I &位评委的打分)If I=1 ThenMax1=mark: ElseIf markmax1 ThenEnd
32、 If End IfNext I Aver = Print averEnd Sub参考答案:1. Chr(KeyAscii)Chr(KeyAscii)=)Count1=Count1-1Count1=02. Len(a)d=c+da=d3. mn=m*n m0min1=mark max1=mark aver=aver+mark(aver-min1-max1)/8 五、编程题1、编程序计算:1!+2!+3!+.+10! Option ExplicitPrivate Sub Command1_Click() Dim i As Integer, j As Integer Dim sum1 As Lon
33、g, sum2 As Longsum1 = 1For i = 1 To 10sum1 = sum1 * i sum2 = sum2 + sum1Next iPrint 结果= & sum2 End Sub2、输入一公元年号,判断是否是闰年。闰年的条件是:年号能被 4 整除但不能被 100 整除,或者能被 400 整除。Option ExplicitPrivate Sub Form_Click() DimNAsIntegerN = InputBox(请输入年份, 提示框)If(N Mod 400 = 0)Or(N Mod 4 = 0 And N Mod 100 0)ThenPrint N & 年
34、是闰年ElsePrint N & 年不是闰年 End IfEnd Sub3、设计一个应用程序,要求利用 InputBox(函数)接收一周 7 天的温度, 程序进行处理后,利用 MsgBox 函数输出一周的平均温度。(设用 7 个标签显示用户输入的 7 个温度)Private Sub Command1_Click() Dim i As IntegerDim t As Single, s As Single s = 0For i = 0To6t = Val(InputBox(请输入 & 周 & (i + 1) & 温度:, 输入) Label1(i).Caption = Label1(i).Cap
35、tion & t & 度s = s + t Next is = s / 7Print 七天的平均温度是: & s & 度 End Sub4、规范整理英语文章,即对输入的任意大小写英语文章进行整理。要求: 句子开头应为大写字母(句子以符号“ ?”、“.”和“!”作为结束符的), 其它都是小写字母。Option ExplicitDim Pre As Long存放当前处理字符的前一个字符Private Sub Form_Load()Pre = 46初始状态为“.”End SubPrivate Sub Text1_KeyPress(KeyAscii As Integer)Dim ch As Strin
36、g ch = Chr(KeyAscii)If (Pre = 46 Or Pre = 63 Or Pre = 33 Or Pre = 13) And ch = a And ch = zThen前一个字符是”.”或”!” 或”?” 或回车KeyAscii = KeyAscii - 32 End IfIf KeyAscii 32 Then Pre = KeyAscii当前处理字符不是空格End Sub第四章数组重点掌握的内容:一、数组的定义:数组必须先定义后使用例如:DimA(1to10)As Integer DimB(10)As double定义后数组 A 有 10 元素,分别为A(1),A(2)
37、,A(10);数组B 的元素个数由系统的下标缺省值来决定,若没有 Option Base 语句或使用 Option Base 0,则 B 的元素个数为 11,即 B(0),B(1),B(10);若使用 Option Base 1 则B 的元素个数为 10,即 B(1),B(10)。二、定长数组的定义:数组定义时指定了大小,占用的内存大小是固定不变的数组称为定长数组,如上例数组 A、数组 B。三、动态数组的定义:例如 DimC() As Integer,声明了 C 是一个动态数组,在使用 C 数组前,必须用 ReDim 语句定义它的大小,例如 ReDimC(5)。用 ReDim 语句可以使用 P
38、reserve 参数保留数组中原有的数据。例如:DimC()ReDimC(5):C(1)=20: ReDimPreserve C(10) 自测与练习题一、判断题1、在使用 ReDim 重定义动态数组时的下标可以用变量来表示。()2、使用 ReDim 语句既可以改变数组的大小,也可以改变数组类型。()3、若要使定义数组下标下界缺省值时,下界值为 2,则可用语句OptionBase 2。()4、在 VB 中,用 DIM 定义数组时,数组元素也自动赋初值为0。()5、数组在内存中占据一片连续的存储空间。() 参考答案:12345 二、选择题以下程序输出的结果是。Dim a, i%a=array(1,
39、2,3,4,5,6,7)For i =Lbound(a)to Ubound(a) a(i)=a(i) *a(i)next i print a(i)(A) 49(B)0(C) 不确定序出错以下程序输出的结果是。Option Base 1Private Sub Command1_Click()(D) 程Dim a%(3,3), i%, j%For i=1 to 3for j=1 to 3 If j1 and i1 thena(i,j)=a(a(i-1,j-1),a(i,j-1)+1Elsea(i,j)=i*jEnd ifPrint a(I,j);” ”; Next jPrint Next I End Sub(A) 123(B)123231123323123(