hustVB总复习(2011年).ppt_第1页
hustVB总复习(2011年).ppt_第2页
hustVB总复习(2011年).ppt_第3页
hustVB总复习(2011年).ppt_第4页
hustVB总复习(2011年).ppt_第5页
已阅读5页,还剩123页未读 继续免费阅读

下载本文档

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

文档简介

1、VB程序设计,总复习,考试说明,考试时间: 2011-7-7星期四 考试地点: 考试形式: 闭卷考试(150分钟),考试题型(笔试闭卷 60%) 1.选择题 (40分) 2.填空题 (20分)包括程序及结果填空 3.判断题 (10分) 4. 编程题(30分)编程题选自实验CF中的15题中,经过小变动而来.以4.常用算法内容为主,不考的章节: 第5章:第5.4自定义类型及数组 第6章:第6.4 过程的嵌套和递归调用 第7.210章,4. 常用算法: (出现在填空题、判断题、编程题中) 随机数的生成! 累加、累乘、求平均值、排序 求最大值、求最小值、以及它们的位置 求素数、求水仙花数、菲波纳契数列

2、 求最大、最小公约数。 统计字符个数等,1.VB应用程序(工程文件)的组织结构,VB应用程序由三种模块组成: 窗体模块(Form) (文件扩展名.frm) 标准模块(Module) (文件扩展名.bas) 类模块(Class) (文件扩展名.cls),关系:,第一、二章,1.3 VB集成开发环境,工 具 箱,窗体设计窗口,属性窗口,工程资源管理器 窗口,代码窗口,菜 单 栏,工 具 栏,P5,1.3 创建应用程序的过程,1、建立用户界面的对象。 2、对象属性的设置。 3、对象事件过程编程。 4、运行与调试程序。 5、保存程序。,P13P15,7保存一个Visual Basic的应用程序,应当保

3、存工程文件以及与工程有关的窗体或标准模块等文件。(P16),6.程序的运行及调试 (P16),5.Vb的工作状态(三种模式:设计、运行和 break) (P),8.生成可执行文件 VB程序的执行方式有两种: 解释方式 和 编译方式 (P17),2.1 VB对象的概念,2.1.1 对象和类 对象指现实世界中的实体。 每个对象有自己的特征(属性)、行为(方法)和发生在该对象上的活动(事件)。,类是对同一种对象的集合与抽象。类是创建对象实例的模板,对象则是类的一个实例。 类包含所创建对象的属性数据,以及对这些数据进行操作的方法。封装和隐藏是类的重要特性,将数据结构和对数据的操作封装在一起,类的内部实

4、现细节对用户来说是透明的。,VB中的类和对象,VB工具箱中的可视图标是VB系统设计好的标准控件类。 通过将控件类实例化,得到真正的控件对象。 实例化方法: 在窗体上画一个控件,就将类转换为对象,即创建了一个控件对象。,VB是一种面向对象的可视化程序设计语言,采取了 _的编程机制。 P5特点(2) A) 事件驱动 B) 按照过程顺序执行 C) 从主程序开始执行 D) 按模块顺序执行,练习,2.假如一个Visual Basic 应用程序由一个窗体模块和一 个标准模块构成。为了保存该应用程序,以下正确的操 作是_ 。P1617 A)只保存窗体模块文件。 B)分别保存窗题模块、标准模块和工程文件。C)

5、只保存窗体模块和标准模块文件。 D)只保存工程文件。 D) 面向过程、顺序驱动,A,B,3. 以下不属于VB工作模式的是 _模式。 A)设计 B)编译 C)运行 D)中断,练习,4.对象的三要素为_、_、_,B,5. VB是一种面向对象的可视化程序设计语言,采取 了_的编程机制 .,事件驱动,6.运行程序时,程序中的所有语句都要运行一次或多次 ( )。,练习,7. VB中的事件只能由用户引发( )。,8.在VB中开发每个应用程序都被称为工程,工程是组 成一个应用程序的文件集合( )。,属性 存放对象的数据(决定对象外观及功能)。 对象属性的设置方法: 设计阶段 利用属性窗口直接设置属性值 程序

6、运行时 通过语句:对象名.属性名=属性值 例如:Command1.Caption = 确定 注意:若属性只能在设计阶段设置,在程序运行阶段不能改变,称为只读属性。,2.1.2 对象的属性、事件和方法,事件:发生在对象上的事情.,VB为对象预先定义了一系列的事件。,事件过程:应用程序处理事件的步骤. 应用程序设计的主要工作就是为对象编写事件过程的代码。事件过程的形式如下: Sub 对象名_事件(参数) 事件过程代码 End Sub,方法,面向对象的程序设计语言,为程序设计人员提供了一种特殊的过程和函数,称为方法。方法是面向对象的,调用时一定要指明对象。 对象方法的调用格式为: 对象.方法 参数名

7、表 若省略对象,表示当前对象,一般指窗体。 例如:Text1.SetFocus 此语句使Text1控件获得焦点,光标在本文框内闪烁。,通用属性 Name名称属性 创建的对象名称,有默认的名.在程序中,控件名是作为对象的标识而引用,不会显示在控件上。 Caption标题属性 该属性决定了控件上显示的内容。 Enabled属性 控件是否可操作. 当设置为false时,呈暗淡色,禁止用户进行操作,Visible属性 控件是否可见.当设置为false时, 用户看不到,但控件本身存在。,7. 窗体 1属性: name, Caption, Picture, BoderStyle.,2事件: Load:窗体

8、被装入时自动执行该事件,通常用于对属性和变量初始化 Click: 单击事件 DblClick: 双击事件,连续按两次鼠标键发生该事件。 3方法: Print:用于在窗体或图形框中显示文本。 Cls:在窗体或图形框中清除运行时产生的图形和文本。 Move:移动一个窗体或控件。,8. 标签 用于显示文本(输出)信息,不能作为输入信息的界面。也就是说标签控件的内容只能由Caption属性来设置。 1属性: Caption, Font, Left, Top, BoderStyle. 2事件: Click: 单击事件 DblClick: 双击事件,连续按两次鼠标键发生该事件 3方法: Move: 移动控

9、件,或改变其大小。 .Move ,9. 文本框 文本编辑区域,可在该区域输入,编辑和显示正文内容。 1属性: Text, Maxlength, MultiLine, ScrollBars, Locked, PasswordChar 2事件: Change : 当改变文本框的Text属性或者用户输入新内容时会 引发该事件. KeyPress :KeyAscii 参数是所按键的ASCII码 。 LostFocus : 当控件失去焦点时发生. GotFocus : 当控件获得焦点时发生. 3方法: SetFocus: 把光标移到指定的文本框对象中。 格式: 对象.SetFocus,6. 命令按钮 1

10、属性: Name, Caption, Style, Picture. 2事件: Click 、KeyDown、KeyUp、MouseDown、MouseUp Keypress 3方法: SetFocus: 将焦点定位到命令按钮上。 格式:对象.SetFocus eg: Command1.SetFocus,1.文本框没有_属性。P31 识记表2.3 A)Enabeld B)Caption C)Visible D)BackColor,练习,2.下列中不是属性的是 : A. caption B. text C. Click D. picture,B,C,3.以下叙述中正确的是_ P24对象名称的作用

11、 A. 窗体的Name属性指定窗体的名称,用来标识一个窗体 B窗体的Name属性的值是显示在窗体标题栏中的文本 C可以在运行期间改变对象的Name属性的值 D对象的Name属性值可以为空,练习,4.要将用户在文本框Text1中所选择的文本赋值给变量a, 应书写语句_,A,a = Text1,5.在VB中最基本的对象是_,它是应用程序的 基石,是其他控件的容器 .,Form 窗体,练习,6.当对命令按钮picture属性装入.bmp图形文件后,命令 按钮上并没有显示所需的图形,原因是没有将_ 属性设置为1(Graphical)P34,Style,7.如果要使命令按钮Command1上显示文字“退

12、出(X)”, 并以Alt+X为快捷键,则其Caption属性应设置为: _ 。,退出( “您上机” “您上机” Next i Print Print MAX=; max; MIN=; min; AVER=; aver / 10 End Sub,实验E:1,思考: 如何在二维数组中求最大值、最小值以及它们的位置。,在二维数组中求最大值max 、最小值min以及它们的位置 a(maxi, maxj) 、a(mini, minj)。 Option Base 1 Private Sub Command1_Click() Dim max, min, a(10, 10), i, j, maxi, maxj

13、, mini, minj As Integer For i = 1 To 10双重循环产生随机数组 For j = 1 To 10 a(i, j) = Int(Rnd * 90) + 10 Print a(i, j); Next j Print Next i Print max = a(1, 1)假设第一个数组元素为最大值 min = a(1, 1)假设第一个数组元素为最小值 For i = 1 To 10 双重循环寻找最大值、最小值及其位置 For j = 1 To 10 If a(i, j) max Then max = a(i, j): maxi = i: maxj = j If a(i

14、, j) min Then min = a(i, j): mini = i: minj = j Next j Next i Print “a( Next End Sub,排序,Private Sub Command1_Click() Dim a(), n%, i%, j%, t%,k% a = Array(8, 6, 9, 3, 2, 7) n = UBound(a) For i = 0 To n-1 双重循环找最小值下标 k=i For j = i+1 To n If a(j) a(k) Then k = j 后项比前项小 Next t = a(i):a(i) = a(k): a(k) =

15、t 交换值 Next For i = 0 To n Print a(i) ; Next End Sub,演示,Private Sub Command1_Click() Dim a(), n%, i%, j%, t% Print a = Array(8, 6, 9, 3, 2, 7) n = UBound(a) For i = 0 To n - 1 循环产生最大值后移 For j = i+1 To n If a(i) a(j) Then 前项比后项大 t = a(i ): a(i) = a(j): a(j) = t 交换值 End If Next Next For i = 0 To n Prin

16、t a(i) ; Next End Sub,选择法排序,冒泡法排序,插入数据,插入数据基本思想是: 1)首先查找待插入数据在数组中的位置k; 2)申请一个位置空间,然后从最后一个元素开始往前直到下标为k的元素依次往后移动一个位置; 3) 第k个元素的位置腾出,将数据插入。,Dim a(), i%, k%, x%, n% a = Array(1, 4, 7, 9, 12, 23, 56) n = UBound(a) x = 14 For k = 0 To n If x a(k) Then Exit For Next k,ReDim Preserve a(n + 1) For i = n To k

17、 Step -1 a(i + 1) = a(i) Next i a(k) = x For i = 0 To n + 1 Print a(i); Next i,删除数据,1)首先找到欲删除的元素的位置k; 2)然后从k+1到n个位置开始向前移动; 3)最后将数组元素减1。,例5.8要将值为14的元素删除。,Dim a(), i%, k%, x%, n% a = Array(1, 4, 7, 9, 12, 14, 23, 56) n = UBound(a) : x = 14 For k = 0 To n 查找欲删除的数组元素位置 If x = a(k) Then Exit For Next k I

18、f k n Then MsgBox (找不到此数据): Exit Sub For i = k + 1 To n 将x后的元素左移 a(i - 1) = a(i) 比较与插入数据程序的差异 Next i n = n 1 数组元素减少一个 ReDim Preserve a(n) For i = 0 To n 显示删除后的各数组元素 Print a(i); Next i,1.在VB中把一组具有同一名字、不同下标的下标变量称为 _。 A)同类数据 B)数组 C)变量数组 D)变量,练习,2.若用Dim a(10) As Integer 语句声明了数组a ,以下 语句中错误的是_。P99下标的形式 A)

19、a(9)=a(-6) B)a(1)=56 C)a(8)=a(1)+a(3) D)a(1)=a(8)-34,B,A,3.对于动态数组a,如果需要重新定义大小,并保留原有 数据,可使用语句_。P101注意 A)Dim B)ReDim C)Dim Preserve D)ReDim Preserve,D,4. 1个二维数组可以存放1个矩阵。在程序开始有语句Option Base 0, 则下面定义的数组中正好可以存放1个4 X 3矩阵。(即只有12个元素) 的是( )。 Dim a (-2To 0,2) As Integer Dim a (3,2) As Integer C) Dim a(4,3) As

20、 Integer D) Dim a(-1 To -4,-1 To -3) As Integer,练习,B,练习,5.在窗体上面1个名称为Command1 的命令按钮,然后编写下列事件过程 Option Base 1 Private Sub Command1_Click() Dim a(5,5)As Integer For i= 1 To 5 For j = 1 To 5 a(i,j)=(i+j)*510 为数组元素赋值,如a(2,3)=(2+3)*510=2 Next j Next i s=0 For i= 1 To 5 s=s+a (i,i)求对角线之和 Next i Print s End

21、 Sub 程序运行后,单击命令按钮,输出结果是( )。 A)15 B)13 C)11 D)9 注明:本题的关键是正确计算出各个数组元素值,求对角线之和,A,6.在任何情况下,数组下标总是从0开始( )。 P99下标的形式,练习,7.任何类型的动态数组都可以利用Array函数赋值( )。 P103 Array函数,8.欲在数组a中删除某个元素,试完善下列程序。P108109例5.8 Private Sub Command1_Click() Dim a( ), i%, k%, x%, n% a = Array(1, 4, 7, 9, 12, 14, 23, 56) n= _ x = Val(Inp

22、utBox(输入要删除的数 x :) For k = 0 To n If _ Next k If k n Then MsgBox 找不到此数据: Exit Sub For i = k + 1 To n _= a( i ) Next i Print 删除后: ; ReDim Preserve a( n 1 ) For i = 0 To Ubound(a) Print a(i); Next i,UBound(a),x = a(k) Then Exit For,a(i - 1),第六章 过程,一. 过程的概念 VB的程序是由一个个过程构成的,除了VB系统提供的大量使用的内部函数过程(Function

23、)和事件过程(Sub)外,VB系统还允许用户根据各自需要自定义过程。 二. 两类过程定义与调用 函数过程 Function () As = Exit Function = End Function,调用形式: 函数过程名(实参表) 特点:函数过程名有值,有类型,在过程体内至少赋值一次。 调用时不能独立存在,必须参加表达式的运算。 子过程 Sub 子过程名(参数列表) 局部变量或常数定义语句 语句块1 Exit Sub 语句块2 End Sub 调用形式: Call 子过程名(实参表) 或: 子过程名 实参表 特点: 子过程名无值,无类型。调用时可以是一句独立的语句。,三. 参数传递 值传递(

24、ByVal ): 将实参的具体值单向地传递给形参,调用结束后形参值的改变不会影响实参的值。相对应的实参可以是常数或表达式。 2. 地址传递( ByRef ) 将实参在内存的地址传递给形参,数据传递是双向的,即调用时实参将值传递给形参,调用结束后由形参将操作结果返回给实参。即形参值的改变会改变实参的值。当实参要得到返回结果时,实参只能是变量,不能是常量或表达式。,3数组参数的传递 只能通过传址方式进行传递。注意: 在实参和形参中写数组名() 被调过程可通过Lbound和Ubound函数确定实参数组的下、上界,6.1.3函数过程的调用,Sub Form_Click Dim x%, y%, z% x

25、 = 124: y = 24 z = gcd(x, y) Print 最大公约数是 ; z End Sub,程序运行流程,Function gcd( m%, n%) As Integer If m 0 r = m Mod n : m = n: n = r Loop gcd = m End Function,在窗体上画一个命令按钮,然后编写如下事件过程: Private Sub Command1_Click() Dim a As Single, b As Single a = 15: b = 12 Call S(a, b) Print a, b End Sub,读程序,写运行结果,Sub S(B

26、yVal x!, y!) Dim t! t = x x = t / y y = t Mod y Print x, y End Sub,1.25 3 15 3,注明:本题关键, x传值,y传地址,x的值不影响a,y的值影响b,必须重点关注的实例 P127 例6.2 求最大公约数的函数过程 P128 例6.3 的变形 编一过程,统计字符串 中汉字和字符的个数及长度,编一过程,实现下图中统计字符串中汉字和字符的个数及长度,Private Sub Command1_Click() Dim sum0 As String, sum1%, sum2% sum0 = “”: sum1 = 0: sum2 =

27、0 初始化 sum0 = UCase(Text1.Text) 将字符串中小写字母转换成大写 Call CountC(sum0, sum1, sum2) Print sum0 ,共 isum Next i End Sub,结果: isum=1 isum=3 isum=6 isum=10 isum=15,注明:循环5次调用sum(i),每次调用j有累加的作用: 1次 j=0+1=12次 j=1+2=3 3次 j=3+3=64次 j=6+4=10 5次 j=10+5=15,Private Sub Command1_Click() Dim Z% Z=Z+2 Call S Print Z End Sub

28、,Sub S( ) Static Z As Integer Z=Z+2 Print Z; End Sub,例 有如下S过程和Command1_Click事件过程: 调用Command1_Click()3次,最后一次输出结果是:,注明:本题是无参调用,谁也不影响谁,但是, 要区分同名变量的不同作用域和生命周期。 1次 Dim Z(2) Static Z(2) 2次 Dim Z(2) Static Z(4) 3次 Dim Z(2) Static Z(6) 最后一次输出结果是: 6 2,1.在自定义的函数过程体内,至少对函数名赋_值。 A)一次 B)两次 C)三次 D)四次 P127,练习,2.要想

29、在过程调用后返回两个结果,下面的过程定义语句 合法的是_ P134 3. A Sub Procl(ByVal n,ByVal m) B Sub Procl(n,ByValm) C. Sub Procl(n,m) D Sub Procl(ByVal n,m),A,C,3.在参数传递过程中,使用关键字_来修饰参数, 可以使之按值传递。 P133AByVal BByRef C. Value DReference,练习,A,4. VB中的变量按其作用域分为_变量、_变量和 _变量。P140,局部,模块,全局,5.窗体中的窗体级变量应在_段声明,它作用于该 窗体的_ 。P140 2.,通用,任何过程,7

30、.1 常用控件(不涉及到编程题),7.1.1 单选按钮、复选框和框架 1.单选按钮(OptionButton ) 单选按钮以组的形式出现,允许在多项中选择一项。 重要属性 Caption属性 按钮上显示的文本 Value属性 表示单选按钮的状态: True 被选定 False 未被选定 重要事件 Click事件 单击后,Value属性为True,Value属性值为整型,表示复选框的状态: 0 vbUnchecked 未选定 1 vbChecked 被选定 2 vbGrayed 灰色,并显示一个选中标记。 重要事件 Click事件,2.复选框(CheckBox),3.框架 (Frame),具有容

31、器功能. 先建立框架,然后将各控件放置其中。 属性 Caption属性 框架上的标题文本. 事件 框架可以响应Click和DoubleClick事件,但一般不需要编写事件过程。,4. 列表框和组合框,列表框 可显示多个选项供用户选择,不能直接修改其中的内容。 组合框 组合了文本框和列表框的特性而形成的一种控件。组合框有3种式样。,1. 共有的重要属性 (P:可在程序中设置或引用,D:可在设计状态设置) List :PD 字符型数组,存放列表框的项目,下标是从0开始。 ListIndex:P 选中的项目的序号,没有项目被选定时为-1 ListCount:P 项目的数量,ListCount-1是最

32、后一项的下标。 Sorted:D True:按字母顺序排列。 False:按加入先后顺序排列。 Text:P 列表项中被选定的内容, List 1.List(List 1.ListIndex) = List1.Text。,2. 列表框的特有属性 Selected:P 逻辑数组。 Selected(i)的值为True表示第i+1项被选中。 MultiSelect 0 - None:禁止多项选择。 1 - Simple:简单多项选择。 2 - Extended:扩展多项选择。 3. 组合框的特有属性 Style,List1.ListIndex = 2 List1.ListCount = 6 Lis

33、t1.Sorted = False List1.Text 为 C/C+程序设计 ,1、列表框运行后选中“张三”,下列值各是多少? Private Sub List1_Click() Print List1.List(5) Print List1.ListIndex Print List1.ListCount Print List1.Text Print List1.Sorted End Sub,练习,王五,6,张三,False,3,本题关键:ListIndex的值从0开始!,2、将“许多”添加到索引值为2的位置上的方法是: , 下列各值又是多少? Private Sub List1_Click

34、() Print List1.List(5) Print List1.ListIndex Print List1.ListCount Print List1.Text Print List1.Sorted End Sub,练习,李四,7,张三,False,List1.AddItem 许多, 2,4,常用方法,AddItem方法 把一个项目加入列表 对象.AddItem 项目字符串 ,索引值 索引值:决定新增项在列表中的位置,如果省略,则新增项目添加在最后。 RemoveItem方法 删除列表中指定项目 对象.RemoveItem 索引值 Clear 清除列表中所有项目 例如:List1.Cle

35、ar,例:模仿ACCESS中,在“简单查询向导”中使用的项目选择器,列表框举例,Private Sub cmdToright_Click() If lstOptional.ListIndex = 0 Then 出错处理代码 lstSelected.AddItem lstOptional.Text lstOptional.RemoveItem lstOptional.ListIndex Else MsgBox 请先选择项目, , 友情提示 End If End Sub,Private Sub cmdToLeft_Click() If lstSelected.ListIndex = 0 Then

36、出错处理代码 lstOptional.AddItem lstSelected.Text lstSelected.RemoveItem lstSelected.ListIndex Else MsgBox 请先选择项目, , 友情提示 End If End Sub,Private Sub cmdToAllright_Click() Dim i% For i = 0 To lstOptional.ListCount - 1 lstSelected.AddItem lstOptional.List(i) Next lstOptional.Clear End Sub Private Sub cmdToA

37、llLeft_Click() Dim i% For i = 0 To lstSelected.ListCount - 1 lstOptional.AddItem lstSelected.List(i) Next lstSelected.Clear End Sub,Private Sub lstOptional_DblClick() lstSelected.AddItem lstOptional.Text lstOptional.RemoveItem End Sub Private Sub lstSelected_DblClick() lstOptional.AddItem lstSelecte

38、d.Text lstSelected.RemoveItem End Sub,7.3.1 滚动条,滚动条的属性,滚动条的事件,注意: 1、通过代码改变 Value 属性的值,也会触发 Change 事件 2、当拖动滑块时,会不停地触发 Scroll 事件,当拖动结束时,会触发一次 Change 事件,例7.3 计算018之间某个数的阶乘,数据由滚动条获得。,滚动条举例,Private Sub hslInteger_Change() Dim n%, s&, i% n = hslInteger.Value s = 1 For i = 1 To n s = s * i Next lblFactoria

39、l = n & != & s End Sub,又称定时器控件。用于有规律地定时执行指定的工作,常常用于编写不需要与用户进行交互就可直接执行的代码,如计时、倒计时、动画等。 在程序运行阶段,时钟控件不可见。,7.5 计时器(Timer),计时器的属性,计时器的事件,注意: 1、常常将需要定时执行的操作放在Timer事件过程中 2、计时器工作的必要条件: Interval0 Enabled=True,1.利用水平滚动条的数字可以为某种基本颜色调出256种 色彩,此时水平滚动条的Min和Max应该设置为_。 A)0,255 B)0,256 C)1,255 D)1,256,练习,2.在窗体上有一个文本框控件,名称为TxtTime;一个计 时器控件,名称为Timerl,要求每一秒钟在文本框中显示 一次当前的时间。程序为: Private S

温馨提示

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

评论

0/150

提交评论