第3 章 赋值与输入/输出 学习程序设计,初学者要善于模仿,并要多练 第3 章 赋值与输入/输出 学习程序设计,初学者要善于模仿,并要多练 任何一门程序设计语言都有一套严格的编程规定(如语法规则),在编程时一定要遵守这些规定(只能遵守,不能创造)
应用程序的内容及其关系 一个完整的VB应用程序,一般都包含三部分内容,即输入数据、计算处理、输出结果 输入数据 → 计算处理 输出结果
赋值语句Let 赋值语句是程序设计中最基本、最常用的语句 格式: [Let] <变量名或属性名> = <表达式> 功能:计算赋值号右边的表达式的值,并将结果赋给左端变量或对象属性 说明: ◇ Let可省略。 ◇ 表达式中的变量必须是赋过值的,否则变量的初值自动取零值 ◇ 赋值语句与数学中等式具有不同的含义,不是静止的“等于”,而是一个先计算(表达式),再赋值的过程 ◇ 变量出现在赋值号右边和左边,其用途是不相同的。出现在右边表达式中时,变量是参与运算的元素;出现在左边时,变量起存放表达式的值的作用 ◇ 赋值号两边的数据类型必须一致
例3.1 已知a=6,b=9,计算c=√a2+b2
例3.2 设计程序,实现两个文本框内容的交换 C B A ① ② ③
注释语句Rem 格式:Rem <注释内容> 或 ‘ <注释内容> 功能:在程序中加入注释内容,以便于对程序的理解 示例:Rem 交换变量a和b的值 c = a ‘ 借助于第三个变量 a = b b = c 说明: ◇ 注释语句是非执行语句,仅起注释作用,它不被解释和编译 ◇ “注释内容”指要包括的任何注释文本。如果使用关键字Rem,在Rem和注释内容之间要加一个空格 ◇ 在其他语句后使用Rem关键字,必须使用冒号“:”与前面的语句隔开。注释符“‘”可以直接写在其他语句后面
结束语句 End 格式:End 功能:结束程序的运行 说明: ◇ End语句能够强行终止程序代码的执行,清除所有变量,并关闭所有数据文件 ◇ 在程序运行中,用户也可以单击工具栏上的“结束”按钮来强行结束程序的运行
暂停语句 Stop 格式:Stop 功能:暂停程序的运行 说明: ◇ Stop语句可以在程序中设置断点。与End语句不同的是,在解释方式下,Stop不会关闭任何文件和清除变量 ◇ 暂停程序的运行,也可以通过单击工具栏上的“中断”按钮来实现 ◇ 如果在可执行文件(.exe)中含有Stop语句,则执行该语句会关闭所有的文件而退出程序。因此,当程序调试结束时,生成可执行文件之前,应删除程序代码中所有的Stop语句 ◇ 有时程序运行过程中进入“死锁”或“死循环”,而无法用正常操作“中断”和“结束”,可按Ctrl+Break键来强制性地暂停程序的运行
Print 方法 格式: [<对象名>.] Print [<表达式列表>][{,|;}] 功能:在窗体、图片框和打印机上显示或打印输出表达式的值、字符串 说明: ◇ <对象名>可以是窗体(Form)、图片框(PictureBox)或打印机(Pinter),默认是在当前窗体上直接输出 ◇ <表达式列表>可以是一个或多个表达式,如果省略,则输出一个空行。输出数值数据时,前面有一个符号位(正号以空格表示),后面留有一个尾随空格;输出字符串时,前后不留空格
Print 方法 ◇ 当输出多个表达式时,各表达式之间用分号“;”或逗号“,”隔开。使用分号分隔符,则按紧凑格式输出,即后一项紧跟前一项输出;使用逗号分隔符,则各输出项按区格式(14个字符位置)输出(“,”表示标准格式) ◇ 若语句行末没有分隔符,则输出当前输出项后自动换行。若以分号或逗号结束,则输出当前项后不换行,下一个Print输出的内容将紧凑输出(以分号结尾)或输出在下一个区段上(以逗号结尾)
特殊打印格式 VB提供了几个与Print配合的函数,以控制文本的输出格式 ◇ Spc(<n>) 表示在输出下一项之前插入n个空格 ◇ Tab(<n>) 表示把输出位置移到第n列 ◇ Format(<表达式>[,<格式串>]) 根据格式串规定的格式来输出表达式的值 格式串 功 能 # 数字占位符,显示一位数字 数字占位符,前、后会补足0 . 小数点 % 百分比符号 , 千位分隔符 E-,E+ 科学记数法格式 -,+,$ 负、正号及美元符号,可以原样显示 \ 将格式串的下一符号原样显示出来 示例 a=4513.7: b=3456.78: TimeVar=#08:30:05# Print Format(a,”##,###.##”) 4,513.7 Print Format(a,”$ ##,###.00”) $ 4,513.70 Print Format(b,”+##,###.#”) +3,456.8 Print Format(TimeVar,”h:m:s”) 8:30:5
窗体 Form 窗体(Form)也就是窗口,它是设计VB应用程序的基本平台。窗体本身是一个对象,它有自己的属性、事件和方法。窗体又是其他对象的载体或容器,几乎所有的控件都设置在窗体上 多数应用程序是从窗体开始执行的。程序运行时,每个窗体对应于程序的一个窗口。对于一个简单程序,一个窗体已经足够了,但对于一个复杂的程序,也许需要几个、十几个甚至几十个窗体。
窗体的基本属性 窗体属性决定着窗体的外观和行为 新建工程时,VB系统会自动建立一个空白的窗体,并为该窗体设置了默认属性。在程序设计时,可在属性窗口中手工设置窗体的属性,也可以在程序运行时由代码实现窗体属性的设置 属 性 含义 Name 名称 CurrentY 纵坐标 Width 宽 Caption 标题 FontName 字体名称 Top 顶边位置 AutoRedraw 自动重画 FontSize 字体大小 Left 左边位置 BackColor 背景颜色 FontBold 粗体 Icon 图标 ForeColor 前景颜色 FontItalic 斜体 MaxButton 最大化 BorderStyle 边框类型 FontStrikethru 删除线 MinButton 最小化 ControlBox 控制框 FontUnderline 下划线 Picture 图形 Enabled 允许 FontTransParent 背景重叠 Visible 可见性 CurrentX 横坐标 Height 高 WindowState 窗口状态
窗体的事件 窗体作为对象,能够对事件做出响应。窗体事件过程的一般格式为: Private Sub Form_事件名([参数表]) …… End Sub 不管窗体名字如何定义,在事件过程中只能使用Form。在过程中对窗体进行引用时才能用到窗体名字 事 件 含 义 Load 装载 Paint 绘画 Unload 卸载 Click 单击 Activate 活动 DblClick 双击 Deactivate 非活动 KeyPress 按键
窗体的方法 方法 含 义 Show 快速显示窗体,使该窗体变成活动窗体(Visible属性为True) Print 含 义 Show 快速显示窗体,使该窗体变成活动窗体(Visible属性为True) Print 在窗体或图文框中输出文字或图形 Cls 清除运行时在窗体上显示的文本或图形 Move 移动并改变窗体或控件的位置和大小
焦点(Focus) 一个应用程序可以有多个窗体,每个窗体上又可以有很多对象,但用户任何时候只能操作一个对象,我们称当前被操作的对象获得了焦点(Focus)。焦点是对象接收鼠标或键盘输入的能力。当对象具有焦点时,才能接收用户的输入。 窗体和大多数控件都可以接收焦点,但焦点在任何时候只能有一个。改变焦点将触发焦点事件。当对象得到或失去焦点时,分别产生FotFocus或LostFocus事件 要将焦点赋给对象(窗体或控件),有以下几种方法: ◇ 用鼠标选定对象 ◇ 用快捷键选定对象 ◇ 按Tab键或Shift+Tab键在当前窗体的各对象之间切换焦点 ◇ 在代码中用SetFocus方法来设置焦点
Tab键序 Tab键序是指用户按Tab键时,焦点在控件间移动的顺序。当向窗体中设置控件时,系统会自动按顺序为每个控件指定一个Tab键序 Tab键序也反映在控件的TabIndex属性中,其属性值为0,1,2,…。通过改变控件的TabIndex属性值,可以改变默认的焦点移动顺序
例3.3 显示唐诗“静夜思”,设置“显示”、“清除”和“结束”三个命令按钮
基本控件 窗体为应用程序提供了一个窗口,但是仅有窗体是不够的,还需要在其中放置各种控件才能实现用户与应用程序之间的信息交互。 控件的公共属性 属 性 含 义 Name 控件对象的名称 BackColor 控件的背景色 Caption 控件的标题 ForeColor 控件的前景色 Enabled 是否做出响应 FontName 显示文本的字体 Visible 可见性 FontSize 显示文本的字号 Height 控件的高度 FontBold 显示文本是否粗体 Width 控件的宽度 FontItalic 显示文本是否斜体 Top 控件在窗体中的顶部的距离 FontStrikethru 显示文本是否加删除线 Left 控件到窗体左边框的距离 FontUnderline 显示文本是否带下划线
命令按钮(CommandButton) 命令按钮用于接收用户的操作信息,并触发应用程序的某个操作。当用户用鼠标单击命令按钮,或者选中命令按钮后按回车键,或者按命令按钮的访问键等时,就会触发该命令按钮相应的事件过程。 属 性 说 明 Default 设置是否为“默认”按钮 Cancel 设置是否为“取消”按钮 Style 设置命令按钮的外观。0_标准,1_图形 Value 设置为True表示该命令按钮被按下 事 件 说 明 Click 鼠标单击时触发 方 法 说 明 SetFocus
标签(Label) 标签主要用于显示比较固定的提示性信息。通常使用标签为文本框、列表框、组合框等控件附加描述性信息. 属 性 说 明 Alignment 设置标签中文本的对齐方式。0_左对齐,1_右对齐,2_居中 AutoSize 确定标签的大小是否根据内容自动调整。False_不自动 BorderStyle 设置标签的边框。0_无边框,1_有边框 BackStyle 设置标签的背景模式。0_透明,1_不透明 WordWrap 标签可触发Click、DblClick等事件 标签支持Move方法,用于实现控件的移动
文本框(TextBox) 文本框是一个文本编辑区域,用户可以在该区域中输入、编辑和显示文本内容。默认情况下,文本框只能输入单行文本,最多可输入2048个字符 属 性 说 明 MaxLength 文本的最大长度 SetLength 选定文本的长度 MultiLine 可否接受多行文本 SetText 选定的文本内容 PassWordChar 指定替代符号 Text 文本框的内容 ScrollBars 是否出现滚动条 Locked 是否可编辑 SetStart 选定文本的起始位置 文本框支持Click、DblClick等鼠标事件,同时支持Change、GotFocus、LostFocus等事件 当文本框的Text属性发生变化时,触发文本框的Change事件。常在该事件过程中编写代码对文本进行具体处理 常用方法有SetFocus方法和Move方法
例3.4 输入一个总秒数,化成小时、分钟和秒数,然后显示出来 .
使用对话框 对话框是程序与用户进行交流的重要途径。对话框既可以用来显示信息,也可以用于输入信息 在VB中能够建立两种预制对话框:输入对话框和消息对话框。这两种对话框的实现都只需使用系统提供的函数(InputBox和MsgBox),而不必为对话框另建窗体
变量=InputBox(<提示>[,<标题>][,<默认值>][,xpos][,ypos]) 语法格式: 变量=InputBox(<提示>[,<标题>][,<默认值>][,xpos][,ypos]) 说明: ◇ <提示>制定在对话框中显示的文本。要使“提示”文本换行显示,可在换行处插入回车符(Chr(13)),使显示的文本换行 ◇ <标题>指定对话框的标题 ◇ <默认值>用于指定输入框的文本框中显示的默认文本 ◇ xpos和ypos分别指定对话框的左边和上边与屏幕左边和上边的距离 示例:InputBox(”请输入文件名” +Chr(13)+”(不超过8个字符)”,”文件名”)
变量=MsgBox(<提示>[,<对话框类型>[,对话框标题]]) 语法格式: 变量=MsgBox(<提示>[,<对话框类型>[,对话框标题]]) 说明: ◇ <提示>指定在对话框中显示的文本。在“提示”文本中使用回车符(Chr(13)),使显示的文本换行 ◇ <对话框标题>指定对话框的标题 ◇ 选项中的值可以是数值,也可以是符号常量 ◇ 如果省略了某一选项,必须加入相应的逗号分隔符 ◇ 若不需要返回值,则可以使用MsgBox的语句格式: MsgBox <提示>[,<对话框类型>[,对话框标题]] 示例:MsgBox ”输入的文件名是否正确”,52,”请确认”
信息对话框(MsgBox) ◇ <对话框类型>指定对话框中出现的按钮和图标,一般有3个参数 参数1——出现的按钮 参数2——图标类型 参数3——默认按钮 值 符号常量 显示的按钮 图标 按钮 vbokonly 确定 16 vbCritical 停止 vbDefaultButton1 第一个 1 vbokCancel 确定和取消 32 vbQuestion ? 256 vbDefaultButton2 第二个 2 vbAbortretryIgnore 终止、重试和取消 48 vbExclamation ! 512 vbDefaultButton3 第三个 3 vbYesNoCancel 是、否和取消 64 vbInformation 消息 4 vbYesNo 是和否 5 vbRetryCancel 重试和取消 ◇ MsgBox返回值指明了用户在对话框中选择了哪一个按钮 返回值 1 2 3 4 5 6 7 符号常量 vbOK vbCancel vbAbort vbRetry vbIgnore vbYes vbNO 对应按钮 确定 取消 终止 重试 忽略 是 否
例3.5 设计程序,由用户从输入框输入圆的半径,输出圆的周长和面积
例3.6 设计程序,在窗体上设置3个命令按钮。程序进入运行状态后,当单击“窗体变大”命令按钮时,窗体变大;当单击“窗体变小”命令按钮时,窗体变小;单击“退出”按钮时,退出
例3.7 在窗体上创建3个文本框。程序运行后,在第一个文本框中输入文字时,在另外两个文本框中显示相同的内容,但显示的字号和字体不同。单击“清除”按钮时,清除3个文本框中的内容
例3.8 设计程序,实现标签的显示和隐藏,并改变文字的颜色
习题3 1. 单选题 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 C B D AC A DBC 2. 多选题 1 AC 2 3 ABF 4 BE 3. 填空题 1 $ 000,124 2 Label1.Caption=“a*b=“ 3 Height, Width 4 5 Text1.SetFocus 6 Multiline, ScrollBars, 2 7 Microsoft, SOFT
编程及上机调试1 1. 设计程序,在指定范围内(1~n)产生3个随机整数,范围n在文本框中输入,3个随机整数显示在3个标签中
编程及上机调试2 2. 在窗体上建立4个文本框和2个命令按钮,当用户在第1、第2及第3个文本框中输入数据和单击“交换”按钮时,3个文本框内数据进行交换,即第2个文本框的内容放入第1个文本框,第3个文本框的内容放入第2个文本框,第1个文本框的内容放入第3个文本框。当单击“合并”按钮时,把3个文本框内当前内容进行合并,第1个文本框内容居前,接着是第2个文本框的内容,最后是第3个文本框的内容,合并后内容放入第4个文本框中
编程及上机调试3 3. 随机产生一个四位正整数,求出该数的倒序数,输出该数及倒序数。如产生的数为1234,则倒序数为4321。通过上机调试来完善下列程序代码
编程及上机调试4 4. 在窗体上设置一个命令按钮Cmd1和一个标签Lab1,两个控件的Visible属性值均为False,按钮的标题是“显示”。运行程序后,单击窗体时显示出命令按钮,再单击命令按钮时则显示标签,并在标签上显示“您已下达显示命令”
编程及上机调试5 5. 设计程序,从键盘上输入字符时,在窗体上立即显示所键入的字符和该字符的ASCII码。双击窗体时,清除窗体上的内容
编程及上机调试6 6. 要显示下图所示各消息对话框,请写出相应的实现语句