VB复习 §1、VB的特点、运行环境、对象、属性、方法、事件各概念,尤其是方法和事件的区分。 熟悉VB的IDE,VB开发应用程序的一般步骤。 特点:GUI(集成开发环境)、OLE(对象的连接和嵌入)、OOP(面向对象); 运行环境:Windows(VB5.0以上在32位操作系统) 方法:对象可以执行的动作或行为;(主动性) 事件:使某个对象进入活动状态的一种操作或动作。(被动性) 例题: 1、VB的使用目的是( )。 A. 开发Windows应用程序 B.图象处理 C.制作WAV文件 D.文字处理 2、一个对象可以执行的动作和可被对象识别的动作分别称为( )。 A.方法、事件 B.事件、方法 C.方法、属性 D.事件、属性 3、一只白色的足球被踢进球门,则白色、足球、踢、进球门是( )。 A. 属性、对象、方法、事件 B.属性、对象、事件、方法 C.对象、属性、方法、事件 D.对象、属性、事件、方法 §2、熟练应用窗体、控件。掌握窗体的常用方法(Hide、Show、Print、Cls、Refresh、Move)、属性和事件(Load、Activate、Click)。 Load事件、Unload事件、End语句 常用控件:CommandButton(Default、Cancel、Enabled、Style、 DisabledPicture、DownPicture)、Label(AutoSize)、TextBox(Alignment、MaxLength、PasswordChar、Multiline、ScrollBars注:Multiline=True)、OptionButton(Value)、ListBox(属性:list\listcount\listindex\selected、方法:AddItem、RemoveItem、Clear)、ComboBox(P27)、HscrollBar、VscrollBar(min、Max、Value)、PictureBox(print方法)、Timer(运行时不可见、只有Timer事件、Interval)方法、属性、事件的掌握。 容器控件:Form、Picture、Frame 特殊控件:菜单的使用(只响应Click事件) 1、以下窗体名中哪些是非法的窗体名( )。 对象名命名规则:以字母或汉字开头,后面可以是字母、数字、下划线、汉字。(变量名类似) A._aform B.3frm C.f_1 D.frm 5 E.f_1* 2、一个名称为myfrm,标题属性为form1的窗体,它的单击事件名应为( )。 A. myfrm_click B.form1_click C.form_click D.me_click 3、执行下面语句:print “5*20” 的结果是( )。 A.“5*20” B.出现错误信息 C.5*20 D.100 4、下列语句代码哪一些可正常执行(正常执行是指系统不给出出错提示); A、Print 32765 + 3 B、Print 5 + 7 = 14 C、Print 256 / 128 D、Print "14" + 12 E、Print "14" & 12 5、以下使用方法的代码中,正确的是( )。 A、Label1.Setfocus B、Form1.Clear C、Text1.SetFocus D、Combo1.Cls 6、在程序中可以通过复选框和单选按钮的( )属性值来判断他们的当前状态。 A. Caption B.Value C.Checked D.Selected 7、将复选框的Value属性设为"2",其效果与把它的Enabled属性设为"False"有何异同?若把一个控件的Visible属性设为"False",意味着什么? 8、当用户单击命令按钮时,( )属性可以使得命令按钮对激发事件无效。 A. Name B.Enabled C.Default D.Cancel 9、在文本框Text1和Text2中分别输入35与48,变量S与X分别为字符型与整型,以下赋值语句的执行结果是什么? s = Text1.Text + Text2.Text x = Text1.Text + Text2.Text s = Text1.Text & Text2.Text x = Text1.Text & Text2.Text s = Val(Text1.Text) + Text2.Text x = Val(Text1.Text) + Text2.Text s = Val(Text1.Text) & Text2.Text x = Val(Text1.Text) & Text2.Text §6、错误类型:语法、运行、逻辑;调试工具:“本地”、“监视”、“立即”窗口的功能? 1、下列错误中,哪个在输入代码时系统能够提示( )。 A. 语法错误 B.编译错误 C.运行错误 D.逻辑错误
窗体事件过程
通用过程 Function函数过程 Property属性过程
模块 标准模块 .bas 类模块 .cls 1、下列模块中哪个是一个工程必须具备的( )。 A. 窗体模块 B.标准模块 C.类模块 D.用户自定义模块 2 语言基础 一、 书写规范:":"间隔符号、续行符号" _"、注释符号"’" 二、 数据:数据类型、关键字、存储单位、初值。
字符常量 "" 命名规则 局部 Dim/Static 常量 逻辑常量 变量 作用域 窗体/模块 Dim/Private 日期常量 #月/日/年# 全局(共有)Public 符号常量: Const关键字 说明语句 Dim a As Single 例如:1、在窗体或标准模块的通用声明处可以用_______语句定义变量。 A. Dim、Redim B. Dim、Static C. Dim、Private、Public D. Dim、Private、Static 注意:在窗体和类模块中,不能将定长字符串、符号常量、数组用Public来定义。 隐式说明的六个符号:%、&、!、#、@、$ 例:m1&=5*x%\3+x% mod y% 和 m1&="5*x%\3+x% mod y%"的正确性 Option Explicit 语句功能:强制变量的声明 例题: 1、下列字符串中( )是合法变量 A.char_1,student,no,a1234 B.exp,123a,x*y C.x\y,x>y D.end,lbcx 三、 运算符与表达式 算术 ^→-(负号)→*、/→\→Mod→+、-→&
关系 逻辑 Not→And→Or→Xor 注意:代数表达式与VB表达式的转换。 例如:ex+y+|x+y|
四、 VB公共函数 算术:Sqr、Log、Exp、Abs、Rnd、Sin、Cos 字符:Len、left、Right、Mid、Ucase、Lcase、Ltrim、Rtrim、Trim、Instr、String、Space 转换:Str、Val、Chr、Asc、Int、Cint 日期:Date、Time、Now、Year、Month、Day、Week、Day 例如: 1、设s1,s2均为字符串变量,s1=”Visual Basic”,s2=”b”,则下面关系表达式中结果为True的是( )。 A.Mid(s1,8,1)>s2 B.Len(s1)<>2*Instr(s1,”l”) C.Chr(66) & Right(s1,4)=”Basic” D.Instr(Left(s1,6),”a”)+60>Asc(Ucase(s2)) 2、求出下列表达式的运算结果; A.Mid("visual basic", 1, 12) = Right("Programming language visual basic", 12) B. "ABCRG" >= "abcde" C. Int(134.69) >= CInt(134.69) D. 78.9 / 32.77 <= 97.5 / 43.87 And -45.4 > -4.98 E. Str(32.345) = CStr(32.345) 3、VB只有求自然对数的函数Log(x),如果计算式中需要使用常用对数或以2为底的对数,应如何处理?(使用换底公式) ---------------------------------------------------------------------- §4、算法概述 算法特征:确定、可行、有穷、输入、输出
① 分支结构 1、If e then A If e then 等价于 A
例如:1、if 语句: Private Sub Form_Click() Dim x As Integer, y As Integer Dim z As Single x = 0.2 y = 1 If (x >= 1) Then z = Log(x) ElseIf x >= 0 And x < 1 And y >= 0 Then z = 2 * x - y Else z = Exp(x + y) End If Print "z=" + Str(z) End Sub 结果: z=-1 2、Select Case语句 Private Sub Form_Click() Dim ch As String, i As Integer ch = "c" Select Case ch Case "A", "a" i = 1 Case "B", "b" i = 2 Case "C", "c" i = 3 Case "D", "d" i = 4 Case Else i = 5 End Select Print "运行结果" + Ucase(ch) + Str(i) End Sub 结果:运行结果C3 ② 循环结构 1、For------Next (循环次数的计算) 特例: 例如:有循环:for I=n1 to n2 step n3 下列哪些语句会影响循环次数( ) A. n1=n1+I B. n3=2*n3
C. n2=n2+n3 D. I=I+n3 2、Do------Loop (While,Until) 例如:运行下面的程序,单击窗体后在窗体上的内容是( );若将程序中的A语句与B语句的位置互换,再次执行程序,单击窗体后在窗体上显示的内容是( ) Private Sub Form_Click() Dim a As Integer, b As Integer a = 0: b = 0 Do While a <= 8 a = a + 2 'A语句 b = b + a * a 'B语句 Loop Print a, b End Sub 例如:窗体上显示的结果: Private Sub Form_Click() Dim p As Integer, i As Integer, n As Integer p = 2: n = 20 For i = 1 To n Step p p = p + 2 n = n - 3 i = i + 1 If p >= 10 Then Exit For Next i Print i, p, n End Sub 五、 InputBox函数 MsgBox函数 (注意参数含义及顺序) x=InputBox(_____,______,_______) 写出显示下图信息框的MsgBox函数 §5、数组 1、数组的上、下界:Ubound()、Lbound() 2、数组的大小的计算、数组的结构:(二维数组:以列存放) 3、Erase语句:重新初始化静态数组的元素、或释放动态数组的存储空间。 4、For Each –Next结构语句 5、用Array函数给数组赋值(只能给Variant类型的变量赋值) 6、控件数组(load/Unload Object(Index))
数组分类: 固定大小数组 Option Base语句功能
例如: n数组重点算法: n一数组,求其中最大和最小;n对一数组排序(选择法、冒泡法、直接排序法) n在一数组中查找指定的数(顺序、二分查找);n删除一数组中重复的数 2、在窗体模块的通用声明处用下面的语句声明变量、数组、正确语句有( )个。 A.Public a(5) as integer B.Public n as integer
C.Public st as string*10 D.Private b() as integer 3、下列语句中的( )语句可以用来正确地声明一个动态数组。 A.Private A(n) as integer B.Dim A() as integer C.Dim A(,) as integer D.Dim a(1 to n) 4、下列关于数组的说法中正确的是( )。 A.在过程中,不能用private语句定义数组 B.利用Redim语句重新定维时,不得改变已经说明过的数组的数据类型。 C.数组重新定维后,原有的数据元素内容将不予保留 5、过程的形参为数组时,以下定义语句中正确的是( )。 A.private sub sort(a() as integer) B.private sub sort(a(10) as integer) C.private sub sort(a(,) as integer) D.private sub sort(byval a() as integer) 6、某过程的说明语句中,正确的数组说明语句是______。 Const N As Integer=4 : Dim L As Integer ① Dim x(L) As Integer ② Dim A(K) As Integer Const K As Integer=3 ③ Dim B(N) As Integer ④ Dim Y(2000 To 2008) As Integer A. ①②④ B.①③④ C.③④ D.②③
子过程 函 数 注意: F按值传递参数 形参和实参的类型不一定要统一,VB自动进行数据的转换。 –例如:Private Sub Form_Click() Dim a As String : a = 2 Call sub1(a) Print a End Sub Private Sub sub1(ByVal b As Integer) b = b + 1 : Print b End Sub F按地址传递参数 –当实参是变量时:如果形参规定了类型,则实参必须跟形参保持一致 如果形参没有规定类型,则VB按要求进行数据类型转换
–当实参是常量或表达式时: VB自动用“按值传递”的方式进行处理,如果数据类型不统一,VB自动进行数据转换
例如:1、在应用程序中用“Private function Fun(X as integer,Y as single)”定义了函数Fun。调用函数Fun的过程中的变量I、J均为Integer型,能正确引用函数Fun的是( ) A.Fun(I,J) B.Call Fun(I,3.56) C.Fun(3.14,234) D.Fun("245","231.5") 2.程序中的不同过程之间,不能通过_________进行数据传递。 ①全局变量 ②窗体或模块级变量 ③形参与实参结合 ④静态变量 A. ①②④ B. ①②③ C.②④ D.④ 二级考试必考题型:(课后习题) 传值 传地址 Static变量 同名变量 递归过程 例如: 1、以下有关变量作用域的说法中,错误的是( ) A. 只有在标准模块中用public语句说明的变量才是全局变量 B. 在过程中不能使用public语句说明全局变量 C. 在标准模块的通用声明处可用private语句说明模块级变量 D. 在窗体的通用声明处可用private语句说明窗体级变量 2.一个名为frm1的窗体,在窗体通用声明处和过程sub1中分别定义:public k as integer、dim k as integer如何在sub1中访问全局变量k( ) A.frm1.k B.form.k C.form1.k D.k 例:阅读程序,给出输出结果: (1)字符串处理(数组参数) Option Base 1 Private Sub Form_Click() Dim st As String, char As String Dim data() As String, i As Integer, j As Integer st = "10281018123811181038" For i = 1 To Len(st) If Mid(st, i, 1) <> "8" Then char = char & Mid(st, i, 1) Else j = j + 1 ReDim Preserve data(j) data(j) = char char = "" End If Next i Call conver(data, char) Print char End Sub Private Sub conver(a() As String, ch As String) Dim i As Integer, j As Integer Dim n As Integer, dec As Integer For i = 1 To UBound(a) n = Len(a(i)) For j = 1 To n dec = dec + Val(Mid(a(i), j, 1) * 8 ^ (n - j)) Next j ch = ch & Chr(dec) dec = 0 Next i End Sub (2)static变量 Private Sub Command1_Click() Dim n As Integer, i As Integer n = 2 For i = 9 To 1 Step -1 Call sub2(i, n) Print i, n Next i End Sub Private Sub sub2(x As Integer, y As Integer) Static n As Integer Dim i As Integer For i = 3 To 1 Step -1 n = n + x x = x - 1 Next i y = y + n End Sub (3) 递归 Private Sub Command1_Click() Dim a As Integer a = 2 Call sub1(a) End Sub Private Sub sub1(x As Integer) x = x * 2 + 1 If x < 10 Then Call sub1(x) End If x = x * 2 + 1 Print x End Sub (4)递归 Private Sub test(x As Integer) Dim i As Integer If x <> 0 Then Call test(x - 1) For i = 1 To x Print x; Next i Print End If End Sub Private Sub Form_Click() test 3 End Sub
(5)同名变量 Dim y As Integer Private Sub Form_Click() Dim x As Integer,y as integer x=1 : y=1 Print "x1=";x, "y1=";y Test Print "x4=";x, "y4=";y End Sub Private Sub Test() Dim x As Integer Print "x2=";x, "y2=";y x=2 : y=3 Print "x3=";x,"y3=";y End Sub 特例: 1、运行程序在窗体显示的结果是: Private Sub Form_Click() Dim a As Integer, b As Integer a = 3: b = 4 Call sub1(a, a) Print a, b Call sub1(b, b) Print a, b End Sub Private Sub sub1(x As Integer, y As Integer) x = x + 2 y = x + y End Sub 2、运行程序单击窗体,在窗体上显示的内容是:16 20 Private Sub Form_Click() Dim n As Integer, m As Integer n = 1: m = 2 Print n + m + f(n, m) ; '优先执行f函数,n,m变化后再运算 “+” n = 2: m = 1 Print f(n, m) + f(m, n) 'n,m第一次变化后,第二次以变化后的值再调用 End Sub Private Function f(n As Integer, m As Integer) n = n + m m = m + 3 f = n + m End Function 3、执行下面的程序,在窗体上显示的输出结果是______;如果将A语句改成:Call sub1(b+1,a),则在窗体上显示的输出结果是______。 Private Sub Form_Click() Dim a As Integer, b As Integer a = 1: b = 2 Call sub1(a, b) 'A Print a, b End Sub Private Sub sub1(x As Integer, ByVal y As Integer) x = x + y y = x + y End Sub §7、文件管理控件 文件处理 顺序文件和随机文件的打开(open)语句,EOF函数,读写语句。 do while not eof(1) do until eof(1) print #1, write #1, input #1,a,b,c line input #1,s input(#1,100) get #1,a put #1,”af” 打开方式: 顺序文件Open "文件路径+文件名(包括文件后缀)" For Output As #1-511 Open "文件路径+文件名(包括文件后缀)" For Append As #1-511 Open "文件路径+文件名(包括文件后缀)"For Input As #1-511 随机文件:Open "文件路径+文件名(包括文件后缀)"For Random As #1-511 Open语句打开文件的注意: 1.如果以Output、Append、Random、Binary模式打开一个不存在的文件时,VB自动创建一个相应文件; 2.在Input Random Binary模式下,可以用不同的文件号打开同一文件,但Output Append方式不可以; 3.所有当前使用的文件号必须是唯一的; 4.如果以Output模式打开一个已存在的文件,即使没有进行写操作原来数据也将被覆盖。 Close语句注意:(Reset) 1.直接使用 Close语句(缺省文件号),则所有用Open语句打开的活动文件都被关闭; 2.当程序结束时,所有打开的文件自动被关闭。 Lock和Unlock语句注意: 1.对于二进制文件,Lock和Unlock的是字节范围; 2.对于随机文件,Lock和Unlock的是记录范围; 3.对于顺序文件,Lock和Unlock的是整个文件,即使指明范围也不起作用; 4.缺省情况下Lock和Unlock的范围是整个文件; 5.Lock和Unlock总是成对使用。 特别注意:在关闭文件或结束程序之前,必须用Unlock语句对先前锁定的文件解锁,否则会产生难以预料的错误。 1.要对顺序文件进行写操作,下列打开文件语句中正确的是( )。 Open "file1.txt" for output as #1 Open "file1.txt" for input as #1
Open "file1.txt" for Random as #1 Open "file1.txt" for binary as #1 2.在VB中文件访问的类型有( )。 A.顺序、随机、二进制 B.顺序、随机、字符 A. 顺序、十六进制、随机 D.顺序、记录、字符 例如:将文件Data1中的无序数据和Data2中的有序数据插入到Data3中,要求:Data3中的数据必须也是排好序。请填写空白处以实现该题功能。 Private Sub Form_Click() Dim a() As Integer, b() As Integer Dim k As Integer, i As Integer Open "e:\data1.txt" For Input As #2 Open "e:\data2.txt" For Input As #3 Do While Not EOF(2) k = k + 1 ReDim Preserve a(k) Input #2, a(k) Loop _______k=0______________________ Do While Not EOF(3) k = k + 1 ReDim Preserve b(k) Input #3, b(k) Loop Call insert(a, b) Open "e:\data3.txt" For Output As #4 _k=ubound(b)____________________________ For i = 1 To k Print #4, b(i) Next i Close End Sub Private Sub insert(a() As Integer, b() As Integer) Dim m As Integer, i As Integer Dim n As Integer, j As Integer m = UBound(a): n = UBound(b) _redim preserve b(m+n)_______________________ i = 0 Do While i < m i = i + 1 j = n Do While j >= 1 And a(i) < b(j) If a(i) < b(j) Then ___b(j+1)=b(j)_______________________ j = j - 1 Else Exit Do End If Loop __b(j+1)=a(i)___________________________ n = n + 1 Loop End Sub §9.鼠标方法、文本、图形及多媒体处理 (1)常用鼠标方法(MouseDown, MouseUp,MouseMove) 例如:在Form_Click事件中执行如下语句的正确结果是( )。 Print Format(1236.54,“+##,##0.0%”) A.123456 B.+123,654.0% C.+123,6.54% D.+123,654 §10.数据库 1.计算机数据管理的三阶段: 人工管理—>文件管理—>数据库管理 2.数据模型: 层次模型(树型结构)—>网络模型(无向图形)—>关系模型(二维关系表) 3.数据控件(Data)的重要属性: Conncet:确定数据访问类型(Access(缺省值)\dbase\Foxpro) DatabaseName:确定数据控件使用的数据库 Access表包含“.mdb”的文件中,该属性值就是:.mdb dbase\Foxpro数据库时,该属性值是:包含数据库文件的路径 RecordSource:确定访问数据表的名称 4.常用的绑定控件:标签、文本框、检查框、组合框、列表框、图片框、图象控件、DBCombo、Dblist、DBGrid 常用属性: DataSource:指定一个数据控件(Data控件) DataField:指定显示的数据表的哪一字段。 |
|