VB程序设计课件_第1页
VB程序设计课件_第2页
VB程序设计课件_第3页
VB程序设计课件_第4页
VB程序设计课件_第5页
已阅读5页,还剩59页未读 继续免费阅读

下载本文档

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

文档简介

1、第四章 VB程序设计4.1顺序结构程序设计4.2选择结构程序设计4.3循环结构zcj1 VB虽然采用事件驱动机制,但由于VB应用程序主要是由过程组成的,所以要用到结构化程序设计的方法。本章将依次介绍顺序结构、选据结构和循环结构这三大类基本的结构化程序设计方法。zcj24.1 顺序结构程序设计zcj3 VB中可以使用多种语句,但使用最频繁的语句当数赋值语句。格式为: Let 变量名 = 表达式 Let 对象名.属性 = 表达式 功能:将表达式的赋值给变量或对象的某个属性。 例如:n1100 s1“姓名” 1l=false label1.caption=s1 text1.text=请输入:+s14

2、.1.1 赋值语句(let语句)4.1zcj44.1.2 注释、暂停与程序结束语句1注释语句 为了提高程序的可读性,通常在程序的适当位置加上必要的注释。格式为: Rem 注释内容 或 注释内容zcj52暂停语句Stop语句用来暂停语句的执行,作用相当于“运行”菜单中的“中断”命令。 格式为: Stop当执行到Stop语句时,系统自动打开立即窗口。Stop语句般用来在解释程序中设置断点,以便对程序进行检查和调试。如果在可执行文件(exe)中含有Stop语句,将关闭所有文件退出运行。因此,当程序调试完毕,在生成可执行文件之前,应删去程序中的所有Stop语句。zcj63结束语句End End语句通常

3、用来结束一个程序的执行。 其格式为: End End话句提供了一种强迫终止程序的方法。End语句可放在程序中的任何位置,当在程序中End语句中时,将中止当前程序,重置所有变量,并关闭所有的数据文件。程序中也可以没有End语句,这并不影响程序的运行。 但如果程序中没有End语句,或者虽有但没有执行含有End语句的事件过程,程序就不能正常结束,必须执行“运行”菜单中的“结束”命令或单击工具栏的“结束”按钮。zcj74.1.3 数据的输出1使用Print方法输出数据 使用Print方法,可以在窗体(Form)、调试窗口(Debug)、图片框(PictureBox)、打印机(Printer)等对象中输

4、出文本或表达式的值。 其格式为:对象名.Print 表达式列表,|; 功能:在窗体、图形对象或打印机等对象中输出信息。 zcj8例: 使用Print方法直接在窗体上输出数据实例。运行结果见图4.1所示。 Private Sub Form_Click() a1 = 2: a2 = 4: a3 = 6 Print a1, a2, a3 Print Print a1+a2+a3=; a1 + a2 + a3End Subzcj9运行程序zcj10例: Print方法实例。运行结果见图4.2所示。 Private Sub Form_Click() Print 10+20=, Print 10 + 20

5、 Print 30+20=; Print 30 + 20 End Subzcj11图4.2zcj122格式函数Format$(配合print方法一起使用) 用Print方法输出数据时,为了以某种特定的格式显示或打印数据,可使用Format$函数来实现。 其格式为: Format$(表达式格式字符串) 功能:按格式字符串指定的格式将表达式以字符串形式返回。与print有关的函数:tab函数/spc函数/format$函数zcj13(1) Tab函数: 在参数n指定的位置输出其后的表达式的值。 格式:Tab(n) 例 Print Tab(25); “ABC“ 在第25列显示“ABC”串(2) Sp

6、c函数:使光标从当前位置跳过n个空格,对输出进行定位。 格式:Spc(n) 说明:Tab中的参数n是绝对列号,而Spc函数中的n参数是相对于前一输出项的最后一个字符而言跳过的空格数。例如: Print Hello;Tab(10); World 第二个字符串从第10列起输出 Print Hello;Spc(10); World 两个字符串之间相隔10个空格与Print方法有关的函数zcj14(3)Format函数:使数值或日期按指定的格式输出。 格式:Format(数值表达式,格式字符串) 数值格式化输出 格式字符串是一个串常量或串变量,由专门的格式说明字符组成,这些字符决定了数据项的显示格式和

7、长度,详见教材表4-2。 例 Print Format(12345.6, “#,#.#”) 输出:12,345.6 日期和时间格式化输出 日期和时间格式化是将日期类型表达式的值或数值表达式的值以日期、时间的序数值按“格式字符串”指定的格式输出。有关格式见教材表4-3。 例 Print Format(Now, “yyyy年m月dd日hh:mm”) 输出:2007年4月12日zcj153使用标签和文本框输入输出 标签是VB中最简单的控件,用于显示文本信息,但不能编辑,通常用于显示提示信息。 文本框(TextBox)控件可用来显示或输入文本,与标签配合使用可以很好的控制数据的输入输出。 例 设计一个

8、窗体,如图所示。其中有3个标签、3个文本框和1个命令按钮。zcj16图4.5zcj17编写单击命令按钮响应事件程序如下: Private Sub Command_Click() a1=text1.text a2=text2.text a3=a1*a2 text3=a3End Sub 选择运行启动命令,分别输入矩形的长和宽,单击开始计算按钮,在第三个文本框中就会显示矩形的面积。zcj181输入函数InputBox为了输入数据,增加人机交互界面,VB提供了InputBox函数。当调用InputBox函数时系统会弹出一个对话框,等待用户输入数据。其格式为: InputBox ( prompt,tit

9、le, Defaultl, Xpos, Ypos, HelpFileContext)功能:产生一个对话框,等待用户输入数据,并返回所输入的文本内容 4.1.4 用户交互函数和过程缺省值标题提示运行程序zcj19参数说明:prompt:提示信息字符串表达式,最大1024个字符。该信息自动换行,如果要按自己的要求换行,则需插入回车、换行符来分隔,即Chr(13)+Chr(10)或VB常量vbCrLf。title:对话框标题。default:对话框中的默认字符串,缺省时为空白。xpos,ypos:对话框左上角的点坐标,缺省时,对话框显示在屏幕中心。zcj202.MsgBox输出函数与MsgBox语句

10、(1)MsgBox函数 与Windows风格相似,VB提供了一个可以显示提示信息对话框的Msg函数。此函数可以用对话框的形式向用户输出信息,并根据用户的选择做出响应。其格式为: MsgBox(Prompt,Buttons,Title,HelpFile,Context) 功能:根据参数建立一个对话框,显示提示情息,同时将用户在对话框中的选择结果传输给程序。 函数中共包括5个参数,其中Title、HelpFile和Context参数与InputBox函数中同名参数含义类似。 InputBox ( prompt,title, Defaultl, Xpos, Ypos, HelpFileContext

11、)zcj21(2)MsgBox语句 MsgBox语句与MsgBox函数的作用相似,各参数的含义也与MsgBox函数相同,其格式为: MsgBox ,Buttons,Title,HelpFile,Context 功能:建立一个对话框,显示提示信息,同时接收用户在对话框中的选择。 zcj22MsgBox函数和MsgBox过程 函数形式:变量% = MsgBox(提示,按钮图标+ 缺省按钮+模式,标题) 过程形式: MsgBox 提示,按钮图标 +缺省按钮+ 模式,标题图标标题提示信息命令按钮zcj23按钮及图标值如下:根据用户所选按钮,函数返回17的整数值,其含义如下表:(表4.2)zcj24例:

12、 编写程序,使用MsgBox函数显示对话框,运行结果如图4.9所示Private Sub Form_Click() m1 = 继续录入数据吗? m2 = MsgBox函数示例 h = MsgBox(m1, 36, m2) Print hEnd Sub运行程序zcj25图4.9zcj264.2 选择结构程序设计zcj27 选择结构是一种分支结构,它能根据所指定条件的当前值在两条或多条程序路径中判断并选择一条执行,因此该结构也被称为判断结构。它为处理多种复杂情况提供了便利条件。 VB中选择结构语句有If语句和Select Case语句两种。zcj28 1. IfThen语句(单分支结构) If T

13、hen 语句块 End If 或 If Then 例:已知两个数x和y,比较它们的大小, 使得x大于y. If xy Then t=x : x=y: y=t End If 或 If xy Then t=x: x=y: y=tIf语句多行分支结构单行分支结构运行程序zcj292. IfThenElse语句(双分支结构) If Then Else End If If Then Else 例如:输出x,y两个中值较大的一个值。IF XY Then Print XElse Print YEnd If也可以写成如下的单行形式: IF XY Then Print X Else Print Y 双分支选择结

14、构执行过程 多行分支结构单行分支结构运行程序zcj30注意:单行形式If语句与多行形式的If语句的区别前者适用于简单的二叉分支的情况,后者适用于多分支的情况。前者可以改写为后者的形式。前者必须写在一行中;后者必须写成多行,并且在关键字“Then”后面必须回车。后者必须是If开头,End If结束,两者必须成对出现。但是,前者没有End If。另外,在多行形式的If语句中,代码的排版推荐使用缩进方式,这样不仅有利于阅读程序,也有利于发现错、排除错误。zcj31对于简单的条件结构,有时可以使用VB提供的IIF函数来实现,它和“if.thenelse”语句有类似功能。其格式如下:IIf(,)如前:例

15、题zcj323. IfThenElseIf语句(多分支结构) 形式: If Then ElseIf Then Else 语句块 n+1 End If执行过程单行分支结构If then elseif then else语句块 n+1 Select case“ElseIf”是一个关键字,不能写成“Else If”。zcj33Select Case语句 在某些情况下,对某个条件表达式可能出现多种取值不同的情况或者需要根据某些离散的值进行不同的处理时,If结构语句不太适合,需要使用另一种多分支选择结构语句Select Case语句来完成。在这种语句结构中,只有一个用来判断的表达式,根据表达式不同的计算

16、结果,来执行不同的语句序列。zcj34Select caseCase Case Case Case Else End SelectSelect Case语句的格式为:功能:在语句开始时将“测试表达式”计算一次,根据“测试表达式”的值,在一组相互独立的可选语句序列中判断出当前应该选择执行的语句序列。zcj35注意事项:(1) 执行过程:先对“测试表达式”求值,然后从上到下顺序地测试该值与哪一个Case子句中的“表达式表列”相匹配;一旦找到,则执行该Case分支的语句块,然后把控制转移到End Select后面的语句块;如果没找到,则执行Case Else分支的语句块,然后把控制转移到End Se

17、lect后面的语句块。(2) “测试表达式”可以是数值表达式或字符串表达式,通常为变量或常量。zcj36(3) 每个Case子句中的语句块可以是一行或多行VB语句。(4) “表达式表列”中的表达式必须与测试表达式的类型相同。zcj37(5) “表达式表列”称为域值,可以是下列形式之一:表达式1,表达式2 当“测试表达式”的值与其中之一相同时,就执行该Case子句中的语句块。 例 Case 2,4,6,8,10表达式1 To 表达式2 当“测试表达式”的值落在表达式1和表达式2之间时(含表达式1和表达式2的值),则执行该Case子句中的语句块。书写时,必须把较小值写在前面。 例 Case 2 T

18、o 10 Is关系表达式 当“测试表达式”的值满足“关系表达式”指定条件时,执行该Case子句中的语句块。zcj38(6)有时可以用choose函数代替Choose(整数表达式,选项列表)返回列表选项或者是null例:根据当前日期函数now,weekday,利用choose函数显示“今日是星期*”。运行程序思考:显示“*年*月*日是星期*”zcj39 例:输入一学生成绩,评定其等级。方法是:90100分为“优秀”,8089分为“良好”,7079分为“中等”,6069分为“及格”,60分以为“不合格”。分别用IfThenElseIf语句和Select Case语句实现,并比较他们的不同。运行程序

19、运行程序运行程序Select caseIfThenElseIfzcj40 多分支选择结构语句用来处理较复杂的多条件选择判断。Select Case结构语句也称之为“情况语句”或简称为“Case语句”。它实际上是多行If(块结构)条件语句的一种变形。两者之间的主要区别在于:块结构条件语句可以对多个表达式的结果进行判断,从而执行不同的操作;而Case语句只能对一个表达式的结果进行判断,然后再选择不同的操作流程。zcj41选择结构的嵌套 在选择结构的每个分支中,可以是任何语句,也可以再是一个分支结构。这种分支结构中包含另一个分支结构的情况称为分支嵌套。在分支嵌套中应注意的问题: 每个结构必须完整。

20、外层结构必须完全包住内层结构,不能交叉。 内层结构应采用缩进格式,以使层次清楚。zcj42If then If then End ifEnd if和IfThenElseIf语句(多分支结构)的区别?运行程序比较:4.6.1 4.6.2zcj43 例如:编一个账号和密码输入的检验程序,运行界面如下图。对输入的账号和密码规定如下:账号不超过6位数字,以按tab键表示输入结束;密码4位字符,输入文本框以“*”显示,单击“确定”按钮表示输入结束,密码假定位“zzz”;当输入不正确,如账号为非数字字符,密码不正确等,显示有关信息,再输入。运行程序zcj44注意:对于嵌套结构,为了增强程序的可读性,书写时

21、采用锯齿型;If 与end if必须配对使用,且end if 与最接近的if配对。zcj4543 循环结构? 计算1+2+3+100 的值。 ? 计算1+2+3+10 的值。zcj464.3.1 ForNext循环 ForNext循环是一种已知循环次数的循环,按照指定的次数重复执行循环体。在循环体中使用一个循环变量(计数器),每重复执行一次循环体,循环变量就会按照步长值自动增加或减少。其格式如下: For = To Step 语句序列 Exit For Next zcj47 其中: 循环变量:是用做循环计数器的数值变量,也称为循环控制变量。 初值:循环控制变量的初值,是个常数或数值表达式。 终

22、值:循环控制变量的终值,是个常数或数值表达式。 步长:循环控制变量的增量,是一个常数或数值表达式。 功能:按指定的次数执行循环体。? 计算1+3+5+99 的值(1到100之间的奇数和)。比较goto语句zcj48ForNext循环流程图zcj49?s= 1*2*3*n,计算出s不大于5000时n的最大值。? 计算1*2*3*100的值。运行程序zcj504.3.2 WhileWend循环 有些问题的解决过程可能不能事先知道需要重复执行某些操作的次数,那么用ForNext循环语句就不适合了,但可以考虑用WhileWend或Do循环语句。 WhileWend循环也是种形式的循环结构,也称当型循环

23、。比较: 与ForNext循环不同的是:它不是确定循环次数的循环结构,而是根据给定“条件”的成立与否决定程序的流程。zcj51 其格式为: While条件表达式 语句序列 Wend 功能:如果“条件表达式”的值为True,则执行循环中的“语句序列”即循环体,否则退出循环。zcj52WhileWend循环结构流程图zcj534.3.3 Do循环 这种形式的循环语句比WhileWend语句功能更强。比较: WhileWend循环只能在初始位置检查循环条件是否成立; 而Do循环可以有两种格式,既可以在初始位置检查循环条件是否成立,又可以在执行一遍循环体后的结束位置判断循环条件是否成立,然后再根据循环

24、条件是True或False决定是否执行循环体。运行程序运行程序zcj54 格式: Do While|Until 条件 循环体 Loop Do While.Loop语句的功能:当条件成立(为真)时,执行循环体;当条件不成立(为假时),终止循环 Do Until.Loop(直到型循环)语句的功能: 当条件不成立(为假)时,执行循环体,直到条件成立(为真)时,终止循环前测型Do.Loop循环zcj55?求 S12 + 22 + + 1002?用/41 - 1/3 + 1/5 - 1/7 + 级数,求的近似值。当最后一项的绝对值小于10-5时,停止计算。运行运行zcj56 语句格式如下: Do 循环体 Loop While|Until条件 功能:先执行循环体,然后判断条件,根据条件决定是否继续执行循环 注意,本语句执行循环的最少次数为1,而前测型Do.Loop语句的最少次数为0(即一次都不执行循环)后测型Do.Loop循环zcj57 ForNext 前测型 S=0 s=0:k=1 For k=1 to 8 Do While k=8 s=s+k s=s+k Next k k=k+1 Print s Loop Print s s=0 : k=1 do s=s+k k=k+1 Loop While k=8 Print s三种循环语句比较 示例:求和s = 1 + 2 + 3 +

温馨提示

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

评论

0/150

提交评论