




已阅读5页,还剩229页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Visual Basic总复习 主要内容 o基本数据类型与表达式 o程序流程控制 o常用控件 o数组与记录 o过程 o文件 第 1章 程序设计语言 与程序设计 程序设计语言 基本概念 程序设计语言 o机器语言 直接与机器交互的语言 ,程序执行速度快 ,资源要求低 o高级语言 亦称程序设计语言 , 计算机不能直接识别 源程序代码,必须 翻译 成二进制程序才能 在机器上运行。 翻译方式 o解释方式 :由 “解释程序 ”对源程序 逐个 语句 一边翻译,一边执行 特点 :执行速度慢,便于观察调试程序。 o编译方式 :由 “编译程序 ”把源程序 全部 翻译 成二进制程序。 特点 :一旦编译成功,目标程序就可以反复 高速执行。 主要概念 o对象 系统中的基本运行实体,它封装了数据和 操作。可以有相同的名称 .如窗体中的命 令按钮、标签等控件。 o属性 是对象的性质或状态特征。例如, 窗体的 Caption、 BackColor等都是窗体的属性。 主要概念 (续 ) o事件 是对象之间传递的消息。例如, Click事件、 DblClick事件。 o方法 是对象在某些事件驱动下执行的特定操作。 例如窗体的 Print方法、 Show方法; o事件驱动程序 响应特定事件的一段程序。如 Command1_Click() 一个工程包含各种文件 o工程文件( .vbp) o窗体文件( .frm) o标准模块文件( .bas) 第 2章 基本数据类型 与表达式 字符集和词汇集 基本数据类型 运算符和表达式 常用内部函数 2.1 程序设计语言单位 o字符、词汇、表达式、语句、过程、函数 等称为 “语法单位 ”。 o字符 是构成程序设计语言的 最基本符号 o单词 是具有语法意义的 最小语法单位 。 1、 字符集 o数字 : o英文字母 : o特殊符号 : Space ! “ 我们常用的字符集是 ASCII( American Standard Code for Information Interchange) 字符集。 例如 Enter(回车,代码为 13) 2.标识符 o用于标记用户自定义的常量、类 型、变量、控件或过程、函数等 名字 命名规则 o以 字母 开头,由 字母、数字和下划线 组成 。 o 变量名的 最后 一个字符可以是 类型说明 符 ( % 整型 , ) 或空格作分隔符,则按 紧凑格式 输出。 如果 省略 ,则在 下一行 输出下一项目。 o执行语句 :Print Spc(9), “basic“ o其结果 “basic“字符串在第( )列开始显 示。 oa) 10 b) 11 c) 14 d)15 od Format函数 o 格式: Format( , ) 字符 作 用 # 数字。不在 输 出串前、后 补 0 0 数字。在 输 出串前、后 补 0 . 小数点 , 千位分隔符 % 百分比符号 $ 美元符号 + 正、 负 号 E+ E 指数符号 例 o x=12.356 o Print Format ( x,”#.#” ) o Print Format ( x,”000.00” ) o Print Format ( x,”0.00%” ) o Print Format ( x,”00.00E+00” ) o Print Format ( x,” $0, 000.00” ) o 答案: 12 36 o 012 36 o 1235 60% o 12.36e+00 o $0,012.36 3.2 分支结构 o单行结构条件语句 o块结构条件语句 o情况语句 一、单行结构条件语句 o格式 : If Then Else o注意 : 1.在一行上书写 ,没有 Endif语句 2.else总是跟最靠近的那个 then匹配 以下不正确的单行结构条件语句是 ( ) oa) If xy Then Print “ xy “ ob) If x Then t = t * x oc) If x Mod 3=2 Then ? x od) If x Then ElseIf Then . ElseIf Then Else End If 三、情况语句 o Select Case Case Case Case Else o End Select Select Case说明: o 测试表达式 可以是数值表达 式或字符串表达式; o 表达式表列 中的表达式必须 与测试表达式 的类型相同。 o称为域值,可以是下列形式 之一: oa. , ob. To oc. Is 下列 Case语句中正确的是 ( ) o a) o Select Case x o Case 1 Or 3 Or 5 o y=x*x-1 o Case Is 10 o y=x+1 o End Select o b) o Select Case x o Case 1, 3, 5 o y=2*x-1 o Case Is x 0 o y=Sqr(x)+1 o End Select o d) o Select Case x o Case x=1 And x10 o y=x*x+1 o End Select 例 o Private Sub Command1_Click() o Dim x%, y% o x = InputBox(“请输入 x的值: ”) o Select Case x o Case 1, 3, 5 o y = x - 1 o Case 6 To 10 o y = x + 1 o Case 2, 4 o y = 2 * x 结果 : o Case Is 10 x=3 y=2 o y = x * x + 1 x=2 y=4 o End Select o Print “x=“; x, “y=“; y o End Sub o ( x 的输入值为 2.53,2.5) o 把一个实数赋给一个整变量,则只能获取它的整数部分了。 3.3 循环结构 oWhile Wend 语句 oDoLoop 语句 oForNext 语句 o嵌套循环 一、 While Wend 语句 oWhile o oWend 二、 DoLoop 语句 o先判断条件形式 Do While | Until Loop o后判断条件形式 Do Loop While | Until 循环结构注意问题 o do、 while循环体内都必须有修改循环条件的语 句 o 在 do、 while循环语句前应对变量赋初值 一般情况,累加器赋 0值,累乘器赋 1值 “条件 ”可以是关系表达式、逻辑表达式或常数 例: s=0(s=1) k=0 while k = To Step Exit For oNext 步长 o0时,作 递增 循环 ,即应有 ; o 0时,作 递减 循环 ,应有 ; o 1时,可省略 Step子句。 for循环结构注意问题 oFor 循环结束后,其循环控制变量的值一 定超过终值。 例: For i=1 to 5 print “*”; Next i Print i (i=6) o x=4 o for i=1 to 10 step 3 o x=x+i o next i o? x oa) 27 b) 26 c) 57 d) 38 o答案 b 有程序段 (int(end- start)/step+1) oDim I As Integer oFOR I=7 TO 90 STEP 5 o PRINT I; oNEXT I o上述程序共执行( )次循环。 oA、 17 B、 16 C、 15 D、 14 o答案 a 四、嵌套循环 o外层循环与内层循环必须层层相套,循环 体之间不能交叉 For j = k1 To k2 Do While b Loop Next j(正确) Do While b1 For j = k1 To k2 Loop Next j (错误) 在窗体上输出以下形式的星星阵列 * * * * o Private Sub Command1_Click() o Dim line%, i%, j% o line = Val(InputBox(“请输入行数: “) o For i = 1 To line 外循环控制输出行数 o Print Space(20 - i); 每行前面的空格数 o For j = 1 To i * 2 - 1 内循环控制输出个数 o Print “*“; o Next j o Print 换行 o Next i o End Sub 2.退出循环 (1) Exit Do语句语句 (2) Exit For语句语句 功能:功能: 强制退出循环,并转到强制退出循环,并转到 Do Loop语句或语句或 next的的 下一个语句去执行。下一个语句去执行。 第 5章 数组与记录 主要内容 o数组 是由固定数目的同类元素按一定顺序排列 而成; o记录 则由数目固定不同类型元素组成。 数组 一维数组 二维数组 5.1 一 维 数 组 o数组说明格式为: Dim ( ) As o 语法: To 和 为长整型( Long) 常量 , 的缺省值为 0。 例 .在程序中 ,能否出现语句 :Dim A( to N)? oA)不可以 oB)若在这个语句前面已经把 N设置为正整 数的符号常量 ,就可以出现这个语句 . oC)若在这个语句前面已经对 N赋了为正整 数值 ,就可以出现这个语句 . oD) B)和 C)都对 o答案: B 一维数组主要内容 o数组元素的输入、输出 o数组元素的平均值、最大、最小值 o数组元素的排序 o两数组合并 数组元素的输入 o 方法一:( inputbox函数) o For i = 1 To 20 o a(i) = InputBox(“请输入第 “ i; “) = “; a(i); o If i Mod 5 = 0 Then Print oNext 某班有某班有 10个学生参加计算机等级考试,求这些学生个学生参加计算机等级考试,求这些学生 的的 平均成绩平均成绩 。 o Private Sub command1_click() o Dim S(1 To 10) As Single, Sum As Single, i As Integer o For i = 1 To 10 o S(i) = InputBox(“s(“ Sum / 10 o End Sub 求求 10个数中的个数中的 最小值最小值 o Private Sub command1_click() o Dim a(1 To 10) As Single,min As Single,i As Integer o For i = 1 To 10 o a(i) = InputBox(“a(“ student.no o Print “ 姓名: “; o Print “ 数学: “; student.maths o Print “ 物理: “; student.physics o Print “ 程序设计: “; gramming o Print “ 总成绩: “; student.total o End Sub 2 With语句 oWith 语句格式为: With End With o Private Sub Command1_Click() o Dim student As rec o With student o .no = InputBox(“学号: “) o .name = InputBox(“姓名: “) o .maths = InputBox(“数学成绩: “) o .physics = InputBox(“物理成绩: “) o .programming = InputBox(“程序设计成绩: “) o .total = .maths + .physics + .programming o Print “ 学号: “; .no o Print “ 姓名: “; .name o Print “ 数学: “; .maths o Print “ 物理: “; .physics o Print “ 程序设计: “; .programming o Print “ 总成绩: “; .total o End With o End Sub 第 7章 过 程 主要内容 o过程的定义与调用 o参数传递 o过程与变量的作用域 7.1 子过程的定义 oPrivate|Public Static Sub () End Sub 函数过程的定义 o Public|PrivateStatic Function () As = o End Function 过程调用 o1.子过程调用 o o或 Call () o例 :Call fac(m, c1): Call fac(n, c2) o cmn = c1 / c2 o2.函数过程调用 o () o例 :cmn = fac(m) / fac(n) 定义过程中参数的确定 o需要传入的数据 传值参数 (ByVal) o需要传出的数据 传址参数 (ByRef,或 缺省 ) o函数传出的数据可由函数名返回 7.5 变量的作用域与 生存期生存期 o过程(局部)级变量: 在 过程内部 用 Dim或 Static声明的变量, 作用域为 本过程 。 o文件级(模块级)变量: 在文件中 各过程之外 ,用 Dim或 Private语 句声明的变量,其作用域为 本文件或本模 块 。 o工程级(项目级、全局)变量: 在文件中 各过程之外 ,用 Public语句定义 的变量,其作用域为 整个工程或整个项目 或全局 。 注意 o 在同一模块不同过程中定义的变量可以同名;在同一模块不同过程中定义的变量可以同名; 如如 :form1中有中有 sub1、 sub2,均可定义变量,均可定义变量 o 同一模块不同级的变量可以同名;同一模块不同级的变量可以同名; 如如 :form1中可定义模块级,亦可定义过程级中可定义模块级,亦可定义过程级 o 不同模块中定义的全局变量可以同名,但引用另不同模块中定义的全局变量可以同名,但引用另 一模块的全局变量时必须在变量名之前加上模块一模块的全局变量时必须在变量名之前加上模块 名。名。 如如 : form1中可定义全局级中可定义全局级 (form1.A), module1中可定义全局级中可定义全局级 A(module1.A) o 过程中引用的变量,总是同名变量中作用范围最过程中引用的变量,总是同名变量中作用范围最 小的那一个变量。小的那一个变量。 变量的生存期变量的生存期 o动态变量动态变量 o静态变量静态变量 动态变量 o使用 Dim说明 o当程序执行到动态变量所在的过程时才给 动态变量分配存储单元。 o过程执行结束后,动态变量所占用的存储 单元被系统回收。过程再次被调用时,重 新分配存储单元和初始化。 静态变量 o使用 Static说明 o在整个应用程序运行期间,分配有固定存 储单元。 o过程执行结束时,变量的值仍保存,该过 程再次被调用时,变量的值为上次过程调 用结束时的值。 在以下关于变量作用域的描述中,不正确的 是() oA)当某过程变量与全局变量同名 ,全局变 量在这个过程中就会被屏蔽 oB)静态变量不是模块级或工程级变量 ,其 作用域只限于在它所定义的过程内部 oC)在某一个过程中定义的变量的作用域只 能是这一过程 oD)在某一个模块中定义的变量的作用域只 能是这一模块 o答案 D o Dim x As Integer o Public Sub sub1( x as Integer) o x = x + 1 o End Sub o Public Function fun1( ByVal x as Integer)as integer o Fun1 = 2*x o End function o Private Sub Command1_Click() o static y As Integer o call sub1(y) o Print “x=”;x,”y=”;y o x=fun1(y) o Print “x=”;x,”y=”;y o End Sub o 运行结果 : o X=0 y=1 o X=2 y=1 编写 过程 程序设计的步骤 o输入数据 o处理数据 (调用过程 ) o输出数据 定义过程中参数的确定 o需要传入的数据 通常是输入的数据 o需要传出的数据 通常是处理的结果 给定求组合数公式为: ,编一程 序,输入 m和 n的值,求的值。 o Private Sub fac(ByVal k Spc(2); ; Spc(2); s.sex; Spc(2); s.math; 在已有的顺序文件后添加记录 oOpen “f:StudentFile1.dat“ For Append As #1 oWrite #1, s.no, , s.sex, s.math, 二、读顺序文件 oInput#语句 oLine Input#语句 oInput函数 Input#语句 o格式: Input #, o例 oOpen “f:StudentFile1.dat“ For Input As 1 oWhile Not EOF(1) o Input #1, s.no, , s.sex, s.math, o Wend Line Input#语句 o 格式: Line Input #, o例 oOpen “f:StudentFile2.dat“ For Input As #1 o While Not EOF(1) o Line Input #1, str o Wend Input函数 o格式: Input(, #) o例 oOpen “f:StudentFile2.dat“ For Input As #1 ostr = Input(LOF(1), #1) 8.3 随机文件 o打开随机文件 Open For Random As # Len= o例如: Open “D:TestDate.rec“ For Random As #1 Len=16 o一个文件的大小用函数 Lof测试后长度为 2000,同时,打开这个文件的命令可以用 如下语句: o Open “f1.dat” For Random As #1 Len=10 o 则这个文件的记录数是( )。 o200 读、写随机文件 o写随机文件 Put #, , o读随机文件 Get #, , 例 : Put 1, , s s.no, , s.sex, s.math 由于 Put命令中没有指明记录号,因此每次都把 记录写到文件的末尾 (错 ) 例 修改记录。设计子过程,对一个已存在的职工工 资简表 person.rec进行修改,凡是低于 500元的工 资增加 50元。 o 职工记录定义如下:(记录必须在标准模块或窗 体模块中定义 ) o Type person o no As Integer o name As String * 8 o wages As Single o End Type o 增加工资的子过程如下 o Sub increase() o Dim i%, total% o Dim p As person o Open “f:VB例程 person.rec“ For Random As #1 Len = 14 o total = LOF(1) / Len(p) 计算文件的记录数 o For i = 1 To total (while not eof(1) o Get #1, , p o If p.wages max Then max=score o Wend o Print “最高分数为: “; max o Close #3 o End Sub o Not EOF(3) o Input #3,score 8.5 文件操作用的 3个控件 o驱动器列表框 o目录列表框 o文件列表框 驱动器列表框 o属性 .Drive = o事件 当 Drive属性被改变时,引发该驱动器列 表框的 Change事件。 目录列表框 o属性 .Path = o事件 当 Path属性被改变时,触发该目录列表框 的 Change事件。 文件列表框 oPath 属性 ofilename属性 oPattern属性 o.Pattern = 例 三列表框联动。 oPrivate Sub Dir1_Change() o File1.Path=Dir1.Path oEnd Sub oPrivate Sub Drive1_Change() o Dir1.Path=Drive1.Drive oEnd Sub 8.6 几个文件操作命令和函数 oShell 函数 o = Shell ( , ) o功能:执行由 指定的文件 窗口类型命名参数可取以下这些值: o 符号常量 值 窗口类型 o vbHide 0 窗口隐藏,有焦点 o VbNormalFocus 1 正常窗口,有焦点 o VbMinimizedFocus 2 图标,有焦点 o VbMaximizedFocus 3 最大化窗口 o VbNormalNoFocus 4 窗口被还原,无焦点 o VbMinimizedNoFocus 6 图标,无焦点 其它命令 oChDrive 改变当前驱动器 例: ChDrive “d:” oChDir 改变驱动器的当前目录 例: ChDir “a:temp” oMkDir 建立指定的子目录 例: MkDir “c:test” oName 文件改名或移动 例: Name “d:mydirtt.dat“ as “d:tt.dat“ oKill 删除文件 例: Kill “d:temptest.dat“ oRmDir 删除子目录 例: RmDir “d:mydir” oCurDir ( ) o功能:返回由 指定驱动器的当前 路径的字符串。若省略 则返回当 前驱动器的当前路径。 o例: qDir = CurDir() 一个工程包含各种文件 o工程文件( .vbp) o窗体文件( .frm) 通常,在其下定义的类型、常量、变量、 过程仅供该窗体调用,除非使用 Public 关 键字 o标准模块文件( .bas) 通常,在其下定义的类型、常量、变量、 过程可供整个工程调用,除非使用 Private 关键字 程序阅读题 注意 : 1.格式 o 循环输出和数组输出,注意输出格式: u , 分隔,则按 标准格式 显示数据项 u ; 或空格作分隔符,则按 紧凑格式 输出 u 如果 省略 ,则在 下一行 输出下一项目。 u print 如果前一输出项有分隔符,则换行;否则输 出一空行 u If x Mod 4=0 Then Print 每行输出 4个数据 1 Private Sub Command1_Click() o Dim x As Integer, y As Integer o For x=1 To 10 Step 3 o Select Case x*2 o Case Is8 o y = x + 8 o Case 2 o y = x * 2 o Case 8 o y = x * 3 o Case Else o y = x + 10 o End Select o Print “x=“;x,”y=”; y o Next x o End Sub o X=1 y= 9 o X=4 y=12 o X=7 y=17 o X=10 y= 20 o 1 9 o 4 12 o 7 17 o 10 20 o (错 ) o X=1 y= 9 X=4 y=12 X=7 y=17 X=10 y= 20 o (错 ) o 写出单击 Command1按钮后,下列程序运行 的结果 o Private sub command1_click() o Print “*”;tab(9);3,tab(18);6 o For i=15 to 16 o Print I; o For j=3 to 6 step 3 o Print tab(3*j);j*I; o Next j o Print o Next i o End sub o * 3 6 o 15 45 90 o 16 48 96 注意 2:过程 o需要传入的数据 传值参数 (ByVal) o需要传出的数据 传址参数 (ByRef,或 缺省 ) 1 Private Sub P(ByVal x as Integer, y As Integer) o x = x + 1 o y = y-1 o End Sub o Private Sub Command1_Click() o Dim a As Integer, b As Integer o a = 3 o b = 2 o call f(8,a) o Print “a=“;a,”b=“;b o call f(a,b) o Print “a=“;a,”b=“;b o End Sub o a=2 b=2 o a=2 b=1 作用域: o过程(局部)级变量: 在 过程内部 用 Dim或 Static声明的变量。 o文件级(模块级)变量: 在文件中 各过程之外 ,用 Dim或 Private语 句声明的变量。 o工程级(项目级、全局)变量: 在文件中 各过程之外 ,用 Public语句定义 的变量。 o Dim x as integer o Private sub command1_click() o X=100 o Call s1:print x o Calls2:print x o End sub o Private sub s1() o Dim x as integer o X=x+200:print o End sub o Private sub s2() o X=x+200:print x o End sub 200 100 300 300 变量的生存期变量的生存期 o动态变量动态变量 o使用 Dim说明 o当程序执行到动态变量所在的过程时才给 动态变量分配存储单元。 o过程执行结束后,动态变量所占用的存储 单元被系统回收。过程再次被调用时,重 新分配存储单元和初始化。 静态变量静态变量 o使用 Static说明 o在整个应用程序运行期间,分配有固定存 储单元。 o过程执行结束时,变量的值仍保存,该过 程再次被调用时,变量的值为上次过程调 用结束时的值。 o 设有程序段 : o Private Sub Command1_Click() o Static m as integer o Static n as integer o n=3 o n=n+5 o m=5+m o Print m,n o End Sub o 程序运行时,三次单击命令按钮 Command1后 ,窗体显示的结果是( )。 o 15 8 注意 3:用语言描述结果 oFor i = 1 To 10 o a(i) = Int(Rnd * 100 + 1) o Print a(i), o If i Mod 4 = 0 Then Print oNext o答案:输出 10个 1 100之间的随机整数 ,并每行输出 4个数据 oPrivate Sub HScroll1_change() o Label1.left= HScroll1.value oEnd sub o功能 : o单击滚动条左箭头时,标签上的字可以左 边移动,且标签移动的范围等于滚动条的 范围。 程序填空题 o下面事件过程的功能是通过调用过程 swit, 调换数组中数值的存放位置 ,即 b(1)与 b(8) 的值互换 , b(2)与 b(7)的值互换 , b(4) 与 b(5)的值互换。 B() o Private Sub command1_Cli
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025上海市阳光社区青少年事务中心招聘1人考试模拟试题及答案解析
- 2025四川凉山州冕宁县内部分学校空缺岗位教师考调49人考试参考题库及答案解析
- 农户家庭养殖业防疫责任协议
- 2025年安庆市大观区高琦幼儿园招聘1名考试模拟试题及答案解析
- 2025榆林高新第五小学教师招聘备考考试题库附答案解析
- 2025陕西咸阳市定向“优师计划”师范毕业生招聘40人备考考试题库附答案解析
- 2025年下半年北京密云区招聘事业单位人员62人备考模拟试题及答案解析
- 2025年滁州市清流原著幼儿园招聘考试模拟试题及答案解析
- 2025云南昆明自来水集团有限公司招聘4人考试参考题库及答案解析
- 2025年安庆市宜秀区实验幼儿园教师招聘1名备考考试题库附答案解析
- (完整word版)HND商务文化与策略
- 【ch06】基因工程中的伦理问题
- 大学生创新创业(微课版第3版)课件 第1、2章 了解创业规划你的职业生涯、创新与创新思维
- 2022中国移动通信集团重庆限公司招聘上岸笔试历年难、易错点考题附带参考答案与详解
- 卡培他滨诱导手足综合征大鼠模型的建立及评价
- 电动托盘车(搬运车)培训-课件
- 消防管道设备防腐保温施工方案
- 外研版九年级上英语单词默写表
- 14K118 空调通风管道的加固
- 十二岁的旅程
- 汽车发动机构造与维修PPT完整全套教学课件
评论
0/150
提交评论