第五讲: 顺序结构程序设计

35
第第第 : 第第第第第 第第第

Upload: ian-frank

Post on 15-Mar-2016

169 views

Category:

Documents


4 download

DESCRIPTION

第五讲: 顺序结构程序设计. 顺序结构程序设计基本概念:. 过程结构: 过程内部代码由三种基本结构组成 即: 顺序结构、选择结构、循环结构 顺序结构: 执行过程的次序从上到下,从左到右 例: Private Sub Command1_Click() Const Pi = 3.14 H = Val(Text1.Text) : R = Val(Text2.Text) Text3.Text = Pi * R ^ 2 * H - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 第五讲:                顺序结构程序设计

第五讲 :

顺序结构程序设计

Page 2: 第五讲:                顺序结构程序设计

过程结构 : 过程内部代码由三种基本结构组成 即 : 顺序结构、选择结构、循环结构顺序结构 : 执行过程的次序从上到下,从左到右

例 : Private Sub Command1_Click()

Const Pi = 3.14

H = Val(Text1.Text) : R = Val(Text2.Text)

Text3.Text = Pi * R ^ 2 * H

End Sub

顺序结构程序设计基本概念 :

Page 3: 第五讲:                顺序结构程序设计

4.1 赋值语句1. 格式 < 变量名 >=< 表达式 > 或 : [< 对象名 >.]< 属性名 >=< 表达式 >2. 功能 计算表达式的值,再将此值赋给变量或对象属性。3. 说明(1) < 变量名 >: 应符合 VB 变量命名约定。(2) < 表达式 >: 常量、变量、表达式。(3) < 对象名 >: 缺省时为当前窗体。(4) 赋值号“ =”: 与数学中的等号意义不同。 例 : X=X+1(5) 赋值号左边必须是变量或对象属性。

Page 4: 第五讲:                顺序结构程序设计

例 : X=1 MyStr="Good Morning" Command1.Caption=" 确定 " X+1=X ' 错误,赋值号左边是表达式(3) 变量名或对象属性名的类型应与表达式类型相容。例 : Dim A As Integer, B As Single Dim C As Double, S As String A = 100 ' 将整型数 100 赋给整型变量 A S = "123.45" ' 将字符串 "123.45" 赋给变量 S A = S ' 将数字字符串变量赋值给整型变量, ' 变量 A 中存放 123 S = A ' S 中存放字符串 "123" B = 12345.67 A = B ' 高精度变量赋值给低精度变量, ' 先四舍五入后取整 , A 中存放 12346

Page 5: 第五讲:                顺序结构程序设计

C = 123456.789

B = C ' 高精度变量赋值给低精度变量, ' 变量 B 中存放 123456.8 。有效数字 7 位 S = "abc"

A = S ' 错误,类型不匹配例 : 执行下列各赋值语句后, A 的数据类型是什么? ( 设 A 没有定义数据类型 )

A = 6 = 5

A = 5 + 3

A = "5+3"

A = "#11/26/99#"

A = #11/26/1999#

A = Not 5 > 8

可以用 TypeName 函数判断变量的数据类型。如 :Print TypeName(A)

Page 6: 第五讲:                顺序结构程序设计

(4) 变量未赋值时,数值型变量值为 0 ,字符串变量 值为空串 "" 。【例 4-1 】设变量 A 中存放 5 ,变量 B 中存放 8 ,交换两个

变量的值,使变量 A 中存放 8 ,变量 B 中存放 5 。 分析 : 需要借助第三个变量 C

代码如下 :

A = 5

B = 8

C = A

A = B

B = C

Page 7: 第五讲:                顺序结构程序设计

4.2 数据输入 赋值语句;输入框 (InputBox) ;文本框 (TextBox)

4.2.1 用输入框 (InputBox) 输入数据1. 格式 InputBox(< 提示信息 >[,< 对话框标题 >][,< 默认值 >])

2. 功能 提示一对话框,等待用户输入正文或按下按钮, 并返回包含文本框内容的字符串。< 提示信息 >: 字符串表达式。用 Chr(13) 、 Chr(10) 、

Chr(13) & Chr(10) 、 vbCrLf 可换行。< 对话框标题 >: 字符串表达式。< 默认值 >: 字符串表达式。如果省略,则默认为空。函数返回值 : 字符串 ( 在对话框中单击取消则返回 "")

Page 8: 第五讲:                顺序结构程序设计

单击“确定”,返回文本框中的文本到变量 R 中单击“取消”,返回一个零长度的字符串

例 : Private Sub Form_Activate() Dim R As String, AREA As Single R = InputBox(" 请输入半径 ", " 计算面积 ",

"1") AREA = 3. 14 * Val(R) ^ 2 Print Val(R), AREA End Sub

Page 9: 第五讲:                顺序结构程序设计

4.2.2 用文本框 (TextBox) 输入数据1. 文本框的属性(1) Text: 返回或设置文本框显示的内容。 例 : Text1.Text = " 欢迎使用 Visual Basic"

(2) MultiLine: 决定是否可以显示多行文本。(3) PasswordChar: 常用于输入口令。 在文本框中键入字符显示为该指定的字符。 ( 此时 MultiLine 属性值应为 False)

(4) ScrollBars: 用于确定文本框是否带滚动条以及滚动条的方向。

( 仅当 MultiLine 属性值为 True 时才可以带滚动条 )

Page 10: 第五讲:                顺序结构程序设计

(5) SelLength: 在运行期返回或设置选择的字符数。 例 : Text1.SelLength=Len(Text1.Text)

表示选中文本框 Text1 中所有字符。(6) SelStart: 在运行期返回或设置当前选择文本的起始位置。 例 : Text1.SelStart=0

表示选择文本的起始位置从第一个字符开始。(7) Locked: 指定运行时文本框内容是否可以编辑。 False— 可以编辑 True— 不可编辑 ( 只读 )

Page 11: 第五讲:                顺序结构程序设计

2. 文本框的事件和方法 事件 : Change 、 Click 、 DblClick 、 GotFocus 、 LostFocus 、 KeyPress 等 方法 : SetFocus

【例 4-2 】设计如下图所示的界面,运行时,输入某同学三门课的成绩,计算平均成绩。按要求编程。

Text4( 设 Locked 为True)

Text1Text2Text3

Command1

Command2

Command3

Page 12: 第五讲:                顺序结构程序设计

① 单击“计算”按钮求平均成绩 Private Sub Command1_Click() A = Val(Text1.Text) B = Val(Text2.Text) C = Val(Text3.Text) Text4.Text = (A + B + C) / 3 End Sub

Page 13: 第五讲:                顺序结构程序设计

② 当输入成绩的文本框获得焦点时,选中其中的文本 Private Sub Text1_GotFocus() Text1.SelStart = 0 Text1.SelLength = Len(Text1.Text) End Sub Private Sub Text2_GotFocus() Text2.SelStart = 0 Text2.SelLength = Len(Text1.Text) End Sub Private Sub Text3_GotFocus() Text3.SelStart = 0 Text3.SelLength = Len(Text1.Text) End Sub

Page 14: 第五讲:                顺序结构程序设计

③ 当输入成绩的文本框内容发生变化时,清除平均值 Private Sub Text1_Change() Text4.Text = "" End Sub Private Sub Text2_Change() Text4.Text = "" End Sub Private Sub Text3_Change() Text4.Text = "" End Sub

Page 15: 第五讲:                顺序结构程序设计

④ 单击“清除”按钮清除所有文本框的内容,并将焦点定位在文本框 Text2 中。

Private Sub Command2_Click() Text1.Text = "" Text2.Text = "" Text3.Text = "" Text4.Text = "" Text1.SetFocus End Sub⑤单击“退出”按钮结束程序的运行。 Private Sub Command3_Click() End End Sub

Page 16: 第五讲:                顺序结构程序设计

【例 4-3 】在窗体上建立一个文本框,将输入到文本框中的小写字母转换为大写。

Private Sub Text1_KeyPress (KeyAscii As Integer)

Char = Chr(KeyAscii)

KeyAscii = Asc(UCase(Char))

End Sub

Page 17: 第五讲:                顺序结构程序设计

4.2.3 焦点和 Tab 键序1. 焦点 当前可以接收用户输入的对象称为具有焦点。 注意 : 并非所有控件都可以接收焦点。而且 , 只有

Enable 和 Visible 属性为 True 时,才可以接收焦点。2. 事件 GotFocus 发生在对象得到焦点时 LostFocus 发生在对象失去焦点时3. 对象何时得到焦点 • 运行时选择对象 ( 鼠标、 Tab 键、访问键 )

• 在代码中使用 SetFocus 方法

Page 18: 第五讲:                顺序结构程序设计

2. Tab 键序 • 指按 Tab 键时光标在各个控件之间移动的顺序。 • 每个窗体都有自己的 Tab 键序。 • 默认键序与控件的建立次序一致。 • TabIndex 属性 : 决定键序 改变 TabIndex 属性可以改变键序 • TabStop 属性 : 决定是否能够使用 TAB 键将焦点移动到

当前对象。

Page 19: 第五讲:                顺序结构程序设计

4.3 数据输出 Print 方法、消息框 (MsgBox) 、文本框、标签4.3.1 用 Print 方法输出数据1. Print 方法 格式 : [< 对象名 >.]Print[< 表达式表 >][{;|,}] < 对象名 >: 窗体 如 Form1.Print "Hello"

图片框 如 Picture1.Print "Hello"

打印机 如 Printer.Print "Hello"

立即窗口 如 Debug .Print "Hello"

省略 : 默认为当前窗体。 < 表达式表 >: 多个表达式使用逗号或分号隔开。 逗号 : 以 14 个字符位置为单位把一个输出行分成若干区段。 分号 : 后一项紧跟前一项输出。

Page 20: 第五讲:                顺序结构程序设计

输出时,数值型数据前有一个符号位 ( 正号不显 ) ,后面留一个空格位;字符串原样输出,前后无空格。例 : Private Sub Form_Activate()

Print "12345678901234567890"

Print "2+4="; 2 + 4

Print "2-4=", 2 - 4

End Sub

例 : Private Sub Form_Activate() Print "12345678901234567890" Print "2+4=";2 + 4, Print "2-4="; Print 2 - 4 End Sub

Page 21: 第五讲:                顺序结构程序设计

例 : Private Sub Form_Load()

Form1.Show

Print "12345678901234567890"

Print ' 产生空行 Print "2+4="; 2 + 4,

Print ' 取消上面一句末尾逗号的作用 Print "2-4=";

Print 2 - 4

End Sub

输入 Print 时可用 ? 代替, VB 将其自动转换成Print

Page 22: 第五讲:                顺序结构程序设计

4.3.2 用消息框 (MsgBox) 输出数据格式 :

MsgBox(< 提示信息 >[,< 按钮类型 >][,< 对话框标题 >])

功能 : 在对话框中显示消息,等待用户单击按钮,并返回一个整数告诉用户单击了哪个按钮。

< 提示信息 >: 字符串表达式。 用 Chr(13) 、 Chr(10) 、

Chr(13) & Chr(10) 、 vbCrLf 可换行。< 按钮类型 >: 数值型数据。 按钮类型 + 图标类型 + 默认按钮。见 P58

< 对话框标题 >: 字符串表达式。返回值 : 由在对话框中按下哪种按钮决定。见 P59

Page 23: 第五讲:                顺序结构程序设计

例 : < 提示信息 > Private Sub Command1_Click() A = MsgBox(" 提示信息 ") End Sub

例 : < 提示信息 > 换行 Private Sub Command1_Click() A=MsgBox(" 第一行 " & Chr(13) & " 第二行 ") End Sub

Page 24: 第五讲:                顺序结构程序设计

例 : < 对话框标题 > Private Sub Command1_Click() A = MsgBox(" 提示信息 ", , " 标题内容 ") End Sub

例 : 按钮类型— 0 到 5 或符号常量 见 P58 Private Sub Command1_Click() A = MsgBox(" 提示信息 ", 1, " 标题内容 ") End Sub

Page 25: 第五讲:                顺序结构程序设计

例 : 图标类型— 16 、 32 、 48 、 64 或符号常量 见 P58

Private Sub Command1_Click() A = MsgBox(" 提示信息 ", 16, " 标题内容 ") End Sub

例 : 默认按钮— 0 , 256 , 512 见 P58 Private Sub Command1_Click() a = MsgBox(" 提示信息 ", 2 + 256, " 标题内容 ") Print a End Sub

按回车打印 4

Page 26: 第五讲:                顺序结构程序设计

4.3.3 用文本框 (TextBox) 输出数据【例 4-4 】在 Text1 中输入任一英文字母,在 Text2 中显示该英文字母及其 ASCII 码值。要求在文本框 Text2 中显示出所有输入的英文字母及其 ASCII 码值

Text1

Text2

Command1

Page 27: 第五讲:                顺序结构程序设计

4.3.3 用文本框 (TextBox) 输出数据【例 4-4 】在 Text1 中输入任一英文字母,在 Text2 中显示该英文字母及其 ASCII 码值。要求在文本框 Text2 中显示出所有输入的英文字母及其 ASCII 码值

Text1

Text2

Command1

Page 28: 第五讲:                顺序结构程序设计

4.3.4 用标签 (Label) 输出数据1. 标签的属性(1) Caption: 标签的标题。(2) Alignment: 确定标签标题的对齐方式。(3) AutoSize: 确定标签是否随标题自动调整大小。(4) BorderStyle: 确定标签的边框。 0 —无边框; 1— 有边框。(5) BackStyle: 指定背景是透明或不透明。 1— 不透明; 0—透明。

Page 29: 第五讲:                顺序结构程序设计

【例 4-5 】测试标签的边框样式和透明样式。 在窗体上放置一标签,显示“ Visual Basic 程序设计教程”,放置四个命令按钮, Command1 放在 Command2上, Command3 放在 Command4 上。运行时,单击相应按钮,界面发生相应变化。

Label1

Command2

Command1 Command3

Command4

Page 30: 第五讲:                顺序结构程序设计

Private Sub Command2_Click() Label1.BorderStyle = 0 Command1.Visible = True Command2.Visible = FalseEnd Sub

Private Sub Command1_Click() Label1.BorderStyle = 1 Command1.Visible = False Command2.Visible = TrueEnd Sub

Page 31: 第五讲:                顺序结构程序设计

Private Sub Command2_Click() Label1.BorderStyle = 0 Command1.Visible = True Command2.Visible = FalseEnd Sub

Private Sub Command1_Click() Label1.BorderStyle = 1 Command1.Visible = False Command2.Visible = TrueEnd Sub

Page 32: 第五讲:                顺序结构程序设计

2. 标签的事件 : Click 、 DblClick...

例 : Private Sub Label1_DblClick()

Label1.FontSize = Label1.FontSize + 10

End Sub

3. 标签的方法 :Move

格式 :

[< 对象名 >.]Move <Left>[,[<top>][,[<width>][,<height>]]]

<left>: 指示对象左边的水平坐标 (x-轴 ) 。 <top>: 指示对象顶边的垂直坐标 (y-轴 ) 。 <width>: 指示对象新的宽度。 <height>: 指示对象新的高度。 例 : Private Sub Label1_Click()

Label1.Move Label1.Left + 50

End Sub

Page 33: 第五讲:                顺序结构程序设计

4.4 注释、暂停与程序结束语句1. 注释语句 格式 : ' | Rem < 注释内容 > 功能 : 给语句或程序段加上注释,以提高可读性。 说明 : Rem 与 < 注释内容 >之间至少空一个空格。例 :

Private Sub Form_Click()

Rem 本程序用于计算圆的面积 Dim R As String, AREA As Single ' R 为半径 R=InputBox("请输入半径 ", , "1") :Rem 输入半径 AREA = 3.14 * Val(R) ^ 2

' 以下将半径和面积输出到窗体上 Print Val(R), AREA

End Sub

Page 34: 第五讲:                顺序结构程序设计

2. 暂停语句 格式 : Stop

功能 : 暂停程序的执行。 用于程序调试。类似于执行“运行”菜单中的“中断”命令3. 结束语句 格式 : End

功能 : 结束程序的执行。

Page 35: 第五讲:                顺序结构程序设计

本章小结 :

输入

计算

输出

赋值语句文本框IntputBox 函数赋值语句标签文本框Print 语句MsgBox 函数