版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、VB程序设计教程第一章 VB程序设计概述计算机应用系统的开发过程1VB集成开发环境简介2面向对象程序设计方法3VB应用程序开发步骤41、计算机应用系统的开发过程计算机技术的应用科学计算:求取各种数学问题的数值解。数据处理:用计算机收集、记录数据,经处理产生新的信息形式。主要包括数据的采集、转换、组织、计算、排序、存储和检索等。知识处理:用计算机进行知识的表示、利用和获取。1、计算机应用系统的开发过程计算机应用系统开发根据用户对计算机技术应用的需求,分析手工处理的流程,设计计算机应用系统的内部结构,并加以实现和维护的过程。分析设计实现维护1、计算机应用系统的开发过程分析阶段根据用户对于输入、处理
2、过程和输出特性的需要,对原有工作流程的现状进行调查分析,并在此基础上提出建立新系统或改造旧系统的初步建议,即对程序设计的目标、功能、成本、效益、人员、进度等做出预测和描述。这一阶段也称为可行性研究阶段。分析设计实现维护1、计算机应用系统的开发过程设计阶段首先根据分析确定系统的构成和软硬件环境要求,提出系统总体设计建议书。在进行方案论证并获得通过后转入详细设计,逐层细化。输入输出、处理过程信息流向、数据结构显示和打印格式、人机对话方式分析设计实现维护1、计算机应用系统的开发过程设计阶段划分系统模块、过程,分析其相互关系和处理顺序,保证系统的完整性、正确性和适应性。提出实施计划、进度安排,编写用户
3、手册和操作说明。分析设计实现维护1、计算机应用系统的开发过程实现阶段按照系统设计方案实现应用系统,完成机器配置安装、现场改造、程序编制、人员培训和数据准备等各方面的工作。分析设计实现维护1、计算机应用系统的开发过程维护阶段系统从投入运行开始,就进入维护阶段 。维护工作一般包括正确性、完整性和适应性三个方面。通过向用户发出修改通知或更新版本来进行。分析设计实现维护2、VB集成开发环境简介Visual Basic语言(简称VB),是一种可视化的、支持面向对象和事件驱动编程机制的高级程序设计语言。VB6.0是美国微软公司推出的一个可视化集成开发环境,简单易学、功能强大,使用它可以高效、快速地开发Wi
4、ndows环境下各类图形界面丰富的计算机应用软件系统。2、VB集成开发环境简介集成开发环境集成了VB应用程序的界面设计、代码编写、运行、调试等多种功能。包含了与Microsoft应用软件类似的标题栏、菜单栏、工具栏等组成部分。提供了一些VB特有的窗口,如工程资源管理器窗口、属性窗口、窗体布局窗口等。2、VB集成开发环境简介标题栏菜单栏标准工具栏工程资源管理器窗口属性窗口窗体布局窗口窗体设计窗口工具箱2、VB集成开发环境简介标题栏标题栏位于窗口的顶部,可以显示当前正在开发或者调试的工程名以及系统的工作状态。启动VB6.0后,标题栏中的显示信息为:工程1 Microsoft Visual Basi
5、c 设计,方括号中的内容表示当前是设计态,如果状态变化为运行态或中断态,方括号中对应的内容则显示为运行或Break。2、VB集成开发环境简介VB的工作状态设计态:创建应用程序的过程,如进行界面设计、编写代码等都属于设计态;运行态:运行一个应用程序的过程称为运行态,在该状态下不能进行界面设计和代码编写;中断态:当应用程序在运行过程中因为某些原因被暂时终止时,就进入了中断态,在中断状态下,可以编写代码,但不能设计界面。在开发过程中,可根据实际需要进入不同的工作状态。2、VB集成开发环境简介菜单栏VB菜单栏列出了可在活动窗口下使用的菜单的名字,共有13个菜单项。分别是文件、编辑、视图、工程、格式、调
6、试、运行、查询、图表、工具、外接程序、图表和帮助。这些菜单命令提供了开发、调试、保存应用程序所需要的工具,其具体操作和其他Windows应用程序的操作是相同的。2、VB集成开发环境简介工具栏VB提供了四种类型的工具栏,分别是标准、调试、编辑和窗体编辑器,可以通过“视图”菜单中的“工具栏”命令打开或关闭。工具栏的显示形式固定工具栏浮动工具栏双击固定工具栏前端的两条浅色竖线,可将固定工具栏变为浮动工具栏;双击浮动菜单栏的标题条可将工具栏固定。2、VB集成开发环境简介工具栏中包含了若干常用命令按钮,提供对一些常用命令的快速访问。颜色为灰色的按钮表示该按钮当前不可使用。1 用于添加工程,2 用于添加窗
7、体、模块、用户控件等,3 菜单编辑器,4 用于打开工程,5 用于保存工程组,6 剪切,7 复制,8 粘贴,9 查找,10 用于撤销操作,11用于重复操作,12 用于程序的启动,13 用于进入中断状态,14 用于程序的结束,15 用于打开工程资源管理器,16 用于打开属性窗口,17 用于打开窗体布局窗口,18 用于打开对象浏览器,19 用于打开工具箱,20 用于打开数据视图窗口,21用于打开组件管理器。2、VB集成开发环境简介工具箱包含VB的标准控件,用户可以方便的利用这些控件来设计应用程序界面。1 指针(Pointer),2 标签(Label),3 框架(Frame),4 复选框(CheckB
8、ox),5 组合框(ComboBox),6 水平滚动条(HScrollBox),7 时钟(Timer),8 目录列表框(DirListBox),9 形状(Shape),10 图像(Image),11 对象链接与嵌入(OLE),12 图形框(PictureBox),13 文本框(TextBox),14 命令按钮(CommandButton),15 单选按钮(OptionButton),16 列表框(ListBox),17 垂直滚动条(VScrollBox),18 驱动器列表框(DriveListBox),19 文件列表框(FileListBox),20 直线(Line),21数据控制(Data)
9、。2、VB集成开发环境简介窗体设计窗口简称窗体在设计阶段,用户可以通过该窗口设计应用程序界面,如添加控件、图片等在运行阶段,用户看到的程序运行界面就是设计窗口中的内容,可以通过与窗体上的各种对象进行交互来实现程序的各项功能2、VB集成开发环境简介属性窗口窗体和控件都是VB中的对象,每个对象都有一组属性来描述对象的外观、相关参数等通过属性窗口可以对这些对象的属性进行设置。 标题栏,对象框,属性显示方式选项卡,属性列表,属性说明2、VB集成开发环境简介工程资源管理器窗口以树型方式列出所有已装入的工程以及包含在工程中的全部项目。 “查看代码”按钮,“查看对象”按钮,“切换文件夹”按钮。2、VB集成开
10、发环境简介代码编辑器窗口也称代码窗口,用来输入应用程序代码的窗口,可进行变量定义、各类事件过程、函数等源代码的编辑和修改。代码编辑区,过程列表框,对象列表框。2、VB集成开发环境简介窗体布局窗口用来在设计状态下显示所有可见的窗体借助该窗口可以将每个窗体定位在希望它出现的位置。3、面向对象程序设计方法类类是创建对象实例的模板。用于实现所创建对象行为实现的具体细节和保存及表达属性的具体方法。人类,是所有具体个人特征的抽象,如两个眼睛、一个鼻子等。另外它还定义了人的行为特征,如直立行走、语言交流、思考等。工具箱中的单选命令按钮控件也是一个类,它定义了单选按钮前面具有一个圆圈,圆圈后面是提示文字等属性
11、,并定义了在一组单选按钮中,当一个按钮被选中时,其他单选按钮的状态自动转换成未选择状态。3、面向对象程序设计方法对象对象是由类所创建。对象是类的实例。具体某个人窗体上的某个单选按钮控件3、面向对象程序设计方法属性、方法和事件属性是描述对象特征的数据;方法告诉对象应该怎样做事;事件是对象所能感知到的外部刺激。例如一个人作为一个具体的对象具有姓名、性别、身高、体重等属性,具备说话、行走、站立等行为,还可以接收外界的声、光刺激等事件。3、面向对象程序设计方法事件驱动的编程机制事件对于对象而言,就是发生在该对象上的外部刺激。在VB中,系统为每个对象预先定义好了一系列的事件。单击(Click)改变(Ch
12、ange)获得焦点(GetFocus)键盘按下(KeyPress)鼠标移动(MouseMove)3、面向对象程序设计方法事件过程是指在对象上发生了某个事件后,应用程序处理这个事件的方法。事件过程与对象相联系,针对对象的某一过程。事件驱动的程序执行流程:步骤1:系统监视应用程序窗口及窗口中的所有控件步骤2:当系统检测到一个事件发生时,首先调用系统内建的对该事件的响应,然后检查应用程序中是否存在为该事件所编写的代码步骤3:如果存在相应的事件代码则执行该事件过程中对应的代码,然后返回步骤1继续监视。步骤4:如果不存在相应的事件代码则直接发挥返回步骤1继续监视,等待下一事件的发生3、面向对象程序设计方
13、法传统图形用户界面程序中界面不仅要向用户显示数据和操作内容,承担着与用户进行输入输出交互,还包括数据处理方法。这种编程模式中数据、处理方法和显示相互交叉,编程逻辑不是非常清晰,维护比较困难,特别是在同类应用系统的开发中,复用难度较大。例如同是病人资料管理系统,尽管系统需求基本相同,界面基本一致,但是由于不同科室的病人资料内容各不相同,往往需要针对特定的数据重复开发,造成编程资源的大量浪费。3、面向对象程序设计方法因此,能否做到保持交互操作界面相对稳定的同时能根据处理对象的改变和数据内容的不同,调整显示的内容和形式成为系统开发所必须考虑的问题之一。要做到这一点,主要困难在于满足界面要求的同时,如
14、何使软件的数据模型独立于界面的构成。模型-视图-控制(MVC,Model-View-Controller)就是用于解决这一问题的编程模式。3、面向对象程序设计方法MVC模式包括三个部分模型Model内部数据视图View数据表示控制器Controller输入输出控制4、面向对象程序设计方法模型Model模型是与系统所处理问题相关的数据的逻辑抽象,代表对象的内在属性,是整个模式的核心。通常采用面向对象的方法,将问题领域中的对象抽象为应用程序对象,在这些抽象的对象中封装了对象的属性和这些对象所涉及的功能。模型的作用在于抽象应用程序的功能,封装程序数据的结构及其操作;向控制器提供程序功能的访问,为视图
15、提供要显示的数据。3、面向对象程序设计方法视图View视图是模型的外在表示,如图形用户界面、命令行界面等。视图具备与外界交互的功能,是应用系统与外界的接口:一方面它为外界提供输入手段,并触发控制器工作;另一方面又可以将处理的结果以某种形式显示给外界。4、面向对象程序设计方法控制器Controller控制器是模型与视图联系的纽带,控制器接收视图传递来的外部信息,将外部请求解析为模型中对应的方法,完成系统相应的功能。同时模型的更新与执行结果也要通过控制器来更新视图或通知视图,从而保持视图与模型的一致性。在Visual Basic编程环境中,通过事件实现控制器的作用。4、面向对象程序设计方法模型数据
16、库试卷试题测试者测试结果用户3、面向对象程序设计方法视图V0主窗口V1关于窗口V2新测试者信息窗口V3测试窗口V4显示测试结果窗口主窗口菜单:V5登录窗口3、面向对象程序设计方法控制器程序代码设计采用面向对象的事件驱动机制,针对用户界面上的对象的相应事件(主要是Click事件和定时器事件)来激发对象执行所需的操作。开始新的测试显示V2:新测试者信息窗口显示V3:测试窗口查看测试记录显示V5:测试结果窗口退出结束系统帮助显示V1:关于窗口4、 VB应用程序开发步骤工程新建工程保存工程界面建立用户界面对象设置用户界面对象属性程序编写程序代码程序运行和调试生成EXE文件4、 VB应用程序开发步骤St
17、ep 1:新建工程方法:启动Visual Basic程序,在打开的“新建工程”对话框中选择建立“标准.EXE”项目,单击“确定”按钮。4、 VB应用程序开发步骤Step 2:建立用户界面对象方法:用鼠标单击VB6.0集成开发环境左侧工具箱上要创建的控件图标。在窗体上拖曳鼠标直到所需大小后释放鼠标。4、 VB应用程序开发步骤Step 3:设置用户界面对象属性方法:单击要设置属性的对象,可以是窗体上的控件,也可以是窗体本身。在集成开发环境右下方的属性窗口中选择要修改的属性,在属性值栏中输入或选择所需的属性值。4、 VB应用程序开发步骤控件对象属性设置默认控件名属性名称属性内容Label1Namel
18、blUserNameCaption用户名称Label2NamelblUserPasswordCaption登录口令Text1NametxtUserNameText空Text2NametxtUserPasswordText空PasswordChar*Command1NamecmdOkCaption确定Command2NamecmdExitCaption取消4、 VB应用程序开发步骤窗体对象属性设置属性名称属性值NamefrmLoginBorderStyle3-fixed dialogCaption用户登录StartUpPosition2-屏幕中心4、 VB应用程序开发步骤Step 4:编写程序代
19、码方法:双击窗体、控件打开代码编辑器窗口。选择对象,选择事件。定义变量,输入代码。4、 VB应用程序开发步骤取消按钮单击事件确定按钮单击事件Private Sub cmdExit_Click()Unload meEnd SubPrivate Sub cmdOk_Click()Dim strPassword As StringstrPassword = txtUserPassword.TextIf strPassword = 123456 Then MsgBox 口令正确,欢迎使用心理测试系统!Else MsgBox 口令错误,请重新输入!End IfEnd Sub4、 VB应用程序开发步骤取消
20、按钮单击事件Private Sub cmdExit_Click()Unload meEnd Sub关闭当前窗口4、 VB应用程序开发步骤确定按钮单击事件Private Sub cmdOk_Click()Dim strPassword As StringstrPassword = txtUserPassword.TextIf strPassword = 123456 Then MsgBox 口令正确,欢迎使用心理测试系统!Else MsgBox 口令错误,请重新输入!End IfEnd Sub该段代码中定义了字符串类型的变量strPassword,并在单击确定按钮时读取用户在文本框中输入的口令:
21、strPassword = txtUserPassword.Text。然后利用IF语句判断用户输入的口令是否等于预设密码“123456”,如果口令正确则利用Msgbox函数显示正确信息,否则显示错误信息。4、 VB应用程序开发步骤Step 5:保存工程方法:选择“文件”菜单下的“保存工程”命令,系统弹出“文件另存为”对话框,提示用户保存窗体文件,默认窗体文件的名称就是窗体的名称,窗体文件的扩展名是FRM。保存窗体文件后,系统继续提示保存工程文件,工程文件的扩展名为VBP。如果需要再次修改该程序,只需通过“文件”菜单中的“打开工程”命令,选择保存过的VBP文件,就可把磁盘上相关文件调入VB6.0
22、的集成开发环境。4、 VB应用程序开发步骤Step 6:程序运行和调试方法:选择“运行”菜单中的“启动”命令,以解释模式运行。4、 VB应用程序开发步骤解释运行模式解释运行模式是由系统读取事件激发的相应代码,将其转换为机器代码,然后执行。这种运行模式往往用于程序的调试。选择“运行”菜单中的“启动”命令,就可以解释模式运行程序。如果在程序运行过程中出错,系统显示出错信息,并自动进入“中断”运行模式,可回到代码窗口进行代码修改和程序调试。4、 VB应用程序开发步骤Step 7:生成EXE文件方法:“文件”菜单中选择“生成EXE”命令,系统显示“生成工程”对话框,在其中输入生成的文件名即可。若要运行
23、该可执行文件,需通过Windows资源管理器双击该文件。一般来说,只有在程序完成设计和调试后才生成编译运行的EXE文件。4、 VB应用程序开发步骤编译运行模式编译运行模式是由系统读取程序的全部代码,将其转换为机器代码,并保存在EXE类型的可执行文件中,以便以后脱离VB开发环境运行。实际上,生成可执行文件的过程也就是程序高级语言向机器语言编译的过程,在该过程中将自动检测用户编写的程序代码中是否存在语法等错误,如果有错误会停止可执行文件的生成过程,用户需要重新检查出错的地方,修改完成后再生成即可。小 结小 结VB程序设计概述计算机应用系统的开发过程分析设计实现维护VB集成开发环境简介标题栏、菜单栏
24、、工具栏工程资源管理器窗口、属性窗口、窗体布局窗口等面向对象程序设计方法对象及其属性、方法和类模型-视图-控制器编程模式。VB应用程序开发步骤需求分析程序应用界面设计程序代码的编写程序运行和调试VB程序设计教程第二章 VB程序设计基础2.1数据类型2.2常量与变量2.3运算符和表达式2.4常用内部函数2.5数据的输入与输出2.6程序代码编写规则2.1VB数据类型1. 数值型整型数整数和长整数 浮点数单精度数和双精度数 货币型 和字节型 2. 字符串定长字符串变长字符串3. 逻辑型 4. 其他数据类型日期型 、变体型 、货币型 、字节型 、对象型 数值型整数 以Integer表示,在计算机中存储
25、占2个字节,取值范围在-32,768 到 32,767 之间,类型声明符是% 如-315 、762、1293、-315%都表示整数 长整数 以Long表示,在计算机中存储占4个字节,取值范围在-2,147,483,648 到 2,147,483,647之间,类型声明符是&如315&、32,768、-18,654,783都表示长整数 VB中允许使用八进制和十六进制,只要分别在数字前面加“&O”和“&H”即可 数值型单精度数 以Single表示,在计算机中存储占4个字节,类型声明符是!如0.0598、1943.56、-0.000319!均是单精度数 双精度数 以Double表示,在计算机中存储占8
26、个字节,类型声明符是#如3.14159265、-0.00005#均是双精度数 数值型货币型 该类型以Currency表示,在计算机中存储占8个字节,类型声明符是其小数点左边最多不超过15位数,右边不超过4位数字节型 以Byte表示,其取值范围是0到255,在存储二进制数据时很有用 字符串 字符串用于存储字符类型的数据,可以是英文字母、数字、汉字以及其他一些符号等 类型声明符是$ 将字符串放在双引号内,如123,english,欢迎学习VB 分类:变长字符串和定长字符串 变长字符串的长度是不确定的 定长字符串的长度是确定的,定义定长字符串的一般格式是:String * size,其中size表示
27、定长字符串的长度 逻辑型 逻辑型 以Boolean表示,只有两种取值True(真) 或False(假),在计算机中存储占两个字节 当转换其他的数值类型为逻辑型时,0会转成False,其余非0值会转成True;当转换逻辑型为其他数值类型时,False转为0,而True转为-1 其他数据类型 日期型 以Date表示,在计算机中存储占8个字节 可以表示的日期是从100年1月1日到9999年12月31日,时间是从0:00:00到23:59:59 必须用符号#括起来,任何可被辨认的日期和时间文本都可以放在两个#之间作为日期型数据 变体型 以Variant表示,可以表示除了定长字符串类型和用户自定义类型之
28、外的任何类型的数据是所有未定义变量的默认数据类型 对象型以4个字节的地址形式来表示应用程序中需要引用的对象,如图形、表格、OLE对象等 2.2常量与变量常量 2.2.1变量 2.2.2 常量 直接常量 符号常量 系统常量 直接常量根据其数据类型的不同,分为数值常量、字符串常量、逻辑常量和日期常量四种 例如: 数值常量:328 327930 0.816 -3.1415E4 9.56941238D-15字符串常量:123 basic 123.a 2008北京奥运会逻辑常量:True False日期常量:#8/24/2008# #April 9,2003# #9:23:59 PM# #5/25/19
29、99 2:36:21 AM# 符号常量一般格式 : Public | Private Const 常量名 As 数据类型 = 表达式例如: Const PI As Single = 3.1415 定义PI是单精度型,其值是3.1415Const a As Integer = 35 , b & = 68 定义整型常量a,值为35,定义长整型常量b,值为68Public Const st = VB程序设计 定义st是字符串型,其内容是VB程序设计 系统常量 系统常量 系统定义的符号常量 ,在程序代码中可以直接使用 如vbCrLf是回车换行符组合常量,等同于回车换行符操作,即Chr (13) & C
30、hr(10) 变量 变量命名规则 首字符必须是字母; 名字只能由字母、数字和下划线组成 不能包含嵌入的点号或者嵌入的类型声明符%、&、!、#、$、 不能超过255个字符 不能使用VB中的关键字,如Dim、As、Print等,但可以把关键字嵌入到变量名中,如Form_Print、Sub_Outpu等,这些变量名是合法的 在作用域范围内必须唯一变量变量声明 变量显示声明 Dim 变量名 As 数据类型 , 变量名 As 数据类型 根据不同的数据类型给变量赋一个初值 声明的每个变量都要一个单独的“As 数据类型“子句 Dim x, y As Integer 字符串类型的变量可以定义为定长也可以为变长
31、 Dim s1 As String Dim s2 As String * 20 变量变量隐式声明 在使用一个变量之前不必先声明这个变量,这就是变量的隐式声明 Option Explicit语句 在模块中使用“Option Explicit”语句可以强制显示声明模块中的所有变量 2.3运算符和表达式算术运算符和表达式 2.3.1关系运算符和表达式 2.3.2 连接运算符和表达式逻辑运算符和表达式 2.3.42.3.3运算符的优先顺序 23.5算术运算符和表达式算术运算符(乘方) -(负号) *(乘)和/(浮点除) (整除) Mod(取余) +(加)和-(减)运算符“”可以用来计算乘方或方根 ,例
32、如:4 0.5 表示4的平方根,结果为2 2 -2 表示2的-2次方,结果为0.25 运算符“Mod”是取余操作,用来对两个数做除法并且只返回余数 ,例如:3 Mod 5 3整除5,余数为3 13 Mod 5 13整除5,余数为3 算术运算符和表达式算术运算符运算符“/”用于对两个数进行除法运算并返回一个浮点数,一般类型是双精度浮点数 ,例如:3 / 5的结果为0.6 运算符“”是整除操作,用于对两个数进行除法运算并返回一个整数 ,例如:3 5结果为0 5 3结果为1 如果整除运算的前后两个操作数不是整型,则在做整除运算前先将操作数四舍五入 ,例如:13.6 4.2,先将13.6和4.2分别四
33、舍五入取14和4,然后对14和4做整除操作,结果为3 算术运算符和表达式算术表达式 计算表达式值的时候,一定要遵循算术运算符的优先顺序 如果参与运算的两个操作数的数据类型相同,其运算结果跟这两个操作数的数据类型保持一致 如果参与运算的两个操作数的数据类型不同,则其运算结果的数据类型采用精确度较高的数据类型 关系运算符和表达式运算符 含义 示例 运算结果 = 等于 a = A False 不等于 a A True 大于 a A True = 大于或等于 a = A True 小于 a A False = 小于或等于 a = A False Like 比较两个字符串 abc Like a* Tru
34、eIs 比较对象的引用变量 关系运算符和表达式关系运算符关系运算符的左右两边都是表达式,先计算各个表达式的值,然后再进行比较 字符串比较,按照字符对应的ASC码逐一进行比较Like运算符用来比较两个字符串,通常与一些通配符结合使用来实现数据库的模糊查询 Is运算符用来比较两个对象的引用变量 关系运算符和表达式关系表达式 区分关系运算符“=”和赋值语句中的等号 x = 2 这是赋值语句 Print x = 2 注意有些运算符与数学中的符号的区别xy xy 3x5 x=3 And x 6 True And 逻辑与 2 6 And a 6 Or a 6 Xor a And Or Xor 例如: 3
35、2 * 5 Or ab aB And 4 / 5 4 5 逻辑运算符和表达式运算符的优先顺序 算术运算符和连接运算符: (乘方) -(负号) *(乘)和/(浮点除) (整除) Mod(取余) +(加)和-(减) 连接(&) 关系运算符: =(等于)、(不等于)、(大于)、=(大于或等于)、(小于)、0,则返回1 若x=0,则返回0 若xmax Then max=bText3.Text=Str(max)End Sub3.2.1 If语句【范例3-2】设计程序,对输入的两个整数 a和b进行比较,并输出其中较大的数(用双分支语句实现)。将【范例3-1】程序代码设计改为如下代码即可。Private S
36、ub Command1_Click()Dim a As Integer, b As Integer, max As Integera = Val(Text1.Text)b = Val(Text2.Text)If a b Then max = aElse max = b End IfText3.Text = CStr(max)End Sub 3.2.1 If语句2. If ThenElseIf结构语法格式:If 条件表达式1 Then 语句序列1ElseIf 条件表达式2 Then 语句序列2ElseIf 条件表达式n-1 Then 语句序列n-1Else 语句序列nEnd If说明:(1)El
37、se子句与ElseIf都是可选项,可以放置多个ElseIf子句,但必须在Else子句之前。(2)执行时先对条件表达式1进行判断,如果条件成立,执行语句序列1;否则依次测试ElseIf部分的条件,若成立,则执行相应的语句组;如果没有一个条件成立的话,则执行Else子句的语句序列n。(3)不管有多少个分支,程序执行了一个分支后,其余分支不再执行,当多分支中有多个表达式同时满足,则只执行第一个与之匹配的语句序列。(4)ElseIf不能写成Else If。3.2.1 If语句If ThenElseIf结构流程图如图3-5所示。3.2.1 If语句【范例3-3】设计程序,输入血压舒张压的值(单位mmHg
38、),判断血压是否正常,其中输入值小于60,则低血压,输入值 60-90(含60及90)之间,则正常;输入值大于90,则高血压。(1)设计用户界面如图3-6所示。3.2.1 If语句(2)设置界面对象属性,如表3-2所示。3.2.1 If语句(3)程序代码设计如下:Private Sub Command1_Click()Dim a As Integer, result As String a = Val(Text1.Text) If a 90 Then result = 高血压 ElseIf a = 60 Then result = 血压正常 Else result = 低血压 End If T
39、ext2.Text = resultEnd Sub3.2.1 If语句【范例3-4】某药品销售管理系统中,要设置顾客的折扣值,并供查询。规则如下:若顾客为VIP会员(卡号首字母为V),折扣为90;若为普通会员(卡号首字母为P),折扣为80;非会员(卡号首字母为N)则没有折扣。(1)用户界面如图3-7所示,图3-8所示。3.2.1 If语句(2)设置界面对象属性,如表3-3所示。3.2.1 If语句(3)程序代码设计如下:Private Sub Command1_Click()Dim a As String, b As Stringa = Text1.TextIf Left(a, 1) = V
40、Thenb = 90,欢迎光临!Label2.Visible = TrueLabel3.Visible = TrueElse If Left(a, 1) = P Thenb = 80,欢迎光临!Label2.Visible = TrueLabel3.Visible = TrueElse If Left(a, 1) = N ThenLabel2.Visible = FalseLabel3.Visible = Trueb = 欢迎光临,您晢时没有折扣。Else b = 对不起,您还没有注册!End If Label3.Caption = bEnd Sub 3.2.1 If语句语法格式:If 条件表
41、达式1 ThenIf 条件表达式2 Then End If End If说明:(1)对于嵌套结构,为了增强程序的可读性,应该采用缩进形式书写。(2)If语句形式若不在一行上书写,必须与End If配对,多个if嵌套,End If与它最接近的End If配对。IF语句的嵌套流程图如图3-9所示。 3.2.1 If语句3.2.2 IIf函数IIf函数可以用来执行简单的条件判断操作,它是“IfThenElse”结构的简写版本,是“Immediate If”的缩略。语法格式: IIf(条件表达式,条件成立时的返回值,条件不成立时的返回值)说明:(1)条件表达式可以是关系表达式、逻辑表达式或数值表达式,
42、若为数值表达式,则按照非0为真,0为假的规则转化为Boolean类型的值。(2)IIf函数的返回值可以为表达式、变量或其他函数。(3)IIf函数中的3个参数都不能省略,而且要求返回值的类型及结果变量的类型一致。3.2.2 IIf函数例如,当成绩x=60时为合格,否则不及格,用If语句表示如下: If x=60 Then r=”合格” Else r=”不合格” End If 而用IIf函数来代替则为:r=IIf(x60,”合格”,”不合格”)再看下面的例子:用IIf函数判断数的奇偶性x是被判断的整数,result为接收结果的字符串变量Result=IIf(x mod 2=0,”x是偶数”,” x
43、是奇数”) 由上可见,对于一些简单的选择结构,用IIF函数可以使程序大大简化。 3.2.3 SelectCase语句使用IF语句的嵌套可以实现多分支选择,但对于多条件选择时,使用Select Case语句代码效率更高,更易读。语法格式:Select Case 表达式变量 Case 表达式列表1 语句序列1 Case 表达式列表2 语句序列2 Case 表达式列表n-1 语句序列n-1 Case Else 语句序列nEnd SelectSelect Case结构流程图如图3-10所示。3.2.3 SelectCase语句3.2.3 SelectCase语句说明:(1)“表达式”可以是数值型或字符
44、型(2)“表达式”和“表达式列表”的类型必须相同;(3)“表达式列表”形式有以下3种:一个表达式或用逗号隔开的若干表达式例如:判断10以内整数的奇偶性。x=inputbox(输入一个整数)Select Case x Case 1,3,5,7,9 Print x; 这是奇数 Case 2,4,6,8,10 Print x; 这是偶数End Select 表达式1 To 表达式2例如:变量stringc中存放了一个字符,判断该字符类型。 Select Case stringc Case a To z,A To Z Print stringc + is a letter Case 0 To 9 Pr
45、int stringc + is a number Case Else Print stringc + “is only a char End Select 3.2.3 SelectCase语句Is 关系表达式用Is 关系表达式实现学生成绩等次的评定。score=inputbox(输入一个学生成绩)Select Case x Case is=90 Print score; 成绩等次为:A Case is=80 Print score; 成绩等次为:B Case is=70 Print score; 成绩等次为:CCase Else Print score; 成绩等次为:DEnd Select
46、对于VB中的两种选择语句If语句和Select Case语句的应用选择,一般来说,Select Case语句主要应用于对单一条件表达式的结果有多个判断(因此也称多分支语句)的情况,结构清晰;而If语句可以对多个条件表达式的结果进行判断,应用更广泛。一般情况下,能使用Select Case语句来判断的也可以使用If语句。3.3 循环结构循环结构是程序设计中的一种基本结构。当程序中出现需要反复执行相同的代码解决同一问题时,就可以用循环结构来实现。循环结构既可以简化程序,又可以提高程序的效率。VB继承了所有Basic语言中的各种循环语句,而且在VB中实现循环结构的语句最多。循环结构可分为计数型和条件
47、型两种基本的结构,实现计数型循环结构的语句是ForNext,而实现条件型循环结构的语句有DoLoop及WhileWend。3.3.1 ForNext语句 ForNext语句按指定的循环次数或按变量变化的范围执行循环体,在循环体中使用一个计数器来控制循环执行的次数。ForNext语句执行过程:开始时,循环控制计数器为初值。每执行完一次循环体内所有语句后,循环控制计数器自动增加一个步长值,然后与终值进行比较。如果循环控制变量小于终值,则继续循环,直到循环控制变量的值大于终值,才退出循环,去执行Next语句后的语句。在循环的过程中,可以使用Exit语句随时退出循环。ForNext语句流程图如图3-1
48、1所示。3.3.1 ForNext语句 3.3.1 ForNext语句 语法格式:For 计数器 = 初值To 终值 Step 步长语句序列1 Exit For 语句序列2Next 计数器说明:(1)计数器一般为数值型。(2)步长一般为正值,初值小于终值;若为负值,初值大于终值;缺省步长为1;循环次数=int(终值 - 初值)/步长+1)。(3)语句序列可以是一个或多个语句,称为循环体。(4) Exit For是可选项,表示当程序执行过程中遇到该语句时,退出循环体,执行Next的下一句。3.3.1 ForNext语句例如,计算1到100的和(本例未使用循环退出语句Exit For)。Sum=0
49、For i= 1 To 100 step 1 Sum = Sum + iNext iPrint Sum 再如,计算1到100的和,当和大于2000时终止循环(本例使用循环退出语句Exit For)。Sum=0For i= 1 To 100 step 1 Sum = Sum + i If Sum=2000 Then Exit ForNext iPrint Sum3.3.1 ForNext语句(5)退出循环后,计数器的值保持退出时的值。(6)在循环体内对计数器可多次引用,但不要对其赋值,否则影响循环执行的次数,从而影响程序运行结果。例如: Private Sub Command1_Click()C
50、ount1 = 0For i = 1 To 20 Step 2i = i + 2Count1 = Count1 + 1Print 第; Count1; 次循环i=; iNext iPrint 退出循环后i=; iEnd Sub 以上程序循环的次数不是10次,而是5次,原因是代码中的i = i + 2改变了步长。程序运行结果如图3-12所示。3.3.1 ForNext语句3.3.1 ForNext语句【范例3-5】设计程序,输入一个班(设全班人数不超过100人)学生的VB学习成绩,统计其中及格的学生人数,并计算出全班的平均分。由于学生人数不定,输入负数时截止。(1)用户界面及数据测试如图3-13
51、,3-14,3-15所示。3.3.1 ForNext语句3.3.1 ForNext语句(2)设置界面对象属性,如表3-4所示。3.3.1 ForNext语句(3)程序代码设计如下:Private Sub Command1_Click() Dim Grade As Single, PassCount As Integer, total As Integer Dim i As Integer, Sum As Single Sum = 0 PassCount = 0 Average = 0 total = 0 For i = 1 To 100 当输入学生成绩个数大于100时停止循环 Grade =
52、Val(InputBox(请输入学生的VB成绩:) If Grade = 60 Then PassCount = PassCount + 1 计算及格学生人数 total = total + 1 计算总人数 Sum = Sum + Grade 计算总分 End If Next i If total 0 Then Average = Sum/total 防止用户未输入值时溢出 Text1.Text = Str(total) Text2.Text = Str(PassCount) Text3.Text = Str(Average)End Sub 3.3.2 DoLoop语句 3.3.2 DoLoo
53、p语句语法1(当型循环):Do WhileUntil条件表达式 语句序列1Exit Do语句序列2Loop 说明:(1)先测试条件表达式,当条件为True时就执行语句序列,否则退出循环。(2)While循环在条件成立时执行循环体语句,否则退出循环执行Loop后的语句。而Until循环相反,在条件不成立时进入循环,直到条件成立时才退出循环。(3)在程序执行过程中,若遇到Exit do 语句时,表示退出循环,执行Loop后的语句。3.3.2 DoLoop语句例:用当型循环语句计算1到100的和Dim Sum as integer,i as integerSum=0:i=1Do While i=10
54、0 Sum=Sum+i i=i+1LoopPrint Sum 语法2(直到型循环):Do语句序列1Exit Do语句序列2Loop WhileUntil条件表达式说明:(1)先执行语句序列后判断条件表达式,语句序列至少执行一次。(2)While循环在条件成立时执行循环体语句,否则退出循环执行Loop后的语句。而Until循环相反,在条件不成立时进入循环,直到条件成立时才退出循环。(3)在程序执行过程中,若遇到Exit do 语句时,表示退出循环,执行Loop后的语句。例:用直到型循环语句计算1到100的和Dim Sum as integer,i as integerSum=0:i=1Do Su
55、m=Sum+i i=i+1Loop While i=100Print Sum 3.3.3 While Wend语句对于循环次数不确定的情况下,除了可以使用DoLoop语句外,还可以使用While Wend语句。 语法格式:While 条件表达式 语句序列1Wend说明:WhileWend的条件是以关系或逻辑表达式的形式直接出现在语句中的,如果要使循环有限次地执行,必须在While的循环体中改变条件。例如:测试计数器的值Dim Counter As integerCounter = 0 While Counter 19 时则循环终止 Print Counter 3.3.4循环的嵌套循环的嵌套是指
56、循环语句中又包含其他循环语句的情况,前面所述的几种循环语句均可以互相嵌套,也可以在循环中嵌套选择结构。要求:(1)多重循环中,各层循环变量不能重名。(2)内层循环必须完整地包含在外层循环中,不能交叉。例如下面的循环嵌套是错误的:For i= 1 To 100 step 1For j= 1 To 100 step 1Next iNext j (3)在多重循环中的分支结构必须完全包含在里面,不能交叉。 3.3.4循环的嵌套【范例3-6】用循环的嵌套设计程序,实现如图3-18所示的数字金字塔。3.3.4循环的嵌套程序代码设计如下:Private Sub Command1_Click() For i
57、= 1 To 9 For j = 1 To 28 - 3 * i Print ; Next j For k = 1 To i Print k; Next k For k = i - 1 To 1 Step -1 Print k; Next k Print Next iEnd Sub3.3.4循环的嵌套下面对上述提到的循环语句作一比较,方便读者进一步区分及应用。VB中循环结构有3种形式:For循环、While循环以及Do循环(可分为4种语句),它们的语句语法分别为:ForNext,Do WhileLoop ,Do UntilLoop ,DoWhile Loop,DoUntil Loop,Whil
58、e Wend,其中除For Next语句用于循环次数已经知道的循环,其它都是用于循环次数预先不知首,而由逻辑条件控制循环的循环。While循环是条件成立时循环,而Until循环是条件不成立时循环。Do While|Until Loop语句是先判断再执行,而Do While|Until Loop语句是先执行再判断。While Wend语句与Do While Loop相同。下表3-5用不同的循环语句编写程序,执行结果相同,均为10。3.3.4循环的嵌套3.4 数组 在处理具体问题时,常会涉及到批量数据的处理,例如:对一个班学生的成绩排序,找出最高分,最低分,计算平均分等。使用定义多个变量的方法来记
59、录学生的成绩,并不是最好的解决方法。在VB中,提供了数组这种特殊的数组类型,来表示类型相同的一批数据。而借助数组与循环,可以有效的处理批量数据。 3.4.1数组的概念 1.数组 数组是一组逻辑上相互关联的值的有序集合。所谓逻辑上相互关联是指数组中的数据必须具有相同的类型。例如:(1,34,234,45,49,100)、(“abort”,”boat”,”car”,”zoo”)都可以使用数组来表示。而(12,”ab”,12.4, “abort”)则不行。VB中可以定义任何类型的数组,包括用户自定义的类型。 数组名用于表示数组,其命名规则遵循标识符的命名规则。2.数组元素 数组中每一个值称为数组元素
60、,使用数组名和一些称为“索引”或“下标” 的数字可以表示每一个数组元素。3.数组分类 在VB中,根据数组长度来划分,数组可以分为动态数组和静态数组。而从维度上划分则可以分为一维数组和多维数组。 3.4.2静态数组 无论是静态数组还是动态数组,都可以使用 Dim 语句来声明数组变量。与普通变量定义不同的是,在数组变量名后面加上一对圆括号,以指示该变量将存储数组而不是单个值。本节中所讨论的静态数组是指存放数组元素个数固定的数组。1.声明语法 Public|Private|Dim 数组名 (维数) As 数据类型说明(1)方括号部分可以省略。(2)数据类型可以是VB支持的基本数据类型,也可以是用户自
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年家禽订购合同
- 房屋改建合同范例
- 2024电子教学设备采购合同
- 2024上海出租合同范本
- 工行委托贷款合同
- 2024红砖购销合同(墙地砖类)范本
- 2024【内外粉刷合同协议书】内墙粉刷合同范本
- 短期临时工作合同协议
- 2024保险代理协议书
- 广东省东莞市七年级上学期语文期中考试试卷3套【附答案】
- 模板支架及脚手架安全使用培训课件
- 企业财产保险投保单
- CT报告单模板精编版
- 柿子品种介绍PPT课件
- 内镜清洁消毒登记表格模板
- 天然气脱硫(课堂运用)
- 幼儿园教师师德师风考核表(共2页)
- 城镇职工医疗保险运行中的问题分析及措施
- 阿拉丁神灯介绍ppt[共27页]
- 学校食堂五常法管理制度
- 毕业设计500kv变电站设计
评论
0/150
提交评论