VB考试辅导.doc_第1页
VB考试辅导.doc_第2页
VB考试辅导.doc_第3页
VB考试辅导.doc_第4页
VB考试辅导.doc_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

用户界面设计1. VB控件VB控件可以分为3类:标准控件、ActiveX控件和可插入对象。2. 单选按钮和复选框单选按钮和复选框的常用属性是Value,它的主要作用是用来检查单选按钮或复选框是否被选定。单选按钮Value属性值是逻辑型,而复选框Value属性值是数值型。单选按钮和复选框都能响应Click事件,但通常不需要编写事件过程。3. 框架框架的主要作用是将其他控件组合在一起,对一个窗体中的各种功能进行分类,以便于用户识别。4. 滚动条滚动条的主要属性有Max、Min、Value、SmallChange和LargeChange,主要事件有Change和Scroll。拖动滑块时发生Scroll事件,单击两端的箭头或空白处不会产生Scroll事件。滚动条的Change事件是当Value属性值改变时产生的事件。拖动滑块过程Value属性值不会改变,不会产生Change事件。但是,拖动滑块结束时Value属性值会改变,应产生Change事件。5定时器定时器特有的常用属性是Interval,它的值以0.001秒为单位。当定时器的Enabled属性为True时,Timer事件以Interval属性值的毫秒间隔发生。如果将定时器的Enabled属性设为False或Interval属性设为0时计时器停止运行,则Timer事件不会发生。Timer是定时器的唯一事件。6. 图形框和图像框图形框(PictureBox)和图像框(Image)都可以用来显示图形。图形框还有一个特殊功能是作为容器放置其他控件。图形框和图像框共有的一个主要属性是Picture,其值是显示的图片。在程序设计时,可以直接设置;在程序运行时,可以通过LoadPicture函数设置,或者赋值另外一个图形框或图像框中的图形。图形框还有一个主要属性是Autosize,用于控制图形框的大小。图像框还有一个主要属性是Stretch,用于决定调整图像框大小以适应图形,还是调整图形大小以适应图像框。7. 对话框在VB应用程序中,对话框有三种:预定义的对话框、通用对话框和用户自定义对话框。预定义对话框是系统定义的对话框,可以调用如InputBox、MsgBox等函数直接显示。通用对话框向用户提供了打开、另存为、颜色、字体、打印和帮助六种类型的对话框。使用它们可以减少设计程序的工作量。自定义对话框是具有特殊的属性设置的窗体。作为对话框的窗体的BorderStyle、ControlBox、MaxButton和MinButton应分别为1、False、False和False。对话框分成模式的和无模式的。8. 菜单菜单有两种类型:下拉式菜单和弹出式菜单。每一个菜单项都是一个控件,有Click事件。在程序运行期间,如果用户单击菜单项,则运行该菜单项的Click事件过程。不管是下拉式菜单还是弹出式菜单,都是在菜单编辑器中设置的。弹出式菜单需要在程序中使用PopupMenu方法显示,而下拉式菜单在程序开始时会自动显示。9. 窗体(1)窗体的常用方法和语句有:Load、Unload、Show和Hide。(2)窗体之间的相互访问共有三种形式:l 一个窗体可以在直接访问另一个窗体上控件的属性:另一个窗体名.控件名.属性l 一个窗体直接访问在另一个窗体中定义的全局变量:另一个窗体名.全局变量名l 在模块中定义公共变量实现相互访问,这是最常用的方法。在使用“工程添加窗体”命令添加一个现存窗体时经常会发生加载错误,绝大多是因为窗体名称冲突的缘故。例如,假定当前打开了一个含有名称为Form1的工程,如果想把属于另一个工程的Form1窗体装入时,则肯定会出错。在一个工程中,绝对不能同时出现两个窗体名称相同的窗体。对于多窗体程序的加载必须通过.vbp文件,它把属于该工程的所有文件装入内存。如果直接打开多窗体程序中的某一个窗体文件,只能加载该窗体文件,其他文件不能自动装入内存,程序运行时将出现对象不存在错误,此外,对于多窗体程序,当窗体增加或删除后,必须重新保存工程文件,否则,工程文件不能反应这一变化。当用Show方法调用其他窗体时,被调用的窗体必须是窗体对象名,而不应是窗体文件名。否则,会产生实时错误424,要求对象Load语句将窗体装入内存并设置窗体的Visible属性为False(无论在设计时如何设置Visible属性),即窗体用Load语句加载到内存后并不立即显示,需要用Show方法或将窗体的Visible属性设置为True才可显示。列表框控件列表框(ListBox)控件是一个显示多个项目的列表,便于用户选择一个或多个列表项目,但不能直接修改其中的内容。列表框控件实质就是一维字符数组,以可视化形式直观显示其项目列表。1.主要属性表1 列表框的主要属性属性类型说明List字符数组存放列表项目值。第1个元素下标为0。ListIndex整型程序运行时被选定的项目的序号,未选中则该值为-1ListCount整型列表框中项目的总数,项目下标0ListCount-1Sorted逻辑型决定在程序运行期间列表框中的项目是否进行排序Text字符型被选定项目的文本内容注意:List1.List(List1.ListIndex)等于List1.Text。2. 列表框主要的方法 (1) AddItem方法 把一个项目加入列表框。形式:列表框对象.AddItem 项目字符串 ,索引值其中:项目字符串:是将要加入列表框的项目。索引值:决定新增选项在列表框中的位置,原位置的项目依次后移;如果省略,则新增项目添加在最后。对于第一个项目,索引值为0。 (2) RemoveItem方法 从列表框删除由索引值指定的项目形式:列表框对象.RemoveItem 索引值(3) Clear方法 清除列表框的所有项目内容形式:对象.Clear3. 事件列表框能够响应Click和DblClick事件。3列表框和组合框应用1.列表框应用例1 设计一个如图1所示的程序。它对列表框具有随机产生、删除、添加、统计数据的功能。统计结果显示在如图2所示的窗体中。 图1 主窗体 图2 统计结果显示窗体分析:列表框中的10个数据由Int(Rnd() * 100)随机产生。【程序】 “随机产生10个数据”事件过程Sub Random_Click()List1.ClearDim i, k As IntegerFor i = 0 To 9k = Int(Rnd() * 100) 产生10个随机数List1.AddItem k 添加到列表框NextEnd Sub “删除最小值”事件过程,“删除最大值”、“添加数据”事件过程略Sub DeleteMin_Click()Dim i, m As Integerm = 0For i = 0 To List1.ListCount - 1If List1.List(i) List1.List(m) Thenm = iEnd IfNextList1.RemoveItem (m) 删除最小值选项End Sub“统计”事件过程Sub Statistics_Click()Dim i, m, n As IntegerDim sum As Doublem = 0: n = 0For i = 0 To List1.ListCount - 1 求最小值、最大值及累加If List1.List(i) List1.List(n) Thenn = iEnd Ifsum = sum + List1.List(i)NextForm2.ShowForm2.Text1.Text = List1.List(m)Form2.Text2.Text = List1.List(n)Form2.Text3.Text = sum / (List1.ListCount - 1)End Sub数据文件1顺序文件及操作顺序文件涉及的语句和函数见表1。表1 顺序文件的有关函数和过程打开OpenOpen 文件名 For 模式 As #文件号文件名可以字符串常量,也可以是字符串变量写文件Print #Print(文件号, 输出列表)按标准输出格式输出数据Write #Write #文件号, 输出列表)按紧凑格式输出数据,即数据项之间插入“,”,并给字符串加上双引号。读文件InputInput(文件号, 变量)变量可以是任何类型,读一个数据Line Input变量=LineInput(文件号)变量为字符串类型,读一行关闭CloseFileClose(文件号)若缺省文件号,则关闭所有的文件其他LOFLOF(文件号)返回文件的字节数EOFEOF(文件号)到达文件末尾时EOF为True,否则False例1 设计一个如图1所示的文件加密程序。左边的文本框显示打开的文件内容,右边的文本框显示经加密的内容。窗体上除了图中所见的控件之外,还有通用文件对话框CommonDialog1。 “打开文件”按钮事件过程。Sub Command1_Click()Dim InputData As String * 1CommonDialog1.ShowOpenFname = CommonDialog1.FileNameOpen Fname For Input As #1Text1.Text = With ProgressBar1.Min = 0.Max = LOF(1).Visible = True.Value = 0End WithDo While Not EOF(1)InputData = Input(1, #1)Text1.Text = Text1.Text + InputDataProgressBar1.Value = ProgressBar1.Value + 1LoopProgressBar1.Value = 1000Close #1End Sub “保存文件”按钮事件过程Sub Command3_Click()CommonDialog1.ShowSaveOpen CommonDialog1.FileName For Output As #1Print #1, Text1.TextClose #1End Sub例2 设计一个如图2所示的应用程序。要求:(1)选择“打开文件”弹出一个通用对话框,选择文件后显示在文本框中(2)选择“保存文件”后弹出通用对话框,确定文件名后保存;(3)选择“查找下一个”就在文本文件中查找单词“VB”,找到后以高亮度显示。若再选择“查找下一个”,则继续查找。图2 文本文件的处理分析:该题主要难度是在文本框中找特定的子串,并以高亮度显示。这通过InStr函数实现查找,SelStart、SelLength属性实现高亮度显示。InStr函数的另一种使用形式为:InStr(开始位置, 字符串1, 字符串2)说明:InStr函数的功能是在字符串1中从开始位置后查找字符串2的出现位置。【程序】 “查找下一个”按钮事件过程Sub Command1_Click()Static j% 静态变量,保值,保留前一次查找到的位置Text1.SetFocusj = InStr(j + 1, Text1, VB) 从原来找到的VB下一个字符起继续查找If j 0 ThenText1.SelStart = j - 1 以高亮度显示从第j个字符起的内容Text1.SelLength = 2j = j + 1ElseMsgBox 找不到End IfEnd Sub基本算法1数列求和,最值,均值(见列表框中的例4)2素数判定3回文数判定4数据排序5函数与子过程调用例1编写一个程序,判断输入的一个数是否为素数(或称质数),是素数的在图片框显示。素数就是除1和本身以外,不能被其他任何整数整除的数。根据此定义,要判别某数m是否为素数最简单的方法就是依次用i=2 m-1去除,只要有一个数能整除m,m就不是素数;否则m是素数。程序运行如图1所示,程序如下:Private Sub Command1_Click() Dim i%, m% m = Val(Text1) For i = 2 To m - 1 If (m Mod i) = 0 Then GoTo NotM m能被i整除,转向标号NotM Next i Picture1.Print m & 是素数 m不能被i=2m-1整除,显示m是素数,NotM:End Sub图1 运行结果程序中用到GoTo语句,当m能被某i的值整除,m就不是素数,利用GoTo语句退出循环。这虽然效率高,但不符合结构化程序设计的规定:少用或不用GoTo语句。改进的方法,增加一个逻辑型状态变量Tag,用以判断是否被整除过,改进的程序如下:Private Sub Command1_Click()Dim i%, m%, Tag As Booleanm = Val(Text1)Tag = True Tag为真,假定是素数For i = 2 To m - 1 If (m Mod i) = 0 Then Tag = False m能被i整除,该m不是素数,Tag为假Next iIf Tag Then Picture1.Print m & 是素数 Tag 为真,即m没有被2m-1整除过,m是素数End Sub注意:把循环终值改为m/2或Sqr(m)可以提高效率。例2 编一个程序,显示有n个数的非波那契数序列,且每行显示5个数。分析:所谓非波那契数序列: 除序列中第1和第2两个元素均为1 外,序列中某个元素的值是其前两个元素的和,编写程序输入序号n,显示前n个非波那契数序列。Private Sub Command1_Click() Dim x() As Integer图2 非波那契数序列 Dim n%, i% n = Val(InputBox(输入序列数) ReDim x(n - 1) x(0) = 1 x(1) = 1 For i = 2 To n - 1 x(i) = x(i - 1) + x(i - 2) Next i For i = 0 To n - 1 Print x(i), If (i + 1) Mod 5 = 0 Then Print NextEnd Sub程序运行后,当输入n的值为16时,显示结果如图2所示。例3分类统计是将一批数据中按分类的条件统计每一类中包含的个数。这类问题一般要掌握分类的条件表达式的构成和为每一类设置计数器(变量),进行相应的计数。现要求输入一串字符,统计各字母出现的次数(大小写字母不区分),并对出现的字母显示其出现的个数,效果如图3所示。图3 统计各字母出现的次数分析: 统计26个字母出现的个数,必须声明一个具有26个元素的数组,每个元素的下标表示对应的字母,元素的值表示对应字母出现的次数。 从输入的字符串中逐一取出字符,转换成大写字符(使得大小写不区分),进行判断。程序如下:Private Sub Command1_Click()Dim a(1 To 26) As Integer, c As String * 1 le = Len(Text1) 求字符串的长度 For I = 1 To le c = UCase(Mid(Text1, I, 1) 取一个字符,转换成大写 If c = A And c 0 Then Picture1.Print ; Chr$(j + 64); =; a(j); Next j End Sub 例4编一函数过程IsH(n),对于已知正整数n,判断该数是否是回文数,函数的返回值类型为布尔型。主程序调用IsH函数过程求解1000以内回文数,并显示在文本框或列表框内。提示 所谓回文数是指顺读与倒读数字相同,即指最高位与最低位相同,次高位与次低位相同,依次类推。当只有一位数时,也认为是回文数。 回文数的求法,只要对输入的数(按字符串类型处理),利用MID函数从两边往中间比较,若不相同,就不是回文数。例5 验证歌德巴赫猜想:任意一个大于2的偶数都可以表示成两个素数之和。编程,将6-100之间的全部偶数表示为两个素数之和,结果在列表框显示,最后Label1显示共有多少对素数之和,效果如图4所示。图4 运行界面分析:本题在函数过程是对形参m判断是否是素数,若m是素数,函数的返回值为True,否则False。主调程序要将一个偶数分解成两个素数分别调用函数。程序Private Sub Command1_Click() Dim Even%, Odd1%, Odd2% For Even = 6 To 100 Step 2 For Odd1 = 3 To Even / 2 If prime(Od

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论