VB复习资料2
- 格式:doc
- 大小:127.50 KB
- 文档页数:40
第一章 VISUAL BASIC的特点与版本例1 与传统的程序设计语言相比,Visual Basic最突出的特点是A.结构化程序设计B.程序开发环境C.程序调试技术D.事件驱动编程机制【分析】传统的程序设计语言是面向过程的,但一般都可以实现结构化程序设计,有的也提供了较完善的集成开发环境和程序调试技术,但它们基本上都没有事件驱动编程机制。
与这些语言相比,Visual Basic最突出的特点就是事件驱动编程机制。
【答案】D例2下列成员中不属于主窗口的是A.最大化按钮B.状态栏C.系统菜单D.工具栏【分析】主窗口由标题栏、菜单栏和工具栏构成,其中标题栏上有系统菜单(左端)以及最小化、最大化和关闭按钮。
因此,最大化按钮、系统菜单和工具栏都是主窗口中的成员,而主窗口中没有状态栏。
【答案】B例3在属性窗口中,属性列表可以按两种顺序排列,这两种顺序是______和______。
【分析】为了便于查找,属性窗口对当前对象的属性提供了两种排列方式,一种是按字母表顺序,另一种是按属性的分类顺序。
【答案】按字母序或按分类序按分类序或按字母序例4 Visual Basic 6.0的集成开发环境有两种方式,第一种方式是______,第二种方式是______。
【分析】在默认情况下,Visual Basic 6.0集成开发环境为多文档界面方式,即MDI方式,在这种方式下,窗体设计器窗口是固定的。
使用“工具”菜单中的“选项”命令,可以把集成开发环境设置为单文档界面方式,即SDI方式,在这种方式下,窗体设计器窗口是浮动的。
【答案】多文档界面或MDI单文档界面或SDI第二章对象及其操作例1为了通过属性窗口把窗体的ControlBox属性设置为True(或False),下列正确的操作是A.直接键入True(或False)B.利用对话框设置属性值C.选择ControlBox,然后按回车键D.双击ControlBox属性条【分析】ControlBox属性是一个逻辑值,其取值只有两种,即True和False,一般可以通过选择输入,即单击属性条右端的箭头,下拉显示属性值True和False,从中选择所需要的值。
VB_考试复习资料及答案一、填空题1、在程序中使用日期型数据时,必须用符号“ # “将日期型数据括起来。
2、VB集成发环境窗口,它包括了数个独立的窗口。
除必须的"主窗口"外,常用的还有窗体窗口、属性窗口、代码窗口、工具箱窗口、对象浏览窗口、工程资源管理等窗口。
3、在计算机上建立一个VB应用程序的完整过程,一般分:建立用户界面的对象、对象属性的设置、对象事件过程及编程、运行调试程序和保存文件五个步骤。
4、VB中每个对象都有自己的属性,visible 属性决定控件是否允许可见。
5、在VB对象的三要素中,可以把属性看作一个对象的性质,把事件看作对象的响应,把方法看作对象的动作。
6、VB有三种工作模式,它们分别是运行模式、设计模式和中断模式。
7、如果希望每0.6秒钟产生一个计时事件,那么应将InterVal属性值应设置为600。
8、在VB中,为了使一个控件在运行时不可操作,应将控件的Enabled属性设置为False 。
9、为了防止用户编辑文本框内的内容,应将控件的Lockde 属性设置为True。
10、当要使标签框的大小随着Caption属性的值进行扩展或缩小时,应将该控件的Autosize 属性设置为Ture。
11、定义一个长度为8个字符的定长字符串变量(Ch5)的Dim声明语句是Dim Ch5 As string *8 。
12、VB中拥有多个窗体的程序可用Load 语句窗体装入内存,用Unload语句从内存中删除指定窗体.13、在多窗体工程中,可用SHow 方法显示一个窗体,用HIDE方法将一个窗体隐藏起来。
14、结构化程序设计方法,把程序的结构规定为三种基本结构,它们是:顺序结构、分支选择结构、和循环结构___________三种基本结构。
15、VB逻辑数据类型只有True与False两个值。
当逻辑数据转换成整型数据时,True 转换为1,False转换为0 。
16、VB中依据变量的作用范围将VB变量的作用范围分为三类,它们是:局部变量、窗体模板变量和全局变量。
vb程序设计复习资料VB程序设计复习资料VB(Visual Basic)是一种广泛应用于软件开发的编程语言,它的简单易学和强大的功能使得它成为了很多开发者的首选。
无论是初学者还是有一定编程经验的人,都需要不断复习和巩固自己的知识。
本文将为大家提供一些VB程序设计的复习资料,希望能够帮助大家更好地掌握这门语言。
一、VB语言基础在进行VB程序设计之前,我们首先需要了解VB语言的基础知识。
VB是一种基于事件驱动的编程语言,它的语法结构和其他编程语言有一些不同之处。
在复习VB语言基础时,我们可以从以下几个方面入手:1. 数据类型:VB中有许多不同的数据类型,包括整型、浮点型、字符串型等。
了解各种数据类型的特点和使用方法是非常重要的。
2. 变量和常量:在VB中,我们可以通过声明变量来存储数据,并通过赋值来改变变量的值。
同时,我们也可以使用常量来存储不可改变的值。
3. 运算符:VB中的运算符和其他编程语言类似,包括算术运算符、关系运算符、逻辑运算符等。
熟悉运算符的使用方法可以帮助我们更好地进行程序设计。
4. 控制语句:控制语句是编程中非常重要的一部分,它可以帮助我们控制程序的执行流程。
在VB中,我们可以使用条件语句(如if语句和select语句)和循环语句(如for循环和while循环)来实现程序的控制。
二、VB窗体设计VB的窗体设计是其独特之处之一,通过窗体设计,我们可以创建出具有交互性的界面。
在复习VB窗体设计时,我们可以从以下几个方面入手:1. 窗体属性:了解窗体的各种属性和方法,可以帮助我们更好地控制窗体的外观和行为。
例如,我们可以通过设置窗体的标题、大小和位置来使其符合我们的需求。
2. 控件使用:VB中有许多不同的控件,包括按钮、文本框、标签等。
了解这些控件的使用方法和属性,可以帮助我们创建出更加丰富多样的界面。
3. 事件处理:在VB中,我们可以通过编写事件处理程序来响应用户的操作。
了解各种事件的触发条件和编写方法,可以帮助我们实现更加灵活和交互性的界面。
第二章——(选择语句、循环语句、数组、过程与事件、错误处理)一、填空。
(69——108)1、“FOR k=____________ To -11 Step -3”的循环体循环50次。
2、假设有以下程序段:For i = 1 to 10 step 3For j = 15 to 3 step -4Print i* jNext jNext iPrint s, i , j则语句Print i*j 的执行次数是______,执行后i 的值为_____,j的值为______。
3、下列程序段的执行结果为__________。
I=1a=4DoI = I +1a= a+2Loop until i>=6Print “ A=” ; a4、在VB中,把一组具有相同__________、不同__________的变量称为数组。
5、在计算机中,数组占据一块连续的内存区域,_________就是这个区域的名称,区域的每个单元都有自己的地址,____________指出每个单元在该区域的位置。
6、在VB中,用来声明数组的语句有:_________、________、________、_______。
7、在定义数组时,下标的范围可以是不超过_________数据类型的范围,如果省略了“下标下界TO”,数组默认下界为_________,如果希望下标从1开始,可以通过________________语句来设置。
8、使用Option Base 语句时,该语句必须出现在_________或_________的说明部分。
9、数组的维数最多可以有__________维。
10、创建动态数组通常分为两步:首先在窗体级别、标准模块或过程中_________,然后再过程中________________。
11、如果用ReDim重新声明动态数组只能修改____________,不能修改__________。
12、使用ReDim语句重新分配动态数组时,数组中的内容将被清除,如果在ReDim 语句中使用了____________选择项,则保留数组内容。
窗体的常用事件(1)Load事件这个事件发生在窗体被装入内存时且发生在窗体出现在屏幕之前窗体出现之前Visual Basic会看一看Load事件里有没有代码如果有那么它先执行这些代码再让窗体出现在屏幕上(2)Click事件Dblclick事件这两个事件在单击或双击窗体时发生不过单击窗体里的控件时窗体的Click事件并不会发生Visual Basic会去看控件的Click事件里有没有代码(3)Activate (活动事件)与Deactivate(非活动事件)显示多个窗体时可以从一个窗体切换到另一个窗体每次激活一个窗体时发生Activate 事件而前一个窗体发生Deactivate事件(4)Resize事件在窗体被改变大小时会触发此事件4.窗体的控制(1)装入或卸出窗体要装入或卸出窗体用Load或Unload语句装入窗体Load formName卸出窗体UnLoad formNameFormName变量是要装入或卸出的窗体名Load语句只是把窗体装入内存并不显示出来要显示窗体可以使用窗体的Show方法(2)显示或隐藏窗体要显示或隐藏窗体用Show或Hide方法若尚未装入内存则先装入再显示显示窗体formNameshow mode隐藏窗体formNamehideFormName变量是窗体名可选变元mode为(缺省值)时窗体为非模态为时窗体为模态模态窗体完全占有应用程序控制权不允许切换到别的应用程序除非关闭!而非模态窗体则反之(3)END语句END语句的功能是终止应用程序的执行并从内存卸在所有窗体语法是END窗体的属性(1)设置属性的方法1)在设计态通过属性窗口设置直接在属性窗口中选择或输入既可2)在程序代码中改变属性值代码中的格式为对象名属性= 属性值例FormBackColor=RGB(255,0,0)窗体的常用方法()Hide方法用以隐藏MDIForm 或Form 对象但不能使其卸载语法objectHideobject 所在处代表一个对象表达式其值为应用于列表中的一个对象如果省略object则带有焦点的窗体就认为是该object说明隐藏窗体时它就从屏幕上被删除并将其Visible 属性设置为False 用户将无法访问隐藏窗体上的控件但是对于运行中的Visual Basic 应用程序或对于通过DDE 与该应用程序通讯的进程及对于Timer 控件的事件隐藏窗体的控件仍然是可用的窗体被隐藏时用户只有等到被隐藏窗体的事件过程的全部代码执行完后才能够与该应用程序交互如果调用Hide 方法时窗体还没有加载那么Hide 方法将加载该窗体但不显示它()Move方法用以移动MDIFormForm 或控件语法object Move left top width heightMove 方法的语法包含下列部分说明只有left 参数是必须的但是要指定任何其它的参数必须先指定出现在语法中该参数前面的全部参数例如如果不先指定left 和top 参数则无法指定width 参数任何没有指定的尾部的参数则保持不变()Print 方法在Immediate 窗口中显示文本语法object Print [outputlist]Print 方法的语法具有下列对象限定符和部分outputlist 参数具有以下语法和部分{Spc(n)| Tab(n)} expression charpos说明可以用空白或分号来分隔多个表达式对系统指定的国别设置用小数点分隔符将所有打印到Immediate 视窗的数据正确格式化关键字要用适用于主应用程序的语言输出对于Boolean 数据或者打印True 或者打印False根据主机应用程序的地区设置来翻译True 和False 关键字使用系统能识别的标准短日期格式书写Date 数据当日期或时间部件丢失或为零时只书写已提供的部件如果outputlist 数据是Empty则无内容可写但是如果outputlist 数据是Null则输出Null在输出Null 关键字时要把关键字正确翻译出来要把错误数据作为Error errorcode 输出在输出Error 关键字时要把关键字正确翻译出来如果在具有缺省显示空间的模块外使用此方法则需要object例如如果没有指定对象就在标准模块上调用此方法则将导致错误发生但是如果在窗体模块上进行调用则会在窗体上显示outputlist注意因为Print 方法是按照字符比例进行打印所以字符数与字符所占据的宽度固定的列的数目无关例如像W 这样的宽字母占据的宽度超过一固定列宽而像i 这样的窄字母占据的宽度则较小考虑到要使用比平均字符更宽的空间表列一定要留有足够余地另外也可以使用固定间距的字体(像Courier 字体)来确保每一字符均只占一列()Print From方法用以将Form 对象的图象逐位发送给打印机语法objectPrintForm说明Print Form 将打印Form 对象的全部可见对象和位图在绘制图形时如果Auto Redraw 属性为True则在运行时Print Form 将打印Form 对象或PictureBox 控件上的图形Print Form 所使用的打印机是由操作系统的控制面板中的设置来决定Style属性外观属性取时系统创建一个带下拉式列表框的组合框为时系统创建一个由文本框和列表框直接组合在一起的简单组合框可以从列表框中选择也可以直接在文本框中输入为时系统创建一个没有文本框的下拉式列表框单击列表框上的按钮才显示文本框用户不能在文本框中输入只能在列表框中选择控件常用控件介绍()常用控件的属性方法和事件boBox 组合框(将列表框和文本框结合在一起)其值为用户从列表框中选定的文本或直接输入的文本AddItem方法添加列表项使用格式[ 对象名] AddItem<列表项文本>[插入位置序号]若不指定位置则插入到列表末尾Clear方法删除列表所有项目RemoveItem 方法删除列表项使用格式[ 对象名] RemoveItem 删除项序号mandButton命令按钮Cancel属性取消属性它为True时按〖ESC〗即等于单击此按钮Default属性缺省属性它为True时按回车键即等于单击此按钮Timer计时器Interval属性两次调用Timer事件的事件间隔用于创建动态效果Frame 框架CheckBox 复选框OptionButton选项按钮Alignment属性决定它们的对齐方式=左对齐=右对齐V alue属性决定它们是否被选中的属性常用控件的使用辨析()文本框和标签的区别文本框通常用于向计算机输入信息而标签通常用于输出信息文本框是一个十分重要的控件因为由复选框和选项按钮向程序输入的信息毕竟只有少数的几条信息而已标签和文本框的区别很小标签可以看成是一个在运行时不能修改正文的文本框因此标签主要用于输出信息()Label的AutoSize属性和WordWrap属性为了使标签具有垂直伸展和字换行处理必须设置它的AutoSize属性和WordWrap属性同时为TrueAutoSize属性为FalseWordWrap属性为False时若标签不够高而Caption太长时Caption将被切割掉AutoSize属性为FalseWordWrap属性为True时情况也如此AutoSize属性为TrueWordWrap属性为False时表示可以水平伸展但只显示一行信息()Picture Box和Image的Stretch属性和AutoSize属性Image只有Stretch属性而Picture Box只有AutoSize属性AutoSize属性设为True则Picture Box改变自己的大小来适应其中的图形Stretch属性设为True则Image中的图形将改变自己的大小来适应外面的边框()Frame 框架CheckBox 复选框OptionButton选项按钮的区别复选框和选项按钮用于向程序输入信息框架用来对复选框和选项按钮进行分组复选框选中时会在小方框里打一个钩选项按钮选中时会在小圆圈里点一个点定制菜单菜单概述Windows中的菜单一般由菜单条菜单菜单项子菜单弹出式菜单组成普通菜单的设计()给菜单命名菜单标题和菜单命令也有Caption和Name属性设置了这两个属性就等于创建了菜单Name是一个抽象名称Caption是屏幕上可见的可在Caption里加入& 来设置热键()增加和删除菜单在Menu Editor中部有三个命令钮分别是下一个插入删除插入可用来增加新的菜单在这三个键下面的Caption列表框里选中菜单项(这时它的底色就变成深蓝色)单击插入键Visual Basic将上一个增亮菜单下推并增亮一空行就可以输入新菜单名和标题了删除键可用来删掉菜单选中要删掉的菜单单击Delete键就可以删掉它了()移动菜单标题有四种情况向上移动向下移动向左缩排向右缩排选中某一菜单标题安上下箭头则这个菜单将上下移动到你喜欢的位置上这也决定了它在界面中的位置如果按左右箭头情况则有所不同由于菜单是分级的所以如果它没有缩排则它是一个菜单标题如果它缩排一次那么它将变成一个菜单命令如果缩排两次那么它将成为一个子菜单命令VB里可以总共设计四层子菜单()设置分离条分离条是指在菜单中将命令分组的线VB将分离条也看成一个菜单项它也需要Caption和Name属性而且也有其它属性分离条与菜单项的区别是分离条的Caption 属性必须是连字号即减号也就是当设置了一个Caption属性为的菜单项时实际上就设置了一个分离条分离条的名字可以是barFile之类以表明分离条的位置()菜单的各种简单属性在菜单编辑器里有许多确认框和一些文本框及一个下拉式的列表框这些决定了菜单的各种属性)Checked 复选属性这个属性值设置为真将在菜单命令左边产生一个打勾的确认标志)Enabled有效属性各种各样的用户会产生千奇百怪的操作在许多Edit菜单里都会有不同形式的让菜单命令模糊的情况Enabled属性为真则菜单命令是清晰的Enabled属性为假则菜单命令是模糊的这时用户就不能选中这个菜单项了)Visible 可见属性对暂时不用的菜单如果把Visible属性设为假则菜单根本不会出现在屏幕上这样做比把Enabled属性设为假显得更加干脆!)Index属性可以生成菜单命令数组用索引号区分开例如向File菜单中添加一系列最近打开的文件名添加菜单可用Load方法以上属性可以在运行时设置形成动态的菜单的情况例如mnuUndoEnabled = FalsemnuPropertyVisible = False还可以改变Caption等属性mnuUndoCaption = Redo生成弹出式菜单(或浮动菜单)几乎每个Windows应用程序都提供弹出式菜单用户可以右键单击窗体或控件取得这个菜单弹出式菜单也属于普通菜单只是不固定在窗体上而是可以在任何地方显示弹出式菜单用PopupMenu方法调用假设已经用菜单编辑器生成了名为mnuedit的菜单则可以在MouseUp事件加入如下代码就可以生成弹出式菜单If Button = Then PopupMenu mnuedit设计状态条工具栏进程条等创建状态条选中状态条按F键进入属性窗口双击(Custom)可以进入主要的设置窗口SBarCtrl属性窗口(1)选择面板形状在SBarCtrl属性窗口里选择General标签在Style列表框里选择多面板(缺省形式)或单面板简单文本形式(2)添加或删除状态条面板在SBarCtrl属性窗口里选择Panels标签单击Insert按钮添加一个面板或单击Remove按钮删除一个面板(3)在单面板里显示文本在SBarCtrl属性窗口里选择General标签在SimpleText框里输入想显示在状态条面板里的文本用代码显示的方式是StatusBarSimpleText = New string to appear(4)在多面板里显示文本或图形1)在SBarCtrl属性窗口里选择Panels标签用Index旁的按钮选择面板序号2)在Text框里输入想显示在状态条面板里的文本3)如果想加入图形单击Browse按钮打开一个图形选择对话框选择想加入的图形然后单击打开按钮4)最后按确定按钮5)用代码显示的方式是StatusBarPanels(x)Text = New string toappear6)编写代码如果是一个单面板状态条当用户单击状态条时只需用下面的事件过程来响应Private Sub StatusBar_Click()End Sub如果是一个多面板状态条就需要鉴别用户单击的是哪一个面板可用下面的事件过程来识别用户所单击的面板Private Sub StatusBar_PanelClick(ByVal Panel As Panel)Select Case PanelIndexCase 1Code to follow if user clicks the first panelCase 2Code to follow if user clicks the second panelCase 3Code to follow if user clicks the third panelEnd SelectEnd Sub创建工具栏()建立工具条)在工具箱里单击工具条图标拖到窗体的任何位置Visual Basic自动将ToolBar移到顶部)按F键打开属性窗口)双击(Custom)打开ToolBar属性窗口)选择Buttons标签)单击Insert按钮Visual Basic就会在你的工具条上显示一个空按钮现在为你的每一个按钮重复这一步)单击确定按钮如果想把按钮分组首先生成一个分隔的按钮再在刚才提到的对话框里将这个按钮的Style属性改为Separator()为工具条增加图画)在Visual Basic工具箱里单击ImageList图标并将它拖到窗体的任何位置(位置不重要因为它总是不可见的))按F打开属性窗口)双击(Custom)打开ImageListCtrl属性窗口)选择Image标签)单击Insert Picture在现在图形的对话框里选择想使用的位图或图标然后单击打开按钮为每个想添加图形的工具条按钮重复此步)单击确定按钮)单击工具条按F双击(Custom)显示ToolBar属性对话框)选择General标签在ImageList框里选择刚才添加的ImageList控件)选择Buttons标签单击紧挨Index框的向左或向右箭头以选择一个按钮序号出现在工具条最左边的按钮序号为)在Image框里输入一个数输入为则显示刚才ImageList控件里的第一个图形输入为则显示刚才ImageList控件里的第二个图形)为每个按钮重复第步)单击确定按钮现在Visual Basic就会在工具条上显示精美的图形了Visual Basic的输入机制程序的基本操作就是数据的输入数据处理和数据的输出Visual Basic可中用于输入的控件主要有文本框Text Box复选框Check Box选项按钮Option Button列表框List Box组合框bo Box滚动条Scroll Bar通用对话框控件还有一个函数叫InputBox函数也可用于数据的输入通过文本框输入数据只要取得文本框的Text属性就可以对其进行操作了下面的代码可将Text文本框的正文变成大写输出至Text文本框Private Sub Form_Click ()TextText = UCase(TextText)End Sub通过复选框和选项按钮输入数据只要检测到Check Box和Radio Button的Value属性值就可以知道它们是否被选上了通过列表框和组合框输入数据()列表框List Box和组合框bo Box的不同它们在Windows的OpenSave As对话框里最为常见组合框又包括三种类型这三种类型要在它的Style属性里设置列表框仅仅把可以选择的项目列出来而组合框里有的类型可以允许用户输入数据()列表项目的增减使用AddItemRemoveItem语句可以增减列表项目通常将项目增减的语句放入Form_Load事件里ListBoxName AddItem itemboBoxName AddItem itemitem是新项目名称必须是字符串类型非字符串类型可通过Str函数或Format函数来转换转列表框组合框的每一项目都有一个Index值第一个项目的Index值是第二个是依此类推删除项目可通过删除其Index值来实现ListBoxName RemoveItem itemboBoxName RemoveItem item如ListBoxName RemoveItem 则删除了第一项这时原来的第二项就变成了第一项可以在设计阶段设定列表项目方法是在属性窗口选择List属性将出现一个下拉列表在列表中输入第一项按Ctrl+Enter输入第二项……最后用Enter结束()取得列表框/组合框的数据可以通过取得Text属性或通过取得ListIndex属性来判断哪一项被选择了ListIndex属性的值也同样是第一个为第二个为……如If ListText = Visual Basic Then InstructionsIf ListListIndex = Then Instructions组合框有时允许用户自己输入数据这时所输入数据的ListIndex值为通过滚动条Scroll Bar取得数据在Visual Basic的工具箱里有两种滚动条一种是垂直的一种是水平的它们的差异无非是摆放的方向不一样()滚动条的主要属性及事件)MinMax属性Min属性决定滚动条最左端或最顶端所代表的值Max属性决定滚动条最右端或最下端所代表的值)LargeChangeSmallChange属性SmallChange决定在滚动条两端的箭头钮上单击时改变的值LargeChange决定在滑块上方或下方区域单击时改变的值)Value属性V alue属性代表当前滑块所处位置的值这个值由滑块的相对位置决定)Change事件当滑块位置发生变化时就引发了Change事件()取得滚动条的数据滚动条并不是一个数据输入的好控件因为无法从滚动条上直接看出输入的数据但它的优点是可以表示一定范围里的相对位置为了得到数据只要取得滚动条的Value属性就可以了InputBox函数InputBox函数提供一个简单的对话框供用户输入信息在把其它版本的BASIC程序移植到Visual Basic时InputBox函数通常用来代替INPUT语句这个对话框的样子基本上是上面的样子它的完整语法是x = InputBox (prompt title default xpos yposhelpfile context)其中prompt是提示的字符串这个参数是必须的title是对话框的标题是可选的default是文本框里的缺省值也是可选的xposypos决定输入框的位置helpfilecontext用于显示与该框相关的帮助屏幕返回值x 将是用户在文本框里输入的数据x是一个字符串类型的值如果用户按了Cancel钮则x 将为空字符串设计状态条工具栏进程条等创建状态条选中状态条按F键进入属性窗口双击(Custom)可以进入主要的设置窗口SBarCtrl属性窗口()选择面板形状在SBarCtrl属性窗口里选择General标签在Style列表框里选择多面板(缺省形式)或单面板简单文本形式()添加或删除状态条面板在SBarCtrl属性窗口里选择Panels标签单击Insert按钮添加一个面板或单击Remove按钮删除一个面板()在单面板里显示文本在SBarCtrl属性窗口里选择General标签在SimpleText框里输入想显示在状态条面板里的文本用代码显示的方式是StatusBarSimpleText = New string to appear()在多面板里显示文本或图形)在SBarCtrl属性窗口里选择Panels标签用Index旁的按钮选择面板序号)在Text框里输入想显示在状态条面板里的文本)如果想加入图形单击Browse按钮打开一个图形选择对话框选择想加入的图形然后单击打开按钮)最后按确定按钮)用代码显示的方式是StatusBarPanels(x)Text = New string to appear)编写代码如果是一个单面板状态条当用户单击状态条时只需用下面的事件过程来响应Private Sub StatusBar_Click()End Sub如果是一个多面板状态条就需要鉴别用户单击的是哪一个面板可用下面的事件过程来识别用户所单击的面板Private Sub StatusBar_PanelClick(ByVal Panel As Panel)Select Case PanelIndexCaseCode to follow if user clicks the first panelCaseCode to follow if user clicks the second panelCaseCode to follow if user clicks the third panelEnd SelectEnd Sub11 / 11。
“Visual Basic编程与应用”期末复习资料第一章Visual Basic 6.0程序设计概述重点掌握的内容:对象与事件驱动对象:世界上存在的任何具体的事物都可以称之为对象。
对象是具体存在的,每个对象都是唯一的,有着自己独特的个性。
类:是具有相同性质的对象的集合。
对象和类的区别在于前者是具体的,而后者则是抽象的。
属性、方法和事件:VB采用一种所谓的事件驱动的编程机制,由用户来掌握程序的运行流向。
可以把属性看作一个对象的性质,把方法看作对象的动作,把事件看作对象的响应。
对象的属性的设置可以通过两种方法来实现:(1)通过属性窗口直接设置;(2)在程序代码中通过赋值实现,其格式为:对象.属性=属性值事件过程:事件即对象相应的动作,是Visual Basic预先定义好的对象能识别的动作,如Click、DbClick、LostFocus等等。
事件过程是指附在该对象上的程序代码,是事件的处理程序,即用来完成事件发生后所要做的动作创建 Visual Basic 应用程序有三个主要步骤:1.创建应用程序界面。
2.设置属性。
3.编写代码。
窗体的属性和方法窗体属性:重点掌握:Name,Caption,BorderStyle,MinButton,MaxButton等属性。
Print方法: 在Visual Basic 中,Print方法是用来输出信息的专用过程,Print方法应重点掌握如下:(1)语法结构[对象].Print [表达式列表](2)表达式列表中的分隔符:①若用分号(;):输出的各表达式的值中间没有空格,数值型前留有一个符号位。
例如 Print “1”;“2”;“3”输出格式为 123②若用逗号(,):输出的各表达式的值将被分配在各个区段内,例如 Print “1”,“2”,“3”输出格式为 1 2 3③Spc(n)函数,用于产生空格,这里n为要插入的空格数,例如Print “1”;Spc(3);“2”输出格式为 1 2④Tab(n)函数,用于将插入点定位在绝对列号上,这里n为列号。
数组6.1 静态数组编译时分配存储空间。
定义:Dim b(3,4)As Long分配4×5个长整型变量的空间,二维数组在内存按行的顺序存放96例:Dim b(3,2 to 4,1 to 3) As Integer共分配4×3×3=36个元素,共72 ByteOption 语句格式:Option Base 1注意:只能出现在窗体层或模块层必须位于数组定义之前。
例:Option Base 1……Dim a(10) As Integer,x(5,5) As String每一维下标的下界均从1开始。
动态数组运行时分配内存区,97定义分两步进行:(1)先在窗体层、标准模块或过程中Dim或Public声明一个没有下标的数组。
(2)过程中用ReDim语句定义带下标的数组。
说明:声明时不指定数组的维数数组的维数由第一次出现的ReDim语句指定。
例如:Dim Test() As IntegerDim n As IntegerSub Form_click()……n=InputBox(”Enter a value:”)ReDim Test(n)98……End Sub数组元素的引用形式:数组名(下标)数组元素赋初值运行前对数组进行初始化。
格式:数组变量名=Array( 初值表)说明:数组下标下界缺省为0,只能对一维数组初始化【例】Dim a As As Varianta=Array(1,2,3,4,5,6,7)注意:下标从0~6【例】一维数组元素赋初值。
99Option Base 1Private Sub Form_Click()Dim a As Varianta = Array(1, 2, 3, 4, 5, 6, 7)For i = 1 To 7Print a(i);Next iEnd Sub运行结果:1 2 3 4 5 6 7数组输入/输出一般通过For循环语句和InputBox函数实现,一维数组用单重循环。
二维数组采用双重循环。
100【例】一维数组的输入和输出。
For i = 1 To 10a(i) = InputBox("Enter data:")Next i【例】二维数组的输入和输出。
1 2 34 5 67 8 9For i = 1 To 3For j = 1 To 3a(i, j) = InputBox("enter data:")Next jNext i101For i = 1 To 3For j = 1 To 3Print a(i, j); " ";Next jPrintNext i【例】用Rnd产生10个0~100之间随机数。
For i = 1 To 10a(i) = Int(100 * Rnd)Next i用户自定义类型定义格式:Type 自定义类型名元素名1 As 类型名102元素名2 As 类型名……元素名n As 类型名End Type其中:类型名——可为任何基本类型,也可为用户自定义类型。
说明:(1)一般在标准模块中定义,默认为Public。
如在窗体模块的“声明”段定义,则必须加上Private,且只能在窗体模块中使用。
(2)自定义类型中的元素可以为数组名。
【例】Private Type studentnum As String * 8name As String * 8103total As Integeraverage As IntegerEnd Type1.自定义类型变量的声明Dim 变量名 As 自定义类型名例如:Dim stud As Student 2.引用自定义类型变量中的元素形式:变量名.元素名3.自定义类型数组的声明和使用声明:Dim st(5) As Student 引用形式:104记录数组元素.成员名【例】输入5个学生的学号、姓名、和3门课的成绩,利用自定义类型数组,计算每个学生的总分和平均分,并按平均成绩从高到低输出学生的成绩单。
Private Type studentno As String * 6name As String * 6s1 As Singles2 As Singles3 As Singletotal As Singleaver As SingleEnd TypePrivate Sub Form_Click()105Dim a(1 To 5) As student, t As studentOpen “stud.dat” For Output As #1… Open “stud.dat” For Random As #2 Len= Len(t) 打开随机文件……n = 5For i = 1 To na(i).total=a(i).s1+a(i).s2 + a(i).s3a(i).aver = a(i).total / 3Next iFor i = 1 To n - 1For j = i + 1 To nIf a(i).aver < a(j).aver Thent = a(i)a(i) = a(j)a(j) = tEnd If106Next jNext iPrint " 学号姓名语文数学英语总分平均分"For i = 1 To nPrint Tab(2); a(i).no; Tab(10); a(i).name; Tab(18); a(i).s1; " ";Print a(i).s2; " "; a(i).s3; " "; a(i).total; " "; a(i).averWrite#1,a(i).no,a(i).name,a(i).s1, a(i).s2,a(i).s3,a(i).total, (i).aver …Put#2,i, a(i) 写入随机文件Next iClose#1End Sub注意: 写入文件一行一个记录运行结果107108 说明:交换两个记录数组元素的值,则该记录数组元素的所有成员都将交换。
6.7 常用算法(2)1. 求最大值和最小值【例】找10个数中的最大值与最小值。
For i = 1 To 10If a(i) > Max Then Max = a(i)If a(i) < Min Then Min = a(i)Next i6.7.2排序升序:从小到大降序:从大到小1.比较交换法For i = 1 To n - 1For j = i + 1 To nIf a(i) > a(j) Thent = a(i)a(i) = a(j)a(j) = tEnd IfNext jNext i1092.选择法排序For i = 1 To n - 1p = iFor j = i + 1 To nIf a(p) > a(j) Then p = jNext jt = a(i)a(i) = a(p)a(p) = tNext i3.冒泡法排序特点:相邻的两个元素进行比较For i = 1 To n - 1For j = 1 To n - iIf a(j) > a(j + 1) Then 110t = a(j)a(j) = a(j + 1)a(j + 1) = tEnd IfNext jNext i查询1. 顺序查询从一组数据中,按顺序地查找指定的数据。
【例】用顺序查询法在下列数据中查找关键字值……k = Val(InputBox("输入要查询的数"))p = 1While k <> a(p) And p < n111p = p + 1WendIf k = a(p) ThenPrint k; "be found,on"; p; "th position." ElsePrint k; "has not be found."End If2 折半查询折半查找也称为二分法查询只能对有序数列进行查询。
【例】用折半查询法查找关键字值66。
-123,-10,5,8,30,56,59,66,90,518 Option Base 1Private Sub Form_Click()112Dim a As Varianta = Array(-123, -10, 5, 8, 30, 56, 59, 66, 90, 518)n = UBound(a)Print "数组a中的10个数为:"For Each ii In aPrint ii; " ";Next iiPrintk = Val(InputBox("输入要查询的数"))Print "要查询的数是:"; klow = 1hig = nfind = -1While low <= hig And find = -1m = (low + hig) \ 2113If k = a(m) Thenfind = 1Print k; "has be found,on"; m; "th position."ElseIf k < a(m) Thenhig = m - 1Elselow = m + 1End IfEnd IfWendIf find = -1 ThenPrint k; "has not be found."End IfEnd Sub114注意:若数据按降序排列If k < a(m) Thenlow = m + 1Elsehig = m - 1End If【例】输出前5名名次、运动员号和成绩,并将结果写入顺序文件。
Private Sub Form_Click()Open “stud.dat” For Output As #1Dim no(1 To 16) As StringDim a(1 To 16) As SingleFor i = 1 To 16115no(i) = InputBox("输入运动员编号:")a(i) = Val(InputBox("输入运动员成绩:")) Next iFor i = 1 To 15k = iFor j = i + 1 To 16If a(k) > a(j) Then k = jNext jt = no(i)no(i) = no(k)no(k) = tt = a(i)a(i) = a(k)a(k) = tEnd IfNext i116Print "名次运动员编号运动员成绩"For i = 1 To 5Print i, no(i), a(i)Write#1,i,no(i),a(i)Next iEnd Sub过程函数过程的定义Function函数过程名(形参表) [As 类型]……函数过程名=表达式……117End Function说明:函数过程名有值,有类型,在过程体必须被赋值调用形式:函数过程名(实参表)子程序过程定义Sub 子程序过程名(形参表)……End Sub说明:子程序过程名无值,无类型调用形式:118Call 子程序过程名(实参表)【例】函数过程使用编写函数过程计算n!Private Sub Command1_Click()n = Val(Text1.Text)Text2.Text =fact(n)End SubFunction fact(n)f = 1For i = 1 To nf = f * iNext ifact = f119End Function【例】子程序过程计算n! Private Sub Command1_Click()n = Val(Text1.Text)Call fact(n, f)Text2.Text = fEnd SubPrivate Sub fact(n, f)f = 1For i = 2 To nf = f * iNext iEnd Sub120说明:由若干变元计算一个值用Function过程计算若干值,只能用Sub过程。