1 / 49

第 3 章

赋值与输入输出. 第 3 章. 第 3 章 赋值与输入输出. 一个完整的 VB 应用程序,一般都包含三部分内容,即 输入 → 处理 → 输出 可通过 VB 语句、各种控件实现输入输出操作 本章主要内容 赋值语句 常用基本语句 使用 Print 方法输出数据 窗体和基本控件 命令按钮 / 标签 / 文本框 对话框 输入对话框 / 消息对话框 程序举例. 3.1 赋值语句.

zubeda
Download Presentation

第 3 章

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 赋值与输入输出 第 3 章

  2. 第3章 赋值与输入输出 • 一个完整的VB应用程序,一般都包含三部分内容,即 • 输入 → 处理 → 输出 可通过VB语句、各种控件实现输入输出操作 本章主要内容 赋值语句 常用基本语句 使用Print方法输出数据 窗体和基本控件 命令按钮/标签/文本框 对话框 输入对话框/消息对话框 程序举例

  3. 3.1 赋值语句 赋值语句是程序设计中最基本、最常用的语句 格式:[Let]变量名=表达式 功能:计算右端的表达式,并把结果赋值给左端的变量 例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

  4. 本事件过程采用的是顺序程序结构,运行的过程是:本事件过程采用的是顺序程序结构,运行的过程是: 声明3个单精度变量a,b,c 6→a 9→b 计算表达式,其结果10.81665→c 输出结果 赋值含义:将值送到变量的存储单元中去

  5. 说明: (1)表达式中的变量必须是赋过值的,否则变量的初值自动取零值(变长字符串变量取空字符)。例如: a = 1 c = a + b + 3′b未赋过值,为0 执行后,c 值为 4  (2)利用赋值语句,可以改变变量的值,因此,同一变量在不同时刻可以取不同的值。

  6. 例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(覆盖原有内容)

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

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

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

  10. 3.3 使用Print方法输出数据 3.3.1 Print方法 用于显示(输出)文本 格式:[对象名.]Print [表达式列表] 说明:(1)使用的对象可以是窗体等 Print “程序设计” ´在当前窗体上输出 Picture1.Print “程序设计”´在图片框上输出 (2)表达式列表是一个或多个表达式,如果省略,则输出一个空行 (3)当输出多个表达式时,各表达式之间用分号“;”(紧凑格式)或逗号“,”(按区格式)隔开。 按区格式(14个字符位置)

  11. 例:Private Sub Form_Click() a = 2 b = "VB" Print 50 * a'计算并输出表达式的值 Print b'输出变量的值 Print'输出空行 Print "The Total is"'输出字符串常量 End Sub 运行结果:

  12. 输出数值数据时,前面有一个符号位(正号以空格表示),后面留有一个空格;输出字符串时,前后不留空格。输出数值数据时,前面有一个符号位(正号以空格表示),后面留有一个空格;输出字符串时,前后不留空格。 例: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)若语句行末尾有分号或逗号,则输出本行输出项后不换行

  13. 例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

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

  15. 2. Tab函数 函数格式:Tab(n) 功能:把输出位置移到第n列。 例如: Print Tab(2);"学号";Tab(11);"姓名";Tab(21);"成绩" 输出结果是(1个汉字占2个位置):  └┘学号└┘└┘└┘└┘└┘姓名└┘└┘└┘└┘└┘└┘成绩

  16. 例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

  17. 运行结果

  18. 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

  19. 3.4 窗体 窗体(Form)是设计VB应用程序的基本平台 窗体本身是一个对象,又是其他对象的载体或容器 多数应用程序是从窗体开始执行的 ; 一个程序可以有多个窗体 3.4.1 窗体的基本属性  设置窗体的属性,可在程序设计时在属性窗口中手工设置,也可以在程序运行时由代码实现 默认属性

  20. 一些常用的窗体属性: ·Name属性:用于设置窗体的名称。指定窗体的名称。只读,不能在应用程序中修改 ·Caption属性:用于设置窗体标题栏上的标题内容。 ·Maxbutton和Minbutton属性:用于设置最大化和最小化按钮 ·Height和Width属性:确定窗体的初始高度和宽度 ·Left和Top属性:确定窗体的左上角在屏幕上的横、纵坐标 ·Appearance属性:用于设置窗体的外观是平面还是三维的 ·BackColor和ForeColor属性:设置窗体的背景色和前景色 ·Picture属性:用于在窗体上设置要显示的图形。 [对象.]Picture=LoadPicture("文件名") ·Visible(可见性):设置对象的可见性,默认值为True

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

  22. 3.4.2 窗体的事件 窗体作为对象,能够对事件作出响应。与窗体有关的常用事件有以下几种。 窗体事件过程的一般格式为: Private Sub Form_事件名([参数表]) …… End Sub 不管窗体名字如何定义,但在事件过程中只能使用Form,而在过程内对窗体进行引用时才会用到窗体名字(如Form1等)

  23. 与窗体有关的常用事件有以下几种。 (1)Load(装载)事件 (2)Unload(卸载)事件 (3)Activate(活动)、Deactivate(非活动)事件 (4)Paint(绘画)事件 (5)Click(单击)事件 (6)DblClick(双击)事件 (7)KeyPress(按键)事件:当按下键盘上的某个健时,将触发KeyPress事件。其事件过程的格式为: Private Sub 对象_KeyPress(KeyAscii As Integer) …… End Sub 参数KeyAscii返回所按键的ASCII码

  24. 3.4.3窗体的方法 (1)Show方法:用于快速显示一个窗体,使该窗体变成活动窗体  (2)Print方法:用于在窗体上输出表达式的值  (3)Cls方法:用于清除运行时在窗体中显示的文本或图形 (4)Move(移动)方法:用于移动并改变窗体或控件的位置和大小

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

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

  27. (2)编写程序代码。编写的三个按钮的Click事件过程代码如下:(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

  28. Private Sub Command2_Click() Cls End Sub Private Sub Command3_Click() End End Sub 程序运行后,单击“显示”按钮,输出结果

  29. 3.5 基本控件 需要在窗体中放置各种控件,才能实现用户与应用程序之间的信息交互 三种基本控件——命令按钮、标签和文本框 3.5.1 控件的公共属性 (1)Name属性:控件的Name属性(名称)必须以字母开头,其后可以是字母、数字和下划线,名称长度不能超过40个字符 (2)Caption属性:任意的字符串。以通过程序代码改变其值,例如: Command1.Caption=“结束“ 可以在Caption属性中为控件指定一个访问键。例如,将命令按钮的Caption属性设置为“结束(&E)”,则运行时该控件外观如图3.7所示,只要用户同时按下Alt键和E键,就能执行该按钮命令。

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

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

  32. 3.5.2 命令按钮 用于接收用户的操作信息,并引发应用程序的某个操作 1.常用属性 (1)Default属性和Cancel属性 Default属性和Cancel属性分别用于设置“默认按钮”和“取消按钮” (2)Style属性 设置命令按钮的外观 2.常用事件和方法 命令按钮最常用的事件是Click(单击)事件,但不支持DblClick(双击)事件。 命令按钮常用的方法是SetFocus方法。

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

  34. 3.5.4 文本框 文本框(TextBox)是一个文本编辑区域,用户可以在该区域中输入、编辑和显示文本内容。 默认情况下,文本框只能输入单行文本,并且最多可以输入2048个字符 1. 常用属性 文本框具有一般控件的常用属性,但文本框没有Caption属性 (1) Maxlength属性: 确定文本框中文本的最大长度 (2) Multiline属性: 指定文本框中是否允许显示和输入多行文本 (3) PasswordChar属性:确定在文本框中是否显示用户输入的字符,常用于密码输入 (4) ScrollBars属性:指定在文本框中是否出现滚动条

  35. (5)SelStart属性、Sellength属性和SelText属性 (6)Text属性 设置或返回文本框中所包含的文本内容。 (7)Locked属性 2.常用事件和方法 文本框支持Click、DblClick等鼠标事件,同时支持Change、GotFocus、LostFocus等事件 文本框常用方法有SetFocus方法和Move方法

  36. 例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 Text2.Text = h Text3.Text = m Text4.Text = s End Sub Private Sub Command2_Click() End End Sub

  37. 3.6使用对话框 对话框既可以用来显示信息,也可以用于输入信息 VB中能够建立两种预制对话框:输入框和消息框 使用系统提供的函数(InputBox和MsgBox),而不必为对话框另建窗体 先看以下一个例子 例3.7a通过输入框输入姓名,然后再消息框中显示出来  Private Sub Form_Load() x = InputBox("输入您的姓名", "您叫什么名?") MsgBox (x & "先生:祝您马到功成!") End Sub

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

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

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

  41. MsgBox的两种格式 1. 返回一个值。从返回值中可以知道用户按下的是哪个按钮(表3.5)。例如 y = MsgBox(“输入文件名是否正确”,52,”请确认”) 若y为1,表示用户按下的是“确定”按钮,依此类推。 程序通过判断y值(如采用条件语句IF-THEN),再根据用户按下的是什么按钮,再做不同的处理。 2. 不返回值。例如 MsgBox “输入文件名是否正确”,52,”请确认” MsgBox “输入文件名是否正确” 采用这种格式时,不知道用户按下的是什么按钮。这种格式可以使用在不需要知道用户按钮情况的场合。

  42. 例3.8从输入框中输入圆的半径,计算圆的周长和面积例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

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

  44. 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

  45. 另一解法:采用变体型变量和直接在控件中交换数据,编写的程序代码如下 :(例3.9a) Private Sub Command1_Click()´“交换”按钮 t = Text1.Text Text1.Text = Text2.Text Text2.Text = t End Sub 说明:对于初学者来说,为了节省时间,有时可以不采用Dim等语句声明就直接使用变量(默认为变体型,如t)。但在规范的软件开发中,通常都要求程序中使用的变量必须预先声明。

  46. 想一想 错在哪? 错例一:(例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 奇怪??! 在两个文本框中显示都是空白! 缺少“输入”。即没有从文本框中取到要处理的数据

  47. 好像在窗体上没 有看到处理结果! 错例二:(例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 缺少“输出”。即没有把处理后的内存变量内容传送给文本框

  48. 想一想 错在哪? 错例三:(例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 如果输入的是非数字文本,结果会怎样呢???

More Related