1、12Visual Basic程序设计教程程序设计教程(2013年版)年版)牛又奇 孙建国 主编苏州大学出版社ISBN:定价:34元Visual Basic实验指导书实验指导书孙建国 主编苏州大学出版社ISBN:定价:13元3课程安排v1-12周周二晚上10-12节 B4308 v1-15周周四晚上10-12节,13-15周周二晚上10-12节 B6305机房4Visual Basic程序设计程序设计第一章 Visual Basic 导论第二章 程序设计与算法第三章 常用控件与界面设计第四章 数据、表达式与简单程序设计第五章 选择分支与循环第六章 数组第七章 过程第八章 文件第九章 程序调试第十
2、章 其他控件及其应用第十一章 图形处理与多媒体应用 第十二章 数据库操作与编程5第一章第一章 Visual Basic导论导论1.1 引例1.2 VB主要功能和特点1.3 VB集成开发环境1.4 程序设计方法的发展1.5 VB中的有关概念 1.6 建立简单的应用程序61.1 引例引例1.1 一行内容在窗体左、右移动; 移动两种方法:手动和自动,当自动时,文字闪烁显示; 当内容超出窗体,进行反弹。 71.1 引例引例 1.2 对输入的字符进行转换的程序。 转换规则: 大写字母转换成小写字母, 小写字母转换成大写字母 空格不转换 其余转换成“*”。要求:每输入一个字符,马上就进行判断和转换。通过上
3、述两例说明VB面向对象、可视化、事件驱动的特点。81.2 VB主要功能和主要功能和特点特点1. 具有面向对象的可视化设计工具;2. 事件驱动的编程机制;3. 提供了易学易用的应用程序集成开发环境;4. 结构化的程序设计语言;5. 支持多种数据库系统的访问;6. VB 6.0在开发环境上、网络功能等的增强;9标题栏菜单栏工具栏控件工具箱初始窗体工程资源管理器子窗口属性子窗口窗体布局子窗口1.3 VB集成开发环境集成开发环境10Visual basic 的开发环境的开发环境查看代码查看对象切换文件夹11Visual basic 的开发环境的开发环境对象框排序选项卡属性列表121. 1. 主窗口主窗
4、口 应用程序窗口,由标题栏、菜单栏和工具栏组成。2. 2. 窗体窗体(form)(form)窗口窗口 设计VB程序的界面。3. 3. 代码代码(code)(code)窗口窗口 编辑窗体、标准模块中的代码。4. 4. 属性属性(properties)(properties)窗口窗口 所有窗体或控件的属性设置。5. 5. 工程资源管理器工程资源管理器(project expror)(project expror)窗口窗口 保存一个应用程序所有的文件。6. 6. 工具箱工具箱(toolbox)(toolbox)窗口窗口 显示各种控件的制作工具,供用户在窗体上设计。131.4 1.4 程序设计方法的发
5、展程序设计方法的发展1. 1. 初期的程序设计初期的程序设计 高运行效率、少占用内存为目标。2. 2. 结构化程序设计结构化程序设计 程序的可读性、可维护性为目标。 程序= 算法+数据结构 的面向过程的程序设计。3. 3. 面向对象的程序设计面向对象的程序设计 降低程序的复杂性、提高软件的开法效率和改善工作界面为目标。 程序=对象+消息 的面向对象的程序设计。141.5 1.5 对象的有关概念对象的有关概念1. 1. 类类 类是创建对象实例的模板, 包含了创建对象的属性描述和行为特征的定义。2. 2. 对象对象 是类的一个实例,继承了类的属性、方法。 VB中常用的对象有:窗体、控件等。3. 3
6、. 对象的建立和命名对象的建立和命名4. 4. 对象的三要素对象的三要素 (1 1)属性)属性 对象的性质,即用来描述和反映对象特征的参数。 (2 2)方法)方法 对象的行为,即将一些通用的过程编写好并封装起来,作为方法供用户直接调用。 15(3 3)事件)事件 响应对象的动作称为事件,它发生在用户与应用程序交互时。如单击控件、鼠标移动、键盘按下等。v 事件过程 指附在该对象上的用户编写的程序代码,是事件的处理程序。v 事件驱动过程 是图形用户界面的本质,由用户控制而代码作出响应。5. VB5. VB程序的执行步骤如下:程序的执行步骤如下:(1)启动应用程序,装载和显示窗体;(2)窗体(或窗体
7、上的控件)等待事件的发生;(3)事件发生时,执行对应的事件过程;(4)重复执行步骤(2)和(3) ;(5) 直到遇到END结束语句结束程序的运行; 或按“结束”强行停止程序的运行。161.6 1.6 建立简单的应用程序建立简单的应用程序以课本P5 【例1-1】为例:1. 建立用户界面的对象;2. 对象属性的设置;3. 对象事件过程及编程;4. 程序运行和调试;5. 保存文件。171.7 工程的管理及环境的设置工程的管理及环境的设置一、工程的组成一、工程的组成 工程文件包含了一个应用程序的所有文件:v窗体文件(.frm):控件及属性、事件过程和自定义过程;v窗体的二进制数据文件(.frx),自动
8、产生同名.frx文件;v标准模块文件(.bas);v类模块的文件(.cls);v资源文件(.res);vActiveX控件的文件(.ocx).二、创建、打开和保存工程二、创建、打开和保存工程18三、添加、删除和保存文件三、添加、删除和保存文件1. 窗体名和窗体文件名概念 窗体名窗体名:窗体的Name属性,在代码中用来引用该窗体,同一工程不能有相同的窗体名; 窗体文件名窗体文件名:窗体存放在磁盘上的文件名,该文件包含了该窗体的所有控件属性和代码,同一文件夹不能有相同的文件名。2. 在工程中添加现存的窗体时,只是对该窗体文件的引用纳入工程。因此,如果更改窗体并保存它,会影响包含此窗体文件的任何工程
9、。3. 在工程中删除窗体时,仅将此窗体从工程里删除掉,但是窗体文件仍存在于磁盘上。但是,如果在VB之外删除一个窗体文件,VB不能更新此工程文件,当打开此工程时,将显示一个文件丢失的错误信息。4. 对窗体文件改名方法1) 打开工程 “另存为Form”实现文件的复制保存工程文件。 2) 利用编辑程序打开工程文件,修改FORM=XXX的文件名。窗体文件名窗体名191.8 生成可执行文件和制作安装盘生成可执行文件和制作安装盘 以工程文件例1-1为例。1. 1. 生成可执行文件生成可执行文件 文件/生成 例1-1.exe 文件,然后关闭Visual Basic6.0。2. 2. 制作安装盘制作安装盘v在
10、向导的指导下运行V B6.0中文版工具“Package & Deployment”;v“打包”:把工程中用到的各种类型的文件进行打包压缩后,存放到特定的目录下。v“展开”:再把这些打包的文件展开到用户可以携带的安装介质软盘、光盘等。3. 3. 检测安装程序检测安装程序 在没有VB 6.0系统的环境下,执行安装盘中的Setup.exe文件,将发行盘进行安装。20第二章第二章 程序设计与算法程序设计与算法2.1 2.1 算法概论算法概论2.2 2.2 基本算法结构图的设置基本算法结构图的设置21v程序设计的一般步骤分析:问题定义设计:计划解题选择与创建界面:选择和确定界面对象编码:用程序设计语言描
11、述算法测试与调试:查找并排除程序中的任何错误完成文档:整理和组织描述程序的所有资料2.1 算法概论 1/222v算法概念广义:算法就是解决某个问题或处理某个事件的方法和步骤狭义:算法是专指用计算机解决某一问题的方法和步骤。2.1 算法概论 1/2232.1 算法概论 1/2v1. 算法的种类一类是数值计算算法,如求解超越方程的根一类是非数值计算算法,如对非数值信息的排序、查找等。v2. 算法示例1、求两个自然数的最大公约数的算法(欧几里德算法)S1.输入两个自然数M、NS2. 求M除以N的余数RS3.使M=N,即用N代换MS4.使N=R,即用R代换NS5.若R0,则重复执行S2、S3、S4(循
12、环),否则转S6S6.输出M,M即为M和N的最大公约数2、在N个字符串数据集合中,查找有无特定的字符串存在S1. 输入字符串数据的个数N和要查找的字符串SS2. 使I=1,I用于计数S3.从字符串数据集合中读取一个字符串XS4.若X=S,输出“找到S”的信息,算法结束,否则转S5S5.使I=I+1,计数器计数S6.若IN,则重复执行S3、S4、S5(循环),否则转S7S7.输出“找不到S”信息,算法结束3. 算法的特征算法的特征(1) 确定性确定性 (2) 可行性可行性 (3) 有穷性有穷性 (4) 输入性输入性 (5) 输出性输出性4. 算法的描述算法的描述 见见p13 表、图表、图5. 基
13、本算法结构基本算法结构242.1 算法概论 2/2v5. 基本算法结构v顺序结构; 分支结构; 循环结构 循环结构可分为两类: 当型循环 直到型循环v共同特点是:(1) 只有单一的入口和单一的出口;(2) 结构中的每个部分都有执行到的可能;(3) 结构内不存在永不终止的死循环图252.2 基本算法结构图返回26第三章第三章 常用控件与界面设计常用控件与界面设计3.1 3.1 窗体及常用控件属性窗体及常用控件属性 3.2 3.2 常用方法常用方法 3.3 3.3 菜单设计菜单设计 3.4 3.4 多窗体程序设计多窗体程序设计273.1 3.1 窗体及常用控件窗体及常用控件 1. Name1. N
14、ame名称属性名称属性 创建的对象名称,有默认的名。在程序中,控件名是作为对象的标识而引用,不会显示在窗体上。 2. Caption2. Caption标题属性标题属性该属性决定了控件上显示的内容。 3. Height3. Height、widthwidth、toptop和和leftleft属性属性 L e ft T o p H e igW id th 284. Enabled4. Enabled属性属性 控件是否可操作。当设置为false时,呈暗淡色,禁止用户进行操作。5. Visible5. Visible属性属性 控件是否可见。当设置为false时,用户看不到,但控件本身存在。6. Fo
15、nt6. Font属性属性 Fontname:字体;Fontsize:字体大小;Fontbold:是否是粗体; Fontitalic:是否斜体;Fontstrikethru:是否加一删除线。 Fontunderline:是否带下划线。 例2.2 在窗体是建立两个命令按钮 Command1和Command2, Command2 的Font通过属性窗口设置, 其余属性 通过代码实现。297. Forecolor7. Forecolor前景颜色属性前景颜色属性 设置控件的前景颜色(即正文颜色).。其值是一个十六进制常数,用户可以在调色板中直接选择所需颜色。8. Backcolor8. Backcol
16、or背景颜色属性背景颜色属性9. BorderStyle9. BorderStyle边框风格属性边框风格属性 0-None:控件周围没有边框 。 1-Fixed Single:控件带有单边框。10. Alignment10. Alignment属性属性 控件上正文水平对齐方式 0:正文左对齐 ;1:右对齐;2:居中。11. AutoSize11. AutoSize属性属性 控件是否根据正文自动调整大小, False 3012.TabIndex12.TabIndex属性属性 决定了按Tab键时,焦点在各个控件移动的顺序。各个控件默认 TabIndex值就是以控件建立时 的顺序,第一个为0。13.
17、13.控件默认属性控件默认属性 注意:Command的默认属性为Default,当该属性为True,当按Enter键,该控件起作用。例3.3 控件设置 效果默认控件名Name 标题 Caption 有关属性设置 Form1 颜色、对齐、鼠标属性例 MousePointer=99,MouseIcon=Key04.ico Label1 左对齐 Alignment=0, BorderStyle =1 Label2 居中 Alignment=1,BorderStyle =1 Label3 自动 AutoSize=True, WordWarp=False, BorderStyle =1 Label4 背
18、景白 BackColor= &H00FFFFFF&, BorderStyle =0 Label5 前景红 ForeColor= &H000000FF&, BorderStyle =0 31标题图标控制菜单框最小化按钮最小化按钮边框样式2.2.窗体窗体1.1.属性属性 Caption标题 MaxButton、MinButton Icon、ControlBox Picture、BorderStyle (0 1 2 3 4 5 ) WindowsState (0-正常、1-最小化、2-最大化)2.2.事件事件 Click、DblClick和Load Load 当装入窗体时激发,通常用于对属性和变量初
19、始化3.3.方法方法 Print、Cls和Move等 例3.4 上述属性、Click、DblClick和Load 事件演示。323.3.标签标签 LabelLabel 用于显示文本(输出)信息,不能作为输入信息的界面。 例3.5 显示浮雕效果的文字,实现方法:字颜色、标签位置四、文本框四、文本框 TextBoxTextBox 是一个文本编辑区域,可在该区域输入,编辑和显示正文内容。 1.1.其他属性其他属性 Text:正文内容; Maxlength:设置正文的最多字符个数,0任意长度值; MultiLine:是否为多行,默认为一行,False; ScrollBars:MultiLine为Tru
20、e时,该属性才有效,表示滚动条的形式 0-None、1-Horizontal、2-Vertical、3-Both; Locked:是否可被编辑属性,False,表示为可编辑。 PassWordChar:口令字符; Text属性返回输入的数据,屏幕显示该字符; SelStart、SelLength、SelText:选中文本的起始、长度、内容。 例3.6 复制选中的文本332.2.常用事件常用事件 Change:当改变文本框的Text属性时会引发该事件。 KeyPress(KeyAscii As Integer):同上,并可返回一个KeyAscii参数 KeyAscii 为13,按回车键;为0 去
21、除刚输入的字符。 LostFocus:当控件失去焦点时发生。 GotFocus:当控件获得焦点时发生。3.3.常用方法常用方法 对象.SetFocus:是把光标移到指定的文本框对象中。4.4.文本框的应用文本框的应用 数据过滤数据过滤例例3.7 要求输入合法的数字数据。当输入结束时(按Tab键),对于输入正确的数据,显示正确信息;对输入的非数字数据,则显示错误信息、清除文本框中的内容,并使焦点重新回到文本框。LostFocus 当输入结束按Tab键时,该事件激发。 IsNumeric(X ):判断是否输入非数字数据。SetFocus:使焦点重新回到文本框。 343. 例例 3.8 建立一个允许
22、剪切、复制和粘贴的简单便笺板程序。 可增加内容:利用MouseMove事件决定命令按钮的有效性, 即当选中内容,“剪切”、“复制”按钮有效,否则无效。354 4、命令按钮、命令按钮CommandButtonCommandButton 接受用户输入的命令。输入命令可以有三种方式: 鼠标单击、Tab键焦点到该按钮、快捷键。 1. 1. 其他属性其他属性vCaption:命令按钮显示的内容,可设置快捷键,例 &Ok,显示 Ok。vValue: 检查该按钮是否按下。该属性在设计时无效。vPicture :按钮可显示图片文件(.bmp和.Ico),当Style为1时有效。vStyle:确定显示的形式,0
23、 只能显示文字,1 文字、图形均可 。vToolTipText :设置工具提示,和Picture结合使用。 2. 2. 事件事件 Click365.5.单选钮和复选框单选钮和复选框Caption属性:属性:文本标题。Alignment属性属性0:控件钮在左边,标题显示在右边。1:控件钮在右边,标题显示在左边。Value属性属性单选钮( (逻辑型逻辑型) ) 检查框(数值型)(数值型)True:选定 0-Unchecked:未被选定False:未选定 1-Checked:选定 2-Grayed:灰色,禁止选择Style属性属性0-Standard:标准方式1-Graphical:图形方式37事件
24、:事件:Click因为单击时自动改变状态,故不需要编写过程。例例3.9 3.9 用单选钮和检查框设置文本框的字体。386.6.框架框架(Frame)(Frame)框架内控件的创建方法:框架内控件的创建方法:方法1:单击工具箱上的工具,然后用出现的“+”指针,在框架 中适当位置拖拉出适当大小的控件。 不能使用双击工具箱上图标的自动方式。方法2:将控件“剪切”到剪贴板,然后粘贴(Ctrl+V)到框架。 框架设Caption为 字体39Caption属性属性:框架标题Enabled属性属性False:标题呈灰色,不允许对框架内的对象进行操作。Visible属性属性True:框架及其控件可见。Fals
25、e:框架及其控件被隐含起来。Click、DblClick事件:一般不需要编写框架的事件过程。例例3.103.10 框架用法示例。407. 7. 列表框和组合框列表框和组合框列表框各主要属性的值: List1.ListIndex = 3 (下标从0开始的) List1. ListCount = 5 List1. Selected(3) = True,其余为False。 List1. Sorted = False,没有排序。 List1. Text 为 “cox” , 与List1. List(List1. ListIndex)相等List1 下拉式组合框 简单组合框 下拉式列表框 组合框各主要属
26、性的值: Combo1.ListIndex = 0Combo1. ListCount = 8Combo1. Selected(0) = True其余为False。Combo1. Sorted = False Combo1. Text 为 “李宁”Combo1411. 共有的重要属性共有的重要属性(P:可在程序中设置或引用,D:可在设计状态设置。)List :PD 字符型数组,存放列表框的项目,下标是从0开始。ListIndex:P 选中的项目的序号,没有项目被选定时为-1ListCount:P 项目的数量,ListCount-1是最后一项的下标。Sorted:D True:按字母顺序排列。 F
27、alse:按加入先后顺序排列。Text:P 列表项中被选定的内容, List 1.List(List 1.ListIndex) = List1.Text。422. 列表框的特有属性列表框的特有属性Selected:P 逻辑数组。 Selected(i)的值为True表示第i+1项被选中。MultiSelect 0-None:禁止多项选择。 1-Simple:简单多项选择。 2-Extended:扩展多项选择。3. 组合框的特有属性组合框的特有属性Style类型类型Style输入输入下拉式组合框0能简单组合框1能下拉式列表框2不能434. 方法方法AddItem 对象.AddItem item
28、, indexRemoveItem 对象.RemoveItem indexClear 对象.Clear5. 事件事件列表框:Click、DblClick。组合框:Click,只有简单组合框才有DblClick事件。 一般不需要编写Click事件过程。通常在单击命令按钮或发生DblClick事件时才读取Text属性。 44例例3.11 对列表框进行项目添加、修改和删除操作。例例3.12 对列表框进行项目添加、修改和删除操作。 Check1Combo1Text1Check2Option1Option245时钟控件以Interval为时间间隔产生 Timer事件。属性属性 Interval属性 单位
29、:ms(0.001s),0.5秒是500。 Interval0:屏蔽计时器。Enabled属性 True:有效计时 False:停止时钟工作事件事件Timer例例3.13 3.13 定时的闹钟例例3.14 3.14 蝴蝶飞舞8. 8. 时钟时钟(Timer)(Timer)463.2 3.2 常用方法常用方法 方法是面向对象的,故使用的形式为: 对象.方法 1 1. .PrintPrint方法方法 形式: 对象.PrintSpc(n)|Tab(n)表达式列表;|, 作用:在对象上输出信息对象对象:窗体、图形框或打印机(Printer) ,省略对象在窗体上输出。Spc(n)函数:插入n个空格,允许
30、重复使用。Tab(n)函数:左端开始右移动n列,允许重复使用。;(分号):光标定位上一个显示的字符后。,(逗号):光标定位在下一个打印区的开始位置处。无 ;,时换行。 开始打印的位置是由对象的CurrentX和CurrentX属性决定, 缺省为打印对象的左上角0,0。47窗体的窗体的窗体的PrintPrintPrint方法(补充)方法(补充)方法(补充)例例1:a=100:b=200Print a + bPrintPrint “ABCDEFG”输出结果为:输出结果为:300ABCDEFG48窗体的窗体的窗体的窗体的窗体的窗体的PrintPrintPrint方法(补充)方法(补充)方法(补充)方
31、法(补充)方法(补充)方法(补充)例例2:x=5 : y=10 : z=15Print x,y,z,”ABCDEF”PrintPrint x,y,z; “ABCDEFG”;”HIJK”输出结果为:输出结果为:5 10 15 ABCDEF5 10 15 ABCDEFGHIJK49窗体的窗体的窗体的窗体的窗体的窗体的PrintPrintPrint方法(补充)方法(补充)方法(补充)方法(补充)方法(补充)方法(补充)例例3:Print “30+50=”,Print 30+50Print “100+50=”;Print 100+50输出结果为:输出结果为:30+50= 80100+50=15050例
32、例3.15 显示图形显示图形 Private Sub Form_Click() For i = 1 To 5 Print Tab(i); String(6 - I, ); Spc(6); String(I, ) Next i End Sub注意注意:String(number, character)返回指定长度重复字符的字符串。考虑:若把Spc(6)换成Tab(6),效果如何?512. Cls2. Cls方法方法 形式:对象.Cls 作用:清除运行时在窗体或图形框中显示的文本或图形。 注意:不清除在设计时的文本和图形。3. Move3. Move方法方法 形式:对象.Move 左边距离,上边距
33、离,宽度,高度 作用:移动窗体或控件,并可改变其大小。 对象:可以是窗体及除时钟、菜单外的所有控件 例例3.16 图形移到窗体的中心。 52应用举例应用举例 例3-17 编一计算月支付贷款的程序。现要求根据房产商提供的信息,买房者选择房型、面积、单价、按揭期等信息,计算每月支付代款的程序。窗体1:列表框选择数据、标签显示数据、文本框输入数据;窗体2:图形框显示房屋的平面图。Pmt函数计算月支付贷款。533.3 菜单的设计菜单的设计下拉式菜单系统的组成结构 : 主菜单名快捷键热键下级子菜单标记主菜单条分隔线菜单项子菜单名54一、菜单编辑器的使用一、菜单编辑器的使用 工具菜单编辑器(Ctrl+E)
34、;窗体上快显菜单菜单编辑器。常用属性:1. 标题(Caption) 热键 前面加&2. 名称(Name)文本框 分隔符也应有名称3. 快捷键(Shortcut) 菜单名没有快捷键4. 复选(Checked)检查框 TRUE 有5. 有效(Enabled)检查框6. 可见(Visible)检查框菜单列表框菜单项属性 操作按钮55二、二、 弹出菜单弹出菜单( (快捷菜单快捷菜单) ) 弹出菜单是独立于窗体菜单栏而显示在窗体内的浮动菜单。显示位置取决于单击鼠标键时指针的位置。设计与普通菜单相同(如果不希望菜单出现在窗口的顶部,该菜单名Visible属性设置为False )。菜单弹出的方法: 对象对象
35、.PopupMenu 菜单名菜单名, 标志标志, x, y 标志,表示弹出的位置和触发的键Sub Text1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) If Button = 2 Then PopupMenu EditMenu, vbPopupMenuCenterAlignEnd Sub563.4 多窗体程序设计多窗体程序设计一、多重窗体一、多重窗体1. 1. 添加窗体添加窗体 “工程|添加窗体”新建 现存 添加添加“现存现存”窗体时要注意:窗体时要注意: 防止多个窗体的Name相同而不能添
36、加; 添加的窗体实际是将其他工程中已有的窗体加入,多个工程共享窗体; 通过“另存为”命令以不同的窗体文件名保存,断开共享。 2. 2. 保存窗体保存窗体 一个工程中有多个窗体,应分别取不同文件名保存在磁盘上,VBP工程文件中记录了该工程的所有窗体文件名。 573. 3. 设置启动窗体设置启动窗体设置启动对象4. 4. 窗体语句窗体语句 (1)Load语句:装入窗体到内存但没有显示窗体 形式: Load 窗体名称(2)Unload语句:从内存删除窗体 形式: Unload 窗体名称“工程工程/属性属性” “启动对象启动对象”58 5. 5. 窗体方法窗体方法 (1)Show方法:显示一个窗体(当
37、窗体没有Load,自动Load) 窗体名称.Show 模式 0 Modal:关闭才能对其他窗体进行操作。1 Modeless,可以对其他窗体进行操作。 (2) Hide方法:隐藏窗体,没有Unload删除 窗体名称. Hide 6. 6. 不同窗体间数据的存取不同窗体间数据的存取 (1)存取控件的属性存取控件的属性 另一窗体名.控件名.属性 (2)存取变量的值存取变量的值 另一窗体名.全局变量名59例例3.21 3.21 输入和计算学习成绩。模块:模块:Public MATH As SinglePublic PHYSICS As SinglePublic CHEMISTRY As Single
38、Public CHINESE As SinglePublic ENGLISH As Single60第四章第四章 数据、表达式与简单程序设计数据、表达式与简单程序设计4.1 编码规则4.2 数据类型4.3 变量与常量4.4 运算符和表达式4.5 常用函数4.6 常见错误614.1 编编 码码 基基 础础1. VB代码不区分字母的大小写代码不区分字母的大小写 系统保留字自动转换每个单词的首字母大写; 用户自定义行以第一次为准。2. 语句书写自由语句书写自由 一行可书写几句语句,之间用冒号分隔; 一句语句可分若干行书写,用续行符 _连接一行=16 Byte数值型可达Double 型的范围; 字符型
39、可达变长字符串型的串长度63一、常量v1.数值常量 : 123 -135742 -9.654E-6 v2.字符常量 : Visual Basicv3.逻辑型常量 :True和Falsev4.日期常量: #10/30/1999#v5.符号常量 : Public|Private Const As type = v6. 系统提供的常量 系统定义常量位于对象库中,可通过“对象浏览器”查看。 例:vbNormal vbMinimized、vbCrLf等4.3 常量与变量常量与变量64二、变量 1/4v1.变量名及类型说明v2.变量作用域与变量说明语句(1) 变量作用域(2) 变量说明语句(3) Opti
40、on Explicit语句65二、变量 2/4v1.变量名及类型说明变量名的命名规则是:v首字符必须是字母;v长度不超过255个字符;v在作用域内必须唯一;v作为变量名的字符串内不得包括点号和用于类型说明的字符%、&、!、#、$。约定前缀:P46表4-266二、变量 3/4v2.变量作用域与变量说明语句(1)变量作用域VB有三个作用域等级:v局部 在过程中说明,仅在说明它的过程中有效v窗体/模块在窗体或模块中说明,在定义该变量的模块或窗体的所有过程内均有效v全局(公有) 在模块或窗体中说明,在工程内的所有过程中都有效67二、变量 4/4v2.变量作用域与变量说明语句(2)变量说明语句,可使用四
41、种说明语句说明变量的类型:v Dim As , As .v Public As , As .v Private As , As .v Static As , As .vPublic语句用于说明全局变量,Private语句用于说明窗体/模块级变量,Static用于说明静态变量,而Dim语句则可用于各种场合,是最常用的。v显式说明与隐式说明682.变量作用域与变量说明语句变量作用域与变量说明语句(3)Option Explicit 语句语句系统检查所有未经显式说明的变量,一旦发现有这样的变系统检查所有未经显式说明的变量,一旦发现有这样的变量存在,就会产生一个出错信息,提示使用者改正错误。量存在,就
42、会产生一个出错信息,提示使用者改正错误。二、变量694.4 运算符和表达式运算符和表达式一、运算符 1. 算术运算符算术运算符 例:例:5+10 mod 10 9 / 3 +2 2 结果:结果:10 702. 字符串运算符字符串运算符 、+ 字符串连接 123 + 456 结果 123456 123 & 456 结果 123456 区别:+ 两边必须是字符串,& 不一定 例如: abcdef & 12345 结果为 abcdef12345 abcdef + 12345 出错 123 & 456 结果为 123456 “123” + 456 结果为 579注意: 123 + True 结果为 1
43、22 True转换为数值-1,False转换为数值0 713关系运算符关系运算符 将两个操作数进行大小比较,结果为逻辑量。 字符串比较,则按字符的ASCII码值从左到右一一比较,直到出现不同的字符为止.。 例: ABCDE ABRA 结果为 False 男字男字 女字女字 按汉字的拼音字母比较按汉字的拼音字母比较 724. 逻辑运算符逻辑运算符 将操作数进行逻辑运算,结果是逻辑值: 条件表达式1 And 条件表达式2 条件表达式均为T, 结果为T; 条件表达式1 Or 条件表达式2 条件表达式有一个为T 结果为T。73二、表达式二、表达式 1. 组成组成 变量、常量、函数、运算符和圆括号。 2
44、.书写规则书写规则 (1) 运算符不能相邻。例a+ -b是错误的。 (2) 乘号不能省略。例x 乘以y 应写成:x*y。 (3) 括号必须成对出现,均使用圆括号。 (4) 表达式从左到右在同一基准上书写,无高低、大小。 3. 不同数据类型的转换不同数据类型的转换 运算结果的数据类型向精度高的数据类型靠。 IntegerLongSingleDouble=字符运算符关系运算符逻辑运算74表达式书写举例 sin(45*3.14/180)+(exp(10)+log(10)/sqr(x+y+1)110e4510yxlnsinefgabcda*b*c*d/e/f/g 或 a*b *c*d/(e*f*g)
45、75例:用人单位招聘秘书:年龄小于40岁的女性,学历专科或本科, 年龄40,性别=“女”,(学历=“专科”,学历=“本科”) And And Or73 x比a小,比b大 用 Ora小数b大数a小数b大数比a大,比b小 用 And例:表示算术表达式: 正确的VB表达式: 3=x And x =7 错误的VB表达式: 3=x=7 或 3=x Or x=7 考虑:若分别写成: 年龄40 And 性别= 女 And (学历= 专科 And 学历= 本科) 年龄40 Or 性别= 女 Or (学历= 专科 Or 学历= 本科)764.5 4.5 常用内部函数常用内部函数1. 数学函数数学函数 Rnd函数
46、返回0和1(包括0但不包括1)之间的双精度随机数。 每次运行时,要产生不同序列的随机数,执行Randomize 语句。 例产生1100的随机数: Int(Rnd *100)+12. 转换函数转换函数 Chr(66) B Asc (B) 66 Asc(Chr(99) 99 Chr(Asc(K) K Ucase (abcdefg) ABCDEFG3.日期函数日期函数Time返回系统时间、Date返回系统日期、Now返回系统日期和时间 774. 字符串函数字符串函数 Mid (ABCDEFG,2,3) BCD InStr(2, ABCDEFG, EF) 5 Replace(ABCDABCD,CD,1
47、23) “AB123AB123”785. 格式输出函数格式输出函数例4.1 利用Format函数显示有关的日期和时间。Private Sub Form_Click( ) FontSize = 12 MyTime = #9:21:30 PM# MyDate = #7/21/1997# Print Tab(2); Format(MyDate, m/d/yy) Print Tab(2); Format(MyDate, mmmm-yy) Print Tab(2); Format(MyTime, h-m-s AM/PM) Print Tab(2); Format(MyTime, hh:mm:ss A/P
48、) Print Tab(2); Format(Date, dddd,mmmm,dd,yyyy) Print Tab(2); Format(Now, yyyy年年m月月dd日日 hh:mm) Print FormatDateTime(Now) VB6.0新提供的函数新提供的函数End Sub79可以使数值、日期或字符型数据按指定格式输出。可以使数值、日期或字符型数据按指定格式输出。语法格式:语法格式:Format(表达式表达式,格式字符串格式字符串)说明:说明:(1) 表达式表达式可以是数值型、日期型或字符型的表达式。可以是数值型、日期型或字符型的表达式。(2) 格式字符串格式字符串是一个字符串
49、常量或变量,由专门的是一个字符串常量或变量,由专门的格式说明字符组成。这些说明字符决定了数据项格式说明字符组成。这些说明字符决定了数据项表表达式达式的显示格式和长度。的显示格式和长度。(3) 当当格式字符串格式字符串是是 字符串常量的时候,必须放在双字符串常量的时候,必须放在双引号中。引号中。(4) 格式输出函数格式输出函数Format()返回一个返回一个Variant类型的函数。类型的函数。80常用的数值型格式说明字符常用的数值型格式说明字符字符字符说明说明例子例子#数字占位符,显示一位数字或什么都不显示,如果表达式数字占位符,显示一位数字或什么都不显示,如果表达式在格式字符串中在格式字符串
50、中#的位置上有数字存在,那么就显示出来;的位置上有数字存在,那么就显示出来;否则,该位置就什么都不显示。否则,该位置就什么都不显示。Format(123.45,”#.#”)返回:返回:123.450.,%数字占位符,显示一位数字或是零,如果表达式在格式数字占位符,显示一位数字或是零,如果表达式在格式字符串中字符串中0的位置上有一位数字存在,那么就显示出来;的位置上有一位数字存在,那么就显示出来;否则,就以零显示。否则,就以零显示。Format(123.45,”0000.000”)返回:返回:0123.450小数点占位符。小数点占位符。千位符号占位符。千位符号占位符。Format(1234.5,