




已阅读5页,还剩58页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第五章 客户端数据库应用程序设计前几章讨论了数据库理论基础及数据库的结构设计问题,本章将讨论客户端数据库的应用程序设计。一般来说,一个数据库应用系统具有如图5-1所示的结构。客户客户端数据库应用程序DBMS数据库图5-1 数据库应用系统结构从图5-1可以看出,数据库应用程序直接面向用户,它是用户和数据库之间的接口或界面。因此,一个数据库应用程序,必须为用户提供一个易于对数据库进行操作的界面。涉及这样的数据库应用程序有多种开发工具,Visual Basic语言就是其中一种。Visual Basic语言具有简单易学的特点,它充分利用Windows提供的图形环境,具有强大的图形用户界面(Graphic User Interface,简称为GUI)设计功能,为用户提供了一套全新的图形用户界面编程工具和环境。同时,Visual Basic也提供了数据库操作功能。因此,Visual Basic是理想的数据库应用程序设计语言。本章主要介绍以下几个内容: Visual Basic程序设计概述 Visual Basic程序设计基础知识 Visual Basic程序设计的流程控制 Visual Basic中窗体及主要控件的使用 Visual Basic的数据库操作功能第一节 Visual Basic程序设计概述一、Visual Basic简介BASIC语言是二十世纪六十年代由美国Dartmouth学院的John Kemeny和Thomos E. Kurty两位教授开发的计算机程序设计语言。它是Beginners All-purpose Symbolic Instruction Code的缩写,意为“初学者通用符号指令代码”。从它的命名可以看出,这是一种简单易学的计算机语言。BASIC是运行在DOS环境下的一种计算机程序设计语言。随着Windows操作系统的出现,Microsoft公司推出了运行在Windows环境下的Visual Basic(以下简称VB)语言。VB语言具有以下几个主要特点:(1)简单易学。VB继承了BASIC语言简单易学的特点,它是程序设计人员(尤其是非专业的程序设计人员)在Windows环境下开发应用软件的入门语言。(2)具有强大的图形用户界面设计功能。VB为设计图形用户界面提供了丰富的工具,利用这些工具,程序设计人员可以方便地设计出各种图形对象(如窗体、控件、菜单),形成一个良好的图形用户界面。(3)采用事件驱动的编程机制。所谓事件驱动是指程序根据用户或系统的动作产生反应,进而完成与之相应的功能。也就是说,程序的执行是由用户的动作(即事件)决定的,而不是像过去的过程驱动那样由事先设计好的程序流程控制。这样,程序设计人员只需针对各种用户动作(如单击窗体、命令按钮等)来编写相应的程序代码。(4)提供了数据库操作功能。利用ODBC(Open Database Connectivity)、ADO(ActiveX Data Object)等技术,VB可以对各种类型的数据库(如Microsoft Access、dBASE、Microsoft FoxPro、Paradox、Microsoft SQL Server等)进行操作。VB自推出以来,其版本不断更新,目前广泛使用的是VB6.0。VB6.0包括学习版、专业版和企业版,本章所介绍的内容基于VB6.0中文企业版。二、VB程序的开发环境1启动VBVB6.0为程序设计人员创建、修改、运行应用程序提供了一个集成开发环境。要进入VB6.0的集成开发环境,首先要启动VB6.0。VB6.0的启动与Windows的其它应用软件一样。当VB6.0启动后,首先显示如图5-2所示的“新建工程”对话框。在该对话框中有3个选项卡:“新建”用于创建一个新的工程;“现存”用于选择并打开一个现有的工程;“最新”则用于选择并打开一个最近建立或使用过的工程。在“新建”选项卡中包含若干图标,用于开发各类应用程序,本节仅介绍“标准EXE”一项。双击“新建”选项卡中的“标准EXE”图标,进入图5-3所示的VB6.0的集成开发环境。图5-2 “新建工程”对话框2VB6.0的集成开发环境在图5-3所示的VB6.0集成开发环境中,标题条、工具栏、菜单栏等几部分的含义和功能同其它Windows应用软件类似,具体内容大家可参考联机帮助,这里不再赘述。下面对与其它Windows应用软件差别较大的几部分加以简单介绍。工程窗口菜单栏属性窗口窗体布局窗口工具栏工具箱窗体窗口代码窗口立即窗口监视窗口标题条图5-3 VB6.0的集成开发环境(1)工具箱:它提供了若干用于创建应用程序的图形用户界面所需的控件。标准工具箱(如图5-4所示)包含20个VB标准控件和一个指针图标。此外,根据需要,VB6.0还允许用户利用“工程” “部件”菜单添加ActiveX控件。指针(Point)标签(Label)框架(Frame)检查框(Check Box)组合框(Combo Box)水平滚动条(Horizontal Scroll Bar )定时器(Timer)目录列表框(Directory List Box)形状(Shape)图像(Image)对象连接与嵌入(OLE)图形框(Picture)文本框(Text Box)命令按钮(Command Button)选择按钮钮(Option Button)列表框(List Box)垂直滚动条(Vertical Scroll Bar )文件列表框(File List Box)直线(Line)数据(Data)驱动器列表框(Drive List Box)图5-4 工具箱(2)窗体窗口:又称为窗体设计器,它是程序设计人员设计应用程序界面的载体,用于在上面设计各种控件。程序运行时,窗体可用来输出结果,用户可通过窗体上的控件与程序交互。一个应用程序至少有一个窗体,每个窗体都有自己唯一的名字。(3)工程窗口:又称工程资源管理器,它列出当前工程所包括的各类文件。“工程”是VB应用程序的基本单位,一般一个工程代表一个应用程序,工程文件的扩展名为vbp,通常包括窗体文件(扩展名为frm)、标准模块文件(扩展名为bas)、类模块文件(扩展名为cls)等。此外,在工程窗口中还包括“查看代码”、“查看对象”与“切换文件夹”三个按钮。(4)属性窗口:它列出了当前被激活的窗体或控件的所有属性。左边为属性名,右边为属性值。在设计阶段可通过该窗口为窗体或控件设置属性值。(5)代码窗口:用来显示与编辑程序代码。打开代码窗口可通过单击工程窗口的“查看代码”按钮;或从“视图”菜单中选择“代码窗口” 菜单项;或在窗体窗口中双击窗体或某个控件。(6)立即窗口与监视窗口用来调试程序。3基本概念(1)控件:控件就是利用工具箱中的工具在窗体上设计的图形。它作为用户与计算机之间的界面接收和显示各种信息。如文本框、命令按钮、标签等。(2)对象:VB是一种面向对象的程序设计语言。VB中的对象包括窗体、各种控件、打印机等。它是程序可以控制的实体。对象具有自己的属性、方法和事件,它们称为对象的三要素。(3)属性:属性即对象的特性。不同的对象具有各自不同的属性,如标签具有名称(Name)、标题(Caption)、字体(FontName)等属性。属性的取值称为属性值。为对象的属性赋值有两种方法:一是在设计状态下通过属性窗口进行设置;二是在程序代码中通过赋值语句进行设置,其格式为:对象名.属性名=属性值。(4)方法:从用户角度来看,方法就是一个对象所执行的某些特定动作。如输出、移动等。事实上,方法是VB系统为程序设计人员提供的一种特殊过程或函数,供用户直接调用。方法的调用格式为:对象名.方法 参数。例如:Form1.Print “Hello”语句的作用是调用窗体Form1的Print方法,在窗体Form1中显示字符串“Hello”。(5)事件:事件是由VB系统预先设置好的能被对象响应的特定动作。系统为每一个事件规定一个名字,如单击鼠标(Click)、双击鼠标(DblClick)、按下某一个键(KeyPress)等。当作用于某一对象上的事件被触发时,该对象就会对事件做出响应,去执行该对象所对应的事件过程。事件过程是指与某个对象及作用于该对象上的事件有关的一段程序代码。其格式如下:Sub 对象名_事件名(参数) (事件过程代码)End Sub三、VB程序设计的一般过程设计一个VB应用程序一般包括以下几个过程:(1)设计应用程序的用户界面。设计应用程序的用户界面是指设计应用程序所需的窗体及窗体上的各种控件。创建工程以后(进入VB集成开发环境后系统自动建立一个工程),VB系统自动提供一个窗体,程序设计人员可根据需要,通过“工程”“添加窗体”菜单添加多个窗体,并利用工具箱在窗体上设计所需的控件。在窗体上建立控件有两种方法,第一种方法是单击工具箱中相应的图标,然后将鼠标指针移到窗体上所需位置处,按住鼠标左键拖动鼠标直到所需大小后释放鼠标;第二种方法是双击工具箱中相应的图标,则在窗体中央建立一个默认大小的控件,然后再调整控件的大小与位置。(2)修改对象的属性值。每个对象创建以后,都有其默认的属性值,如果默认的属性值不能满足应用程序需要,则通过属性窗口来修改对象的属性值。(3)编写程序代码。编写程序代码是设计应用程序最重要的一步,因为应用程序的大部分功能都是通过执行程序代码来完成的。编写程序代码要在代码窗口中进行,程序代码由VB的若干语句组成。(4)运行与调试程序。在程序设计过程中,可随时(比如设计好应用程序的用户界面并修改完对象的属性值后,编写完某个过程的程序代码后)通过运行程序来验证程序的正确性。运行程序可单击工具栏的运行图标 ;或选择“运行” “启动”菜单项,或按F5键。如果运行过程中出现错误信息或运行结果不满足用户的需要,则需要对程序进行调试与修改。(5)保存文件。单击工具栏的存盘图标 ;或选择“文件” “保存工程”菜单项,则按照类模块文件(若没有则跳过)标准模块文件(若没有则跳过)窗体文件工程文件的顺序依次将应用程序保存到指定位置。若下次再需打开该应用程序时,只需打开对应的工程文件即可,其它文件被自动加载。(6)生成可执行文件。为了使应用程序能脱离VB的集成环境而直接在Windows环境下运行,需将应用程序编译成可执行文件(扩展名为exe)。生成可执行文件的方法是在VB的集成环境下对已打开的工程文件,选择“文件” “生成*.exe”(其中*为已打开的工程文件名)菜单项,然后在“生成工程”对话框中输入可执行文件名即可。 生成的可执行文件虽然可以脱离VB的集成环境而直接在Windows环境下运行,但仍需VB系统的一些文件(如dll、ocx等文件)支持才能运行。第二节 VB程序设计基础知识一个VB程序由它的一套基本元素组成,这些基本元素包括常量、变量、函数、表达式、对象名称、属性、方法、关键字等,它们是程序设计的基础知识。一、语言元素1字符集VB中的字符集由英文字母(大小写各26个)、数字和专用字符组成。基本上包括了ASCII码字符集中的所有字符。2标识符标识符由字母、数字及下划线组成,且以字母打头。VB标识符字母不分大小写。VB中的标识符分成以下两类:(1)保留字:是指VB本身定义的、具有特殊含义的标识符。包括关键字(如Sub、End)、函数(如Sqr、Asc)、方法(如Print)、属性(如Caption)名等。(2)用户定义的标识符:由用户按照标识符的规定为过程、对象、变量等的命名。用户定义的标识符不能与保留字同名(这也正是保留字这一名称的主要来历)。3编码规则与其它的程序设计语言一样,VB程序代码的书写也有一定的规则。如VB代码中的字母不分大小写(但VB系统总是自动将关键字的第一个字母转换为大写,其余字母转换为小写);同一行上一般只写一个语句,如果写多个语句,语句之间用冒号“:”号分隔;一个语句一般要在一行写完,如果要写在多行上,则要在行后添加续行符“ _”(空格和下划线)。二、数据类型VB有标准数据类型与用户自定义数据类型两大类。1标准数据类型标准数据类型是VB系统定义的数据类型。表5-1列出了VB6.0支持的标准数据类型。2用户定义的数据类型除了标准数据类型外,VB还允许用户自己定义新的数据类型。用户定义的数据类型由标准数据类型组合而成。其格式如下:Type As As As End Type其中类型标识符既可以是标准类型标识符,也可以是已定义过的用户定义的数据类型标识符。如:Type bdate y As Integer m As Integer d As IntegerEnd Type Type person name As String*8 age As Integer birthdate As bdateEnd Type上面例子中,定义了bdate与person两个用户定义的数据类型,其中bdate还用来定义person的元素birthdate的类型。用户定义的数据类型必须在标准模块中定义,如果元素类型为字符串类型,必须是定长字符串(如前面自定义类型person的name元素)。表5-1 VB6.0支持的标准数据类型数据类型类型标识符类型符占存储空间范围字节型Byte无1个字节0255整型Integer%2个字节-3276832767长整型Long&4个字节-2,147,483,6482,147,483,647单精度型Single!4个字节绝对值1.40129810-453.4028231038双精度型Double#8个字节绝对值4.940656458412410-324 1.7976931348623210308货币型Currency8个字节-922,337,203,685,477.5808 922,337,203,685,477.5807字符串型String$1个字节/字符065535个字符日期型Date无8字节100年1月1日9999年12月31日逻辑型Boolean无2字节True, False对象型Object无4字节任何对象引用变体型Variant无不定注:类型符放在数据的尾部,用于说明数据的类型。如:-38%说明-38为整型数据,125&说明125为长整型数据(即用4个字节存储,如果125的尾部不带&,则其默认为整型数据)。三、常量与变量1常量VB有两种类型的常量:直接常量与符号常量。(1)直接常量。直接常量是指在VB程序中直接使用的量,包括字节型、整型、长整型、单精度型、双精度型、货币型、字符串型、日期型、逻辑型,分别与表5-1中的9种数据类型相对应。对于日期型常量,要用一对“#”作为其定界符。如2006年7月12日所对应的日期常量为:#07/12/2006#(其中年、月、日的格式与Windows的设置一致)。(2)符号常量。符号常量是一种代替直接常量的标识符。符号常量又分为两种:系统提供的符号常量(简称系统常量)与用户自定义的符号常量。系统提供的符号常量是系统预先设置好的程序中可直接引用的符号常量,如VbOkonly代表数字0(用于MsgBox函数中,表示只显示“确定”一个命令按钮)。自定义的符号常量的定义格式如下:Const =例如:Const pi=3.1416, pp=2*3定义了两个符号常量pi与pp分别代表单精度数3.1416与整形数6。2变量变量是在程序运行过程中其值可以改变的量。使用变量前,一般都要对变量加以说明(尽管这不是VB系统要求必须做的)。变量说明的格式如下:Dim As 例如下面的语句说明了一个整型变量num,一个单精度变量sum和一个字符串变量str1。Dim num As Integer, sum As Single, str1 As String除了用语句说明变量外,还可以用类型符说明变量,但只能说明具有类型符的几种类型的变量(见表5-1)。例如:age%说明变量age为整型变量,pi! 说明变量pi为单精度变量,addr$说明变量addr 为字符串变量。四、常用内部函数内部函数是指驻留于VB系统内部的函数,用户使用时可直接调用。VB的内部函数相当丰富,表5-2给出了一些常用的内部函数,全部内部函数请读者参阅VB的联机帮助。表5-2常用内部函数函数类型函数格式功能说明应用举例结果数学函数Abs(x)求x的绝对值Abs(-1.5)1.5Atn(x)求x的反正切值,结果为弧度Atn(0)0Cos(x)求x的余弦值,x为弧度Cos(0)1Exp(x)求ex的值Exp(1)2.71828182845905Log(x)求Lnx的值Log(10)2.30258509299405Rnd(x)产生随机数,圆括号与x可省略Rnd01之间的随机数Sin(x)求x的正弦值,x为弧度Sin(3.1416/6)0.500001060362603Sgn(x)符号函数Sgn(5),Sgn(0),Sgn(-6)1, 0, -1 Sqr(x)求x的平方根值,x0Sqr(9)3Tan(x)求x的正切值,x为弧度Tan(3.1416/4)1.00000367321185字符串函数Left$(s,n)取字符串s的左边n个字符Left$(“Visual”,3)VisLen(s)求字符串s的长度Len(“Visual Basic”)12Mid$(s,n1,n2)取字符串s的第n1个开始向右共n2个字符Mid$(“Visual Basic”, 8, 5)BasicRight$(s,n)取字符串s的右边n个字符Right$(“Visual”,3)ualString$(n,c)返回n个相同的字符String$(5, “A”)AAAAA日期函数Date$返回系统当前日期Date$系统当前日期Time$返回系统当前时间Time$系统当前时间Year(Date$)返回日期的年份Year(#2007-01-28#)2007Month(Date$)返回日期的月份Month(#2007-01-28#)1Day(Date$)返回日期的日Day(#2007-01-28#)28转换函数Asc(c)字符转换成ASCIIAsc(“B”)66Chr$(n)ASCII转换成字符Chr(68)DCint(x)四舍五入取整Cint(3.6)4Fix(x)取整Fix(3.6)3Int(x)取小于或等于x的最大整数Int(3.6), Int(-3.6)3, -4Hex(n)十进制转换成十六进制Hex(26)1AOct(n)十进制转换成八进制Oct(26)32Str$(x)数值转换成数字字符串Str$(3.5)+Str$(-2.4)3.5-2.4Val(s)数字字符串转换成数值Val(“3.5”)+Val(“-2.4”)1.1Lcase$(s)字符串中的字母转换成小写Lcase$(“Basic”)basicUcase$(s)字符串中的字母转换成大写Ucase$(“Visual”)VISUAL五、运算符与表达式运算符就是进行某种操作的符号。表达式是一组常量、变量、运算符、函数和圆括号组成的混合运算式。VB的表达式有算术表达式、字符串表达式、关系表达式与逻辑表达式。1算术表达式算术表达式由数值型常量、变量、函数、算术运算符及圆括号组合而成。算术运算符见表5-3。表5-3算术运算符及算术表达式举例运算符功能说明优先级算术表达式举例结果乘方116/232-负号2-52-25*乘3(-5)225/除366/22整除46 Mod 640Mod取余数53+2*3221+加63.5-2.6/22.2-减6(-5+sqr(5*5-4*2*3)/(2*2)-12字符串表达式字符串表达式由字符串常量、变量、函数和字符串运算符组合而成。字符串仅有“+”与“&” 两个运算符,用来连接两个字符串。“+” 运算符所连接的两边的操作数均为字符串型;“&” 运算符所连接的两边的操作数既可以是字符串型,也可以是数值型,若为数值型,则先将数值型操作数转换成字符串型,然后再连接。3关系表达式关系表达式由关系运算符将算术表达式或字符串表达式组合而成。关系表达式的结果为逻辑型数据(即True或False)。关系运算符包括:=(等于)、(大于)、=(大于或等于)、(不等于)。如果比较的两个数据的类型为数值型时,按其大小比较;为字符串型时,按其ASCII码值从第一个字符开始,如果比较出大小,则ASCII码值大的字符串大,如果相等,则比较第二个字符,直至比较出大小或完全相等。例,3+25结果为False,“xy”“abc” 结果为True, “100”“6” 结果为False。4逻辑表达式逻辑表达式由逻辑运算符将关系表达式组合而成。逻辑表达式的结果为逻辑型数据。常用的逻辑运算符见表5-4。表5-4逻辑运算符及逻辑表达式举例(表中T表示True,F表示False)运算符功能优先级说明应用举例结果Not取反1只有右边一个操作数Not (105)FAnd与2当两个操作数均为T时结果才为T109 And 1515FOr或3只要一个操作数为T结果就为T109 Or 1515TXor异或3当两个操作数不同时结果为T109 XOr 1515T说明:在逻辑表达式中,既有算术运算符,又有关系运算符和逻辑运算符时,它们的优先次序是:算术运算符关系运算符逻辑运算符。第三节 VB程序设计的流程控制VB程序设计的一项重要内容就是编写程序代码,而编写程序代码就是用VB的语句对程序的流程进行控制。与其它结构化程序设计一样,VB程序的流程也有三种基本的结构:顺序结构、选择结构与循环结构。图5-5 InputBox函数举例一、顺序结构顺序结构是最简单的一种结构,顺序结构中的各语句按顺序依次执行。组成顺序结构的语句主要有赋值语句与输入、输出语句。1赋值语句VB的赋值语句主要有两种形式:(1)给内存变量赋值。其格式如下: Let =Let是可选项,一般情况下都省略该关键字。“=”为赋值号,其作用是将右端表达式的值赋给左边的变量。例如,假设a为整型变量,则赋值语句a=5+6的作用是将5+6的值11赋给左边的变量a。(2).=其作用是给对象的属性设置属性值。例如赋值语句Text1.Text= “How are you?” 的作用是给文本框Text1中的Text属性设置属性值“How are you?”。 给对象的属性设置属性值的详细介绍见第四节。2数据的输入在这里,数据的输入主要指在程序执行过程中通过交互方式为变量提供数据。在VB中,除通过控件(如文本框、单选钮、列表框等)交互式为变量提供数据(详见第四节)外,还可以用InputBox函数为变量提供数据。InputBox函数的格式如下:InputBox$(,)其作用是产生一个对话框作为输入数据界面(如图5-5所示),等待用户输入数据,并以字符串型返回所输入的数据。字符串表达式1是必选参数,为在对话框内显示的提示信息,字符串表达式2是可选项,为对话框的标题,字符串表达式3也是可选项,为对话框的默认输入数据,整数1与整数2也都是可选项,用来确定对话框在屏幕上的位置。例如:Dim age As Integerage=Val(InputBox$(“请输入年龄”,“输入框”,“18”))执行到第2个语句时,在屏幕上显示如图5-5所示的对话框,等待用户在对话框的输入区域内输入数据,当用户输入数据并单击确定按钮后,把输入的数据(如果不输入新的数据,则默认值为“18”)转换成数值赋值给变量age后程序继续运行。3数据的输出数据的输出是应用程序将运算结果或其它一些信息提供给用户的主要途径。在VB中输出数据主要有以下几种方法:(1)使用Print方法输出数据。Print是窗体、图形框与打印机的一个重要的方法,其格式如下:.Print 其作用是将各表达式的值显示在窗体或图形框上,或打印在打印机上。如果对象是当前窗体,则可以省略对象名。表达式表是用分号“;”或逗号“,”分隔的若干个表达式,若用分号分隔,则各输出项紧挨着输出,若用逗号分隔,则各输出项按固定位置输出(每隔14列输出一项)。最后一个表达式的后边的分号或逗号可有可无,若有,则下一个Print输出的内容不换行,否则换行输出。例如:a=1 : b=2 : c=3 : d=4Print “a=”;a,”b=”;b,Print “c=”;cPrint “d=”;d执行结果:a= 1 b= 2 c= 3d= 4(2)使用MsgBox函数或MsgBox语句输出数据。MsgBox函数与MsgBox语句以对话框的形式输出简单信息,并提供多种命令按钮供用户选择。其中MsgBox函数还能根据用户所选择的不同按钮返回不同的数值(见表5-6)。MsgBox函数的格式如下:MsgBox(,)字符串表达式1是必选参数,为在对话框内显示的提示信息,字符串表达式2是可选项,为对话框的标题,数值表达式也是可选项,用来确定显示在对话框内的图标类型及按钮的种类与个数,其值为按钮种类与个数、图标类型、确省按钮三类数值之和(在应用模式下)。三类数值及含义见表5-5。MsgBox语句的格式与函数的区别是参数不用括号括起来。(3)使用控件输出数据。使用控件(如标签、文本框、列表框、图片框等)输出数据是VB常用的一种方式。详见第四节。表5-5 MsgBox中的按钮、图标所对应的数值及含义类别系统常量值含义类别系统常量值含义按钮种类与个数VbOkOnly0只显示确定按钮图标类型VbCritical16停止图标VbOkCancel1显示确定、取消按钮VbQuestion32询问图标VbAbortRetryIgnore2显示终止、重试、忽略按钮VbExclamation48警告图标 VbInformation64信息图标VbYesNoCancel3显示是、否、取消按钮缺省按钮VbDefaultButton10第一个按钮为缺省VbYesNo4显示是、否按钮VbDefaultButton2256第二个按钮为缺省VbRetryCancel5显示重试、取消按钮VbDefaultButton3512第三个按钮为缺省表5-6 MsgBox函数的返回值操作返回值系统常量操作返回值系统常量选“确定”按钮1VbOk 选“忽略”按钮5VbIgnore选“取消”按钮2VbCancel选“是”按钮6VbYes选“终止”按钮3VbAbort 选“否”按钮7VbNo选“重试”按钮4VbRetry二、选择结构选择结构是一种根据条件选择程序的执行分支的控制结构。VB有两种语句可以实现选择结构:If语句和Select Case 语句。1If语句VB提供了以下几种形式的If语句:(1)单行结构的If语句。单行结构的If语句的格式如下:格式:If Then Else 如果逻辑表达式的值为True,则执行Then后面的语句1;否则,如果有Else选项,则执行Else后面的语句2,没有Else选项则不执行任何操作。例5.1 用InputBox函数为变量x输入一实数,如果是负数,则将其变为正数。最后判断x是否为0,若为0则在当前窗体上显示“x=0”,否则在当前窗体上输出x的倒数。过程如下:Private Sub Form_Click() Dim x As Singlex=Val(InputBox$(“请输入一实数”)If x0 Then x=-xIf x=0 Then Print “x=0” Else Print 1/xEnd Sub(2)块结构的If语句。结块构的If语句格式如下:格式:If Then ElseEnd If 语句块可以是单行语句,也可以是多行语句。如果逻辑表达式的值为True,则执行Then下面的语句块1,否则,如果有Else选项,则执行Else下面的语句块2,没有Else选项则不执行任何操作。例5.2 用InputBox函数为变量x输入一整数,如果是负数,则计算并在当前窗体上输出x的平方;否则,计算并在当前窗体上输出x的平方根。过程如下:Private Sub Form_Click() Dim x As Integer, y As Singlex=Val(InputBox$(“请输入一整数”)If x0 Then y=x*xPrint “The square of x is ”;yElsey=Sqr(x)Print “The square root of x is ”;y End IfEnd Sub(3)If语句的嵌套。如果在Then(或Else)后面的语句中又包含If语句,则称为If语句的嵌套。对于块结构的If语句,嵌套时一定要使关键字If和End If成对出现。2Select Case 语句对于多分支(即含有多个条件)的问题,除了用If语句的格式3实现外,VB还提供了使用更方便的Select Case 语句。Select Case 语句的格式如下:Select Case Case Case Case Case Else End Select功能:根据测试表达式的值,找到第一个与测试表达式的值相匹配的表达式列表,然后执行其后的语句块,执行完毕,将控制转移到End Select后面的语句;如果找不到这样的表达式列表,若有Case Else子句,则执行其后的语句块,否则不执行任何操作,并将控制转移到End Select后面的语句。说明:测试表达式可以是数字表达式或字符串表达式。表达式列表可以是下列形式之一:(1)表达式1,表达式2,表达式n。各表达式通常为常数。例如,Case 2,4,6,8。此时,相当于:测试表达式=表达式1 Or 测试表达式=表达式2 Or Or 测试表达式=表达式n。(2)表达式1 To表达式2。例如,Case 1 To 12。此时相当于:表达式1=测试表达式20。此时相当于:测试表达式 关系运算符 表达式。例5.3 用InputBox函数输入一学生某门课程的考试分数,若分数在90100之间,则输出“优”;8089之间输出“良”;7079之间输出“中”;6069之间输出“及格”;059之间输出“不及格”;其它数据则输出“非法数据”。过程如下:Private Sub Form_Click() Dim x As Integerx=Val(InputBox$(“请输入分数”)Select Case x Case 90 To 100Print “优” Case 80 To 89Print “良” Case 70 To 79Print “中” Case 60 To 69Print “及格” Case 0 To 59Print “不及格” Case ElsePrint “非法数据” End SelectEnd Sub三、循环结构循环结构是根据条件实现某程序段重复执行的一种控制结构。VB提供了多种形式的循环结构语句,常用的主要有以下两种。1For-Next循环语句格式:For = To Step Next 执行过程如下:(1)把初值赋值给循环变量。(2)将循环变量的值与终值比较,若循环变量的值大于(步长值0)或小于(步长值20000 Then Exit ForNext nPrint “n=”;n,”s=”;s End Sub2Do-Loop循环语句Do-Loop循环语句有多种格式,常用有以下两种格式:格式1:Do While Loop格式2:DoLoop Until 格式1的执行过程是先判断逻辑表达式的值是否为True,若是则执行循环体,执行完循环体后,执行到Loop语句时自动返回到Do While语句;否则跳过Loop执行后续语句。而格式2与格式1的区别在于它先执行一次循环体,然后再判断逻辑表达式的值是否为True,若是则结束循环执行Loop的后续语句;否则返回到Do语句继续执行循环体。例如,用Do-Loop循环语句的两种格式实现1+2+100的程序段如下:Do While- Loop循环 Do-Loop Until循环s=0 s=0n=1 n=1Do While n100在Do-Loop循环体中可以使用Exit Do语句强行退出循环。3循环的嵌套在循环体内完整地包含另一个循环时,称为循环的嵌套。其中外层的循环称为外循环,被包含的循环称为内循环。循环嵌套的执行过程是:当外循环执行一次时,内循环完成全部循环次数。使用循环嵌套时一定要注意:第一,内外循环不能交叉。第二,内外循环的循环变量不能同名。4数组的使用把一组具有相同属性的数据放在一起并用一个统一的名字来标识就成为了数组。数组中的每一个数据称为数组元素,用数组名和该数据在数组中的序号(序号用一对圆括号括起来)来标识,其中的序号称为下标。数组元素有时也称为下标变量。数组是程序设计中最常用的数据结构之一。将数组元素的下标和循环语句结合使用可以使许多复杂的问题用少量语句即可得到解决。如对表格数据的处理(求和、求平均数、排序等)就离不开数组。同其它变量一样,数组在使用前应进行说明,格式如下:Dim ( To , To , To ) As 作用:定义数组的名字,指定数组的维数、元素的个数及类型。说明:下界与上界均为整型数,下界与上界的个数称为数组的维数。下界可以省略(此时连关键字To一起省略),省略时其默认值一般为0(若在窗体或模块的说明部分有Option Base 1语句则默认值为1)。例如:Dim a(3) As Integer说明了一个类型为整型的一维数组a,该数组共有4个元素:a(0),a(1),a(2),a(3)。Dim b(-1 To 1, 2 To 3) As String说明了一个类型为字符串型的二维数组b,该数组共有32=6个元素:b(-1, 2),b(-1, 3),b(0, 2),b(0, 3),b(1, 2),b(1, 3)。例5.5 输入50个学生某门课程的考试成绩,然后按成绩由高到低输出。分析:首先将输入的50个学生的成绩存放在一维数组中,然后对这50个数进行排序。排序是计算机科学中的典型问题之一,也是现实生活中经常遇到的一个重要问题。排序有多种方式,最常用的一种方式是先将一组数存入一个数组中,然后按数值大小重新调整数组中元素的位置,从而达到排序的目的。常见的排序算法有选择排序、冒泡排序、插入排序等,这些排序算法在数据结构课程中已介绍,这里不再赘述。本例使用选择排序算法。过程如下Private Sub Form_Click() Dim score(49) As Integer, t As Integer, i As Integer, maxindex As Integer For i=0 To 49score(i)=Val(InputBox$(“请输入第”+Str$(i+1)+ “个学生的分数”) Next i For i=0 To 48 maxindex=i For j= i+1 To 49 If score(j) score(maxindex) Then maxindex=j Next j If i maxindex Then t= score(i) : score(i)= score(maxindex) : score(maxindex)=t End If Next iFor i=0 To 49Print score(i); Next i PrintEnd Sub四、过程VB的过程分为两类:事件过程与通用过程。事件过程的概念已在第一节作过介绍,本节仅介绍通用过程。VB的通用过程包括Sub过程和Function过程。由于通用过程不属于任何一个事件过程,因此,不能在事件过程中建立通用过程。通用过程可在标准模块中建立,也可在窗体代码窗口的“对象”中选择“通用”建立。1Sub过程(1)Sub过程的定义。Sub过程定义的格式如下:Public(或Private) Sub () End Sub说明:若为Public,则过程为公用过程,可在整个程序范围内被调用;若为Private,则过程为私有过程,只能被本窗体或本模块中的过程调用。二者均可省略,省略时默认为Private。例如:编写一个求两个整数相除的商及余数的Sub过程。Public Sub Divmod(ByVal a As Integer, b As Integer) Dim x As Integer, y As IntegerIf b0 Then x=ab : y=a Mod b a=x : b=y Print “商为:”;x, “余数为:”; y Else Print “除数不能为0” End IfEnd Sub上面的过程中,形式参数a为“传值”参数,b为“引用”参数,它们的含义将在后面详细介绍。(2)Sub过程的调用。通用Sub过程的调用与事件过程不同,它需要用语句来调用。调用通用Sub过程的格式如下:Call 过程名() 说明:实在参数表中实在参数的个数、数据类型与被调用过程中的形式参数要一一对应。实在参数可以是常量、已赋值的变量或表达式。例如下面是调用Divmod过程的语句:i%=8 : j%=5Call Divmod(i,j)2Function过程Function过程也称为自定义函数过程,与Sub 过程不同的是,Function过程
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 回收白酒协议书范本
- 突发事件宣传课件
- 二零二五年度健康产业过桥资金合作契约
- 2025房地产项目安全生产评估与监管合同
- 2025房产项目项目土地使用与规划调整补充协议
- 二零二五年度建筑垃圾外运与智能化监管协议
- 二零二五年度房地产公司常年法律培训及风险控制服务协议
- 2025年度调味品行业消费者权益保护合作协议
- 二零二五年度污水处理工程监理委托书范文
- 2025年度股权代持基金管理及退出协议书
- 3.5.2分式与比课件青岛版数学八年级上册
- 2025年广东省中考道德与法治试卷(含答案)
- 2025年度河南交通投资集团有限公司公开招聘82人(社招+校招)笔试参考题库附带答案详解版
- 2025至2030中国石墨制品行业市场深度调研及发展趋势与投资策略报告
- 钣金工知识培训课件
- 老年性肺气肿个案护理
- 2025年中国电力集团招聘笔试备考题库(带答案详解)
- 安吉公司团建十人活动方案
- 2025年广东省高考政治试卷真题(含答案)
- 重症肺炎呼吸衰竭的个案护理
- 2025年七一党课-作风建设永远在路上学习教育党课
评论
0/150
提交评论