




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
《大学计算机基础》第7章VBScript程序设计计算机的任何功能源于程序的编制。程序设计语言是实现程序编制的重要工具,当前的主流技术是面向对象的程序设计。VBScript是一种解释性的网页脚本语言,具有面向对象的特性,是实现动态网页的有效工具。VBScript程序设计概述7.1VBScript编程基础7.2程序流程控制7.3过程7.4提纲事件处理7.5程序调试7.67.1.1程序设计语言的发展历程
计算机语言可以分成机器语言,汇编语言,高级语言三大类。电脑每做的一次动作,一个步骤,都是按照已经用计算机语言编好的程序来执行的,程序是计算机要执行的指令的集合,而程序全部都是用计算机语言来编写的。1.机器语言
机器语言是第一代计算机语言。计算机发明之初,人们只能直接用计算机的语言控制计算机动作,就是写出一串串由“0”和“1”组成的指令序列由计算机执行,这种语言就是机器语言。由于机器语言使用的是针对特定型号计算机的语言,故运算效率是所有语言中最高的。7.1VBScript程序设计概述2.汇编语言
汇编语言是用一些简洁的英文字母、符号串来替代一个特定的指令的二进制串,比如,用“ADD”代表加法,“MOV”代表数据传递等,降低编程的繁杂度。汇编语言同样十分依赖于机器硬件,移植性不好,但效率仍十分高。3.高级语言
用高级语言编写的程序需要经过翻译,计算机才能执行。虽然程序编译占去了一些计算机时间,但是实践证明,高级语言是有效地使用计算机与计算机执行效率之间的一个很好的折中手段。7.1VBScript程序设计概述
程序设计语言
机器语言:
汇编语言:
高级语言:1011000000000101………..MOVA,5ADDA,2………..LETX=5+220PRINTX………..7.1.2面向对象编程的基本思想
面向对象是一种新兴的程序设计方法,其基本思想是使用对象、类、继承、封装、消息等基本概念来进行程序设计。
面向对象程序设计方法是从现实世界中客观存在的事物(即对象)出发来构造软件系统,并在系统构造中尽可能运用人类的自然思维方式,强调直接以问题域(现实世界)中的事物为中心来思考问题、认识问题,并根据这些事物的本质特点,把它们抽象地表示为系统中的对象,作为系统的基本构成单位。7.1VBScript程序设计概述7.1.3VBScript语言特点与编程环境VBScript是一种解释性的网页脚本语言,具有面向对象的特性。VBScript既可以作为客户端编程语言,也可以作为服务器端编程语言。
客户端编程语言:可以由浏览器解释执行的语言。当编制的脚本(程序)被下载到一个兼容的浏览器中时,浏览器将自动执行该脚本。
服务器端编程语言:脚本在服务器上执行。不受浏览器的限制,网页通过网络传送给浏览器,Web浏览器收到的只是标准的HTML文件。7.1VBScript程序设计概述编制VBScript程序的工具:1.使用纯文本编辑器
使用纯文本编辑器(如Windows的记事本)编写脚本程序,优点是简单、易用,缺点是不能支持脚本语言的特性,因此这种方法只适用于编写和修改程序量不大的脚本程序。2.使用SPD2007
在SPD2007中,在“网页”视图中的“代码”选项卡下可以直接编制HTML文档,也可以输入和编辑VBScript脚本程序代码,并能在IE浏览器中浏览执行结果。7.1VBScript程序设计概述
3.使用Microsoft脚本编辑器Microsoft脚本编辑器是SPD2007提供的一种专业化Web编程工具,用于查看和编辑HTML文档,也可以调试VBScript脚本程序。
启动MicrosoftScriptEditor的方法:在SPD2007中打开或新建任意一个HTML文档,选择“网页”视图下的“代码”选项卡,执行“工具”→“宏”命令,从弹出的子菜单中选择“MicrosoftScriptEditor”选项,即可打开MicrosoftOffice内置的脚本编辑器。7.1VBScript程序设计概述7.1.4程序代码编写规则
每一种程序设计语言都有一套严格的书写规则。VBScript程序代码也有自己的编写规则,不能超越其规定自由发挥。
1.程序代码中不区分字母的大小写。
2.同一程序行上可以书写多条语句。语句之间用冒号“:”分隔,例如:
a=10:b=25。VBScript规定,一个程序行的长度最多不能超过255个字符。
3.单行语句可分若干行书写。需要续行时,在本行后加入续行符(一个空格后面跟随一个下划线“_”)。7.1VBScript程序设计概述4.注释语句。注释语句可以帮助其他程序员理解程序文件,在VBScript中的注释语句以单引号(‘)或Rem表示。例如:
r=2:Remr表示圆的半径s=3.14*r*r ‘求圆的面积
需要特别注意的是,编写程序时一定要采用VBScript规定的有效符号。除注释内容及字符串以外,语句中使用的分号、引号、括号等符号都必须使用英文状态下的符号,否则程序将不能正常运行。7.1VBScript程序设计概述
5.严格按照VB规定的格式和符号编写程序
与其他高级语言一样,在VB中使用的分号、引号、括号等符号都是英文状态下的半角符号,而不能使用中文状态下的全角符号。
许多程序错误都是由此而起!!!!
例如:
Ifa<5Thenx=10
Document.Write("x<1")
不能写成
Ifa<5Thenx=10
Document.Write(“x<1”)全角符号中文符号7.1.5一个简单的VBScript程序VBScript采用小程序段的方式进行编程。当客户端请求一个含有VBScript脚本程序的网页时,VBScript脚本程序会随HTML文档一起从服务器下载到客户端,然后由客户端浏览器解释和执行这个脚本程序,并以页面的方式显示出来。
在HTML文档中,
<SCRIPT></SCRIPT>为脚本标记,其中:type=“text/VBScript”表示脚本语言是VBScript,浏览器会激活VBScript处理器进行处理。另一种标记方法是:LANGUAGE=“VBScript”,目前这两种方法都可以表示<SCRIPT></SCRIPT>里的代码是VBScript。7.1VBScript程序设计概述例7-1在浏览器上显示“大家好!”、“节日快乐!”,VBScript程序如下:<HTML><HEAD><TITLE>例7-1</TITLE></HEAD><BODY><SCRIPTtype=“text/VBScript”>
Document.write("大家好!"&"<BR>")
x="节日快乐!"
Document.write(x)
</SCRIPT></BODY>
</HTML>7.1VBScript程序设计概述VBScript程序设计概述7.1VBScript编程基础7.2程序流程控制7.3过程7.4提纲事件处理7.5程序调试7.6
用程序设计语言编制程序,最重要的两个方面就是数据及程序控制。数据是程序要处理的对象,处理的结果也用数据来表示和存储;而程序控制则是对程序运行流程的管理。7.2.1数据类型
VBScript只有一种数据类型,称为Variant(变体型)。Variant是一种特殊的数据类型,根据使用的方式,它可以包含不同类别的信息。Variant变量会自动进行数据类型转换。需要时使用VBScript的转换函数可以转换数据的子类型。7.2VBScript编程基础7.2.2变量
变量是内存中的临时存储单元,用于存储程序运行期间其值可以发生变化的量。一个变量有3个要素:变量名、数据类型和变量值。使用变量并不需要了解变量在计算机内存中的地址,只要通过变量名引用变量就可以查看或更改变量的值。
1.声明变量
使用Dim语句在Script中显式声明变量。格式为:
Dim变量名列表
声明多个变量时,使用逗号分隔变量。例如:
Dima,b,c,d
另一种方式是通过直接在Script中使用变量名这一简单方式隐式声明变量。7.2VBScript编程基础2.变量命名规则第一个字符必须是字母。只能由字母、数字和下划线组成,不能包含小数点、空格等字符。长度不能超过255个字符。不能使用VBScript的关键字(也称保留字,如对象名、语句名、函数名等)作为变量名。在被声明的作用域内必须唯一。3.变量的作用域与生存期
变量的作用域由声明它的位置决定。分为过程级变量和Script级变量。变量存在的时间称为生存期。Script级变量的生存期从被声明的一刻起,直到Script运行结束。对于过程级变量,其生存期仅是该过程运行的时间,该过程结束后,变量随之消失。7.2VBScript编程基础4.变量赋值
赋值形式:变量在表达式左边,要赋的值在表达式右边。例如:B=200 S=“VBScript程序设计”
5.标量变量和数组变量
只包含一个值的变量被称为标量变量。包含一系列值的变量称为数组变量。①
一维数组
DimA(10) ‘声明一个包含11个元素的一维数组②
多维数组数组并不仅限于一维。VBScript中数组的维数最大可以为60 DimMyTable(5,10)‘声明一个6行11列的二维数组7.2VBScript编程基础“值可变”:当将某个数据存放到一个变量时,就把变量中原有的值“冲”掉,换成新的值。例如,以下2个赋值语句:
a=3a=8
同一变量在不同时刻可以取不同的值“取之不尽”:在运算过程中,如果没有改变该变量的值,那么,不管使用变量的值进行多少次运算,其值始终保持不变。例如
x=5a=3+x′x的值始终保持为5b=x*x–4*x变量的两个重要特点7.2.3常量
常量是在程序执行期间其值从不发生变化的数据。在VBScript中,常量分为普通常量和符号常量。1.普通常量
普通常量分为字符串常量、数字常量和日期型常量三种。
字符串常量简称字符串,它是由一对双引号括起来的字符序列所组成,其中可以包含字母、汉字、数字、空格以及标点符号等,长度不超过20亿个字符。
数值常量分为整型、长整型和浮点型。整型数和长整型数都可以用十进制、八进制、十六进制三种表示形式。浮点型由尾数、指数符号和指数3部分组成。对于单精度浮点数,指数符号为E;对于双精度浮点数,指数符号为D。日期型常量用来表示日期和时间。它采用两个“#”号把日期和时间的值括起来,例如#05/10/2013#,#2010-10-01#等。7.2VBScript编程基础2.符号常量
符号常量是用一个标识符表示的常量,用于代替数字或字符串,其值从不发生改变。在VBScript中,符号常量分为预定义符号常量和用户自定义常量。①
预定义符号常量。在VBScript中,提供了许多预定义符号常量,在使用之前无需定义。VBScript符号常量通常以前缀“vb”开始,例如:vbCrLf表示回车符和换行符的组合,vbGreen表示绿色的数值。②
用户自定义常量。通过Const语句来创建,使用Const语句可以创建名称具有一定含义的字符串型或数值型常量。ConstMyString="这是一个字符串"ConstPI=3.1415926ConstCutoffDate=#6-1-2013#7.2VBScript编程基础7.2.4运算符与表达式VBScript有4类运算符,包括算术运算符、连接运算符、比较运算符和逻辑运算符。1.算术运算符VBScript有8种算术运算符:
^(乘方)→-(求负)→*/→\→Mod→+-
示例:5*x^10+x/6–x^(1/3)
15Mod67.2VBScript编程基础求整除后的余数,结果为32.连接运算符
连接运算符有两个:&和+,其作用都是将两个字符串连接起来,合并成一个新字符串。例如:“高性能”&“计算” ‘结果是“高性能计算”“Office”&2010 ‘结果是“Office2010”“1234”+“5678” ‘结果是“12345678”
当连接的两个数据都是字符串时,“&”和“+”的作用完全相同。但“&”会自动将非字符串类型的数据转换为字符串后再进行连接,而“+”则不能自动进行转换。7.2VBScript编程基础3.比较运算符
比较运算符又称为关系运算符,用于对两个表达式进行比较,比较结果为逻辑值。在VBScript中共有6个比较运算符,包括:=、<>、<、>、<=、>=。比较运算符的优先级都相同,按照从左到右的顺序进行计算。
字符串数据也能比较大小,它是按其ASCII码值进行比较的。比较两个字符串时,从第一个字符开始比较,其ASCII码值大的字符串大。如果第一个字符相同,则取第二个字符进行比较,依此类推。例如:“A”小于“B”“12”小于“2”“ABC”大于“AB2”“ABC”大于“AB”7.2VBScript编程基础4.逻辑运算符
逻辑运算符的作用是将操作数进行逻辑运算,结果是逻辑值。基本的逻辑运算符有三种,即And、Or、Not。进行逻辑运算时,运算符的优先级依次是Not、AnD、Or,括号优先。
例:Not(1<3) ‘结果为假5<=5And4<5+1 ‘结果为真“3”<=”3”OR5>2 ‘结果为真7.2VBScript编程基础5.表达式与运算符优先级
(1)表达式
将常量、变量或函数等用运算符连接起来构成的式子就是表达式。表达式的运算结果是一个值。例如,a+b–c,a*b/c,a+20*b/12,aANDbORc等,都是合法的表达式。
表达式书写规则:①
不能使用上标或下标。例如X2必须写为X^2,X1+X2必须写为X1+X2;②
所有运算符都不能省略。例如3X必须写为3*X;③
表达式中的括号都要用圆括号,且必须成对出现。7.2VBScript编程基础(2)运算符优先级
当表达式包含多个运算符时,将按预定顺序计算每一部分,这个顺序被称为运算符优先级。可以使用括号越过这种优先级顺序,强制首先计算表达式的某些部分。运算时,总是先执行括号中的运算符,然后再执行括号外的运算符。但是,在括号中仍遵循标准运算符优先级。优先级相同的按照从左到右的顺序计算。当表达式包含多种运算符时,首先计算算术运算符,其次连接运算符,然后计算比较运算符,最后计算逻辑运算符。7.2VBScript编程基础1+2*14Mod17\6/2=?
求出下列表达式的值想一想思考题
1+28Mod5
结果为41.按运算符的优先级分成若干运算步骤先乘除,再整除\和求Mod,后加运算
2.根据运算符的运算功能求出各步骤的结果7.2.5函数
函数是系统提供的实用功能。VBScript中的内部函数也称为标准函数,每个内部函数完成特定的功能。函数调用的一般格式为:函数名(参数1,参数2,…)例如,要求某个数x的平方根,可以调用Sqr函数:y=Sqr(x)VBScript常用内部函数可以分为4类:转换函数、字符串函数、数学函数和日期函数。VBScript中所有函数的返回值的数据类型都是Variant。1.转换函数
在VBScript中,Variant变量一般会根据需要自动转换成合适的数据类型;但有时自动转换有可能造成数据类型不匹配错误。此时,就应使用VBScript的转换函数来强制转换数据的子类型。VBScript中常用的类型转换函数见表7-6。7.2VBScript编程基础<HTML><HEAD><TITLE>例7-2</TITLE></HEAD><BODY><SCRIPTtype=“text/VBScript”>
Num=1000
Document.Write(typename(Num)&“<BR>”)Document.Write(“欢迎第”&CStr(Num)&“个来访者"&“<BR>”)Document.Write(typename(CStr(Num))
</SCRIPT></BODY>
</HTML>7.2VBScript编程基础例7-2使用类型转换函数示例。显示数值变量类型,并将数值变量转换为字符串变量。类型转换2.字符串函数
字符串在编程中使用广泛,如用户注册时输入的用户名、密码等信息,留言板中的留言标题、内容、留言人等信息,都是作为字符串处理的。VBScript提供了一些用于字符串查找、比较、截取等处理的函数,见表7-7。
①
函数Instr在“字符串1”中查找“字符串2”,如果找不到,返回值为0;如果找到了,则返回“字符串2”的第一个字符在“字符串1”中的位置。f和k都是可选参数,f表示开始搜索的位置(默认值为1),k表示比较方式,若k为0(默认),表示区分大小写;若k为1,则不区分大小写。例如:Instr(3,“A12a34A56”,“A”),结果为7,Instr(3,“A12a34A56”,“A”,1),结果为4;
②
在函数String中,字符也可以用ASCII代码(见附录B)来表示,例如String(6,42)与String(6,“*”)作用相同。7.2VBScript编程基础<HTML><HEAD><TITLE>例7-3</TITLE></HEAD><BODY><SCRIPTTYPE="text/VBScript">dimuser_name,StrTempuser_name=Ucase("WangDonFang")
document.write(user_name&"<BR>")
StrTemp=Mid("Heisagoodprimeminister",9,4)
document.writeStrTemp </SCRIPT>
</BODY></HTML>7.2VBScript编程基础例7-3使用字符串函数示例。将用户名小写字母转换为大写字母;取字符串中的子串。3.数学函数
VBScript提供了10多种数学处理的函数,表7-8列出了常用的6种数学函数。
其中随机函数Rnd用于产生介于0和1之间的随机数。所谓随机数是人们预先不能估计到的数。Rnd通常与Int函数配合使用,
要生成[a,b]区间内的随机整数,可以使用公式:Int((b-a+1)*Rnd+a)
默认情况下,每次运行一个应用程序,VBScript会提供相同的“种子数”,使Rnd产生相同序列的随机数。为了每次运行时产生不同序列的随机数,可先执行Randomize语句。7.2VBScript编程基础
生成[1,5]区间范围内的随机整数,可以采用:
Int(5*Rnd+1)
产生的随机数可以是1,2,3,4或5,这由VB运行时随机给定。5*Rnd的结果为下列的一种:
0.……1.……2.……3.……
5.……例7-4用随机函数产生20个在[1,100]之间的正整数,找出其中的最大数和最小数并输出,同时输出下标。程序代码如下:<HTML><HEAD><TITLE>例7-4</TITLE></HEAD><BODY><SCRIPTtype=“text/VBScript”>Dima(20)
Dimm,n,i,Max,MinRandomizeFori=1To20a(i)=Int(Rnd*100+1) Document.write(a(i)&“”)NextDocument.write(“<BR>”)7.2VBScript编程基础定义数组产生随机数Max=a(1)Min=a(1)Fori=2To20 Ifa(i)>MaxThenMax=a(i):m=i
Ifa(i)<MinThenMin=a(i):n=iNextDocument.write("最大的数是:"&Max&",下标是:"&m&"<BR>")Document.write("最小的数是:"&Min&",下标是:"&n&"<BR>")
</SCRIPT></BODY></HTML>7.2VBScript编程基础保留最大数,记录下标4.日期与时间函数
日期/时间函数用于进行有关日期和时间的处理,VBScript常用的日期/时间函数见表7-9。
例7-5
利用VBScript在网页中输出当前
的日期、时间、星期。程序代码如下:7.2VBScript编程基础<HTML><HEAD><TITLE>例7-5</TITLE></HEAD><BODY><SCRIPTtype=“text/VBScript”>Document.Write("当前日期:"&Date()&"<BR>")Document.Write("当前星期:"&Weekday(Date())&"<BR>")Document.Write("当前时间:"&Time()&"<BR>")</SCRIPT></BODY></HTML>VBScript程序设计概述7.1VBScript编程基础7.2程序流程控制7.3过程7.4提纲事件处理7.5程序调试7.6结构化程序设计方法包含3种基本结构,即顺序结构、选择结构和循环结构。VBScript支持结构化的程序设计方法,可以用这3种基本结构及其组合来构造程序,从而使程序结构清晰、可读性好,也易于调试和修改。7.3程序流程控制7.3.1顺序结构顺序结构是最基本的程序结构。顾名思义,顺序结构是按程序中语句编写的先后顺序逐条执行,只有在遇到分支结构、循环结构等时才会改变执行的顺序。
在顺序结构中,按程序中语句编写的先后顺序逐条执行。主要包括以下一些简单语句。
输入数据:
赋值语句变量=表达式为变量赋值
InputBox函数通过输入对话框接收数据
输出结果:
Document.Write方法输出信息到网页
MsgBox函数以消息框形式输出信息通常程序包含三部分内容:输入→处理→输出1.赋值语句
格式:[Let]变量=表达式功能:计算右端的表达式,并把结果赋值给左端的变量。Let表示赋值,通常省略。符号“=”被称为赋值号。例如:
sum=99'把数值99赋给变量sum
txt="程序设计"
'把字符串赋给变量txt1
说明:(1)表达式中的变量必须是赋过值的,否则变量的初值自动取零值(变长字符串变量取空字符)。例如:
a=1c=a+b+3
'b未赋过值,为0
执行后,c值为4
(2)赋值语句跟数学中等式具有不同的含意,例如
x=x+1
表示把变量x的当前值加上1后再将结果赋给变量“先读后写”:读出x的内容→加1→写回x(覆盖原有内容)
(3)变量出现在赋值号的右边和左边,其用途是不相同的。出现在右边表达式中时,变量是参与运算的元素(其值被读出);出现在左边时,变量起存放表达式的值的作用(被赋值)。例如
x=2a=3x=2*a+5
当执行第3行语句“x=2*a+5”时,将读出变量a的值(即3),把该值乘2后加5,然后将结果(11)赋值给变量x。例7-6给定一个两位数,要求交换个位数和十位数的位置,然后把交换后的数显示在网页上。程序代码如下:<HTML><HEAD><TITLE>例7-6</TITLE></HEAD><BODY><SCRIPTtype=“text/VBScript”>Dimx,a,b,c ‘定义4个变量
x=86 ‘给定一个2位数
a=Int(x/10) ‘取十位数
b=xMod10 ‘取个位数
c=b*10+a ‘个、十位交换
Document.Write("交换后的数:"&c)
</SCRIPT></BODY></HTML>7.3程序流程控制
处理方法两位数
ab
b②取出个位数
a①取出十位数
③组成新两位数:b*10+a2.Document.Write输出方式Document(文档)对象是Web浏览器中的一个重要对象,它代表当前的整个网页。使用Document对象的Write方法可以向网页输出信息。常用格式:
Document.Write(输出项)
例:
Document.Write(x)Document.Write("x="&x)Document.Write("x="&x&",y="&y)
3.消息对话框使用MsgBox函数可以产生一个消息对话框。一般格式如下:
MsgBox(输出信息)
或MsgBox输出信息
4.输入对话框格式:InputBox(提示信息)
功能:产生一个输入对话框,在对话框中显示“提示信息”,并能接收用户输入的一行信息。例7-7使用InputBox函数输入一个用户名,然后通过MsgBox函数输出信息。程序代码如下:<HTML><HEAD><TITLE>例7-7</TITLE></HEAD><BODY><SCRIPTtype=“text/VBScript”>Dimnamename=InputBox("请输入用户名:")
MsgBox("尊敬的"&name&",欢迎登录网站!")
</SCRIPT></BODY>
</HTML>7.3程序流程控制7.3.2选择结构在实际应用中,有许多问题需要判断某些条件,根据判断的结果决定程序的流程。使用选择结构可以实现这种处理。在VBScript中实现选择结构主要有两类语句:条件语句(if)和多分支语句(selectcase)。7.3程序流程控制1.If语句If语句有以下两种形式:
(1)If…Then语句If…Then语句常用的语法格式:
If条件Then
语句块
EndIf其中“条件”是一个比较表达式或逻辑表达式。功能:若“条件”成立(值为真),则执行Then后面的“语句块”(一个或多个语句),否则直接执行“EndIf”的下一条语句。注意:EndIf表示语句的结束,输入时End和If之间至少要留一个空格,否则程序语法检查时会出错。其他语句如EndSuB、EndDo等,也必须按此处理。7.3程序流程控制
在IF条件中,有时需要判断字符的大小。字符大小是按其ASCII码值进行比较的。
1.下列字符中,____字符最大,____字符最小。
A.1
B.ZC.*
D.a
2.假设a=1,b=2,下列逻辑表达式中其值为真的有
A.a<=0B.a>=0Andb>2C.a<=0Or"b">"ab"D.a>=0AndNotb<2E.2*a=-bOra>0Andb>0
请你给出答案想一想思考题最大字符:D最小字符:CFFTTT例7-8任给两个数,判断其中较大的数并显示出来。程序代码如下:<HTML><HEAD><TITLE>例7-8</TITLE></HEAD><BODY><SCRIPTtype=“text/VBScript”>dimx,y,mx=Csng(InputBox(“请输入第一个数:”)) ‘转换为单精度数
y=Csng(InputBox(“请输入第二个数:”))
m=xifm<ythen ‘两数比较
m=y ‘最大数保存在m中
EndIfDocument.write(“最大的数是:”&m)</SCRIPT></BODY>
</HTML>7.3程序流程控制(2)If…Then…Else语句
格式:
If条件Then
语句块1Else
语句块2EndIf
功能:首先测试条件,如果条件成立(即值为真),则执行Then后面的语句块1,如果条件不成立(即值为假),则执行Else后面的语句块2。而在执行Then或Else之后的语句块后,会从EndIf之后的语句继续执行。真假ABEa=1:b=3
c=4*a-bIfa*2-1<=bThenb=2*b+cEndIfIfb-a>cThena=a+1c=c-1Elsea=a-1EndIf
下列程序段运行后,a、b、c的值是?想一想思考题270(3)条件语句的嵌套在条件语句中,Then和Else后面的语句块也可以包含另一个条件语句,这就形成条件语句的嵌套。使用这种结构,可以控制基于多种可能的程序流程。使用条件语句嵌套时,一定要注意If与Else、If与EndIF的配对关系。在多个条件中进行选择的更好方法是使用SelectCase语句。7.3程序流程控制例7-10输入某课程的百分制成绩,显示出对应的成绩等级。例如输入56,则显示“不及格”。本例采用条件语句的嵌套,程序代码如下:<SCRIPTTYPE="text/VBScript">Dimmarkmark=Csng(inputbox("输入成绩:"))
Ifmark<60ThenMsgBox("不及格!")
ElseIfmark<80ThenMsgBox("及格!")
ElseIfmark<90thenMsgbox("良好!")
ElseMsgbox("优秀!")
EndIfEndIfEndIf</SCRIPT>7.3程序流程控制2.SelectCase语句
SelectCase结构提供了If…Then…Else结构的一个变通形式,可以从多个语句块中选择执行其中的一个。SelectCase语句提供的功能与If…Then…Else语句类似,但是可以使代码更加简练易读。格式如下:SelectCase<表达式>
Case<结果1>
<语句1>
Case<结果2>
<语句2>
……
Case<结果n>
<语句n>
CaseElse
<语句n+1>EndSelect7.3程序流程控制说明:首先对表达式进行运算。该运算可以为数学运算或字符串运算。然后将运算结果依次与结果1到结果n作比较,当找到与计算结果相等的结果时就执行该语句段,执行完毕就跳出selectcase条件式。而当运算结果与所有的结果都不相等时,就执行caseelse后面的语句段n+1。例7-11根据输入的数字,显示相应的学位。例如输入1,则显示“学士”。程序代码如下:<HTML><HEAD><TITLE>例7-11</TITLE></HEAD><BODY><SCRIPTtype=“text/VBScript”>dimaa=int(inputbox("请输入一个1--4的值:")) ‘转换为整型数selectcaseacase1msgbox("学士")case2msgbox("硕士")case3msgbox("博士")case4msgbox("博士后")caseelsemsgbox("输入错误!")endselect</SCRIPT></BODY>
</HTML>7.3程序流程控制7.3.3循环结构在程序设计中,经常要对某一处理过程反复执行多次,这就需要使用循环结构。VBScript提供了多种设计循环结构程序的语句,其中最常用的是For…Next和Do…Loop语句。
采用循环程序可以解决一些按一定规则重复执行的问题。循环是指在指定的条件下多次重复执行一组语句,被重复执行的一组语句称为循环体。7.3程序流程控制1.For…Next语句For…Next语句用于按指定的次数运行语句块。在循环中使用计数器变量,该变量的值随每一次循环增加或减少。
For…Next语句的一般语法格式如下:
For循环变量=初值To终值[Step步长值]循环体
Next7.3程序流程控制
功能:控制重复执行循环体中的一组语句。本语句使用一个起计数器作用的循环变量,每重复执行一次循环之后,循环变量就会按一定的步长增加或者减少,直到超过规定的终值为止。初值、终值和步长值都是数值表达式,步长值可以是正数(称为递增循环),也可以是负数(称为递减循环)。若步长值为1,则Step1可以省略。(1)单重循环单重循环的执行步骤如下:①保存初值、终值和步长值②将初值赋给循环变量;③判断循环变量值是否超过终值。若超过终值则退出循环,执行Next后面的语句;④执行循环体;⑤遇到Next语句时,修改循环变量,即把循环变量的当前值加上步长值后赋给循环变量;⑥转③判断循环条件及继续执行。(2)循环的嵌套循环的嵌套是指一个循环体内包含另一个完整的循环结构,又称多重循环。其执行规则是,外层循环每执行一次,内层循环就要从头开始执行一轮。7.3程序流程控制例7-12在某次比赛中,有7个评委打分(由键盘输入7个评委的分数),去掉一个最高分,去掉一个最低分后,求出平均分为该参赛者的最终得分。程序代码如下:<SCRIPTtype=“text/VBScript”>Dimn,s,max,min,avgs=0max=0 ‘赋初值min=100Fori=1To7 ‘输入7个评分
n=Csng(InputBox("请输入第"&i&"位评委的分数:"))‘转换为单精度数
Ifn>maxThenmax=nIfn<minThenmin=ns=s+nNexts=s-max-min ‘去掉最高分、最低分avg=s/5 ‘计算平均值Document.Write("最高分是:"&max&“<BR>”)Document.Write("最低分是:"&min&“<BR>”)Document.Write("平均分是:"&avg&“<BR>”)</SCRIPT>7.3程序流程控制例7-13
制作“九九乘法表”。1)由于“九九乘法表”是一个9行9列的二维表,故可采用两重循环进行控制;2)假定i作为外循环变量、j作为内循环变量,可利用内循环变量作为被乘数、外循环变量作为乘数,内循环每执行一轮换一次乘数。使用Document.Write("<BR>")控制换行。7.3程序流程控制<HTML><HEAD><TITLE>例7-13</TITLE></HEAD><BODY><pre><FONTFACE="黑体"SIZE="4"COLOR="red">
九九乘法表</FONT><BR><SCRIPTtype="text/VBScript">Dimi,jdocument.Write("<BR>")'换行
Fori=1To9 '九行
Forj=1To9'九列
ifi*j<=9thendocument.Write(j&"*"&i&"="&j*i&"")elsedocument.Write(j&"*"&i&"="&j*i&"")endifNextdocument.Write("<BR>")'换行
Next</SCRIPT></pre></BODY></HTML>7.3程序流程控制(3)利用循环实现累加和连乘的计算
在循环程序中,常用的算法是累加和连乘。累加(如s=s+k)是在原有和的基础上每次再加一个数,连乘(c=c*k)则是在原有积的基础上每次再乘一个数。例7-14计算s=1+2+3+…+10的值。程序代码如下:<HTML><HEAD><TITLE>例7-14</TITLE></HEAD><BODY><SCRIPTTYPE="text/VBScript">Dims,ks=0 '累加器清0
Fork=1To10s=s+k '累加
Next document.write("s="&s) </SCRIPT></BODY></HTML>如果要计算的是s=1+2+3+…+n,则程序结构不用改变,只需将上述程序代码中的终值10改为n就可以了。7.3程序流程控制
s=0'累加器初值为0
Fork=1To10s=s+k'累加器,在原有和的基础上每次加一个数
NextDocument.Write("s="&s)
程序执行结果是:s=55
分析例7-14累加器
s=s+k旧值。前n项之和新加的数k=1s←s+k01k=3s←s+k1+23k=2s←s+k12k=8s←s+k1+2+…78……例7-15计算s=1×2×3×…×10的值。程序代码如下:<HTML><HEAD><TITLE>例7-15</TITLE></HEAD><BODY><SCRIPTTYPE="text/VBScript">Dimk,cc=1
'置初值
Fork=1To10c=c*k'累乘
Next document.write("c="&c) </SCRIPT></BODY></HTML>语句c=c*k起连乘的作用。在连乘之前,必须先将c置1(不能置0)。显然,上述程序若把循环终值改为n,也可以计算n项连乘的情况。7.3程序流程控制
t=1'累乘器初值为1
Forc=1To10t=t*c'累乘器,在原有积的基础上每次乘一个数
NextDocument.Write("T="&t)
程序执行结果是:T=3628800
分析例7-15c=1t←t*c11c=3t←t*c1*23c=2t←t*c12c=8t←t*c1*2*…78……累乘器
t=t*k旧值。前n项之积新乘的数2.
Do…Loop语句可以使用Do…Loop语句多次(次数不定)运行语句块。当条件为True时或条件变为True之前,重复执行语句块。
常用语法格式:DoWhile条件循环体Loop或:Do循环体LoopWhile条件7.3程序流程控制功能:根据条件重复执行循环体中的一组语句。第一种语句格式首先判断条件,如果条件为真,则执行循环体,否则循环结束。因此,如果一开始条件就不满足,循环体可能一次也不执行;第二种语句格式先执行循环体,然后再判断条件,如果为真,则继续执行循环体,否则循环结束。因此,第二种语句格式最少执行循环体一次。例7-16检查用户密码输入是否正确。如果输入错误超过三次,将结束程序。代码编写如下:<HTML><HEAD><TITLE>例7-16</TITLE></HEAD><BODY><SCRIPTtype=“text/VBScript”>DimPassword,CounterConstP=“123456”Counter=1DoWhileCounter<4Password=inputbox(“请输入六位密码:”,”密码输入”)
IfPassword=PthenMsgbox(“恭喜您,密码正确!”)Exitdo
Else
Msgbox(“对不起。密码错误!”Counter=Counter+1
EndIfLoopIfCounter=4thenMsgBox"抱歉,您今日的输入次数已达到3次,请明日再试,谢谢参与!"Endif
</SCRIPT></BODY>
</HTML>7.3程序流程控制VBScript程序设计概述7.1VBScript编程基础7.2程序流程控制7.3过程7.4提纲事件处理7.5程序调试7.6过程是完成某种特殊功能的一组独立的程序代码。过程有两个重要作用:一是把一个复杂的任务分解为若干个小任务,可以用过程来表达,从而使任务更易理解,更易实现和维护;二是代码重用,使同一段代码可以重复使用。在VBScript中,过程分为两类:Sub过程和Function过程。7.4.1Sub过程
Sub过程是包含在Sub和EndSub语句之间的一组VBScript语句。使用Sub过程的方式,首先是用Sub…EndSub定义过程,然后用Call语句调用该过程。7.4过程1.定义Sub过程定义Sub过程的语句格式如下:
Sub过程名([参数表])过程体
EndSub
Sub过程可以带参数(也称形式参数或形参),参数的实际值(也称实际参数或实参)由调用程序在调用过程时赋给。通过参数,调用程序和被调用过程之间可以传递数据。如果Sub过程无任何参数,Sub语句也必须包含空括号()。为使程序结构清晰和便于调用,VBscript中通常把Sub过程安排在头部(HEAD)中。7.4过程
对于重复使用的程序段,为了避免程序代码的重复,可以把这一程序段独立出来,编成一个过程。当程序需要执行这个任务时,可使用调用语句(如Call)实行调用。子过程执行完后,会返回调用程序中的调用语句Call的后续语句继续执行。
过程调用示例
调用过程
……CallSubA……CallSubA……过程SubA使用过程……程序段程序段……相同处理的程序段可编成独立的过程(如SubA)2.调用Sub过程当程序中需要执行Sub过程时,可以使用Call语句实现调用。如果Sub过程有参数,必须输入过程名及所有参数值,参数值之间使用逗号分隔,所有参数包含在括号之中。其语句格式如下:Call过程名([实参表])例7-17使用Sub过程实例。程序代码如下:<HTML><HEAD><TITLE>例7-17</TITLE><SCRIPTtype=“text/VBScript”>
Subputname(name) '定义过程
Document.Write(name&“,”&“您好!<BR>”)
EndSub</SCRIPT></HEAD><BODY><SCRIPTtype=“text/VBScript”>Dimnn=InutBox(“请输入姓名:”)Callputname(n) '调用过程
Document.Write(“祝您身体健康!”)
</SCRIPT></BODY>
</HTML>7.4过程7.4.2Function过程
Function过程是包含在Function和EndFunction语句之间的一组VBScript语句。Function过程与Sub过程类似,但是Function过程可以返回值。即使Function过程无任何参数,Function语句也必须包含空括号()。Function过程通过函数名返回一个值,这个值是在过程的语句中赋给函数名的。
在下面的示例中,Celsius函数将华氏度换算为摄氏度。Sub过程ConvertTemp调用此函数时,包含参数值的变量被传递给函数。换算结果返回到调用过程并显示在消息框中。SubConvertTemp()temp=InputBox("请输入华氏温度。",1)
MsgBox"温度为"&Celsius(temp)&"摄氏度。"EndSubFunctionCelsius(fDegrees)Celsius=(fDegrees-32)*5/9EndFunction
调用Function过程时,函数名必须用在变量赋值语句的右端或表达式中。7.4过程VBScript程序设计概述7.1VBScript编程基础7.2程序流程控制7.3过程7.4提纲事件处理7.5程序调试7.67.5.1事件的概念
事件(Event)是指由系统事先设定的、能被对象识别和响应的动作。当对象发生了某个事件,就会执行与此对象的这个事件相应的代码,这段代码被称为“事件过程”。事件的发生多数与鼠标的使用有关,如单击(Click)、双击(DbClick)、移动到上面(MouseOver)、离开(MouseOut)等。每个对象都有自己所能识别的事件。7.5事件处理VBScript是采用事件驱动编程机制的语言。在事件驱动编程中,程序员只要编写响应用户动作的程序,如选择命令、移动鼠标等,而不必考虑按精确次序执行的每个步骤。在事件驱动的应用程序中,代码不是按照预定的路径执行,而是在响应不同的事件时执行不同的代码片段。事件可以由用户操作触发,也可以由来自操作系统或其它应用程序的消息触发,甚至由应用程序本身的消息触发。这些事件的顺序决定了代码执行的顺序,因此应用程序每次运行时所经过的代码的路径都是不同的。在这种机制下,不必编写一个大型程序,而是建立一个由若干个微小程序组成的应用程序,这些微小程序都可以由用户启动的事件来激发。利用VBScript,可以方便地编写此类应用程序。7.5事件处理7.5.2鼠标事件鼠标事件是VBScript编程中最常用到的事件,多数控件都支持鼠标操作,因此对鼠标事件进行编程是非常重要的。鼠标事件主要有以下几种:Click:单击事件,即单击鼠标时发生的事件。DblClick:双击事件,即双击鼠标时发生的事件。MouseDown:鼠标按下时发生的事件。MouseUp:鼠标抬起时发生的事件。MouseMove:鼠标移动时发生的事件,当鼠标移过此控件时就会触发此事件,执行其相应代码。鼠标事件的发生顺序是:(1)首先发生的是MouseMove事件,当鼠标移动时,将会连续触发MoouseMove事件。(2)当鼠标按下时发生MouseDown事件。(3)鼠标松开时发生MouseUp事件。(4)如果按住的是鼠标左键,则Click事件在MouseUp之后发生。在上面所列出的这些事件中,最常用到的是Click事件和DblClcik事件7.5事件处理7.5.3键盘事件键盘事件是在键盘的某个键按下去时触发。除了鼠标事件外,通常需要对键盘事件进行编程。键盘事件主要有以下几种:(1)KeyDown:当键盘上某键被按下去时发生。(2)KeyUp:键盘上的键抬起来时发生。(3)KeyPree:此事件发生在键盘被按下后和字符被显示出来之前发生。对于键盘事件,相对来说KeyDown事件和KeyUp事件使用比较少,通常情况下对KeyPress事件编程较多,因为此事件注重键盘被按下的是哪个键。KeyPress事件定义如下:PrivateSubTextl_KeyPress(KeyAsciiAsInteger)
语句块EndSub其中,参数KeyAscii被定义为整型变量,表示被按下去键的Ascii码,可以通过对变量KeyAscii值的判断来执行一些特殊操作。7.5事件处理7.5.4动态网页编程方法在VBScript中,通过调用事件过程可以实现网页的动态编程。调用事件过程的方法有多种,其中比较常用的一种,是通过过程名调用事件过程在Script标记内用Sub语句定义事件过程,并且要求过程名称必须由对象名称、下划线(_)以及事件名称组合而成。例7-18编写程序,在网页上设置2个命令按钮和一个文字块(即文字“VBScript程序设计”)。打开网页后,当单击“文字变大”命令按钮时,文字块的字体变大;单击“文字变小”命令按钮时,文字块的字体变小。7.5事件处理<html><head><title>例7-18</title><SCRIPTTYPE="text/VBScript">subbutt1_OnClick() '命令按钮butt1的单击事件处理过程
Ifmyfont.size<
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度实习生实习期间人身安全及保险责任协议
- 必考人力资源管理师试题及答案
- 2025年度煤炭产业政策支持合同担保书范本
- 2025年度电力工程设计与施工监理电力工程设计合同
- 2025年黄金饰品品牌授权与区域市场开发合同
- 2025年度自建房施工安全责任合同协议
- 二零二五年度汽车按揭贷款合同修改合同样本
- 2025年度矿山员工劳动合同与矿山救援队伍培训协议
- 二零二五年度智能设备销售总额提成管理服务合同
- 2025年茶艺师学习计划试题及答案
- 人教版新起点英语四年级下册Unit 2《Cities》单元教学目标
- 年产5000吨午餐肉罐头工厂设计-毕业论文
- GB/T 7777-2021容积式压缩机机械振动测量与评价
- 中国舞蹈家协会七级教材讲课教案
- GB/T 21224-2007评定绝缘材料水树枝化的试验方法
- GB 15322.2-2019可燃气体探测器第2部分:家用可燃气体探测器
- 饭店管理概论全套课件
- shiy实验:探究小车速度速度随时间变化的规律
- 钢筋加工棚搭设方案
- 六年级下册美术第10课头饰和帽子苏少版课件
- 来料检验标准书模板
评论
0/150
提交评论