背景:                 
[本书目录] [图书首页] [本书讨论区]  
链接地址:http://www.17xie.com/read-3360.html    注册17xie 一起来写书 实现您的出书梦想!

4  选择结构和循环结构程序设计

学习目标

本章介绍了VB编程中最重要的部分——程序结构设计。在前面的知识中,编写的程序主要是依照从上到下,从左到右的顺序执行,称这种结构为顺序结构。而在实际的应用中,经常需要用到选择结构和循环结构来改变程序的执行方向。本章介绍了If选择结构、SelectCase选择结构、ForNext循环结构、WhileWend循环结构和DoLoop循环结构。另外,还详细讲解VB中重要的数据结构类型——数组的概念及应用。本章列举了大量的实例,旨在加深对程序结构设计的理解,其中包括32个实例和1个项目。

实训项目

1.项目题目

设计程序:工资钱款分离器。

2.项目要求

编写一个发工资的程序,它可以根据键盘输入的职工总数和每个职工的实发工资数,计算出人民币各面额所需的张数,以达到人民币张数的最少选择方案,并将各面额人民币张数显示在各自相应的文本框中。

3.项目界面及其要求

1)程序启动后界面如图4-1所示,打开一个输入框,在其中输入要发工资的总人数。

4-1  输入职工人数

2)单击【确定】按钮后,打开【工资钱款分离器】主窗口,如图4-2所示。在【员工总人数】框中显示出刚才输入的员工人数,并在下面显示【输入第1个人的工资】,其后面的文本框具有输入焦点,等待用户输入数据。

4-2  【工资钱款分离器】主窗口

3)在文本框中输入工资后,按一下回车键,数据存入【总金额】文本框中,而【输入第1个人的工资】自动变为【输入第2个人的工资】,继续在其后的文本框中输入工资,输入完后按回车键,则将第2个人的工资和前1个人的工资相加,显示在【总金额】文本框中,如图4-3所示。

4-3  叠加总金额并继续输入员工工资

4)依此类推,直到输完全部员工的工资,然后单击【统计】按钮,可在最下面的表示各面额的文本框中显示所需数量,如图4-4所示。

4-4  计算各面额人民币的张数

4.1  结构化程序设计

VB应用程序中,代码被组织成一个个的过程。当一个过程被激活时,通过过程中的代码,计算机将知道要做什么(处理对象)和怎么做(操作步骤)。因此,在具体解决问题时,应学会分析是针对哪个对象,响应了什么事件过程,完成什么具体操作。

VB虽然采用事件驱动方式调用相对划分得比较小的子过程,但是对于具体的过程本身,仍然要用到结构化程序的设计方法,用控制结构控制程序执行的流程。有些简单的程序可以用顺序流程来编写,但是为了处理复杂问题,则就要通过选择和循环结构来改变程序的执行顺序。依照结构化的算法编写的程序或程序单元(如过程),其结构清晰、易于理解、易于验证其正确性,也易于查错和排错。

结构化程序设计有顺序结构、选择结构和循环结构三种。在前面几章所涉及到的程序都属于顺序结构,本章主要介绍选择结构和循环结构。另外,还讲解了编程中经常用到的数据结构——数组的概念和应用。

4.2  选择控制结构

选择结构是一种常用的主要基本结构,在日常生活和工作中,经常会根据实际情况的不同而选择对事情不同的处理方法。在设计程序时,也存在同样的问题,即根据不同的条件,来选择不同的程序处理方式。

选择结构的特点是:根据所给的条件的成立与否,决定从不同的分支中执行某一分支的相应操作。VB提供了多种形式的条件语句来实现选择结构,即对条件进行判断,并根据判断结果选择执行不同的分支。

4.2.1  单行结构条件语句

单行条件语句比较简单,流程图如图4-5所示,其语法格式为:

If 条件 Then 语句组1 [Else 语句组2]

说明:

1)条件表达式一般是关系表达式、逻辑表达式,也可以是算术表达式,表达式的值按非零和零转换成TrueFalse

2)单行条件语句的执行过程为:判断(条件),若为真,则执行语句组1;否则执行Else后面的语句组2

3)如果没有Else语句,则语句组1为必要条件,在条件为真时执行;条件为假时,什么都不做,执行If语句下面的语句。

4-5  单行结构If语句流程

【实例4.1  任意输入一个数,判断其奇偶性。

新建一个窗体,在其中添加一个文本框、两个标签、两个命令按钮,各控件属性如图4-6所示。

打开代码编辑窗口,在其中输入如下代码:

Private Sub Command1_Click()

    Dim n As Integer

    n = Val(Text1.Text)

    Label2.FontSize = 30 '设置判断结果中显示的字体大小为30

    If n Mod 2 = 0 Then Label2.Caption = "偶数" Else Label2.Caption = "奇数"

End Sub

 

Private Sub Command2_Click()

    Unload Me

End Sub

程序运行后,在文本框中任意输入一个数,然后单击【判断】按钮,将显示该数的奇偶性,如图4-7所示。

4-7  程序运行结果

【实例4.2  输入一个数,并将其赋给变量n,当该数大于或等于零时,显示【整数或零】;当该数小于零时,则显示【负数】。

打开代码编辑窗口,在其中输入如下代码:

Private Sub Form_Click()

    Dim n As Integer

    n = Val(InputBox("请任意输入一个数", "测试数字", 0))

    If n >= 0 Then Print "大于或等于零" Else Print "小于零"

End Sub

程序运行后,弹出输入框,输入一个数,根据判断条件,将结果显示在窗体上,如图4-8所示。

  

4-8  程序运行结果

4.2.2  块结构条件语句

使用单行If语句,可以满足一些选择结构程序设计的需要,但是当ThenElse部分包含的内容较多时,在一行中就很难写下所有命令。这时,可以使用VB的块结构If语句,将一个选择结构分多行来写,流程如图4-9所示。

4-9  块结构If语句流程

格式:

If 条件 Then

    语句组1

Else

    语句组2

End If

 

说明:

1)在块结构中,If语句必须是第一行语句。If块必须以一个End If语句结束。

2)当程序运行到If块时,首先对条件进行测试,如果为真,则执行Then之后的语句;如果为假,且有Else子句,则执行Else之后的语句。执行完后从End If之后的语句继续执行。

3Else子句是可选择的。

 

【实例4.3  判断文本框中输入的是否是数值型数据。

新建一个窗体,在其中添加一个标签、一个文本框和两个命令按钮,界面如图4-10所示。

打开代码编辑窗口,在其中输入如下代码:

Private Sub command1_Click()

    If  IsNumeric(Text1)  Then

        MsgBox "是数字"

    Else

        MsgBox "不是数字"

    End If

End Sub

程序运行后,在文本框中输入任意字符,然后单击【判断】按钮,将弹出消息框并显示判断结果,如图4-11所示。

   

4-10  程序运行界面         4-11  程序运行结果

 

【实例4.4  已知两个数xy,设计程序,比较它们的大小,并输出较大数。

新建一个窗体,界面如图4-12所示。打开代码编辑窗口,在其中输入如下代码:

Private Sub Command1_Click()

    Dim x As Single, y As Single, t As Single

    x = Val(Text1.Text)

    y = Val(Text2.Text)

    If x < y Then

        t = x

        x = y

        y = t

    End If

    Label4.Caption = Str(x)

End Sub

程序运行后,分别输入xy的值,单击【比较】按钮,则输出较大的数,如图4-13所示。

 

4-12  程序设计界面                        4-13  程序运行界面

4.2.3  多分支结构语句

无论是单行还是块结构的If语句,都只有一个条件表达式,只能根据一个条件来判断程序执行的方向,最多只能有两个分支结构。如果程序稍复杂一些,需要有多个条件进行判断,那么这两种If语句结构就显得力不从心了。而VB提供了多分支的选择结构语句:IfThenElseIfSelectCase语句,使用多分支结构语句可以满足多重条件判断的程序。

1IfThenElseIf语句

IfThenElseIf的流程如图4-14所示。

4-14  多分支结构If语句流程

格式:

If  <条件1>  Then

    语句组1

ElseIf  <条件2>  Then

    语句组2

……

[Else

    语句组n+1]

End  If

 

说明:

该语句的功能是根据各个表达式的值判断执行哪个语句块,判断的顺序为表达式1、表达式2……,即只有当表达式1False时才判断表达式2,当表达式1和表达式2都为False时,才判断表达式3,这样,程序执行语句体n+1的条件为前n个表达式均为False。如果所有条件都不是True,则执行Else后面的语句。


字数:4951    最后更新:1年以前 [09-06 01:12]我爱钱 修改
本页编辑者:我爱钱  
[前一页]:第三章  [后一页]:第四章
[在本页中加入书签] [收藏本书] [推荐本书]
  17xie论坛 > 本书讨论区 > 本页评论   (共0条)
发表评论

用户名称 匿名发表
评论内容
验证码

关于我们 | 版权声明 | 免责声明 | 诚聘英才 | 联系我们 | 合作伙伴 | 友情链接 | 广告合作 | 提交意见
Copyright © 2007 17xie.com 互联网协同写书平台 京ICP备08002671号