资源描述
第一讲:Visual Basic概述重点:1、掌握面向对象的程序设计的概念:对象、方法、属性与事件2、事件驱动过程的程序设计原理3、介绍VB集成开发环境4、VB开发环境的基本操作1.1 Visual Basic简介具有面向对象的可视化设计工具事件驱动的编程机制提供了易学易用的应用程序集成开发环境结构化的程序设计语言支持多种数据库的访问支持DDE、DLL、OLE技术完备的Help联机帮助功能1.1.2面向对象的程序设计方法基础2. 对象及对象类:动作体的逻辑模型,称为“对象”3. 属性: 属性是用来描述对象的特性。4. 方法: 方法指对象可以进行的动作或行为。VB 对象具有属性、方法和事件。属性是描述对象的数据;方法告诉对象应做的事情;事件是对象所产生的事情,事件发生时可以编写代码进行处理。VB 的窗体和控件是具有自己的属性、方法和事件的对象。可以把属性看作一个对象的性质,把方法看作对象的动作,把事件看作对象的响应。日常生活中的对象,如小孩玩的气球同样具有属性、方法和事件。气球的属性包括可以看到的一些性质,如它的直径和颜色。其它一些属性描述气球的状态(充气的或未充气的)或不可见的性质,如它的寿命。通过定义,所有气球都具有这些属性;这些属性也会因气球的不同而不同。气球还具有本身所固有的方法和动作。如:充气方法(用氦气充满气球的动作),放气方法(排出气球中的气体)和上升方法(放手让气球飞走)。所有的气球都具备这些能力。1. 3基于Windows环境下的应用程序的工作方式事件驱动在传统的或“过程化”的应用程序中,应用程序自身控制了执行哪一部分代码和按何种顺序执行代码。从第一行代码执行程序并按应用程序中预定的路径执行,必要时调用过程。在事件驱动的应用程序中,代码不是按照预定的路径执行,而是在响应不同的事件时执行不同的代码片段。事件可以由用户操作触发、也可以由来自操作系统或其它应用程序的消息触发、甚至由应用程序本身的消息触发。这些事件的顺序决定了代码执行的顺序,因此应用程序每次运行时所经过的代码的路径都是不同的。因为事件的顺序是无法预测的,所以在代码中必须对执行时的“各种状态”作一定的假设。当作出某些假设时(例如,假设在运行来处理某一输入字段的过程之前,该输入字段必须包含确定的值),应该组织好应用程序的结构,以确保该假设始终有效(例如,在输入字段中有值之前禁止使用启动该处理过程的命令按钮)。在执行中代码也可以触发事件。例如,在程序中改变文本框中的文本将引发文本框的 Change 事件。如果 Change 事件中包含有代码,则将导致该代码的执行。如果原来假设该事件仅能由用户的交互操作所触发,则可能会产生意料之外的结果。正因为这一原因,所以在设计应用程序时理解事件驱动模型并牢记在心是非常重要的。在VB中事件的调用形式是:Private Sub对象名_事件名(事件内容)End Sub1.4 Visual Basic 的集成开发环境VB 集成开发环境 (IDEIntegrated Developing Environment ) 由以下元素组成:1 标题栏用于显示正在开发或调试的工程名和系统的工作状态(设计态、运行态、中止态)。2 菜单栏 用于显示所使用的 Visual Basic 命令。VB6.0标准菜单包括:3 工具栏 在编程环境下用于快速访问常用命令。缺省情况下,启动 VB后显示“标准”工具栏,附加的编辑、窗体设计和调试的工具 栏可以从“视图”菜单上的“工具栏”命令中移进或移出。4 窗体设计器 用来设计应用程序的界面。启动VB后,窗体设计器中自动出现一个名为Form1的空白窗体,可以在该窗体中添加控件、图形和图片等来创建所希望的外观,窗体的外观设计好后,从菜单中选择“文件”“保存窗体”在保存对话框中给出合适的文件名(注意扩展名),并选择所需的保存位置确定。需要再设计另一个窗体时,单击工具栏上的“添加窗体”按钮即可。5 控件(工具)箱由一组控件按钮组成,用于设计时在窗体中放置控件。除了缺省的工具箱布局之外,还可以通过从上下文菜单中选定“添加选项卡”并在结果选项卡中添加控件来创建自定义布局。6 弹出式(上下文)菜单 在要使用的对象上单击鼠标右键即可打开快捷菜单,其上会出现与当前对象相关的经常执行的操作,以加快操作速度。7 工程管理器窗口 用于浏览工程中所包含的窗体和模块,还可以从中查看代码、查看对象。8 属性窗口是VB中一个比较复杂的窗口,其中列出了对选定窗体和控件的属性设置值。VB中正是通过改变属性来改变对象的特征,如大小、标题或颜色。9 对象浏览器 列出工程中有效的对象,并提供在编码中漫游的快速方法。可以使用“对象浏览器”浏览在 VB中的对象和其它应用程序,查看对那些对象有效的方法和属性,并将代码过程粘贴进自己的应用程序。 对象浏览器 右击窗体中的对象、从工程管理器中点“查看代码”按钮。11窗体布局窗口 Form Layout window允许使用表示屏幕的小图象来布置应用程序中各窗体的位置。12 立即、本地和监视窗口这些附加窗口是为调试应用程序提供的,它们只在 IDE 之中运行应用程序时才有效。1.5 创建VB应用程序的一般步骤一个VB程序也称为一个工程,由窗体、标准模块、自定义控件及应用所需的环境设置组成。开发步骤一般如下:1 创建程序的用户界面2 设置界面上各个对象的属性3 编写对象响应事件的程序代码4 保存工程5 测试应用程序,排除错误6 创建可执行程序硬件环境:486以上处理器、16MB以上内存、50MB以上的硬盘空间、CD-ROM驱动器、鼠标等软件环境:Windows95或 indowsNT3.51以上版本初次安装:1)启动Windows952)插入具有VB6.0系统的光盘3)运行VB6.0安装程序Setup.exe4)选择“典型安装”或“自定义安装”或“最小安装”添加或删除VB6.0部件:1)插入具有VB6.0系统的光盘2)运行“开始/设置/控制面板”3)双击控制面板中的“添加/删除程序”图标4)选择其中的“Visual Basic 6.0”选项启动1.桌面:开始/程序/Visual Basic 6.02.建立快捷方式,双击图标退出1.选择文件菜单下的退出命令2.单击窗口关闭按钮举例:1 启动VB,开始新工程2创建程序的用户截面3加入程序代码4 保存工程文件5 运行和调试应用程序,检查并排除程序中的错误6 生成可执行程序7 打印窗体和代码第二讲 常用控件与界面设计重点:1、掌握窗体常用的属性、方法与事件,重点掌握窗体的Print方法的使用2、掌握标签、文本框、命令按钮等控件的常用属性、方法、事件21 创建窗体补充内容:调整窗体布局 生成可执行文件22 VB的常用控件(P19)概述:控体是用来进行用户界面设计的可视化部件。常用的VB6 控件一览表 P20常用控件:P21(1) 文本框(TextBox):用于接收用户在框内输入 的信息或显示由程序提供的信息。 文本框在工具箱中的图标P25;在窗体中的形式 属性:名称:文本框名称。命名规则同窗体名。(通常以“Txt”作为前缀。)Text :文本属性。该属性的值为用户从文本框中输入的内容。PasswordChar:口令属性。设置是否可以看到用户从文本框中输入的文本内容。取值:空字符串:(默认值):可以看到输入的字符。 某一字符:用户每输入一个字符,文本框内就出现一个该字符。MaxLength :最大长度属性。设置文本框的Text 属性中所能放入的字符总个数。取值:(默认值)。32 KB。MultiLine :多行属性。设置用户是否可在文本框内输入多行文本。取值: True:可多行输入。 False:(默认值)只能单行输入。Alignment:对齐属性。设置文本框内的文本内容的对齐方式。取值:0:(默认值)靠左对齐。 1:靠右对齐。 2:居中对齐。说明:本属性只在MultiLine 为 True 时有效。TabStop:Tab键属性。设置是否可用Tab键来移动焦点到另一个对象上。取值:True:(默认值)可以。 False:不可以。其它属性类似窗体。方法:Refresh :刷新。SetFocus :设置焦点。通过本方法,可以使光标指向指定的文本框。事件:Change :当文本框的内容发生变化时,就引发本事件。LostFocus:当光标离开文本框时,引发本事件。 Keypress:当用户按下或松开键盘上某个按键时,发生本事件。(2)标签:(Label) 主要用于在窗体上增加文字说明。标签在工具箱中的图标P25;在窗体中的形式属性:名称:标签名称。(通常以“Lbl”作为前缀。)Caption :标题属性。本属性的值为显示在标签上的内容。AutoSize :大小自适应属性。即标签的大小是否随着标题内容的多少而自动变化。取值:True :是。 False :(默认值)否。 FontName :字体名称。设置在标签内显示的文本的字体名称。方法:Refresh :刷新。Move :移动。事件:Click :单击事件。DblClick:双击事件。(3) 命令按钮:(commandbutton):用户用鼠标单击命令按钮,表示要执行某项功能。属性:名称:(通常以“Cmd”作为前缀。)Caption : 标题 。其值就是在命令按钮上显示的文本。Default :设定此命令按钮是否为窗体的默认按钮。 取值 true :在窗体启动(Active)后,按 Enter 键马上就会执行的命令按钮。(同一窗体中只能有一个命令按钮的此项属性值为 true )False :否。Enabled :设定命令按钮是否可用。 取值 true :(默认值):可用。 false :不可用。(命令按钮呈灰色)事件:click : 单击事件方法: SetFocus : 命令按钮经过 SetFocus 方法后,将取得焦点。(用户此时按回车键将会执行此命令按钮。)(4)复选框:(checkbox):用来设定程序的执行状态。属性:名称:(通常以“Chk”作为前缀。)caption: 标题,显示在复选框的右方,指明此复选框所代表的功能。 Value :表示复选框在执行时的三种状态。取值:0: 不复选,执行时无勾。1: 复选,执行时有勾。2: 灰色,表示用户不能修改这个设定值,只能看到它目前状态。事件:click :单击事件。方法:Move :Refresh :(5)选项按钮:(optionbutton)用来设定程序的执行状态。属性:名称:(通常以“Opt”作为前缀。)caption:标题alignment : 设置标题文本的对齐方式。取值:0:(默认值)靠左对齐 1:靠右对齐2:靠中对齐value : 其值决定该选项按钮是否被选中。取值:true : 表示此选项按钮被选中。False : 表示此选项按钮没选中。说明:一个窗体或一个框架内的选项按钮只能有一个被选中,(不同框架内的选项按钮互不干扰)若用户不设定哪一个选项按钮的值为 true ,则系统指定第一个选项按钮的 value 值为 true 。事件:click :单击。方法:Move:Refresh(6) 框架 :(frame)可以用框架控件将其它各自独立的控件(一般指复选框、选项按钮等)组合在一组中。如实验指导书P13、P16。属性:名称 captiontopleftwidthheightfontforecolor 等等事件:clickdblclick等等说明:1、在使用框架控件将其它控件分组时必须先绘制框架控件,后绘制其中的控件。 2、在一个框架内的控件可以进行整体的激活、屏蔽、移动等等。 3、在同一个窗体中的多个选项按钮,只有一个可以被选中,但在窗体中可以用框架将选项按钮分类,在同一框架内的多个选项按钮中只有一个可以被选取。不同框架内的选项按钮彼此互不干扰。 4、要将控件画在框架之中,不能双击控件,因为那样将使控件重叠在框架的上面,必须单击工具图标,然后在框架内拖动后释放,这样的所画的控件在框架之中。第三讲 常用控件与界面设计重点:1、掌握列表框、组合框、选项按钮、复选按钮、滚动条等控件的常用的属性、方法、事件2、掌握菜单的设计(7)列表框 ( ListBox):用于列出可供用户选择的项目列表。用户可以从中选择一个或多个项目。属性: 名称:(通常以“List”作为前缀。) List:列表属性。用于保存列表的内容。 List实际上是一个一维数组,数组中元素的值,就是在执行时看到的列表项(item)一维数组:List 中有5个元素,List(0),List(1) List(2) ,List(3) ,List(4)列表项文本 List (0)=68 List (1)=78 List (2)=88 List (3)=80 List (4)=76数组名:List 列表项序号: 0,1,2,3,4,(从0开始)列表项文本(数组元素值)分别为:68 78888076 Listcount:列表框内所有选项的总数,也就是List()数组元素的总个数。 ListIndex:用户最后单击的列表项在List() 数组中的编号顺序。(无选中时其值为-1) Text: 列表项的正文。其值为最后选中的列表项的文本。请记住如下关系:对象名称List(ListIndex)=TextColumns:列表框显示形式。设定Listbox的列表项若超过显示范围时,其卷动方式使用垂直滚动条或是水平滚动条。取值:(默认值)使用垂直滚动条。逐行显示列表项,可能有垂直滚动条。1n :使用水平滚动条。此时列表框内一次可显示的列数(Column)即为 n 值。MultiSelect:设定是否允许用户多重选取对象的列表项取值: :不能多重选取。(默认值) :简易多重选取。(用鼠标或空格键来选取,一次一个) :高级多重选取。可用shift 或 ctrl 来选取。(类似文件选取)Selected:设定列表项是否被选取的状态。它是一个与List大小相同的数组。其中各元素的取值: rue :被选取。 alse:不被选取。(默认值)Sorted:排序属性。设定列表项是否要照ASCII代码排序。(字母顺序)取值: True :是(不区分大小写) False:否。(默认值)方法:(28)AddItem:添加列表项。格式:对象名称AddItem ,插入位置序号说明:、若不指定位置,则插入到列表项末尾。 、新列表项插入后,原来位置及其后的列表项顺序下移。Clear:删除列表所有项目。RemoveItem:删除列表项。格式: 对象名称RemoveItem 删除项序号事件:Click :单击事件。Dblick:双击事件(使用较少)应掌握:如何添加或删除列表框中的列表项?方法一:在设计态:定制 List 属性。(向列表中添加列表时,按ctrl+Enter换行。)方法二:在程序代码中:用AddItem,RemoveItem 等方法进行。如何知道目前用户所选取的列表项和目前列表框中的列表项数目?用户目前所选的列表项:Text 的值。目前列表框中的列表项数目:ListCount 的值。(8)组合框(comboBox):将文本框和列表框结合在一起,在列表框中所选项目的文本会自动填入文本框。(与列表框相比,组合框一次只能选取一个列表项) 工具箱中的图标P25;在窗体中的形式属性:同Listbox 有:List, ListCount,ListIndex,Text,Sorted 等等。 Style :外观属性。设置组合框的类型和功能。取值:(实验指导书P40)0:(默认值)系统将创建一个带有下拉式列表框的组合框。 称为组合下拉式的组合框。它的下拉式窗体不是一直显示的。(如word 中字体大小选择框),此状态下用户可将所内容直接输入到文本框中。 1:系统创建一个由文本框和列表框直接结合在一起的简单组合框。 称为组合式的组合框。它的下拉式窗体是一直显示的。如:word 中字体菜单对话框中的字体、字号对话内容。 :系统创建一个没有文本框的下拉式列表框。单击列表框右侧的按钮,文本框才会显示出来。称为单纯下拉式的组合框。此状态下用户不可在文本框中输入,只能在列表中选择。且下拉式窗体也不是一直显示的。Text:文本属性。其取值为用户从列表框中选定的文本内容或直接输入文本框中的内容。事件:对不同类型的组合框,响应的事件是不相同的。对于,类型的组合框:单击事件。对于 类型的组合框:双击事件。带有文本框的,组合框:在编辑文本时可引发Change 事件。说明:、用户若只需要使用单选的列表框,则可用组合框来代替。 、如何添加或删除组合框中的列表项?(方法:同列表框) 、如何知道用户目前所选取或输入的列表项是什么?由于组合框不允许多重选取,所以,ext 属性值为内容;Listindex 属性值为序号。方法: 同列表框。图像:(image): 主要用于图像的显示、放大、缩小等静态显示图像场合。图像框中不能容纳其他控件、也不能绘制图形和显示文本。而图片控件框中可以。 图像在工具箱中的图标P25;在窗体中的形式属性:名称:visible :设置此对象在执行时是否看得见。取值:True :(默认值)看得见。 False :隐藏。enabled :可用否。picture : 设定图像框中代表的图片名称。 其值在设定时的格式为: 盘符 路径图片文件名(.ico 图标文件 .bmp位图文件)stretch : 用来决定图像控件的大小是否要随着所载入图片的大小而变化。取值: true : 随图片的大小而变化。 False :(默认值) 不随图片的大小而变化。事件:类似窗体。方法:MoveRefresh(10)图片:(picturebox): 不仅可以装入图像,还可以在它上面绘制各种图形和显示正文、放置控件(类似框架控件)。 图片在工具箱中的图标P25;在窗体中的形式水平滚动条(horizontal scroll bar)、垂直滚动条(vertical scroll bar):滚动条:用来附加在那些不能自动支持滚动的应用程序或控件中水平滚动或垂直滚动查阅大量信息。一般出现在文本框 、列表框右边;用来调整数据或选择输入。( 如word 中字体、段落对话框中)滚动条在工具箱中的图标P25;在窗体中的形式 属性:(实验指导书 P18)名称:(通常以“Hsb”、“Vsb”作为前缀。)Max / Min : 定义了 Value 属性值所能出现的最大值和最小值。说明:1、一开始使用滚动条时,Max 为32768,Min 为 0 。 2、水平滚动条位于最左边时、垂直滚动条位于最上边时为 Min;水平滚动条位于最右边时、垂直滚动条位于最下边时为 Max 。Value : 滚动条目前所在位置所对应的数值。(也可在代码中设定。)LargeChange : 当用户在滚动块的上方、下方(左方、右方)单击时Value所增加的值。默认值为1。SmallChang : 当用户在滚动条两端的箭头按钮上单击时Value所增加的值。默认值为1。事件:Change : 在滚动块移动后(即Value值改变时)发生。 例如,可用一个滚动条的 Change 事件过程更新一个 TextBox 控件中滚动条的 Value 属性的设置。或者可以利用 Change 事件过程在一个工作区里显示数据和公式,在另一个区域里显示结果。Scroll : 在拖动滚动块时发生。单击滚动箭头或滚动条时不发生。方法:Move : 用以移动滚动条。Refresh : 强制全部重绘一个滚动条。SetFocus : 设置焦点。将焦点移至指定的滚动条上。时间:(timer) (计时器):用来实现与时间有关的功能。时间控件在工具箱中的图标P25;在窗体中的形式属性:名称:enabledinterval 用来设定引发timer 事件过程的间隔时间,单位为1/1000秒。事件: (时间控件只有一个事件)timer : 它会按照 interval 所设定的时间定时引发。说明:时间控件的使用方法:1在 form 上放置一个时间对象。2在属性窗口中设定其 interval 属性。3填写timer 事件的程序内容,4当程序开始执行后,将不会看到它的图标,每隔 interval 定义的时间内,程序会触发一次timer 事件。时间控控件应用举例:windows 中计时器,word 中的定时保存文件,定时更新屏幕画面(屏幕保护程序)等等。第四讲 数据表达式与简单程序设计本讲内容及要求:1 熟悉VB程序中代码和语句书写规则;2 掌握VB的数据类型;3 掌握VB的 运算符和表达式的使用;4 掌握常用内部函数的使用;本章重点: 变量和常量的定义及使用、运算符和表达式的使用及常用内部函数的使用。本章难点: 数据类型、内部函数。4.1 程序代码的组织方式一个VB程序由窗体界面和程序代码两部组成,通过程序代码把窗口界面的各个对象以及应用中的其它元素联系在一起。程序代码部分则由若干被称为“过程”的代码行及向系统提供某些信息的说明组成。过程及说明又被组织在“模块”之中。将设计的过程代码及相关说明合理地组织到不同的模块之中,也就是设计代码的结构,在创建VB应用程序时是最为重要的一个步骤。一 过程所谓“过程”,就是具有特定书写格式、包含若干可被作为一个整体执行的代码的组合。根据执行方式,可把“过程”分为“事件过程”和“通用过程”两类。二 模块模块是VB用于将不同类型过程代码组织到一起而提供的一种结构。在VB中具有三种类型的模块: 窗体模块 标准模块 类模块。 4.2. VB代码书写规则(1) 程序中不区分字母的大小写,Ab 与AB等效;(2) 系统对用户程序代码进行自动转换:1) 对于VB中的关键字,首字母被转换成大写,其余转换成小写 2) 若关键字由多个英文单词组成,则将每个单词的首字母转换成大写 3) 对于用户定义的变量、过程名,以第一次定义的为准,以后输入的自动转换成首次定义的形式(1)在同一行上可以书写多行语句,语句间用冒号(:)分隔(2)单行语句可以分多行书写,在本行后加续行符:空格和下划线 _(3) 一行允许多达255个字符4.3 VB的数据类型4.3.1.数据类型1 VB的标准数据类型数据类型关键字类型符前缀存储空间范围数值数据类型字节型Byte Byt1 个字节0 到 255 整型Integer %Int2 个字节-32,768 到 32,767 长整型 Long&Lng4 个字节-2,147,483,648 到 2,147,483,647 单精度型Single!Sng4 个字节负数:-3.402823E38 到 -1.401298E-45;正数:1.401298E-45 到 3.402823E38 双精度型 Double#Dbl8 个字节负数: -1.79769313486232E308 - 4.94065645841247E-324;正数:4.94065645841247E-324 1.79769313486232E308货币型CurrencyCur8 个字节从 -922,337,203,685,477.5808 到 922,337,203,685,477.5807 逻辑型Boolean Bln2 个字节True 或 False 日期型Date Dtm8 个字节100 年1月 1日 到 9999 年 12 月 31 日 对象型Object Obj4 个字节任何 Object 引用 变长字符型 String$Str10 字节加字符串长度0 到大约 20 亿 定长字符型String$Str字符串长度1 到大约 65,400 变体数字型 Variant Vnt16 个字节任何数字值,最大可达 Double 的范围 变体字符型Variant Vnt22 个字节加字符串长度与变长 String 有相同的范围 注意:1)VB中对没有声明的变量其缺省的数据类型是变体型,可以用来存储各种数据,但所占用的内存比其它类型都多。为提高运行效率(整型效率较高),或达到一定的运算精确度(浮点型精度较高,但运行较慢),应合理的定义数据类型。2) 逻辑型数据只有True 和False两个值,转换成整型时,True=-1 ,False=0,将其它类型转换成逻辑型时,非0数转换为True ,0转换为False。3) 字符型可以包括所有的西文字符和汉字,字符必须用双引号括 起来, 如:abc1234)日期型数据按8字节的浮点数来存储,日期型数表示方式有两种:可以用号码符#括起来,也可以用数字序列表示(小数点左边的数字代表日期,右边代表时间,0为午夜,0。5为中午12点,负数表示是1899年12月31日前的日期和时间)。如:#3/22/2002# #2002-3-22 14:30:20# Dim T As Date T=-2.5 Print T 打印出来的结果是1899-12-28 12:00:00)任何数据类型的数组都需要 20 个字节的内存空间,加上每一数组维数占 4 个字节,再加上数据本身所占用的空间。数据所占用的内存空间可以用数据元数目乘上每个元素的大小加以计算。例如,以 4 个 2 字节之 Integer 数据元所组成的一维数组中的数据,占 8 个字节。这 8 个字节加上额外的 24 个字节,使得这个数组所需总内存空间为 32 个字节。2. 变量与常量(1)变量或常量的命名规则1) 必须以字母或汉字开头,由字母、汉字、数字或下划线组成,长度255个字符;2) 不能使用VB中的关键字,并尽量不与VB中标准函数名同名;如:Dim 、Sin 3)VB中不区分变量的大小写,一般变量首字母用大写,其余用小写;常量全部用大写字母表示4)为了增加程序的可读性,可在变量名前加一个缩写的前缀来表明该变量的数据类型。(2)变量声明1)用Dim语句进行显式声明 语句形式: Dim 变量名 As 类型 如: Dim intX As integer说明:如果没有As 类型,则默认为变体类型。可在变量名后加类型符来代替As 类型 如: Dim intX% 一条语句可以同时定义多个变量,但每个变量必须有自己的类型声明,类型声明不能共用;字符串变量根据其存放的长度是否固定,定义方法不同: 定长字符串: Dim strA As String*10 表示最多存放10个字符,如果赋值不足10个,则右补空;若多于10个,则多余部分截去。 不定长字符串:Dim strA As String 最多可存放2MB个字符2) 隐式声明VB中允许变量不经过声明就直接使用,这种称为隐式声明,所有隐式声明的变量都是变体型的。隐式声明容易造成错误,为了调试程序方便,一般对使用的变量都进行声明,可以在通用声明段使用Option Explicit 语句来强制显式声明所有变量。(3)常量1)直接常量指在程序中直接给出值的数据,如:123、123&、123.45、1.234E2 、123D3分别表示整型、长整型、单精度浮点型(小数形式)、单精度浮点型(指数形式)、双精度浮点型。八进制常数: 在数值前加&O ,如 &O123十六进制常数:在数值前加&H ,如&H1232)用户声明的符号常量 用Const来声明: Const 符号常量名 As 类型 = 表达式 如:Const PI=3.14159 声明了常量PI,代表3.14159,单精度型Const MAX As Integer=&O144 声明了常量MAX,代表八进制数144,整型Const COUNT#=45.67 声明了常量COUNT,代表45.67,双精度型3)系统提供的常量系统定义的常量位于对象库中,在对象浏览器中的Visual Basic(VB)和Visual Basic for Aplication(VBA)等对象库中列出了VB的常量。这些常量可以与应用程序的对象、方法、属性一起使用。如:Form1.WindowsState=vbMaximized 表示将窗口极大化。3. 变量作用域与变量说明语句1)变量作用域 变量的有效作用范围称为变量作用域。VB有以下三个作用域等级,见表3:等级范围局部在过程中说明,仅在说明它的过程有效的过程有效窗体/模块在窗体或模块中说明,在定义该变量的模块或窗体的所有过程内均有效在定义该变量的模块或窗体的所有过程内均有效全局(公有)在模块或窗体中说明,在工程内的所有过程中都有效中都有效4.4 运算符与表达式运算符的功能及优先级表达式的书写及运算规则 VB中的运算符和表达式可分为:算术运算符与算术表达式、关系运算符与关系表达式、逻辑运算符与逻辑表达式4.41 算术运算符VB的算术运算符有以下几种: 乘方 负号* 乘/ 除 整除Mod 取余+ 加 减:加法运算,也适合于字符串的之间的合并运算。 :加法运算。 *:乘法运算。 /:除法运算。 :整除运算。 Mod:求余运算。例如:a Mod b表示a被b整除以后的余数。 :幂运算。AB表示以A为底的B次方。 把常量、变量等运算元素用算术运算符连接起来的式子称为“算术表达式”。例如:a*b/(c*d) 3.14159265*r2 等带有括号的算术表达式在运算时将优先进行括号内的运算注 意: (1)/和的区别:1/2=0.5,12=0 (2) Mod运算中,结果与被除数同号 例如:-9 Mod 7 结果为 -2字符串运算符与字符串表达式 字符串运算符有: 、+ 。 功能是字符串连接例如: ABCD + EFGHI 结果为: ABCDEFGHI VB & 程序设计教程 结果为: VB程序设计教程说明:当连接符两旁的操作量都为字符串时,上述两个连接符等价。它们区别是: +(连接运算):两个操作数均应为字符串类型; &(连接运算):两个操作数既可为字符型也可为数值型,当是数值型时,系统自动先将其转换为数字字符,然后进行连接操作。 4.4.2 关系运算符与关系表达式 关系运算符都是双目运算,是用来比较两个运算量之间的关系,关系表达式的运算结果为逻辑量。若关系成立,结果为True,若关系不成立,结果为False。关系运算也称比较运算,它表示不等式的真或假,VB共提供六种运算符,分别是=(等于),(大于),=(大于等于),=(小于等于)和(不等于)。关系表达式就是用关系运算把两个比较对象连接起来的式子。 比较对象可以是变量、常量和算术表达式。例如:a=z/2 b$ Basic object1 is object2 关系表达式的运算是采用“按值比较”的方法,即先求出运算符两边的“值”,若是变量,则取其当前值,如果两端的值满足条件,则结果为“True”,否则为“False”。4.4.3 逻辑运算符与逻辑表达式 逻辑运算是对逻辑值进行的运算,Not 逻辑非为单目运算符(要求一个操作数),其它为双目运算符。TFT Xor FT Xor T操作数相反时,结果才为真异或XorTFT Or FF Or F操作数中有一个为真时,结果为真或OrFTT And FT And T操作数均为真时,结果才为真与AndTNot F操作数为假,结果为真,操作数为真,结果为假取反Not结果例说明说明运算符逻辑运算的优先次序是:NotAndOrXor2 逻辑表达式逻辑表达式是用逻辑运算符把逻辑变量连接起来的式子。例如: a=2*3.141159*r And (x5 Or Not b) x2 Or Text1.text=”Microsoft”表达式的书写: (1)运算符不能相邻。例a+*b是错误的。 (2)乘号不能省略。例x 乘以y 应写成:x*y (3)括号必须成对出现,均使用圆括号,可以嵌套使用。 (4)表达式从左到右在同一基准并排书写,不能出现上下标 (5)要注意各种运算符的优先级别,为保持运算顺序,在写表达式时需要适当添加括号()4.4.4运算规则表达式中出现了多种不同类型的运算符时,其运算符优先级如下: 算术运算符关系运算符逻辑运算符说明: 1当一个表达式中出现多种运算符时,首先进行算术运算,接着关系运算符,最后处理逻辑运算符,在各类运算中再按照相应的优先次序进行。2可以用括号改变优先顺序,强令表达式的某些部分优先运行。括号内的运算总是优先于括号外的运算。对于多重括号,总是由内到外。第五讲 数据表达式与简单程序设计-选择分支与循环重点:1、掌握赋值语句及不同类型数据的赋值操作2、InputBox和Msgbox函数的用法3、If-else-endif语句的格式及情况语句select5.1常用的函数1. 数学函数VB中常用的数学函数函数名功能示例结果Sqr(x)求平方根Sqr(9)3Log(x)求自然对数,x0Log(10)2.3Exp(x)求以e为底的幂值,即求exExp(3)20.086Abs(x)求x的绝对值Abs(-2.5)2.5Hex$(x)求x的十六进制数,返回的是字符型值Hex$(28)1COct$(x)求x的八进制数,返回的是字符型值Oct$(10)12Sgn(x)求x的符号, 当x0, 返回1 ;x=0, 返回0; x0, 返回-1Sgn(15)1Rnd(x)产生一个在(0,1)区间均匀分布的随机数,每次的值都不同;若x=0,则给出的是上一次本函数产生的随机数Rnd(x)0-1之间的数Sin(x)求x的正弦值,x的单位是弧度Sin(0)0Cos(x)求x的余弦值,x的单位是弧度Cos(1)0.54Tan(x)求x的正切值,x的单位是弧度Tan(1)1.56Atn(x)求x的反正切值,x的单位是弧度,函数返回的是弧度值Atn(1)0.792. 字符函数(1)字符串编码 在Windows采用的DBCS(Double Byte Character Set)编码方案中,一个汉字在计算机内存中占2个字节,一个西文字符(ASCII码)占1个字节,但在VB中采用的是Unicode(ISO字符标准)来存储字符的,所有字符都占2个字节。为方便使用,可以用StrConv函数来对Unicode 与DBCS进行转换,可以用函数Len()函数求字符串的字符数,用 LenB()函数求字符串的字节数。(2)常用的字符串函数函数名功能示例结果Len(x)求x字符串的字符长度(个数)Len(ab技术)4LenB(x)求x字符串的字节个数LenB(ab技术)8Left(x,n)从x字符串左边取n个字符Left(ABsYt,2)ABRight(x,n)从x字符串右边取n个字符Right(ABsYt,2)YtMid(x,n1,n2)从x字符串左边第n1个位置开始向右取n2个字符Mid(ABsYt,2,3)BsYUcase(x)将x字符串中所有小写字母改为大写Ucase(ABsYug)ABSYUGLcase(x)将x字符串中所有大写字母改为小写Ucase(ABsYug)absyugLtrim(x)去掉x左边的空格Lrim( ABC )ABC Rtrim(x)去掉x右边的空格Trim( ABC ) ABCTrim(x)去掉x两边的空格Trim( ABC )ABCInstr(x,字符, M)在x中查找给定的字符,返回该字符在x中的位置,M=1不区分大小写,省略则区分Instr(WBAC,B)2String(n,字符)得到由n个首字符组成的一个字符串String(3,abcd)aaaSpace (n)得到n个空格Space (3) Replace(C,C1,C2,N1,N2)在C字符串中从N1开始将C2替代N2次C1,如果没有N1表示从1开始Replace(ABCASAA,A,12,2,2)ABC12S12A 3. 日期与时间函数常用的日期与时间函数函数名含义示例结果Date ()返回系统日期Date ()02-3-19Time()返回系统时间Time()3:30 :00 PMNow返回系统时间和日期Now02-3-19 3:30 :00Month(C)返回月份代号(1-12)Month(02,03,19)3Year(C)返回年代号(1752-2078)Year(02-03-19)2002Day(C)返回日期代号(1-31)Day(02,03,19)19WeekDay()返回星期代号(1-7),星期日为1WeekDay(02,03,17)1增减日期函数: DateAdd(要增减日期形式,增减量,要增减的日期变量)例:计算期末考试日期:DateAdd(ww,15,#2002/3/19#)求日期之差函数: DateDiff(要间隔日期形式,日期一,日期二)例:计算距毕业天数: DateDiff(d, Now, #2005/6/30#)日期形式日期形式yyyyqmydwwwhns意义年季月一年的天数日一周的天数星期时分秒4. 转换函数函数名功能示例结果Str (x)将数值数据x转换成字符串Str (45.2) 45.2Val(x)将字符串x中的数字转换成数值Val(23ab) 23Chr(x)返回以x为ASCII码的字符Chr(65)AAsc(x)给出字符x的ASCII码值,十进制数Asc(a) 97Cint(x)将数值型数据x的小数部分四舍五入取整Cint(3.6) 4Int(x)取小于等于x的最大整数Int(-3.5)Int(3.5)-43Fix(x)将数值型数据x的小数部分舍去Fix(-3.5) - 3CBool(x)将任何有效的数字字符串或数值转换成逻辑型CBool(2) CBool(0)TrueFalseCByte(x)将0-255之间的数值转换成字节型CByte(6)6CDate(x)将有效的日期字符串转换成日期CDate(#1990,2,23#)1990-2-23CCur(x)将数值数据x转换成货币型CCur(25.6)25.6Round(x,N)在保留N位小数的情况下四舍五入取整Round(2.86,1)2.9CStr(x)将x转换成字符串型CStr(12) 12CVar(x)将数值型数据x转换成变体型CVar(23)+A 23ACSng(x)将数值数据x转换成单精度型CSng(23.5125468)23.51255CDbl(x)将数值数据x转换成双精度型CDbl(23.5125468)23.51254685. 格式输出Format函数 Format函数用于制定字符串或数字的输出格式。 语法:x = Format (expression, fmt ) expression是所输出的内容。fmt是指输出的格式,这是一个字符串型的变量,这一项若省略的话,那么Format函数将和Str函数的功能差不多。如:语句输出Format (2, “0.00”)2.00 Format (.7, “0%”) 70% Format (1140, “$#,#0”) $1,140 Format字符的意义字符意义字符意义0 显示一数字,若此位置没有数字则补0 . 小数点 # 显示一数字,若此位置没有数字则不显示 , 千位的分隔符 % 数字乘以100并在右边加上”%”号 - + $ ( ) 这些字出现在fmt里将原样打出 5.2 算法概论1算法的概念算法:指用计算机解决某一问题的方法和步骤。算法分类:数值算法:用于解决一般数学解析方法难以解决的问题,如:求超越方程的根、求定积分、解微分方程等。非数值算法:用于对非数值信息进行查找、排序等2算法的特征(1)确定性:指算法的每个步骤都应确切无误,没有歧义。(2)可行性:指算法的每个步骤必须是计算机能够有效执行、可以实现的,并可得到确定的结果。(3)有穷性:指一个算法应该在有限的时间和步骤内可以执行完毕的。(4)输入性:指一个算法可以有0或多个输入数据。(5)输出性:指一个算法必须有一个或多个输出结果。3算法的评价主要评价指标是:算法是否正确、运行的效率、占用系统资源的多少。4算法的描述一般常用流程框图来描述算法。图形符号名称代表操作输入/输出数据的输入与输出处理各种形式的数据处理判断判断选择,根据条件满足与否选择不同路径起止流程的起点与终点特定过程一个定义过的过程流程线连接各个框图,表示执行顺序连接点表示与流程图其他部分相连接5.基本算法结构“结构化程序设计方法”规定算法有三种基本结构: 顺序结构、选择结构和循环结构 6算法示例 欧几里德算法求两个自然数的最大公约数 53 赋值语句及 InputBox、MsgBox 函数1 赋值语句:P59一般格式
展开阅读全文