1、安徽工业大学计算机学院,1,第1章 Visual Basic程序设计概述,1.1 Visual basic 简介 1.2 VB集成开发环境 1.3 建应用程序过程 1.4 VB帮助系统,安徽工业大学计算机学院,2,1.1 Visual basic 简介,程序设计基本概念Visual Basic的发展Visual Basic的特点,本章目录,安徽工业大学计算机学院,3,1.1.1 Visual Basic的发展,20世纪60年出现Basic语言; 20世纪80年代,True Basic、Quick Basic和Turbo Basic等; 1991年Microsoft公司推出Visual Basi
2、c1.0,以可视化工具为界面设计、结构化Basic语言为基础,以事件驱动为运行机制。从1991年的VB1.0至1998年的V B6.0的多次版本升级,功能更强大、完善,应用面更广; 2002年正式发布Visual Basic.NET。,本章目录,安徽工业大学计算机学院,4,1.1.2 VB的特点,例1 设计一个滚动文字的广告程序,一行文字在具有背景图案的窗体上、下移动。 设计思路:在窗体上使用标签Label对象来存放文字;利用Timer控件来快速触发移动;利用单击按钮来手动触发移动.,本章目录,安徽工业大学计算机学院,5,当一个标签放在窗体上时,标签的左上角坐标(用Left、Top表示)就被指
3、定了。,如果改变标签的左上角坐标就可移动标签,即移动文字。 例如: Label1.Top=Label1.Top+50可使标签Label1向下移动50单位,欢迎使用VB,本章目录,Top,Left,0,0,安徽工业大学计算机学院,6,实现连续移动,可通过时钟对象Timer,在规定的时间间隔执行:Label1.Top =Label 1.Top+50 就可使标签Label1连续向下移动。 时钟对象的Interval可指定时间间隔,1秒为1000单位。每隔0.2秒移动一次可设置Interval=200,本章目录,安徽工业大学计算机学院,7,程序进一步改进: 连续循环移动,首先要能判断出标签是否超出窗体
4、范围。,窗体,欢迎光临,该点在Top方向上的坐标为: 窗体的高度Height 如果标签的Top窗体的高度,表示已越出窗体范围,可将标签移到窗体上方,此时标签的Top=?,本章目录,Height,安徽工业大学计算机学院,8,具有基于对象的可视化设计工具事件驱动的编程机制提供了易学易用的应用程序集成开发环境 支持结构化程序设计语言强大的网络、数据库、多媒体功能 完备的帮助功能,VB功能特点,本章目录,安徽工业大学计算机学院,9,VB系统的安装VB系统的启动VB集成开发环境的使用,1.2 VB集成开发环境,本章目录,安徽工业大学计算机学院,10,安装,VB6.0有学习版、专业版和企业版三种版本。执行
5、VB6.0的Setup.exe,在安装程序的提示下进行,初学者可采用典型安装方式。 VB6.0联机帮助文件使用MSDN文档格式,联机帮助文件不在VB6.0系统盘上,而与Visual Studio产品的帮助集合在两张CD盘上,安装过程中,系统会提示插入MSDN盘。,本章目录,安徽工业大学计算机学院,11,启动,启动VB选择开始菜单中的 Microsoft Visual Basic 6.0中文版程序。 VB 6.0窗口列出了VB能够建立的应用程序类型,初学者只要选择默认标准.EXE。单击新建按钮,就可创 建该类型的应用程序。,本章目录,安徽工业大学计算机学院,12,1.2.1集成开发环境使用,本章
6、目录,安徽工业大学计算机学院,13,1.2.2 主窗口,三种工作模式设计模式 界面的设计和代码的编制运行模式 运行应用程序中断模式 暂时中断程序运行,调试程序 2. 菜单栏 包括13个下拉菜单 3. 工具栏,本章目录,安徽工业大学计算机学院,14,1.2.3 窗体设计窗口,窗体是建立VB应用程序的主要部分,一个应用程序至少有一个窗体窗口。 每个窗体必须有一个唯一的窗体名,默认名为Form1. 设计状态的窗体由网格点构成,方便用户对控件的定位,网格点间距可以通过工具|选项|通用进入窗体网格设置. 运行时可通过属性控制窗体的可见性(窗体的网格始终不显示)。,本章目录,安徽工业大学计算机学院,15,
7、代码设计窗口,用来进行代码设计:各种事件过程、过程代码的编写和修改。打开代码设计窗口的方法:双击窗体、控件资源管理器窗口的”查看代码”,本章目录,安徽工业大学计算机学院,16,1.2.4 属性窗口,设置窗体或控件的属性,如 颜色、字体、大小等。,本章目录,安徽工业大学计算机学院,17,1.2.5 工程管理器窗口,保存一个应用程序所有属性以及组成这个应用程序所有的文件。 工程文件的扩展名为.VBP,工程文件名显示在工程文件窗口的标题框内。,已存盘,未存盘,本章目录,安徽工业大学计算机学院,18,1.2.6 工具箱窗口,由21个被绘制成按钮形式的图标构成,利用这些工具,用户可以在窗体上设计各种控件
8、。其中20个控件称为标准控件(注意,指针不是控件,仅用于移动窗体和控件,以及调整它们的大小)。 也可通过工程|部件命令将第3方开发的其他控件装入到工具箱。,本章目录,安徽工业大学计算机学院,19,1.3 创建应用程序的过程,建立一个应用程序分为以下几步: (1) 建立用户界面的对象 (2) 对象属性的设置 (3) 对象事件过程及编程 (4) 保存和运行程序 例1.2 编写一个人民币与美元兑换的程序。 要求:通过输入兑换比率与人民币或美元金额,单击命令按钮显示兑换结果。,本章目录,安徽工业大学计算机学院,20,设计思路: 建立用户界面的对象输入使用文本框TextBox;提示使用标签Label;按
9、钮Command的Click事件执行处理命令。,本章目录,安徽工业大学计算机学院,21,1.4 使用帮助系统,使用MSDN Library查阅器 通过VB的帮助菜单,选择内容、索引或搜索菜单项,安徽工业大学计算机学院,22,本章小节,Visual Basic 6.0 一个基于对象的可视化设计工具 vb的三种工作模式设计模式、运行模式、中断模式 VB程序组成,工程,窗体文件,控件和属性设置,模块文件,事件代码,本章目录,安徽工业大学计算机学院,23,第2章 VB可视化编程基础,2.1 VB对象概念 2.2 窗体和基本控件 2.3 综合应用,安徽工业大学计算机学院,24,2.1 VB对象的概念,2
10、.1.1 对象和类 对象指现实世界中的实体。如一个人、一辆汽车、一台电脑、一份报表等。 每个对象有自己的特征(属性)、行为(方法)和发生在该对象上的活动(事件)。 例如人具有身高、体重等特征,具有行走、说话等行为,外界作用在人对象上的各种活动,如下雨等。,本章目录,安徽工业大学计算机学院,25,类的概念,在现实世界中,许多对象具有相似的性质,执行相同的操作,称之为同一类对象。类是对同一种对象的集合与抽象。 如人类是“人”的抽象。类是创建对象实例的模板,对象则是类的一个实例。 类包含所创建对象的属性数据,以及对这些数据进行操作的方法。封装和隐藏是类的重要特性,将数据结构和对数据的操作封装在一起,
11、类的内部实现细节对用户来说是透明的。,本章目录,安徽工业大学计算机学院,26,VB中的类和对象,VB工具箱中的可视图标是VB系统设计好的标准控件类。通过将控件类实例化,得到真正的控件对象。在窗体上画一个控件,就将类转换为对象,创建了一个控件对象。,本章目录,安徽工业大学计算机学院,27,例如:工具箱内的TextBox是类(它确定了TextBox的属性、方法和事件) 窗体上显示的是两个TextBox对象,本章目录,安徽工业大学计算机学院,28,属性、事件和方法构成对象的三要素 属性 存放对象的数据(决定对象外观及功能) 例如,控件名称、文本、大小等属性。 对象属性的设置方法:设计阶段 利用属性窗
12、口直接设置属性值程序运行时 通过语句对象名.属性名=属性值 例如:Command1.Caption = “确定“ 注意:若属性只能在设计阶段设置,在程序运行阶段不可改变,称为只读属性。,2.1.2 对象的属性、事件和方法,本章目录,安徽工业大学计算机学院,29,事件 发生在对象上的事情 同一事件,对不同的对象,会引发不同的反应:,事件,教师_铃声()讲课 End Sub,学生_铃声() 听讲 End Sub,VB为对象预先定义了一系列的事件。例如,单击Click、获取焦点GotFocus 、按下键盘KeyPress 等,其他人员_铃声() 可不于响应 End Sub,本章目录,安徽工业大学计算
13、机学院,30,事件过程 应用程序处理事件的步骤 应用程序设计的主要工作就是为对象编写事件过程的代码。事件过程的形式如下:Sub 对象名_事件(参数) 事件过程代码 End Sub,事件过程,本章目录,安徽工业大学计算机学院,31,例:单击按钮 ,使Text1的字体为20磅. Sub Command1_Click()Text1.FontSize = 20 End Sub 一个动作可能同时发生多个事件。例如单击鼠标同时发生了: Click、MouseDown、MouseUp事件 编程时,只要对需要的事件过程编码。 注意:在代码窗,自动产生事件过程的模板,不要修改模板的内容,只需键入过程的代码。,模
14、板产生,用户输入,本章目录,安徽工业大学计算机学院,32,程序执行的次序与程序设计者无关,取决于用户的操作,这就是事件驱动程序设计方式。 VB程序的执行步骤如下: 启动应用程序,装载和显示窗体; 窗体(或窗体上的控件)等待事件的发生; 事件发生时,执行对应的事件过程; 重复执行步骤和。,事件驱动,本章目录,安徽工业大学计算机学院,33,方法,面向对象的程序设计语言,为程序设计人员提供了一种特殊的过程和函数,称为方法。 方法是面向对象的,调用时一定要指明对象。对象方法的调用格式为:对象.方法 参数名表 若省略对象,表示当前对象,一般指窗体。 例如:Text1.SetFocus 此语句使Text1
15、控件获得焦点,光标在本文框内闪烁。,本章目录,安徽工业大学计算机学院,34,2.2 窗体和基本控件,窗体和控件具有基本属性 例2.1 (1) Name 名称属性 所创建的对象名称,在程序中引用。 (2) Caption 标题属性 该属性决定了对象上显示的内容。 (3) Height、Width、Top和Left属性 决定对象的高度、宽度,和位置。,本章目录,安徽工业大学计算机学院,35,(4) Enabled 属性 对象是否允许操作 (5) Visible 属性 对象是否可见 (6) Font 属性组 文本的外观FontName字体、FontSize大小FontBold粗体、FontItali
16、c斜体、FontStrikethru 删除线、FontUnderline 下划线,本章目录,安徽工业大学计算机学院,36,(7) ForeColor属性 前景颜色 (8) BackColor属性 背景颜色 (9) MousePointer 鼠标指针类型 设置值范围015,由系统指定 。若为99,由用户提供的图形文件定义鼠标指针形状。 (10) MouseIcon属性 在MousePointer属性值为99时,存放自定义的鼠标图标文件(.ico或.cur)。图标库在Graphics目录下。,本章目录,安徽工业大学计算机学院,37,控件默认属性 所谓默认属性是程序运行时,可以改变某控件的值,而不必
17、指定该控件的哪个属性。,例如,下面两条语句是等价的: Text1.Text=“Visual BASIC“ Text1 =“Visual BASIC“,本章目录,安徽工业大学计算机学院,38,2.2.2 窗体,窗体是一块画布,是所有控件的容器,用户可以根据自己的需要利用工具箱上的控件在画布上画界面。 窗体属性决定了窗体的外观和操作。,本章目录,安徽工业大学计算机学院,39,窗体-事件,常用的事件有Click、DblClick和Load。 Load事件是在窗体被装入工作区时触发的事件。当应用程序启动,自动执行该事件,该事件通常用来在启动应用程序时对属性和变量进行初始化。 例2.2 窗体无最大化按钮
18、和最小化按钮,窗体启动时,在标题栏显示“装入窗体”,并装入一背景图;单击窗体装入另一图、双击窗体清除背景图,同时显示不同的文字。,本章目录,安徽工业大学计算机学院,40,窗体-方法,使用方法的语法形式: 对象.方法 参数列表 Cls方法 清除运行时在窗体或图形框中产生的文本或图形, Cls方法不能清除窗体在设计时的文本和图形 Move方法可移动窗体或控件,并可改变其大小。语法格式如下: 对象.Move 左边距离,上边距离,宽度,高度,本章目录,安徽工业大学计算机学院,41,2.2.3 标签,标签用来显示文本信息(不能输入) 例2.3 标签属性演示,本章目录,安徽工业大学计算机学院,42,2.2
19、.4 文本框,文本框是一个文本编辑区域,可以在该区域输入、编辑、修改和显示正文内容。 (1) Text 显示或输入的正文内容 (2) Maxlength 设置文本框可输入的文字最大长度。默认值为0,表示可以输入任意长字符串。 注意:在VB中字符长度以字为单位,也就是一个西文字符与一个汉字都是一个字,长度为1。,本章目录,安徽工业大学计算机学院,43,(3) MultiLine 多行属性 设置为True时,文本框可以输入或显示多行正文,同时具有文字处理器的自动换行功能,按Enter键可插入一空行。 (4) ScrollBars 滚动条属性None 无滚动条Horizontal 水平滚动条Vert
20、ical 垂直滚动条Both 同时加水平和垂直滚动条 当MultiLine为True时,ScrollBars才有效,本章目录,安徽工业大学计算机学院,44,(5) PassWordChar 设置显示文本的替代符。例如,当设置为“*”,则在文本框输入的内容均以“*”显示,而存储的值是用户输入的原文。一般用于设置口令的输入。 当MultiLine为True时,该属性不起作用,密码不允许多行。 (6) Locked 指定文本控件是否可被编辑,默认值为False(可编辑),当设置为True时,文本控件相当于标签控件的作用。,本章目录,安徽工业大学计算机学院,45,(7)文本内容进行选择操作 SelSt
21、art 选定的正文开始位置 SelLength 选定的正文长度 SelText 选定的正文内容 这3个属性互相关联,例如设置SelStart、SelLength后,SelText 自动存放指定的文本。 例2.4 利用属性实现文本信息的复制。,本章目录,安徽工业大学计算机学院,46,文本框-事件,(1) Changed事件 当Text属性值发生改变时引发该事件 例 在文本框每输入一个字符就引发一次事件 (2) KeyPress事件 按下并且释放键盘上的一个键时,引发焦点所在控件的KeyPress事件,所按键的值存放在参数KeyAscii中 例 对回车的判断 KeyAscii=13,本章目录,安徽
22、工业大学计算机学院,47,(3) LostFocus事件 对象失去焦点时发生LostFocus事件 该事件主要是用来对数据进行验证和确认,常用于检查Text属性的内容。 (4) GotFocus事件 GotFocus事件与LostFocus事件相反,当一个对象获得焦点时发生,本章目录,安徽工业大学计算机学院,48,文本框-方法,文本框最有用的方法是SetFocus,把光标移到指定的文本框中。其形式如下:对象. SetFocus SetFocus还可以用于如CheckBox、CommandButton、ListBox、ComboBox等控件。 例2.5 对输入的数据进行合法性检验,过滤不合法的数
23、据。,本章目录,安徽工业大学计算机学院,49,2.2.5 命令按钮,用于程序运行时执行相应的事件 1. 属性 (1) Caption 命令按钮上显示的文字 (2) Style 按钮样式0 Standard:默认,按钮上不能显示图形 1 Graphical:按钮上可以显示图形和文字 (3) Picture 在按钮装入图形 (4) ToolTipText 加以文字提示 2. 事件 命令按钮一般接收Click事件,本章目录,安徽工业大学计算机学院,50,2.3 综合应用,例2.6建立一个类似记事本的应用程序,提供: (1) 剪切、复制和粘贴的编辑操作 (2) 字体大小的格式设置 分析: (1) 建立
24、一个文本框输入文本,文本框应该有滚动条,为了便于调试,程序运行时文本框有初始值。 (2) 利用文本框的SelText属性实现“剪切、复制和粘贴”的编辑操作。 (3) “格式”设置利用Font对象实现。,本章目录,安徽工业大学计算机学院,51,本章小节,类是同种对象的集合与抽象,包含所创建对象的属性描述和行为特征的定义,是创建对象实例的模板。 对象三要素:属性、事件、方法 窗体 是所有控件的容器 基本控件 标签、文本框、命令按钮,本章目录,安徽工业大学计算机学院,52,第三章 VB语言基础,3.1 数据类型 3.2 变量和常量 3.3 运算符和表达式 3.4 程序结构和编码规则 3.5 综合应用
25、,本章目录,安徽工业大学计算机学院,53,3.1 数据类型,本章目录,安徽工业大学计算机学院,54,3.2 变量,变量 在程序运行中其存储的值可以改变 命名规则:必须以字母或汉字开头,由字母、汉字、数字或下划线组成,长度小于等于255个字符不能使用VB中的关键字VB不区分变量名的大小写,一般变量名首字母用大写,其余用小写字母表示;常量全部用大写字母表示,本章目录,安徽工业大学计算机学院,55,变量声明,用Dim语句显式声明变量Dim 变量名 As 类型 As部分缺省,创建的变量为变体类型 一条Dim语句可同时定义多个变量,但每个变量应有类型说明,否则为变体型 。 例如:Dim m,n As I
26、nteger, x,y As Single 则创建了变体型变量m、x,整型变量n和单精度型变量y,本章目录,安徽工业大学计算机学院,56,常量,常量是在程序运行中不变的量,VB有三种常量: 直接常量 其常数值直接反映了其类型 符号常量 用户声明,便于程序阅读或修改 Const 符号常量名 As 类型 = 表达式 例如: Const PI = 3.14159 系统常量 系统提供许多内部常量 例如:vbCrLf 回车/换行组合符,本章目录,安徽工业大学计算机学院,57,3.3 运算符和表达式,和其他语言一样,VB中也具有丰富的运算符,通过运算符和操作数组合成表达式,实现程序编制中所需的大量操作。
27、运算符是表示实现某种运算的符号。VB中的运算符可分算术运算符、字符串运算符、关系运算符和逻辑运算符4类。,本章目录,安徽工业大学计算机学院,58,算术运算符,例:5+10 mod 10 9 / 3+2 2 结果:10,注意:对算术运算符两边的操作数应是数值型,若是数字字符或逻辑型,则自动转换成数值类型后再运算。 例如: 30-True 结果是31,逻辑量True转为数值-1,False转为数值0 False + 10 + “4“ 结果是14,本章目录,安徽工业大学计算机学院,59,字符串运算符,& 两旁的操作数可任意,转换成字符型后再连接 + 两旁的操作数应均为字符型; 1)数值型:则进行算术
28、加运算 2)一个为数字字符,另一个为数值,自动将数 字字符转换为数值后进行算术加 3)一个为非数字字符,另一个为数值型,出错 例如:操作 结果 操作 结果 “ab“ & 123 “ab123 “ “ab“ + 12 出错 “12“ & 456 “ 12456 “ “12“ + 456 468 “12“ & True “12True“ “12“ + True 11,本章目录,安徽工业大学计算机学院,60,关系运算符,关系运算符是双目运算符,作用是对两个操作数进行大小比较,若关系成立,则返回True,否则返回False。操作数可以是数值型、字符型。,本章目录,安徽工业大学计算机学院,61,逻辑运算
29、符,逻辑运算符除Not是单目运算符外,其余都是双目运算符,作用是将操作数进行逻辑运算,结果是逻辑值True或False。,本章目录,安徽工业大学计算机学院,62,表达式,1.组成 变量、常量、函数、运算符和圆括号 2.书写规则运算符不能相邻 例a+ -b是错误的乘号不能省略 例x 乘以y 应写成:x*y括号必须成对出现(均使用圆括号)表达式从左到右在同一基准上书写,无高低、大小 3. 不同数据类型的转换运算结果的数据类型向精度高的数据类型靠Integer=字符运算符关系运算符逻辑运算,本章目录,安徽工业大学计算机学院,63,表达式书写举例,a*b*c*d/e/f/g 或 a*b*c*d/(e*
30、f*g),例逻辑表达式书写,选拔优秀生的条件为:年龄(Age)小于19岁,三门课总分(Total)高于285分,其中有一门为100分,如果其表达式写为: Age285 And ( Mark1=100 Or Mark2 =100 Or Mark3=100 ) 如果取消括号有何问题?请读者考虑。,sin(45*3.14/180)+(exp(10)+log(10)/sqr(x+y+1),本章目录,安徽工业大学计算机学院,64,3.3.3 常用函数,VB函数: 内部函数和用户自定义函数,内部函数,数学函数 转换函数 字符串函数 日期函数 格式输出函数,调用函数的形式: 函数名(参数列表),本章目录,安
31、徽工业大学计算机学院,65,数学函数,本章目录,安徽工业大学计算机学院,66,数学函数,Rnd函数返回0和1(包括0但不包括1)之间的双精度随机数. 每次运行时,要产生不同序列的随机数,先执行Randomize 语句。产生ab的之间的随机整数:Int(Rnd *(b-a)+a),本章目录,安徽工业大学计算机学院,67,转换函数,本章目录,安徽工业大学计算机学院,68,字符串函数,本章目录,安徽工业大学计算机学院,69,字符串函数,本章目录,安徽工业大学计算机学院,70,日期函数,例 计算从当前日期到2007年6月30日有多少天?表达式为: DateDiff(“d“, Now, #6/30/20
32、07#),本章目录,安徽工业大学计算机学院,71,Shell函数,Shell函数可调用各种应用程序。格式如下:Shell(命令字符串,窗口类型) 命令字符串为要执行的应用程序名(包括路径),必须是可执行文件(.com、.exe、.bat)。 窗口类型表示执行应用程序的窗口状态,04,6的整型数值,1表示正常窗口状态。 函数调用成功返回一个任务标识ID,不成功,则返回0。,例 i = Shell( “calc.exe“),本章目录,安徽工业大学计算机学院,72,3.4 程序结构和编码规则,本章目录,安徽工业大学计算机学院,73,编码规则,(1) VB代码不区分字母的大小写 关键字 首字母自动转换
33、成大写,其余字母转换成小写。 用户自定义的变量、过程名,以第一次定义的为准,以后输入的自动向首次定义的形式转换。 (2) 语句书写自由 一行上可书写多句语句(用冒号分隔),一行最多255个字符。 单行语句可分若干行书写,在本行后加入续行符(空格和下划线)。,本章目录,安徽工业大学计算机学院,74,3.5 综合应用,例3.1 模仿字处理软件中字符串替换功能。 设计思路: 利用Shell函数调用winword.exe执行Word程序实现替换功能 利用查找(InStr)、取子串(Left、Mid)等函数实现替换功能 利用替换(Replace)函数实现替换功能,本章目录,安徽工业大学计算机学院,75,
34、本章小节,变量:在程序运行中其存储的值可以改变 变量声明 Dim 变量名 As 类型 运算符 算术运算符、字符串运算符、关系运算符和逻辑运算符 函数 内部函数、用户自定义函数调用函数形式:函数名(参数列表) Shell函数 调用各种应用程序,本章目录,安徽工业大学计算机学院,76,第4章 VB控制结构,4.1 顺序结构 4.2 选择结构 4.3 循环结构 4.4 其它辅助控制语句 4.5 综合应用 4.6 程序调试,安徽工业大学计算机学院,77,4.1 顺序结构,VB具有结构化程序设计的三种结构,即顺序结构、选择结构、循环结构,是程序设计的基础。 顺序结构就是各语句按出现的先后次序执行。一般的
35、程序设计语言中,顺序结构的语句主要是赋值语句、输入/输出语句等。在VB中也有赋值语句;而输入/输出可以通过文本框控件、标签控件、InputBox函数、MsgBox函数和过程等来实现。,本章目录,安徽工业大学计算机学院,78,4.1.1 赋值语句,形式: 变量名表达式 计算右边表达式的值,然后赋给左边的变量。 给变量赋值和设定属性是VB编程中常见的两个任务。例如: n = n + 1 计数累加 Text1.Text “ 清除文本框的内容 Text1.Text “欢迎使用VB “ 文本框显示字符串,本章目录,安徽工业大学计算机学院,79,赋值语句注意点,赋值语句不允许写成 表达式变量,虽然赋值号与
36、关系运算符等于号都用=表示,VB系统会根据所处的位置自动判断符号的意义。赋值号左边的变量只能是变量,不能是常量、常数符号、表达式。下面均为错误的赋值语句: Now()=x+y 左边是表达式(函数) 5=sqr(s)+x+y 左边是常量,本章目录,安徽工业大学计算机学院,80,InputBox函数 打开一个对话框,等待用户输入,返回字符串类型的输入值。 形式:InputBox(提示,标题,默认值,x坐标位置,y坐标位置) 提示项不能省略。若要多行提示,可在每行行末加回车换行vbCrLf。 例4.1利用InputBox输入基本工资和营业额,按营业额的5%提成,计算实发工资并显示。,4.1.2 数据
37、输出和输入,本章目录,安徽工业大学计算机学院,81,打开一个信息框,等待用户选择一个按按钮。 MsgBox函数返回所选按钮的值,MsgBox过程不返回值 MsgBox函数形式:变量% = MsgBox(提示,按钮,标题) MsgBox过程形式:MsgBox 提示,按钮,标题 按钮项是一整型表达式,决定信息框按钮的数目和类型及出现在信息框上的图标形式。,MsgBox函数和MsgBox过程,本章目录,安徽工业大学计算机学院,82,MsgBox按钮设置,本章目录,安徽工业大学计算机学院,83,MsgBox所选按钮返回值,例4.2 编一账号和密码输入的检验程序,当输入不正确,如账号为非数字字符,密码不
38、正确等,显示有关信息,再输入。,本章目录,安徽工业大学计算机学院,84,Print方法,作用:在对象上输出信息。 对象.PrintSpc(n)|Tab(n)输出列表 ;|, 对象:窗体、图形框或打印机。缺省为窗体。 Spc(n)函数:从当前位置起空n个空格 Tab(n)函数:从最左端开始计算的第n列 分号:定位在上一个被显示的字符之后 逗号:定位在下一个打印区开始处(每区14列) Print语句尾无分号或逗号,输出后换行 例4.3 Print方法输出图形,安徽工业大学计算机学院,85,Format格式输出函数,形式: Format (表达式, “格式字符串“) 常用数值格式化符及举例,例4.4
39、 利用Format函数显示数值。,安徽工业大学计算机学院,86,4.2 选择结构,计算机要处理的问题往往是复杂多变的,仅采用顺序结构是不够的。必须利用选择结构等来解决实际应用中的各种问题。VB中提供了多种形式的条件语句来实现选择结构,有If条件语句和Select情况语句等。它们都是对条件进行判断,根据判断结果,选择执行不同的分支。,本章目录,安徽工业大学计算机学院,87,4.2.1 If条件语句,1. IfThen语句(单分支结构)If Then语句块(可以是一句或多句语句)End If 或 If Then 表达式:关系表达式、逻辑表达式,算术表达式。表达式值按非零为True,零为False进
40、行判断。 该语句的作用是当表达式的值为True,执行Then后面的语句块,否则不做任何操作。,本章目录,IF演示,安徽工业大学计算机学院,88,单分支结构,例:已知两个数x和y,比较它们的大小,使得x大于y。If xy Thent=xx=yy=tEnd If 或 If xy Then t=x: x=y: y=t 简单If形式无End If时,只能是一句语句或语句间用冒号分隔,而且必须在一行上书写。,本章目录,安徽工业大学计算机学院,89,双分支结构,2. IfThenElse语句 If 表达式 Then语句块1 Else语句块2 End If 或 If 表达式 Then 语句1 Else 语句
41、2 当表达式的值为True时,执行Then后面的语句块1,否则执行Else后面的语句块2,本章目录,安徽工业大学计算机学院,90,双分支结构例,计算分段函数,单分支 y=cos(x)x3+3*x 结构实现 If x0 Then y=sin(x)+sqrt (x*x+1),If x0 Then双分支 y=sin(x)+sqr (x*x+1)Else 结构实现 y=cos(x)x3+3*xEnd If,本章目录,安徽工业大学计算机学院,91,多分支结构,3. IfThenElseIf 语句 If 表达式1 Then语句块1ElseIf 表达式2 Then语句块2 Else 语句块 n+1End I
42、f,作用:根据不同的表达式值确定执行哪个语句块,本章目录,安徽工业大学计算机学院,92,例4.7 已知变量ch中存放了一个字符,判断该字符是字母字符、数字字符还是其他字符。If UCase(ch) = “A“ And UCase(ch) = “ 0“ And ch = “9“ Then 数字字符MsgBox(ch + “是数字字符“)Else 除上述字符以外的字符MsgBox(ch + “是其他字符“)End If,不管有几个分支,依次判断,当某条件满足,执行相应的语句,其余分支不再执行;若条件都不满足,且有Else子句,则执行该语句块,否则什么也不执行。ElseIf不能写成 Else If,
43、多分支结构例,本章目录,安徽工业大学计算机学院,93,If语句的嵌套是指If或Else后面的语句块中又包含If语 If 表达式1 ThenIf 表达式2 ThenEnd If End If,If xy Then t=x: x=y: y=t If yz Thent=y: y=z: z=t If xy Then t=x: x=y: y=tEnd If End If,If语句的嵌套,例 已知x,y,z三个数,使得xyz 用一个IF语句和一个嵌套的IF语句实现,本章目录,安徽工业大学计算机学院,94,4.2.2 Select Case语句,Select Case 变量或表达式Case 表达式列表1语句
44、块1Case 表达式列表2语句块2Case Else语句块n+1 End Select,表达式列表与变量或表达式的类型必须相同,是下面4种形式之一 : 表达式 例: “A“ 一组用逗号分隔的枚举值 2,4,6,8 表达式1 To 表达式2 60 To 100 Is 关系运算符表达式 Is 60,本章目录,安徽工业大学计算机学院,95,Select Case语句例,将例4.7 改用 Select Case 语句实现:Select Case chCase “a“ To “z“,“A“ To “Z“MsgBox( ch + “是字母字符“)Case “0“ To “9“MsgBox (ch +“是数
45、字字符“)Case ElseMsgBox( ch + “是其他字符“)End Select 多分支结构,用Select Case语句比IfThenElseIf语句直观,程序可读性强。但不是所有的多分支结构均可用Select Case语句代替IfThenElseIf语句。,本章目录,安徽工业大学计算机学院,96,Select Case语句例,例4.9判断坐标点(x,y),落在哪个象限。,代码一 If x 0 And y 0 ThenMsgBox(“在第一象限“) ElseIf x 0 ThenMsgBox(“在第二象限“) ElseIf x 0 And y 0 ThenMsgBox(“在第四象限
46、“) End If,代码二 Select Case x,yCase x 0 And y 0MsgBox(“在第一象限”)Case x 0MsgBox(“在第二象限”)Case x 0 And y 0MsgBox(“在第四象限”) End Select,代码二错误: 1. Select Case 后不能出现多个变量 2. Case后不能出现变量及有关运算符,本章目录,安徽工业大学计算机学院,97,4.2.3 条件函数,(1) IIf函数 IIf(表达式,表达式为真时的值,表达式为假时的值) IIf函数是If Then Else 结构的简洁表示 例如,将x,y中大的数,放入Tmax变量中: Tma
47、x = IIf(x y,x,y) 该语句与如下语句等价 : If x y Then Tmax = x Else Tmax = y,本章目录,安徽工业大学计算机学院,98,4.2.3 条件函数,(2) Choose函数 Choose(整数表达式,选项列表) 根据表达式的值i,返回选项列表中第i个选项。如果整数表达式的值越出选项范围时,返回Null。 例 根据Nop的值,得到+、-、中的某运算符: Op= Choose(Nop,“+“,“-“,“,“) 例4.10 根据当前日期,显示今日是星期几。 t = Choose(Weekday(Now), “星期日”, “星期一”, “星期二”, “星期三
48、”, “星期四”, “星期五”, “星期六”) MsgBox(“今天是:“ & Now & t),本章目录,Dim nop As Integer, op As Char Randomize() nop = Int(Rnd() * 4 + 1) op = Choose(nop, “+“, “-“, “, “) MsgBox(“nop=“ & nop & “ op=“ & op),安徽工业大学计算机学院,99,4.3 循环结构,计算机最擅长的功能之一就是按规定的条件,重复执行某些操作。例如,按照人口某增长率,对人口增长统计;根据各课程的学分、绩点和学生的成绩,统计每个学生的平均绩点等。这类问题都可通过循环结构来方便地实现。VB中提供了两种类型的循环语句:一种是计数循环语句;另一种是条件型循环语句。,本章目录,安徽工业大学计算机学院,100,4.3.1 For循环语句,For循环语句用于控制循环次数预知的循环结构。 For 循环变量 初值 To 终值 Step 步长语句块Exit For语句块 Next 循环变量 循环变量必须为数值型。 循环次数,例4.11 计算1100的奇数和,本章目录,Dim i%, sum% For i = 1 To 100 Step 2sum = sum + i Next i MsgBox(sum),安徽工业大学计算机学院,