配色: 字号:
《Visual Basic程序设计教程(第3版)》第3章 顺序结构程序设计
2023-05-25 | 阅:  转:  |  分享 
  
一个完整的VB应用程序,一般都包含三部分内容,即 输入 → 处理 → 输出 可通过VB语句、各种控件实现输入输出操作
本章主要内容第3章 顺序结构程序设计赋值、注释、结束等语句使用Print方法输出数据窗体和基本控件对话框程序举例命令按钮标签文本框
输入框消息框退出 1. 赋值语句[Let]变量名=表达式 示例:x = 5 1.4 2. 注释
、结束和暂停语句 (1) 注释语句 Rem 注释内容 或
′ 注释内容 (2) 结束语句 End (3) 暂停语句 Stop 也可以通过单击工具栏
上的“中断”按钮来实现 使用Ctrl + Break组合键,可强制程序暂停运行赋值与输入输出′为单撇号(英文单引号)
(1)表达式中的变量必须是赋过值的,否则变量的初值自动取零值(变长字符串变量取空字符)。例如: a = 1
c = a + b + 3 ′b未赋过值,为0 执行后,c 值为 4
(2)赋值语句跟数学中等式具有不同的含意,例如 x = x + 1 表示把变量x的当前值加上1后再将结
果赋给变量 “先读后写”:读出x的内容 → 加1 → 写回x(覆盖原有内容)说明 (3)变量出现在赋值号的右边和左
边,其用途是不相同的。出现在右边表达式中时,变量是参与运算的元素(其值被读出);出现在左边时,变量起存放表达式的值的作用(被赋值)
。例如 x = 2 a = 3 x = 2a + 5 当执行第3行语句
“x=2a+5”时,将读出变量a的值(即3),把该值乘2后加5,然后将结果(11)赋值给变量x。 (4)赋值号两边的
数据类型必须一致,即同时为数值型或同时为字符型。说明编写的窗体单击事件过程代码如下: Private Sub Form_Cli
ck() Dim x As Integer, a As Integer Dim b As Integer,
c As Integer x = 36 a = Int(x / 10)
''求十位数 b = x Mod 10
''求个位数 c = b 10 + a
''生成新的数 Print "处理后的数: "
; c End Sub运行程序后单击窗体,输出结果是: 处理后的数:63例3.1 给定一个两位数(如36),交换个位数
和十位数的位置,把处理后的数显示在窗体上例3.1 编写的VB程序代码如下: Private Sub Form_Cli
ck() Dim x As Integer, a As Integer Dim b As Inte
ger, c As Integer x = InputBox(“输入一个2位数”)
‘运行时由用户任意给定一个2位数 a = Int(x / 10)
''求十位数 b = x Mod 10 ''求个位数 c = b
10 + a ''生成新的数 Print "处理后的数: "; c En
d Sub 执行后,弹出一个输入对话框,若用户输入“83”,输出结果: 处理后的数: 38 例3.1A 运
行时由用户任意给定一个两位数,交换个位数和十位数的位置,把处理后的数显示在网页上。例3.1A一种灵活输入方式InputBox是VB
函数,见P59例3.2 设计程序,实现两个文本框内容的交换 (1)在窗体上建立两个标签、两个文本框和一个命令按钮 (
2)编写程序代码 借助于另一个变量(假设为 t) ,并直接在控件中交换数据 Private Sub Command1
_Click() ′“交换”按钮 Dim t As String
t = Text1.Text Text1.Text = Text2.Text Text2.
Text = t End SubText1Text2例3.2有的对象属性具有变量的特性 编写的程序代码如下 : Pr
ivate Sub Command1_Click() ′“交换”按钮 t
= Text1.Text Text1.Text = Text2.Text
Text2.Text = t End Sub 采用变体型变量 说明:对于初学者来说,为了节省时间,有
时可以不采用Dim等语句声明就直接使用变量(默认为变体型,如t)。但在规范的软件开发中,通常都要求程序中使用的变量必须预先声明。没
用Dim语句声明t 是变体型变量 把上述程序改为以下形式,效果是否一样?Private Sub Command1
_Click() ′“交换”按钮 Text2.Text = Text1.Text
Text1.Text = Text2.Text End Sub思考题 下列程序的运行结果是什么?
运行时,在文本框Text1中输入5,单击“计算”按钮后,在文本框Text2显示的结果是什么? Private Sub
Command1_Click() ''“计算”按钮 Dim a As Integer, b
As Integer, c As Integer a = Val(Text1.Text) b = 7
c = 2 a Mod b / 3 + 1 a = a + 1 b = 2 b - 1
c = c + a + b Text2.Text = cEnd Sub思考题例3.2A20 3.3.1 Print方
法 用于显示(输出)文本 格式:[对象名.]Print [表达式列表] 说明:(1)使用的对象可以是窗
体等 Print “程序设计” ′在当前窗体上输出 Picture1.Pri
nt “程序设计” ′在图片框上输出 (2)表达式列表是一个或多个表达式,如果省略,则输出一个空行
3.3 使用Print方法输出数据 例3.3 Print输出示例 Private Sub Form_Click
() a = 3: b = 4 Print a, b, 4 + a,
Print 2 b Print a, , b Print
Print "a="; a, "b="; b End Sub 运行结果 例3.3分号“;”——
紧凑格式逗号“,”——按区格式(14个字符位置)语句行末尾有分号或逗号,则输出本行输出项后不换行输出数值数据时,前面有一个符号位(
正号以空格表示),后面留有一个空格;输出字符串时,前后不留空格每个Print输出一行。 1. Spc函数 格式:Sp
c(n) 功能:在输出下一项之前插入n个空格。 例如: Print "学号";Spc(2);"姓名";S
pc(5);"成绩" 输出结果(└┘表示空格): 学号└┘└┘姓名└┘└┘└┘└┘└┘成绩 3.3.
2 特殊打印格式 函数格式:Tab(n) 功能:把输出位置移到第n列。 例如: Pri
nt Tab(2);"学号";Tab(11);"姓名";Tab(21);"成绩" 输出结果是(1个汉字占2个位置):
└┘学号└┘└┘└┘└┘└┘姓名└┘└┘└┘└┘└┘└┘成绩 2. Tab函数 窗体(Form)是
设计VB应用程序的基本平台 窗体本身是一个对象,又是其他对象的载体或容器(容器对象) 多数应用程序是从窗
体开始执行的 ; 一个程序可以有多个窗体 3.4.1 窗体的基本属性 设置窗体的属性,可在程序设计时在属性窗口中
手工设置,也可以在程序运行时由代码实现 默认属性3.4 窗体 一些常用的窗体属性: ·Name属性:用于设置窗体
的名称。指定窗体的名称。只读, 不能在应用程序中修改 ·Caption属性:用于设置窗体标题栏上的标题
内容。 ·Maxbutton和Minbutton属性:用于设置最大化和最小化按钮 ·Height和Width属性:确定窗体的
初始高度和宽度 ·Left和Top属性:确定窗体的左上角在屏幕上的横、纵坐标 ·BackColor和ForeColor属性:
设置窗体的背景色和前景色 ·FontName属性:用于在窗体上设置字体。 ·FontSize属性:用于在窗体上设置字号。 ·
Visible属性:设置对象的可见性,默认值为True 坐标原点(0, 0)在窗体的左上角 坐标
轴刻度单位为缇(Twip,567缇为1厘米) 当前位置的横坐标(CurrentX)和纵坐标(CurrentY) YX
· (CurrentX, CurrentY) 当前位置窗体坐标系统 窗体事件过程的一般格式为:
Private Sub Form_事件名([参数表]) ……
End 在事件过程中只能使用Form,而在过程内对窗体进行引用时才会用到窗体名字(如Form1等
) 3.4.2 窗体的事件只能写成Form,不能写成Form1 与窗体有关的常用事件有以
下几种。 Load(装载)事件:启动程序时,通常先执行Form_Load Unload(卸载)事件
Click(单击)事件 DblClick(双击)事件 KeyPress(按键)事件:当按下键盘
上的某个健时,将触发KeyPress事件。其事件过程的格式为: Private Sub 对象_KeyPress(K
eyAscii As Integer) …… End Sub 示例:Private Sub
Form_KeyPress(KeyAscii As Integer) Print "你录入的键是:";
Chr(KeyAscii) End Sub 参数KeyAscii返回所按键的ASCII码 P53 (1)Sh
ow方法:用于快速显示一个窗体,使该窗体变成活动窗体。例如: Private Sub Form_Load()
Show Print “窗体已被Show显示出来!” End Sub (2)Print方法:用
于在窗体上输出表达式的值 (3)Cls方法:用于清除运行时在窗体中显示的文本或图形 (4)Move(移动)方法:用于移动
并改变窗体或控件的位置和大小 3.4.3 窗体的方法启动程序时,系统先自动执行本过程,但窗体未被显示出来通过Show显示窗体。使
后续的Print输出内容可见 1. 焦点 焦点(Focus,光标)是对象接收鼠标或键盘输入的能力。 要将
焦点赋给控件,有以下几种方法: (1)用鼠标选定对象 (2)按快捷键选定对象 (3)按Tab键或Sh
ift+Tab键在当前窗体的各对象之间切换焦点 (4)在代码中用SetFocus方法来设置焦点。例如: Text
1.SetFocus ′把焦点设置在文本框Text1 2. Tab键序 Tab键序是指
用户按Tab键时,焦点在控件间移动的顺序 反映在控件的TabIndex属性 3.4.4 焦点与Tab键序 设置以下
3个命令按钮: “显示”按钮:用于显示唐诗“静夜思” “清除”按钮:用于清除所生成的文本
“结束”按钮:结束程序的运行 设计步骤如下: (1)创建应用程序的用户界面和设置对象的属性 例3.4 显示唐诗“静夜思
”例3.4 (2)编写程序代码。三个按钮的事件过程代码: Private Sub CmdPrt_Click() B
ackColor = RGB(255, 255, 255) ′背景颜色,白色 ForeColor = RGB(0
, 0, 255) ′前景颜色,蓝色 FontName = "楷体_GB2312" Font
Size = 20 FontBold = True ′粗体 Cu
rrentX = 1200 : CurrentY = 350 ′显示位置 Print "静夜思(唐诗)"
Print ′空一行 FontName = "幼
圆" FontSize = 13 Print Spc(6); "床前明月光,疑是地上霜" Pr
int Print Spc(6); "举头望明月,低头思故乡" End Sub颜色值见附录B Private
Sub CmdCls_Click() Cls End Sub Private Sub CmdE
nd_Click() End End Sub 程序运行后,单击“显示”按钮,输出结果 3.5
基本控件 三种基本控件——命令按钮、标签和文本框 命令按钮(commandButten)
用于引发应用程序的某个操作 标签(Label)主要用来显示比较固定的提示性信息。 文本框(
TextBox)是一个文本编辑区域,用户可以在该区域中输入、编辑和显示文本内容。 几点说明: (1) Capti
on属性:对象的标题 可以在Caption属性中为控件指定一个访问键 例如: Command1.Capt
ion=“结束(&E)” 运行时只要用户同时按下Alt键和E键,就能执行该按钮命令 (2
) Enabled属性:决定控件是否对用户产生的事件作出响应 (3) Visible属性:决定控件是否可见,默认值为
True 当文本框的Text属性内容发生变化时,会触发文本框的Change事件。
当在文本框Text1中输入"ABC"三个字符时窗体上显示的是什么。 Private Sub Te
xt1_Change() Print Text1.Text
End Sub例3.4AAABABC思考题 在窗体上已经建立了两个文本框Text1和Text2,
并编写 如下三个事件过程: Private Sub Form_Click()
Text2.Text = "P" Text1.Text = "P" + Text1.Text
End Sub Private Sub Text1_Change() ′内容发生改变
Text2.Text = Text2.Text + "N" + Text1.Text End Sub
Private Sub Form_Load() Text2.Text = "M"
Text1.Text = "M" End Sub 运行程序后单击窗体,则在文本框Text2中显示的
内容是 A. PNM B. NPM C. PNP D. PNPM 例3.4B
D思考题 3.6 使用对话框 对话框既可以用来显示信息,也可以用于输入信息 VB中能够建立两种预制对话框:输入
框和消息框 使用系统提供的函数(InputBox和MsgBox),而不必为对话框另建窗体 3.6.1 输入对话框
用于产生一个能接收用户输入的对话框 格式: 变量=InputBox(提示[,标题][,缺省值][,xpos][
,ypos]) 举例: filename=InputBox("请输入文件名(不超过8个字符)", "文件名","vb
file") 将产生一个如下对话框 例3.5A filename=InputBox("请输入文件名"
+ Chr(13) + "(不超过8个字符)"
, "文件名", "vbfile") Chr(13)能使后面的文本换行显示 例3.5 通过InputBox函数输入一个华
氏温度,然后将其转换为摄氏温度输出。显示结果保留两位小数 转换公式为 C =(F-32)5/9Privat
e Sub Form_Load() Dim f As Single, c As Single f = Val(Inpu
tBox("输入华氏温度")) c = (f - 32) 5 / 9 Label1.Caption = "输入的华
氏温度为:" & Format(f, "00.00") Label2.Caption = "转换成摄氏温度为:" & For
mat(c, "00.00")End Sub 运行后弹出一个输入对话框。当用户在对话框中输入一个华氏温度(如9
0)后单击对话框的“确定”按钮或按回车键,输入的字符串将返回给程序。最后在两个标签上显示出处理结果。例3.5通过InputBox函
数输入一个华氏温度用标签Label1显示摄氏温度值用标签Label2显示摄氏温度值 使用MsgBox函数,可以产生一个对话框
来显示消息 当用户单击某个按钮后,将返回一个数值以标明用户单击了哪个按钮 其语法格式是: 变量=MsgB
ox(提示[,对话框类型[,对话框标题]]) 例:y = MsgBox(“输入文件名是否正确”,52,”请确认
”) “对话框类型”一般有3个参数, 4+48+0 出现按钮;图标类型;默认按钮; 函数
返回值 示例: 3.6.2 消息对话框例3.5B使用消息框 例3.6 通过输入框输入姓名,然后再消息
框中显示出来 Private Sub Form_Load() x = InputBox("输入您的
姓名", "您叫什么名?") y = MsgBox( x & "先生:祝您马到功成!") End
Sub例3.6输入框消息框 1. 返回一个值。从返回值中可以知道用户按下的是哪个按钮(表3.4)。例如
y = MsgBox(“输入文件名是否正确”,52,”请确认”) 若y为1,表示用户按下的是“确定”按钮,依此类
推。 程序通过判断y值(如采用条件语句IF-THEN),再根据用户按下的是什么按钮,再做不同的处理。
2. 不返回值。例如 MsgBox “输入文件名是否正确”,52,”请确认” MsgBox “输入文件
名是否正确” 采用这种格式时,不知道用户按下的是什么按钮。这种格式可以使用在不需要知道用户按钮情况的场合。MsgBox的
两种格式 (1)创建应用程序的用户界面和设置对象属性 (2)编写程序代码例3.7 设计一个密码输入的简单检验程序。密码
假定为“123456”,密码输入时在屏幕上不显示输入的字符,而以“”代替。例3.7密码检验运行界面
密码输入错误时弹出的消息框Private Sub Command1_Click()
''“确定”命令按钮 Dim p As Integer If Text1.Text = "123
456" Then MsgBox "欢迎您用机!" Else p = MsgBox("密码错误
!", 5 + 48, "输入密码") ''在消息框上显示“重试”和''“取消”按钮,以及“!”图标
If p = 4 Then ''4表示单击了“重试”按钮 T
ext1.SetFocus ''焦点定位在原输入的文本框中 Else M
sgBox "密码错误,不重试了!" End End If End IfEnd Sub
Private Sub Form_Load() Text1.PasswordChar = ""
''设置以“”替代显示 Text1.Text = ""End Sub 一个密码输入的简单检验程序。密码假定为“1
23456”,密码输入时在屏幕上不显示输入的字符,而以“”代替。 在窗体上有一个文本框,然后编写如下事件过程:
Private Sub Form_Click() x = InputBox("请
输入一个整数") Print x + Text1.text End Sub
程序运行时,在文本框中输入456,然后单击窗体,在输入对话框中输入123,单击“确定”按钮后,在窗体上显示的内容是
A. 123 B. 456 C. 579 D. 12
3456例3.6AD思考题 例3.8 从一个邮件地址中分解出用户名和主机域名 电子邮件地址一般由用户名和主机域名两部分组成
。如“zsuhdh2010@163.com”,由用户名“zsuhdh2010”和主机域名“163.com”组成。 先从x中找出
“@”字符,再以此字符为界拆分成两个字符串。Private Sub Form_Load() Dim x As String
, p As Integer, a As String, b As String Show x = InputBo
x("输入“邮件地址”的内容") p = InStr(x, "@") ''查找字
符@,得到@号的位置 a = Left(x, p - 1) ''取@左边部分
b = Mid(x, p + 1) ''取@右边部分 Print "用户名:
" & a Print "主机域名: " & bEnd Sub 程序运行后弹出一个输入对话框,当输入“zsuhdh2
010@163.com”后单击“确定”按钮,输出结果如下: 用户名: zsuhdh2010 主机域
名: 163.com 3.7 程序举例例3.8 例3.9 控制窗体“变大”和“变小” 在窗体上设置三个命令
按钮,程序进入运行状态后,当单击“窗体变大”命令按钮时,窗体变大,单击“窗体变小”按钮时,窗体变小。单击“退出”按钮时,则退出。
(1)建立应用程序的用户界面和设置对象属性 3.7 程序举例例3.9 (2)编写程序代码 Private Su
b Form_Load() Form1.Height = 4000 ''H
eight为窗体的高度,P52 Form1.Width = 4000 ''
Width为窗体的宽度 Form1.Top = 1000 ''设置
窗体的初始位置(y) Form1.Left = 1000 ''设置窗
体的初始位置(x) End Sub Private Sub Command1_Click()
''“窗体变大”按钮 Form1.Height = Form1.Height +
200 ''每次增加200点 Form1.Width = Form1.Width + 200
End Sub Private Sub Command2_Click()
''“窗体变小”按钮 Form1.Height = Form1.Height - 200
''每次减少200点 Form1.Width = Form1.Width - 200 End
Sub 在第一个文本框中输入文字时,在另外两个文本框中显示同样相同的内容,但显示的字号和字体不同。单击
“清除”按钮时则清除三个文本框中的内容例3.10 在三个文本框中显示不同的文字效果例3.10 (1)建立应用程序的用户界面和设置对
象属性 (2)编写程序代码 Private Sub Form_Load() Text2.FontName
= "隶书" Text2.FontSize = 16 Text3.FontName = "楷体_
GB2312" Text3.FontSize = 20 End Sub Private Sub T
ext1_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 (1)在窗体上建立一个标签(Labe
l1)和三个命令按钮(Command1、Command2和Command3) 三个命令按钮分别使用访问键Alt+C、Alt+H和Alt+D例3.11 实现标签的显示和隐藏, 以及改变文字的颜色例3.11 (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
献花(0)
+1
(本文系大高老师原创)