9299.net
大学生考试网 让学习变简单
当前位置:首页 >> 数学 >>

VB第3章电子讲稿(赋值与输入输出)_图文

VB第3章电子讲稿(赋值与输入输出)_图文

第3章 赋值与输入输出
一个完整的VB应用程序,一般都包含三部分内容,即 输入 → 处理 → 输出 可通过VB语句、各种控件实现输入输出操作

本章主要内容
赋值语句 常用基本语句 使用Print方法输出数据 窗体和基本控件 命令按钮/标签/文本框 对话框 输入对话框/消息对话框 程序举例

3.1 赋值语句
赋值语句是程序设计中最基本、最常用的语句
格式:变量名=表达式 功能:计算右端的表达式,并把结果赋值给左端的变量

例3.1 已知a=6,b=9,计算c=√a2 + b2
编写的窗体单击事件过程代码如下: Private Sub Form_Click() Dim a As Single, b As Single, c As Single a=6 b=9 c = Sqr(a * a + b * b) Print "c=" & c End Sub 运行程序后单击窗体,输出结果如下: C=10.81665

本事件过程采用的是顺序程序结构,运行的过程是: 声明3个单精度变量a,b,c 6→a 9→b 计算表达式,其结果10.81665→c 输出结果

赋值含义: 将值送到变量的存储单元中去

说明:
(1)表达式中的变量必须是赋过值的,否则变量的 初值自动取零值(变长字符串变量取空字符)。例如:
a = 1 c = a + b + 3 执行后,c 值为 4
′b未赋过值,为0

(2)利用赋值语句,可以改变变量的值,因此,同 一变量在不同时刻可以取不同的值。

“=”符号有两个意义 赋值号、关系运算符等号

形式相同,系统会根据所处的位置判断符号的意义。

赋值号左边只能是变量,不能是常量、常数符号、 表达式。下面均为错误的赋值语句: Now()=x+y
5=sqr(s)+x+y

'左边是表达式(函数)
? 左边是常量

X+y=z

? 左边是表达式

例3.2 示例
Private Sub Form_Click() a = 3 : Print "*A=" & a a = 7 : Print "**A=" & a a = a * 2 + 3 : Print "***A=" & a End Sub 运行程序后单击窗体,输出的结果如下: *A=3 **A=7 ***A=17 (3)赋值语句跟数学中等式具有不同的含意,例如赋值语 句x=x+1,表示把变量x的当前值加上1后再将结果赋给变量
“先读后写”:读出x的内容 → 加1 → 写回x(覆盖原有内容)

例3.3


设计一个“万年历”程序,用来查看
年的元旦是星期几

设计步骤如下: (1)分析:计算某年y的元旦是星期几,可由以下 式子得出:
1 F = y-1 +[(y-1)/4]-[(y-1)/100]+[(y-1)/400]+

其中[ ]表示求整 K = F Mod 7 F除以7的余数 y为某年公元年号,计算出K为星期几

(2)创建应用程序的用户界面

(3)设置对象属性

(4)编写程序代码
功能要求:用户在“输入年份”文本框(Text1)中输入某 一年份,单击“查看”按钮时,则在“星期”文本框(Text2) 中显示出星期几

编写的“查看”按钮(Command1)Click事件过程代 码如下:
Private Sub Command1_Click() Dim y As Integer, f As Integer, k As Intege y = Val(Text1.Text) -1 f = y + Int(y/4) – Int(y/100) + Int(y/400) + 1 k = f Mod 7 ?等价于 f - Int(f / 7) * 7 吗 ? Text2.Text = k End Sub

运行结果(见上图)

3.2 常用基本语句
3.2.1 注释语句Rem
在程序的适应位置加上必要的注释,可以提高程序的可读性 语法格式: Rem 注释内容 或 ? 注释内容 功能:在程序中加入注释内容,以便于对程序的理解。 例如 Rem 交换变量a和b的值 c=a ?c为临时单元 a=b b=c 说明:(1)如果使用关键字Rem,在Rem和注释内容之间要 加一个空格。 (2)在其他语句后使用Rem关键字,必须使用冒号(:)与前面 的语句隔开。注释符(单引号’)可以直接写在其他语句后面。

3.2.2 加载对象语句Load
语法格式:Load 对象名
功能:把对象名代表的窗体对象、控件数组元素等加载 到内存中。
说明:使用Load语句可以加载窗体,但不显示窗体。当 VB加载窗体对象时,先把窗体属性设置为初始值,再执行 Load事件过程。 例如 Load Forml Load Option(2)
?加载窗体Forml ?加载控件数组中的一个元素

3.2.3 卸载语句Unload
格式:Unload 对象名 功能:从内存中卸载指定窗体或控件。 如果卸载的对象是程序惟一的窗体,则将终止程 序的执行 例如
Private Sub Command1_Click() Unload Me ′卸载当前窗体 End Sub

Me是系统关键字,用来代表当前窗体

(3)Show方法 显示窗体 [窗体名称].Show [模式] 模式为0:关闭才能对其它窗体进行操作 模式为1 :可以同时对其它窗体进行操作 (4) Hide方法 隐藏窗体 [窗体名称.] Hide

3.2.4 结束语句End
格式:End 功能:结束程序的运行。 也可以单击工具栏上的“结束”按钮

3.2.5 暂停语句Stop
格式:Stop 功能:暂停程序的运行。可用于调试程序(设置断点) 也可以通过单击工具栏上的“中断”按钮来实现 使用Ctrl + Break组合键

3.3 使用Print方法输出数据
3.3.1 Print方法
用于显示(输出)文本 格式:[对象名.]Print [表达式列表] 说明:(1)使用的对象可以是窗体等 Print “程序设计” ?在当前窗体上输出 Picture1.Print “程序设计” ?在图片框上输出 (2)当输出多个表达式时,各表达式之间用分号“;”(紧 凑格式)或逗号“,”(按区格式)隔开。 分号:定位在上一个被显示的字符之后 逗号:定位在下一个打印区开始处(每区14列)

(3)表达式列表是一个或多个表达式,如果省略,则输出 一个空行

例:Private Sub Form_Click()
a=2 b = "VB" Print 50 * a Print b Print Print "The Total is" End Sub

'计算并输出表达式的值

'输出变量的值
'输出空行 '输出字符串常量

运行结果:

输出数值数据时,前面有一个符号位(正号以空格表示), 后面留有一个空格;输出字符串时,前后不留空格。 例:Private Sub Form_Click() a = 3: b = 4 Print a, b, 4 + a, Print 2 * b Print a, , b Print "a="; a, "b="; b End Sub
运行结果

(4)若语句行末尾有分号或逗号,则输出本行输出项后不换行

例3.4 使用Print方法输出全班学生的平均年龄
已知18岁6人,19岁21人,20岁23人,21岁15人
编写的窗体单击事件过程代码如下: Private Sub Form_Click() Dim a As Integer, b As Integer, c As Integer Dim d As Integer, s As Integer, m As Single a = 6 : b = 21 : c = 23 : d = 15 s=a+b+c+d m = (a * 18 + b * 19 + c * 20 + d * 21) / s
'以下舍入到小数后1位

Print "平均年龄:"; Int(m * 10 + 0.5) / 10 End Sub
运行程序后单击窗体,输出结果是:

平均年龄:19.7

3.3.2 特殊打印格式 1. Spc函数
格式:Spc(n) 功能:在输出下一项之前插入n个空格。 例如: Print "学号";Spc(2);"姓名";Spc(5);"成绩" 输出结果(└┘表示空格): 学号└┘└┘姓名└┘└┘└┘└┘└┘成绩

2. Tab函数
函数格式:Tab(n) 功能:把输出位置移到第n列。 例如:
Print Tab(2);"学号";Tab(11);"姓名";Tab(21);"成绩"

输出结果是(1个汉字占2个位置):
└┘学号└┘└┘└┘└┘└┘姓名└┘└┘└┘└┘└┘└┘成绩

例3.5 使用Tab对输出进行定位
程序代码如下:
Private Sub Form_Click() Print Print Tab(15); "学号"; Tab(26); "姓名"; Tab(36); "成绩" Print Tab(14); String(27, "-") '输出27个减号字符“-‖ Print Tab(14); "20011001"; Tab(26); "张小三"; Tab(36); 57 Print Tab(14); "20011003"; Tab(26); "李小四"; Tab(36); 69 Print Tab(14); "20011012"; Tab(26); "马小五"; Tab(36); 92 Print Tab(14); String(27, "-") '输出27个减号字符“-‖ End Sub

运行结果

思考:如何实现下边界面:

3. Format函数
格式:Format(表达式 [,格式串]) 功能:根据格式串规定的格式来输出表达式的值
a=4513.7 : b=3456.78 : TimeVar=#08:30:05# Print Format(a, "##,###.##") Print Format(a, "$##,###.00") Print Format(b, "+##,###.#") Print Format(TimeVar, "h:m:s")

输出结果是:
4,513.7 $4,513.70 +3,456.8 8:30:5 格式符号#和0都能显示数字,但符号#会剔除不必要的0, 符号0会按规定补足0

3.4 窗体
窗体(Form)是设计VB应用程序的基本平台 窗体本身是一个对象,又是其他对象的载体或容器 多数应用程序是从窗体开始执行的 ; 一个程序可以有多个窗体

3.4.1 窗体的基本属性
设置窗体的属性,可在程序设计时在属性窗口中手工 设置,也可以在程序运行时由代码实现 默认属性

一些常用的窗体属性:
·Name属性:用于设置窗体的名称。指定窗体的名称。只读,
不能在应用程序中修改 ·Caption属性:用于设置窗体标题栏上的标题内容。

·Maxbutton和Minbutton属性:用于设置最大化和最小化按钮 ·Height和Width属性:确定窗体的初始高度和宽度 ·Left和Top属性:确定窗体的左上角在屏幕上的横、纵坐标 ·Appearance属性:用于设置窗体的外观是平面还是三维的 ·BackColor和ForeColor属性:设置窗体的背景色和前景色 ·Picture属性:用于在窗体上设置要显示的图形。
[对象.]Picture=LoadPicture("文件名")

· Visible(可见性):设置对象的可见性,默认值为True

Font 属性组 文本的外观 FontName字体、FontSize大小 FontBold粗体、FontItalic斜体、 FontStrikethru 删除线、 FontUnderline 下划线

窗体坐标系统
X

·(CurrentX, CurrentY)
当前位置

Y

坐标原点(0, 0)在窗体的左上角 坐标轴刻度单位为缇(Twip,567缇为1厘米) 当前位置的横坐标(CurrentX)和纵坐标(CurrentY)

3.4.2 窗体的事件
窗体作为对象,能够对事件作出响应。与窗体有关的常用 事件有以下几种。

窗体事件过程的一般格式为: Private Sub Form_事件名([参数表]) …… End Sub
不管窗体名字如何定义,但在事件过程中只能使用Form, 而在过程内对窗体进行引用时才会用到窗体名字(如Form1等)

与窗体有关的常用事件有以下几种。 Load:是在窗体被装入工作区时触发的事件。 作用:一般用于在启动应用程序时对属性和变量进行初 始化。 例如: Load事件:在标题栏显示“装入窗体”,并装入一背景 图; Click事件:标题栏显示“单击窗体”,装入另一图 DblClick 事件:标题栏显示“双击窗体” ,清除背景图。

3.4.3

窗体的方法

(1)Show方法:用于快速显示一个窗体,使该窗体 变成活动窗体 (2)Print方法:用于在窗体上输出表达式的值

(3)Cls方法:用于清除运行时在窗体中显示的文本 或图形 (4)Move(移动)方法:用于移动并改变窗体或控件的 位置和大小 [对象.]Move 左边距离[,上边距离[,宽度[,高度]]]

3.4.4 焦点与Tab键序
1. 焦点
焦点(Focus)是对象接收鼠标或键盘输入的能力。 当对象得到或失去焦点时,分别会产生GotFocus或LostFocus 事件。 要将焦点赋给控件,有以下几种方法: (1)用鼠标选定对象 (2)按快捷键选定对象 (3)按Tab键或Shift+Tab键在当前窗体的各对象之间切换焦点 (4)在代码中用SetFocus方法来设置焦点。例如: Text1.SetFocus ′把焦点设置在文本框Text1

2. Tab键序
Tab键序是指用户按Tab键时,焦点在控件间移动的顺序 反映在控件的TabIndex属性

例3.6 显示唐诗“静夜思”
设置以下3个命令按钮: “显示”按钮:用于显示唐诗“静夜思” “清除”按钮:用于清除所生成的文本 “结束”按钮:结束程序的运行 设计步骤如下: (1)创建应用程序的用户界面和设置对象的属性

(2)编写程序代码。编写的三个按钮的Click事件过程代码如下: Private Sub Command1_Click() BackColor = RGB(255, 255, 255) ForeColor = RGB(0, 0, 255) FontName = "楷体_GB2312" FontSize = 20 CurrentX = 1200 CurrentY = 350 Print "静夜思(唐诗)" FontName = "幼圆" Print FontSize = 13 Print Spc(6); "床前明月光,疑是地上霜" Print Print Spc(6); "举头望明月,低头思故乡" End Sub

Private Sub Command2_Click() Cls End Sub Private Sub Command3_Click() End End Sub

程序运行后,单击“显示”按钮,输出结果

3.5 基本控件
需要在窗体中放置各种控件,才能实现用户与应用程序 之间的信息交互 三种基本控件——命令按钮、标签和文本框

3.5.1 控件的公共属性
(1)Name属性:控件的Name属性(名称)必须以字母开 头,其后可以是字母、数字和下划线,名称长度不能超过40 个字符 (2)Caption属性:任意的字符串。以通过程序代码改变其 值,例如: Command1.Caption=―结束“
可以在Caption属性中为控件指定一个访问键。例如,将命令按钮的 Caption属性设置为“结束(&E)‖,则运行时该控件外观如图3.7所示,只 要用户同时按下Alt键和E键,就能执行该按钮命令。

(3) Enabled属性:该属性决定控件是否对用户产生的事件 作出响应 (4) Visible属性 该属性决定控件是否可见,默认值为True。 (5)Height、Width、Top和Left属性:Height和Width属性 确定控件的高度和宽度,Top和Lelf属性确定控件在窗体中 的位置
X Top Left Width Y

Height

(6)BackColor和ForeColor属性

(7)FontName、FontSize、FontBold、FontItalic、 FontStrikethru和FontUnderline属性 (8)Font属性:确定控件中显示的文本所用字体的 样式、大小、字体效果等

3.5.2 命令按钮
用于接收用户的操作信息,并引发应用程序的某个操作
1.常用属性 (1)Default属性和Cancel属性 Default属性和Cancel属性分别用于设置“默认按钮”和 “取消按钮” (2)Style属性 设置命令按钮的外观 ? 0 —— Standard:默认,按钮上不能显示图形 ? 1 —— Graphical:按钮上可以显示图形和文字 (3)Picture 在按钮装入图形 2.常用事件和方法 命令按钮最常用的事件是Click(单击)事件,但不支持 DblClick(双击)事件。 命令按钮常用的方法是SetFocus方法。

3.5.3 标签
标签(Label)主要用来显示比较固定的提示性信息。 1.常用属性 (1)caption属性 设置标签标题 (2)Alignment属性 设置标签中文本的对齐方式 (3)AutoSize属性 确定标签的大小是否根据标签的内容自动调整大小 (4)BorderStyle属性 设置标签的边框外观 2.常用事件和方法 标签最常用的事件是Click(单击)事件和DblClick(双击)事件。 标签常用的方法是SetFocus方法。

3.5.4 文本框
文本框(TextBox)是一个文本编辑区域,用户可以在该区 域中输入、编辑和显示文本内容。 默认情况下,文本框只能输入单行文本,并且最多可以 输入2048个字符

1. 常用属性
文本框具有一般控件的常用属性,但文本框没有 Caption属性 (1) Maxlength属性: 确定文本框中文本的最大长度 (2) Multiline属性: 指定文本框中是否允许显示和输入多 行文本 (3) PasswordChar属性:确定在文本框中是否显示用户输 入的字符,常用于密码输入 (4) ScrollBars属性:指定在文本框中是否出现滚动条

(5)SelStart属性、Sellength属性和SelText属性 (6)Text属性 设置或返回文本框中所包含的文本内容。 (7)Locked属性

2.常用事件和方法
文本框支持Click、DblClick等鼠标事件,同时支持 Change、GotFocus、LostFocus等事件 文本框常用方法有SetFocus方法和Move方法

例3.7 输入一个总秒数,化成小时、分钟和秒数
如输入4852秒,则应输出1小时20分52秒 (1)创建应用程序的用户界面和设置对象属性 (2)编写程序代码 Private Sub Command1_Click() Dim h As Integer, m As Integer, s As Integer, t As Integer t = Val(Text1.Text) h = t \ 3600 t = t - h * 3600 m = t \ 60 s = t - m * 60 Private Sub Command2_Click() Text2.Text = h End Text3.Text = m End Sub Text4.Text = s End Sub

3.6 使用对话框
对话框既可以用来显示信息,也可以用于输入信息 VB中能够建立两种预制对话框:输入框和消息框 使用系统提供的函数(InputBox和MsgBox),而不必为 对话框另建窗体
先看以下一个例子

例3.7a 通过输入框输入姓名,然后再消息框中显示出来 Private Sub Form_Load() x = InputBox("输入您的姓名", "您叫什么名?") MsgBox (x & "先生:祝您马到功成!") End Sub

3.6.1 输入对话框
用于产生一个能接收用户输入的对话框 格式: 变量=InputBox(提示[,标题][,缺省值][,xpos][,ypos]) 举例
filename$=InputBox(―请输入文件名(不超过8个字符)‖,”文件 名”,”vbfile‖)

将产生一个如下对话框

filename$=InputBox("请输入文件名" + Chr(13) + "(不超过8个字符)", "文件名", "vbfile")

3.6.2 消息对话框
使用MsgBox函数,可以产生一个对话框来显示消息 当用户单击某个按钮后,将返回一个数值以标明用户单击 了哪个按钮 其语法格式是: 变量=MsgBox(提示[,对话框类型[,对话框标题]])? 例:y = MsgBox(“输入文件名是否正确”,52,”请确认”) “对话框类型”一般有3个参数, 4+48+0 出现按钮;图标类型;默认按钮; 函数返回值(例3_9b)

MsgBox的两种格式
1. 返回一个值。从返回值中可以知道用户按下的 是哪个按钮(表3.5)。例如
y = MsgBox(“输入文件名是否正确”,52,”请确认”)

若y为1,表示用户按下的是“确定”按钮,依此类推。 程序通过判断y值(如采用条件语句IF-THEN),再根据用 户按下的是什么按钮,再做不同的处理。

2. 不返回值。例如
MsgBox “输入文件名是否正确”,52,”请确认” MsgBox “输入文件名是否正确” 采用这种格式时,不知道用户按下的是什么按钮。这种 格式可以使用在不需要知道用户按钮情况的场合。

例3.8

从输入框中输入圆的半径,计算圆的周长和面积

(1)创建应用程序的用户界面和设置对象属性 (2)编写程序代码
Private Sub Command1_Click() Dim r As Single, k As Single, s As Single r = Val(InputBox("请输入圆的半径", "计算圆的周长和面积")) k = 2 * 3.14159 * r s = 3.14159 * r * r Text1.Text = k Text2.Text = s MsgBox "计算已完成", , "例3.10" End Sub Private Sub Command2_Click() End End Sub

当输入的圆半径为65时,运行结果

3.7 程序举例
例3.9 编写程序,实现两个文本框内容的交换
(1)在窗体上建立两个标签、两个文本框和一个命令按钮 (2)编写程序代码 Private Sub Command1_Click() ′―交换”按钮 Dim t As String, a As String, b As String

a = Text1.Text b = Text2.Text t=a a=b b=t Text1.Text = a Text2.Text = b End Sub

输入 从控件中取输入数据 Text1 处理 使用临时单元变量t 输出 把处理后的数 据传送给控件 Text2

另一解法:采用变体型变量和直接在控件中交 换数据,编写的程序代码如下 :(例3.9a)
Private Sub Command1_Click() t = Text1.Text Text1.Text = Text2.Text Text2.Text = t End Sub
?―交换”按钮

说明:对于初学者来说,为了节省时间,有时可 以不采用Dim等语句声明就直接使用变量(默认为变体 型,如t)。但在规范的软件开发中,通常都要求程序 中使用的变量必须预先声明。

错例一:(例3.9b)
Private Sub Command1_Click() Dim t As String, a As String, b As String t=a a=b b=t 奇怪??! 在两个文本框 中显示都是空白! Text1.Text = a Text2.Text = b End Sub
缺少“输入”。即没有从 文本框中取到要处理的数 据

想一想 错在哪?

错例二:(例3.9c)
Private Sub Command1_Click() Dim t As String, a As String, b As String a = Text1.Text b = Text2.Text 好像在窗体上没 t=a 有看到处理结果! a=b b=t End Sub
缺少“输出”。即没有把处理 后的内存变量内容传送给文本 框

错例三:(例3.9d)
Private Sub Command1_Click()
Dim t As String, a As String, b As String a = Val(Text1.Text) b = Val(Text2.Text) t=a 如果输入的是非 数字文本,结果 a=b 会怎样呢??? b=t Text1.Text = a Text2.Text = b

想一想 错在哪?

End Sub

例3.10 控制窗体“变大”和“变小”
在窗体上设置三个命令按钮(图3.15),程序进入运行状态 后,当单击“窗体变大”命令按钮时,窗体变大,单击 “窗体变小”按钮时,窗体变小。单击“退出”按钮时, 则退出。

(1)建立应用程序的用户界面和设置对象属性 (2)编写程序代码
Private Sub Form_Load() Form1.Height = 4000 Form1.Width = 4000 Form1.Top = 1000 Form1.Left = 1000 End Sub Private Sub Command1_Click() Form1.Height = Form1.Height + 200 Form1.Width = Form1.Width + 200 End Sub Private Sub Command2_Click() Form1.Height = Form1.Height - 200 Form1.Width = Form1.Width - 200 End Sub

'―窗体变大”按钮 '每次增加200点

'―窗体变小”按钮

'每次减少200点

例3.11 在三个文本框中显示不同的文字效果
在第一个文本框中输入文字时,在另外两个文本框中 显示同样相同的内容,但显示的字号和字体不同。单击 “清除”按钮时则清除三个文本框中的内容

(1)建立应用程序的用户界面和设置对象属性 (2)编写程序代码 Private Sub Form_Load() Text2.FontName = "隶书" Text2.FontSize = 16 Text3.FontName = "楷体_GB2312" Text3.FontSize = 20 End Sub Private Sub Text1_Change() Text2.Text = Text1.Text Text3.Text = Text1.Text End Sub Private Sub Command1_Click() '―清除”按钮 Text1.Text = "" '清除文本框Text1的内容 Text2.Text = "" '清除文本框Text2的内容 Text3.Text = "" '清除文本框Text3的内容 Text1.SetFocus '设置焦点 End Sub

例3.12 实现标签的显示和隐藏,以及改变文字的颜色
(1)在窗体上建立一个标签(Label1)和三个命令 按钮(Command1、Command2和Command3)
三个命令按钮分别使用访问键Alt+C、Alt+H和Alt+D

(2)编写程序代码
Private Sub Form_Load() Randomize Label1.BackColor = QBColor(15) Label1.ForeColor = QBColor(0) Label1.FontSize = 18 End Sub Private Sub Command1_Click() Clr = Int(15 * Rnd) Label1.ForeColor = QBColor(Clr) End Sub Private Sub Command2_Click() Label1.Visible = False End Sub Private Sub Command3_Click() Label1.Visible = True End Sub
'背景色 '文字颜色 '字体大小 '―改变文字颜色”按钮 '产生随机颜色码

'―隐藏标签”按钮 '隐藏标签 '―显示标签”按钮 '显示标签


网站首页 | 网站地图 | 学霸百科
All rights reserved Powered by 大学生考试网 9299.net
文档资料库内容来自网络,如有侵犯请联系客服。zhit325@qq.com