Visual Basic程序设计
第4章 顺序结构程序设计 ● 4.1 顺序结构程序的概念 ● 4.2 数据输出 ● 4.5 使用对话框 ● 习题4 ● 4.4 编写代码 第4章 顺序结构程序设计 ● 4.1 顺序结构程序的概念 ● 4.2 数据输出 ● 4.2.1 直接输出到窗体 ● 4 2.2 使用标签控件输出 ● 4.3 常用基本语句 ● 4.3.1 赋值语句Let ● 4.3.2 卸载对象语句Unload ● 4.3.3 注释语句Rem ● 4.4 编写代码 ● 4.4.1 文本框控件 ● 4.4.2 焦点与Tab键序 ● 4.4.3 框架控件 ● 4.5 使用对话框 ● 4.5.1 输入框(InputBox)函数 ● 4.5.2 消息框(MsgBox)函数 ● 4.4.3 工程的编译 ● 习题4
● 4.1 顺序结构程序的概念 ● 4.2 数据输出 ● 4.2.1 直接输出到窗体 1. 使用Print方法 ● 4.1 顺序结构程序的概念 ● 4.2 数据输出 ● 4.2.1 直接输出到窗体 1. 使用Print方法 语法格式为:[〈对象名〉.] Print [〈表达式表〉] [{ , | ; }] 【例4-1】用Print方法输出数据到窗体上,程序的执行结果如图4-2所示。
窗体Form的Load事件代码如下: Private Sub Form_Load() Show Print "aa" & "bb", -5 * 6, Not 2 <= 3 Print "aa" & "bb"; -5 * 6; Not 2 <= 3 Print ' 如果Print后不用任何项,则输出一个空行 Print Now ' 显示当前日期和时间 Print FontSize = 18 ' 设置字体尺寸 Print "30+60=", Print 30 + 60 Print "30+60="; 30 + 60 End Sub
【例4-2】使用Print方法在窗体中直接输出字符串或数值表达式的值。 Private Sub Command1_Click() Print Print "2 * 3 + 4 ="; 2 * 3 + 4 ' 使用“;”分割符 Print ' 输出一个空行 Print "祝你学好" Print , "Visual" ' 使用“,”分割符 Print , , "Baisc" ' 使用两个“,”分割符 Print " 祝您学好", ' 在行末使用“,”分割符 Print "Visual"; " Baisc"
2. 与Print方法有关的函数 (1) Tab函数 格式为:Tab(n); 【例4-3】使用Tab函数对齐输出,如图4-10所示。 编写窗体Form的Click(单击)事件代码: Private Sub Form_Click() Show FontSize = 12 ' 设置输出文本字体的大小 Print Print Tab(10); "姓名"; Tab(25); "性别"; Tab(40); "年龄" Print Tab(10); "刘 榴"; Tab(25); "女"; Tab(40); 16 Print Tab(10); "韩小强"; Tab(25); "男"; Tab(40); 18 End Sub (2) Spc函数 格式为:Spc(n);
3. 使用位置属性和字体属性 【例4-4】如图4-11所示,按某字体大小,把字符串“五光十色”输出到窗体的某一坐标位置(800,600)。 3) 编写事件代码。编写“显示”命令按钮Command1的Click(单击)事件代码如下: Private Sub Command1_Click() Dim a As String FontName = "隶书" ' 设置输出文本的字体 FontSize = 18 ' 设置输出字体的大小 a = "五光十色" CurrentX = 800 ' 设置输出的水平位置 CurrentY = 600 ' 设置输出的垂直位置 Show Print a ' 输出文本 End Sub
4. 清除方法Cls Cls方法的语法格式为:[〈对象名〉.] Cls 【例4-5】在例4-4中使用Cls方法清除窗体中由Print方法所生成的文本,如图4-13所示。 并编写其Click事件代码: Private Sub Command2_Click() Cls End Sub ● 4 2.2 使用标签控件输出 1. 标签控件的常用属性 (1) Caption属性 (2) BorderStyle属性 (3) 其他外观属性 2. 标签使用示例 【例4-6】如图4-14所示,使标签控件具有边框,并修改标签属性改为无边框。
3) 编写事件代码。编写“单击”命令按钮Command1的Click(单击)事件代码如下: Private Sub Command1_Click() Label1.Caption = "健康、快乐和幸福" ' 改变Label1的标题内容 Label2.Caption = “永远与您相伴” ' 改变Label2的标题内容 Label2.Alignment = 2 ' Label2的内容居中显示 Label2.BorderStyle = 0 ' 将Label2的边框样式改为无边框 End Sub ● 4.3 常用基本语句 4.3.1 赋值语句Let 赋值语句的语法格式为:[Let] 〈名称〉=〈表达式〉 【例4-7】设计程序交换两变量的值,如图4-15所示。 编写“交换两变量的值”命令按钮Command1的Click(单击)事件代码如下: Private Sub Command1_Click() c = Label2.Caption
Label2.Caption = Label4.Caption Label4.Caption = c End Sub ● 4.3.2 卸载对象语句Unload Unload语句的语法格式为:Unload 〈对象名〉 【例4-8】在例4-7中增加“关闭”命令按钮,关闭窗体,如图4-17所示。 设计步骤如下: 只需在例4-7中增加一个命令按钮Command2,并将其Caption属性改为“关闭”,编写Command2的Click事件代码: Private Sub Command2_Click() Unload Me ' Me表示按钮所在的窗体对象
● 4.4 编写代码 ● 4.4.1 文本框控件 文本框的常用属性有以下几个。 ● 4.3.3 注释语句Rem 例如: c = Label2.Caption ' c为临时变量 Label2.Caption = Label4.Caption : Rem 将Label4的Caption属性值赋给Label2 ● 4.4 编写代码 ● 4.4.1 文本框控件 1. 文本框控件的常用属性 文本框的常用属性有以下几个。 (1) Text属性 (2) Locked属性 (3) MultiLine属性 (4) ScrollBars属性 (5) PassWordChar属性 (6) MaxLength属性 2. 文本框控件的显示文本 3. 文本框使用示例
【例4-9】输入某学生语文、数学、英语这3门课程的成绩,计算其平均成绩。要求利用文本框作数据的输入和输出。 3) 编写事件代码。编写窗体Form的Load(载入)事件代码: Private Sub Form_Load() Text1.Text = "" : Text2.Text = "" ' 设置文本框的初值,目的是清空其中的内容 Text3.Text = "" : Text4.Text = "" Text5.Text = "" Text5.Locked = True ' 使Text5不可编辑 End Sub Private Sub Command1_Click() Dim a As Single, b As Single, c As Single a = Val(Text2.Text) ' Val函数将字符型数据转换为数值型数据 b = Val(Text3.Text) c = Val(Text4.Text) Text5.Text = (a + b + c) / 3 ' 求3个数的平均值
4. 多行文本框 (1) MultiLine多行属性 (2) ScrollBars属性 当MultiLine属性为True时,ScrollBars属性才有效。 0 - None:无滚动条。 1 - Horizontal:加水平滚动条。 2 - Vertical:加垂直滚动条。 3 - Both:同时加水平和垂直滚动条。 【例4-10】修改文本框的MultiLine和ScrollBars属性。 建立4个文本框,它们的有关属性见表4-4。
● 4.4.2 焦点与Tab键序 1. 焦点 2. 利用SetFocus方法设置焦点 【例4-11】修改例4-9,编写窗体的Activate(控件激活)事件代码,设置焦点。 在代码中调用SetFocus方法,使得程序开始时光标(焦点)位于输入框Text1中: Private Sub Form_Activate() Text1.SetFocus End Sub ,代码如下: Private Sub Command1_Click() Dim a As Single, b As Single, c As Single
a = Val(Text2.Text) ' Val函数将字符型数据转换为数值型数据 b = Val(Text3.Text) c = Val(Text4.Text) Text5.Text = (a + b + c) / 3 ' 求3个数的平均值 Text1.SetFocus ' 设置焦点 End Sub 3. 程序运行时改变焦点的方法 改变焦点: l 用鼠标单击对象。 l 按Tab键或Shift+Tab键在当前窗体的各对象之间巡回移动焦点。 l 按热键选择对象。 4. Tab键序
● 4.4.3 框架控件 1. 使用框架控件分组 2. 框架控件使用示例 【例4-12】如图4-21所示,在文本框中输入小时、分、秒,化成共有多少秒,然后输出。 3) 编写事件代码。编写“计算”命令按钮Command1的Click(单击)事件代码: Private Sub Command1_Click() Dim h As Integer, m As Integer, s As Integer ' 定义小时、分、秒的数据类型为整型 Dim x As Long h = Val(Text1.Text) ' 通过Text1输入小时数 m = Val(Text2.Text) ' 通过Text2输入分钟数 s = Val(Text3.Text) ' 通过Text3输入秒数
x = h * 3600 + m * 60 + s ' 计算秒数 Label1.Caption = "共计秒数" & Str(x) & "秒" ' 输出到Label1 End Sub ● 4.5 使用对话框 ● 4.5.1 输入框(InputBox)函数 输入框的语法格式及使用说明 输入框的语法格式为: 〈变量〉 = InputBox(〈信息内容〉[,〈对话框标题〉][,〈默认内容〉] ) 2. 输入框使用示例 例4-13】“鸡兔同笼”问题。鸡有2只脚,兔有4只脚,如果已知鸡和兔的总头数为h,总脚数为f。问笼中鸡和兔各有多少只? 分析:设笼中有鸡x只,兔y只,由条件可得方程组: 解方程组得:
2) 编写事件代码。编写“输入h和f的值”命令按钮Command1的Click(单击)事件代码: Private Sub Command1_Click() Dim h As Integer, f As Integer h = Val(InputBox("鸡和兔的总头数", "请输入", 0)) f = Val(InputBox("鸡和兔的总脚数(偶数)", "请输入", 0)) x = (4 * h – f) / 2 y = (f – 2 * h) / 2 Label2.Caption = " 设笼中鸡和兔的总头数为" & h & ", 总脚数为" & f & "。" Label3.Caption = " 则笼中鸡有" & x & "只,兔有" & y & "只。" End Sub
● 4.5.2 消息框(MsgBox)函数 1. 消息框的语法格式及使用说明 消息框的语法格式为: 〈变量〉 = MsgBox(〈消息内容〉[,〈对话框类型〉[,〈对话框标题〉] ] ) 3)〈对话框标题〉指定对话框的标题。下述代码将显示如图4-26所示的对话框: msg = MsgBox("请确认输入的数据是否正确!", 3 + 32 + 0, "数据检查") 4) MsgBox( )返回的值指明了在对话框中选择哪一个按钮,见表4-9。 5) 代码中的值可以是数值,也可以是常量。 6) 如果省略了某些可选项,其间的逗号分隔符不可省略。 7) 若不需要返回值,可以使用下面的MsgBox命令形式: MsgBox 〈信息内容〉[,〈对话框类型〉[,〈对话框标题〉]]
2. 消息框使用示例 【例4-14】修改例4-12,利用消息框进行数据输出。 设计步骤如下: 1) 修改用户界面。删除标签Label1。 2) 修改事件代码。 Private Sub Command1_Click() Dim h As Integer, m As Integer, s As Integer Dim x As Long h = Val(Text1.Text) m = Val(Text2.Text) s = Val(Text3.Text) x = h * 3600 + m * 60 + s MsgBox "共计秒数" & Str(x) & "秒", 1 + 64 + 0, "秒数换算" ' 利用消息框输出 End Sub
● 习题 4 4.1 设计工程,已知圆的半径r(厘米),求圆面积s。 4.2 已知平面座标系中两点的坐标,求两点间的距离。 4.3 设计工程,输出在指定范围内的3个随机数,范围在文本框中输入。 4.4 设某职工应发工资x元,试求各种票额钞票总张数最少的付款方案。 4.5 理解大小写转换函数。在文本框中输入英文字母,按“转大写”按钮,文本变为大写,按“转小写”按钮,文本变为小写。 4.6 在文本框中输入三种商品的单价、购买数量,计算并输出所用的总金额。
4.7 在文本框中输入小时、分、秒,化成共有多少秒,然后输出之。 4.8 在文本框中输入弧度值,将弧度换算为角度值(度、分、秒)的形式,然后输出。 如弧度值为1.474919573,化为角度的方法为: 1) 先将弧度值变成十进制, 1.474919573×(180/π) = 84.50666665 2) 去掉整数部分84,余0.50666665。 3) 用0.50666665×60 = 30.399999。 4) 去掉30,余0.399999。 5) 用0.399999×60 = 23.99994 ≈ 24" 6) 最后将84、30、24拼接成84°30' 24"。)