版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第二章 文件管理控件1、驱动器列表框常用属性基本属性Name、Left、Top、Height、Width、Visible、Enabled等特有属性:Drive属性,设置或返回所选择的驱动器名。格式:名称.Drive=驱动器名常用事件Change事件:每次重新设置Drive属性,都会引发Change事件。驱动器列表框的默认名称为Drive1,其Chang事件过程的开头为Drive1_Change()。2、目录列表框显示当前驱动器上的目录结构及当前目录下所有子目录。供用户选择其中的某个目录作为当前目录。在目录列表框中,双击某个目录,就会显示该目录下的所有目录目录列表框中只能显示当前驱动器上的目录。
2、如果要显示其他驱动器上的目录,必须改变路径,即重新设置目录列表框的Path属性。基本属性Name,Left/Top,Height/Width,Visible,Enabled等特有属性:Path属性,只在代码中设置,不能在属性窗口中设置格式:对象.Path="路径名"功能:设置或返回当前驱动器路径,适用于目录列表框和文件列表框.常用事件目录列表框的Path属性值改变时,将引发Change事件。文件列表框的Path属性改变时,将引发Change事件。驱动器列表框和目录列表框必须同步一般,改变驱动器列表框中的驱动器名后,目录列表框中的目录应当随之变为该驱动器上的目录,也就是使驱动
3、器列表框和目录列表框必须产生同步效果。3、文件列表框()常用属性Pattern属性格式:窗体.文件列表框名.Pattern=Value 功能: 设置在执行时要显示的某一种类型的文件。常用属性属性:在设计状态不能使用。格式:窗体.文件列表框名.=文件名 功能:在文件列表框中设置或返回被选定文件的名称和路径ListCount属性:只能在代码中使用,不能在属性窗口中设置格式:窗体.控件.ListCount 功能:返回控件内所列项目的总数。 常用属性ListIndex属性:只能在代码中使用格式:窗体.控件.ListIndex=索引值 功能:设置或返回当前控件上所选项目的“索引值”(即下标)List属性
4、格式:窗体.控件.List(索引)=字符串表达式 功能:在List属性中存有文件列表框中所有项目的数组,可用来设置或返回各种列表框中的某一项目。驱动器、目录及文件列表框的同步通过Path属性的改变引发Change事件来实现同步。例如:Sub Dir1_Change()End Sub该事件过程使窗体上的目录列表框Dir1和文件列 表框File1产生同步。例如:Private Sub Drive1_Change()Dir1.Path=Drive1.DriveEnd Sub该过程使驱动器列表框和目录列表框同步。在“部件”对话框中通过选中“Microsoft Common Dialog Control
5、 6.0” ,添加通用对话框控件。在窗体上绘制的通用对话框不能改变大小,运行时控件被隐藏,可设置不同Action属性值和使用不同方法决定对话框类型。 Action属性只能在程序中赋值,而不能在属性窗口进行设置。通用对话框的其他共同属性有:CancelError 属性设为True时,单击“取消”按钮关闭对话框时显示出错信息;设为False时,不显示出错信息。 DialogTitle 属性设置对话框标题栏所显示的字符串。 Flags属性:修改通用对话框的每个具体对话框的默认设置§1、VB的特点、运行环境、对象、属性、方法、事件各概念,尤其是方法和事件的区分。熟悉VB的IDE,VB开发应用
6、程序的一般步骤。特点:GUI(集成开发环境)、OLE(对象的连接和嵌入)、OOP(面向对象);运行环境:Windows(VB5.0以上在32位操作系统)方法:对象可以执行的动作或行为;(主动性)事件:使某个对象进入活动状态的一种操作或动作。(被动性)例题:1、VB的使用目的是( )。A. 开发Windows应用程序 B.图象处理C.制作WAV文件 D.文字处理2、一个对象可以执行的动作和可被对象识别的动作分别称为( )。A.方法、事件 B.事件、方法 C.方法、属性 D.事件、属性3、一只白色的足球被踢进球门,则白色、足球、踢、进球门是( )。A. 属性、对象、方法、事件 B.属性、对象、事件
7、、方法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注:Mult
8、iline=True)、OptionButton(Value)、ListBox(属性:listlistcountlistindexselected、方法:AddItem、RemoveItem、Clear)、ComboBox(P27)、HscrollBar、VscrollBar(min、Max、Value)、PictureBox(print方法)、Timer(运行时不可见、只有Timer事件、Interval)方法、属性、事件的掌握。容器控件:Form、Picture、Frame 特殊控件:菜单的使用(只响应Click事件)1、以下窗体名中哪些是非法的窗体名( )。对象名命名规则:以字母或汉字开
9、头,后面可以是字母、数字、下划线、汉字。(变量名类似)A._aform B.3frm C.f_1 D.frm 5 E.f_1*2、一个名称为myfrm,标题属性为form1的窗体,它的单击事件名应为( )。A. myfrm_click B.form1_clickC.form_click D.me_click3、执行下面语句:print “5*20” 的结果是( )。A.“5*20” B.出现错误信息 C.5*20 D.1004、下列语句代码哪一些可正常执行(正常执行是指系统不给出出错提示);A、Print 32765 + 3 B、Print 5 + 7 = 14C、Print 256 / 12
10、8 D、Print "14" + 12 E、Print "14" & 125、以下使用方法的代码中,正确的是( )。A、Label1.Setfocus B、Form1.ClearC、Text1.SetFocus D、Combo1.Cls6、在程序中可以通过复选框和单选按钮的( )属性值来判断他们的当前状态。A. Caption B.Value C.Checked D.Selected7、将复选框的Value属性设为"2",其效果与把它的Enabled属性设为"False"有何异同?若把一个控件的Visibl
11、e属性设为"False",意味着什么?8、当用户单击命令按钮时,( )属性可以使得命令按钮对激发事件无效。A. Name B.Enabled C.Default D.Cancel9、在文本框Text1和Text2中分别输入35与48,变量S与X分别为字符型与整型,以下赋值语句的执行结果是什么?s = Text1.Text + Text2.Text x = Text1.Text + Text2.Texts = Text1.Text & Text2.Text x = Text1.Text & Text2.Texts = Val(Text1.Text) + Tex
12、t2.Textx = Val(Text1.Text) + Text2.Texts = Val(Text1.Text) & Text2.Textx = Val(Text1.Text) & Text2.Text- 1、下列模块中哪个是一个工程必须具备的( )。A. 窗体模块 B.标准模块 C.类模块 D.用户自定义模块2 语言基础一、 书写规范:":"间隔符号、续行符号" _"、注释符号""二、 数据:数据类型、关键字、存储单位、初值。数值常量 &O (8) &H(16)字符常量 "&q
13、uot; 命名规则 局部 Dim/Static常量 逻辑常量 变量 作用域 窗体/模块 Dim/Private日期常量 #月/日/年# 全局(共有)Public 例如:1、在窗体或标准模块的通用声明处可以用_语句定义变量。A. Dim、Redim B. Dim、StaticC. Dim、Private、Public D. Dim、Private、Static注意:在窗体和类模块中,不能将定长字符串、符号常量、数组用Public来定义。隐式说明的六个符号:%、&、!、#、$例:m1&=5*x%3+x% mod y% 和 m1&
14、="5*x%3+x% mod y%"的正确性Option Explicit 语句功能:强制变量的声明例题:1、下列字符串中( )是合法变量A.char_1,student,no,a1234 B.exp,123a,x*yC.xy,x>y D.end,lbcx 四、 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、Y
15、ear、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 la
16、nguage 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.98E. Str(32.345) = CStr(32.345)3、VB只有求自然对数的函数Log(x),如果计算式中需要使用常用对数或以2为底的对数,应如何处理?(使用换底公式) 例如:1、if 语句:Private Sub Form_Click()Dim
17、 x As Integer, y As IntegerDim z As Singlex = 0.2y = 1If (x >= 1) Thenz = Log(x)ElseIf x >= 0 And x < 1 And y >= 0 Thenz = 2 * x - yElsez = Exp(x + y)End IfPrint "z=" + Str(z)End Sub结果: z=-12、Select Case语句Private Sub Form_Click()Dim ch As String, i As Integerch = "c"S
18、elect Case chCase "A", "a"i = 1Case "B", "b"i = 2Case "C", "c"i = 3Case "D", "d"i = 4Case Elsei = 5End SelectPrint "运行结果" + Ucase(ch) + Str(i)End Sub结果:运行结果C3 循环结构1、For-Next (循环次数的计算)特例: 例如:有循环:for I=n1 to
19、 n2 step n3 下列哪些语句会影响循环次数( )A. n1=n1+IB. n3=2*n3C. n2=n2+n3D. I=I+n32、Do-Loop (While,Until)例如:运行下面的程序,单击窗体后在窗体上的内容是( );若将程序中的A语句与B语句的位置互换,再次执行程序,单击窗体后在窗体上显示的内容是( )Private Sub Form_Click()Dim a As Integer, b As Integera = 0: b = 0Do While a <= 8a = a + 2 'A语句b = b + a * a 'B语句LoopPrint a,
20、bEnd Sub例如:窗体上显示的结果:Private Sub Form_Click()Dim p As Integer, i As Integer, n As Integerp = 2: n = 20For i = 1 To n Step pp = p + 2n = n - 3i = i + 1If p >= 10 Then Exit ForNext iPrint i, p, nEnd Sub一、 InputBox函数MsgBox函数 (注意参数含义及顺序) x=InputBox(_,_,_)写出显示下图信息框的MsgBox函数 §5、数组1、数组的上、下
21、界:Ubound()、Lbound() 2、数组的大小的计算、数组的结构:(二维数组:以列存放) 3、Erase语句:重新初始化静态数组的元素、或释放动态数组的存储空间。 4、For Each Next结构语句 5、用Array函数给数组赋值(只能给Variant类型的变量赋值) 6、控件数组(load/Unload Object(Index)动态数组 (Redim语句)数组分类:固定大小数组 Option Base语句功能Preserve语句功能例如: n数组重点算法:n一数组,求其中最大和最小;n对一数组排序(选择法、冒泡法、直接排序法)n在一数组中查找指定的数(顺序、二分查找)
22、;n删除一数组中重复的数2、在窗体模块的通用声明处用下面的语句声明变量、数组、正确语句有( )个。A.Public a(5) as integer B.Public n as integerC.Public st as string*10 D.Private b() as integer3、下列语句中的( )语句可以用来正确地声明一个动态数组。A.Private A(n) as integer B.Dim A() as integerC.Dim A(,) as integer D.Dim a(1 to n)4、下列关于数组的说法中正确的是( )。A.在过程中,不能用private语句定义数组B
23、.利用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(
24、L) As Integer Dim A(K) As IntegerConst K As Integer=3 Dim B(N) As Integer Dim Y(2000 To 2008) As IntegerA. B. C. D.§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 &q
25、uot;文件路径+文件名(包括文件后缀)" For Output As #1-511Open "文件路径+文件名(包括文件后缀)" For Append As #1-511Open "文件路径+文件名(包括文件后缀)"For Input As #1-511随机文件:Open "文件路径+文件名(包括文件后缀)"For Random As #1-511二进制文件:Open "文件路径+文件名(包括文件后缀)"For Binary As #1-511Open语句打开文件的注意:1.如果以Output、Appe
26、nd、Random、Binary模式打开一个不存在的文件时,VB自动创建一个相应文件;2.在Input Random Binary模式下,可以用不同的文件号打开同一文件,但Output Append方式不可以;3.所有当前使用的文件号必须是唯一的;4.如果以Output模式打开一个已存在的文件,即使没有进行写操作原来数据也将被覆盖。Close语句注意:(Reset)1.直接使用 Close语句(缺省文件号),则所有用Open语句打开的活动文件都被关闭;2.当程序结束时,所有打开的文件自动被关闭。Lock和Unlock语句注意:1.对于二进制文件,Lock和Unlock的是字节范围;2.对于随机
27、文件,Lock和Unlock的是记录范围;3.对于顺序文件,Lock和Unlock的是整个文件,即使指明范围也不起作用;4.缺省情况下Lock和Unlock的范围是整个文件;5.Lock和Unlock总是成对使用。特别注意:在关闭文件或结束程序之前,必须用Unlock语句对先前锁定的文件解锁,否则会产生难以预料的错误。1.要对顺序文件进行写操作,下列打开文件语句中正确的是( )。Open "" for output as #1Open "" for input as #1Open "" for Random as #1Open &qu
28、ot;" for binary as #12.在VB中文件访问的类型有( )。A.顺序、随机、二进制 B.顺序、随机、字符A. 顺序、十六进制、随机 D.顺序、记录、字符例如:将文件Data1中的无序数据和Data2中的有序数据插入到Data3中,要求:Data3中的数据必须也是排好序。请填写空白处以实现该题功能。Private Sub Form_Click()Dim a() As Integer, b() As IntegerDim k As Integer, i As IntegerOpen "e:data1.txt" For Input As #2Open
29、"e:data2.txt" For Input As #3Do While Not EOF(2)k = k + 1ReDim Preserve a(k)Input #2, a(k)Loop_k=0_Do While Not EOF(3)k = k + 1ReDim Preserve b(k)Input #3, b(k)LoopCall insert(a, b)Open "e:data3.txt" For Output As #4_k=ubound(b)_For i = 1 To kPrint #4, b(i)Next iCloseEnd SubPriva
30、te Sub insert(a() As Integer, b() As Integer)Dim m As Integer, i As IntegerDim n As Integer, j As Integerm = UBound(a): n = UBound(b)_redim preserve b(m+n)_i = 0Do While i < mi = i + 1j = nDo While j >= 1 And a(i) < b(j)If a(i) < b(j) Then_b(j+1)=b(j)_j = j - 1ElseExit DoEnd IfLoop_b(j+1
31、)=a(i)_n = n + 1LoopEnd Sub 注意:F按值传递参数形参和实参的类型不一定要统一,VB自动进行数据的转换。例如:Private Sub Form_Click()Dim a As String : a = 2Call sub1(a)Print aEnd SubPrivate Sub sub1(ByVal b As Integer)b = b + 1 : Print bEnd SubF按地址传递参数当实参是变量时:如果形参规定了类型,则实参必须跟形参保持一致如果形参没有规定类型,则VB按要求进行数据类型转换当实参是常量或表达式时:VB自动用“按值传递”的方式进行处
32、理,如果数据类型不统一,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.二级考试必考题型:(课后习题)传值
33、传地址 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例:阅读程序,给出输出结果:
34、(1)字符串处理(数组参数)Option Base 1Private Sub Form_Click()Dim st As String, char As StringDim data() As String, i As Integer, j As Integerst = "111181038"For i = 1 To Len(st)If Mid(st, i, 1) <> "8" Thenchar = char & Mid(st, i, 1)Elsej = j + 1ReDim Preserve data(j)data(j) = cha
35、rchar = ""End IfNext iCall conver(data, char)Print charEnd SubPrivate Sub conver(a() As String, ch As String)Dim i As Integer, j As IntegerDim n As Integer, dec As IntegerFor i = 1 To UBound(a)n = Len(a(i)For j = 1 To ndec = dec + Val(Mid(a(i), j, 1) * 8 (n - j)Next jch = ch & Chr(dec)
36、dec = 0Next iEnd Sub(2)static变量Private Sub Command1_Click()Dim n As Integer, i As Integern = 2For i = 9 To 1 Step -1Call sub2(i, n)Print i, nNext iEnd SubPrivate Sub sub2(x As Integer, y As Integer)Static n As IntegerDim i As IntegerFor i = 3 To 1 Step -1n = n + xx = x - 1Next iy = y + nEnd Sub(3) 递
37、归Private Sub Command1_Click()Dim a As Integera = 2Call sub1(a)End SubPrivate Sub sub1(x As Integer)x = x * 2 + 1If x < 10 ThenCall sub1(x)End Ifx = x * 2 + 1Print xEnd Sub(4)递归Private Sub test(x As Integer)Dim i As IntegerIf x <> 0 ThenCall test(x - 1)For i = 1 To xPrint x;Next iPrintEnd If
38、End SubPrivate Sub Form_Click()test 3End Sub(5)同名变量Dim y As IntegerPrivate Sub Form_Click()Dim x As Integer,y as integerx=1 : y=1Print "x1="x, "y1="yTestPrint "x4="x, "y4="yEnd SubPrivate Sub Test()Dim x As IntegerPrint "x2="x, "y2="yx=2 : y=3Print "x3="x,"y3="yEnd Sub特例:1、运行程序在窗体显示的结果是:Private Sub Form_Click()Dim a As Integer, b As Integera = 3: b = 4Call sub1(a, a)Pri
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论