版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1,第5章 选择结构程序设计,本章要点: 条件语句 单行结构条件语句If.Then.Else . 块结构条件语句If.Then.EndIf 多分支选择语句Select Case.End Select Timer控件,单选按钮和复选按钮,特点: 根据条件是否成立,决定程序的执行分支,2,5.1.1 单行结构条件语句,1. 格式 If Then Else 2. 功能 如果成立,则执行 否则执行,3,3. 说明 (1) 可以是: 关系表达式 布尔表达式 数值表达式:0为False;非0为True 字符串表达式: 0为False;非0为True (2) 可以没有Else部分,这时必须有。,例: If
2、Xaaa Then Print X,4,(3) 、: 可以有多条语句,各语句之间用冒号隔开。 例: If N0 Then A=A+B:B=B+A Else A=A-B:B=B-A (4)应作为一条语句书写。如果语句太长需要换行,必须在折行处使用续行符号。 (5) 无论条件是否成立,都具有共同出口 例: If X = 0 Then X = 1 + X Else X = 5 - X Y = 1 - X Print Y=; Y 若 X=2 Y? 若 X=-2 Y?,共同出口,(6)单行结构条件语句可以嵌套 IF . THEN.IF . THEN .ELSE .ELSE,5,【例5-1】设界面如下图所
3、示,用文本框输入x的值,单击“计算Y”按钮时,根据以下公式计算y的值。,Private Sub Command1_Click() X = Val(Text1.Text) If X = 0 Then Y = Abs(X) Else Y = Log(X) Label3.Caption = Y End Sub,6,例: 比较以下两段程序,是否都能够实现上例的功能。,程序段1: X = Val(Text1.Text) Y = Abs(X) If X 0 Then Y = Log(X) Label3.Caption = Y,程序段2: X = Val(Text1.Text) Y = Log(X) If
4、X = 0 ThenY = Abs(X) Label3.Caption = Y,7,5.1.2 块结构条件语句,1.格式 If Then ElseIf Then ElseIf Then Else End If,If Then 语句组1 Else 语句组2 End If,注意: 格式书写格式,8,块结构条件语句的功能:,9,【例5-8】某百货公司为了促销,采用购物打折的优惠办法。1000元以上者,按九五折优惠;2000元以上者,按九折优惠; 3000元以上者,按八五折优惠; 5000元以上者,按八折优惠;编写程序,输入购物款数,计算并输出优惠价。,分析:设购物款数为x元,优惠价为y元,则优惠付款
5、公式为: x (x=5000),10,设计步骤如下: (1)建立应用程序界面并设置对象属性,如图所示。 (2)编写程序代码.命令按钮command1的Click事件代码如下:,ElseIf x 3000 Then y = 0.9 * x ElseIf x 5000 Then y = 0.85 * x Else y = 0.8 * x End If Text2.Text = y End Sub,Private Sub command1_Click() Dim x As Single, y As Single x = Val(Text1.Text) If x 1000 Then y = x Els
6、eIf x 2000 Then y = 0.95 * x,11,注意: (1) ElseIf不能写成Else If,即中间不能有空格。 (2) 在书写时,可以将If语句、ElseIf子句、Else子句、和End If语句左对齐,而各语句组向右缩进若干空格,以使程序结构更清楚。 (3) 严格按格式要求书写,不可随意换行或将两行合并成一行。例如,对于条件结构: If x = 0 Then y = 1 Else y = 2 End If 以下两种写法都是错误的:,写法一: If x=0 Then y=1 Else y = 2 End If,写法二: If x = 1 Then y = 10 Else
7、 y = 20 End If,12,5.1.3 多分支选择语句,1. 格式 Select Case Case Case Case Else End Select 2. 功能: 根据测试表达式的值,按顺序匹配Case后的表达式,如果匹配成功,则执行该Case下的语句块,然后转到End Select语句之后继续执行。,13,多分支选择语句的功能流程图:,14,3. 说明 : 数值或字符串表达式 Case 表达式表: 表中的表项为如下形式: (1) 表达式1,表达式2. 如: Case 1 , 3 , 5 (2) 表达式1 TO 表达式2 如: Case 10 TO 30 Case A TO Z (
8、3) Is 如: Case Is = 10 Case Is = 0 与 Case 0 相同 注意: 测试表达式的类型应与Case后表达式类型一致,且三种形式可以混用,如: Case Is -5 , 0 , 5 To 100 举例5-8 vb5lt8,15,【例5-12】任给定一年,判断是否是闰年,并根据给出的月份判断是什么季节和该月有多少天。,分析: 根据闰年条件可得出判断闰年的逻辑表达式 (Y mod 4 =0 and y mod 1000) or( y mod 400=0),每月的天数可根据月份来定,设计用户界面如图所示,设置5个标签,label3label5的boardstyle设置为f
9、ixed single,Private Sub Command1_Click() Dim y As Integer, m As Integer Dim leapyear As Boolean y = Val(Text1.Text) m = Val(Text2.Text) If (y Mod 4 = 0 And y Mod 100 0) Or (y Mod 400 = 0) Then leapyear = True Label3.Caption = 闰年 Else leapyear = False Label3.Caption = 非闰年 End If,17,Select Case m Case
10、 3 To 5 Label4.Caption = spring Case 6 To 8 Label4.Caption = summer Case 9 To 11 Label4.Caption = autummn Case 12, 1, 2 Label4.Caption = winter End Select,18,Select Case m Case 1, 3, 5, 7, 8, 10, 12 Label5.Caption = 31天 Case 4, 6, 9, 11 Label5.Caption = 30天 Case 2 If leapyear Then Label5.Caption = 2
11、9天 Else Label5.Caption = 28天” End If End Select Text1.SetFocus End Sub,Private Sub Command2_Click() Text1.Text = Text1.Text = Label3.Caption = Label4.Caption = Label5.Caption = End Sub,19,如果在条件成立或不成立的情况下要继续判断其他条件,则可以使用嵌套的条件语句来实现,也就是在语句组中再使用另一个条件语句。,5.1.4 条件语句的嵌套,块结构条件语句的嵌套示例: If A = 1 Then If B = 0
12、Then Print *0* ElseIf B = 1 Then Print *1* End If ElseIf A = 2 Then Print *2* End If,20,多分支选择语句的嵌套示例: Select Case A Case 1 Select Case B Case 0 Print *0* Case 1 Print *1* End Select Case 2 Print *2* End Select,21,多分支选择语句与块结构条件语句的互相嵌套示例: Select Case A Case 1 If B = 0 Then Print *0* ElseIf B = 1 Then
13、Print *1* End If Case 2 Print *2* End Select,22,5.2.1IIf函数 格式: IIf(, , ) 功能: 当的值为True时,返回第2个参数的值;当的值为False时,返回第3个参数的值。(类似于具有两个分支的If语句的功能) 例: 使用IIf函数求两个变量A和B的较大数。 MaxAB = IIf(A B, A, B) 例: 使用IIf函数求三个变量A、B和C的最大数。 MaxAB = IIf(A B, A, B) MaxABC = IIf(MaxAB C, MaxAB, C),5.2 条件函数,23,5.2.2Choose函数 格式: Choo
14、se(, ,.,) 功能: 当的值为1时,返回的值;当的值为2时,返回的值;。如果的值不是整数,则会先四舍五入为整数。 例: 将成绩1分、2分、3分、4分和5分转换成相应的等级: 不及格(1分,2分)、及格(3分),良(4分),优(5分)。,Grade = Choose(Score, 不及格, 不及格, 及格, 良, 优),24,1.用途 时钟控件(Timer)又称计时器、定时器控件,用于有规律地定时执行指定的工作,适合编写不需要与用户进行交互就可直接执行的代码,如计时、倒计时、动画等。在程序运行阶段,时钟控件不可见 2.属 性 (1)Interval(事件间隔)属性 取值范围在0 到 647
15、67 之间(包括这两个数值),单位为毫秒(0.001秒),表示计时间隔。若将Interval属性设置为0或负数,则计时器停止工作。 需要屏蔽计时器,将Interval设为0;需要每0.5s产生一个计时器事件,则将Interval设为500;若需要每1s产生一个计时器事件,则将Interval设为1000。 (2)Enabled属性 无论何时,只要时钟控件的Enabled属性被设置为True而且Interval属性值大于0,则计时器开始工作(以Interval属性值为间隔,触发Timer事件)。 通过把Enabled属性设置为False可使时钟控件无效,即计时器停止工作。,5.3 计时器控件Ti
16、mer,25,3. 方法: VB没有为时钟控件提供有关的方法。 4. 事件: 时钟控件只能响应Timer事件,当Enabled属性值为True且Interval属性值大于0时,该事件以Interval属性指定的时间间隔发生,需要定时执行的操作即放在该事件过程中完成。,例5-14 在窗体上设计一个能按12小时格式和24小时格式进行转换的数字时钟。v5lt14 分析:本题目需要使用的函数有3个。 Time函数:返回系统时间 Hour函数:返回时间表达式中的小时数 Format(time,form1.tag)函数:按照指定格式返回系统当前时间。,26,设计步骤如下: 1.建立用户界面,如图所示。,2
17、.设置对象属性 Form1.tag: hh:mm:ss Label1.caption: 00:00:00 Label1.color:白色 Label1.bordestyle: 1-fixed single label2.visible:false Terval:1000,27,3.编写事件代码,Private Sub Timer1_Timer() Label1.Caption = Format(Time, Form1.Tag) If Hour(Time) 12 Then Label2.Caption = 下午 Else Label2.Caption = 上午 End If
18、End Sub,28,3.编写事件代码,Private Sub Command1_Click() If Command1.Caption = 改为12小时制 Then Form1.Tag = hh:mm:ss AM/PM Command1.Caption = 改为24小时制 Label2.Visible = True Else Form1.Tag = hh:mm:ss Command1.Caption = 改为12小时制 Label2.Visible = False End If End Sub,29,5.4 单选钮、复选框,5.4.1 单选钮 1. 用途 单选钮(OptionButton)也
19、称作选择按钮。一组单选钮控件可以提供一组彼此相互排斥的选项,任何时刻用户只能从中选择一个选项,实现一种“单项选择”的功能,被选中项目左侧圆圈中会出现一黑点。,单选按钮,30,2. 重要属性 (1) Caption:文本标题。设置单选钮的文本注释内容。 (2) Alignment属性: 0:Left Justify(缺省)控件钮在左边,标题显示在右边。 1:Right Justify 控件钮在右边,标题显示在左边。 (3)Value 属性,True: 单选钮被选定 False: 单选钮未被选定(缺省设置),(4) Style 属性 0-Standard: 标准方式 1-Graphical:图形方
20、式 说 明: 在Style属性设置为1时,可使用 Picture 属性(未选定时的图标或位图)、DownPicture属性( 选定时的图标或位图)、DisabledPicture属性(禁止选择时的图标或位图),(5) Enabled 属性 要禁用某个单选按钮,可将其Enabled属性设置为假。程序运行时,那么就显示为浅灰色,表示无法选取。,31,3. 方法 SetFocus方法是单选钮控件最常用的方法,可以在代码中通过该方法将Value属性设置为True。 与命令按钮相同,使用该方法之前,必须要保证单选钮处于可见和可用状态(即Visible与Enabled属性值均为True)。,4. 事件 C
21、lick事件是单选钮控件最基本的事件,一般情况用户无需为单选钮编写Click事件过程,因为当用户单击单选钮时,它会自动改变状态。 例5-15 单选钮示例 修改 例5-14。,32,例5-17 设计滚动字幕,使“欢迎使用学生成绩管理系统”字样自右向左反复移动。,设计步骤如下: 1。建立如图所示界面,增加一个计时器控件,一个label1和一个command1,四个单选按钮。 2. 设置属性:四个单选按钮的style属性设为1-graphical。Terval=100,timer.enabled=false 3.事件代码: Private Sub Command1_Click() I
22、f Command1.Caption = &s 暂停 Then Command1.Caption = &c 继续 Timer1.Enabled = False Else Command1.Caption = &s 暂停 Timer1.Enabled = True End If End Sub,33,Private Sub Timer1_Timer() If Label1.Left + Label1.Width 0 Then Label1.Move Label1.Left - 20 Else Label1.Left = Form1.ScaleWidth End If End Sub privat
23、e Sub Option1_Click() Label1.FontName = 宋体 End Sub Private Sub Option2_Click() Label1.FontName = 黑体 End Sub Private Sub Option3_Click() Label1.FontName = 隶书 End Sub Private Sub Option4_Click() Label1.FontName = 楷体_GB2312 End Sub,34,5.4.2 复选框或检查框,1. 用途 复选框(CheckBox)也称作检查框、选择框。一组复选框控件可以提供多个选项,它们彼此独立工作,所以用户可以同时选择任意多个选项,实现一种“不定项选择”的功能。选择某一选项后,该控件将显示,而清除此选项后,消失。,2. 重要属性 Caption、Alignment、S
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度电子琴研发与生产合作合同(琴行与科技公司)
- 2024年度广告创意设计与制作合同书
- 2024年度产学研合作合同:高校与企业产学研合作项目
- 大学英语语法课件教学
- 《食物中毒与预防》课件
- 端午节课件 的
- 《全国税务反诈骗》课件
- 青岛版四年级下册数学全册教案
- xx集团中高层人力资源管理体系培训课件
- 2024年度砌块需求与供应量预测合同3篇
- 2024水样采集与保存方法
- 2025届高考语文一轮复习:二元思辨类作文思辨关系高阶思维
- 糖尿病患者体重管理专家共识(2024年版)解读
- 静电粉末喷涂实用工艺
- 高速公路布控图(电子版)
- 学生放学高峰期校门口疏导方案
- 建筑桩基技术规范 JGJ942008
- 第三章非均相反应
- 榆林地区电厂明细
- 经开区闲置低效工业用地盘活处置工作实施方案
- 卫生院基本公共卫生服务项目工作进度表
评论
0/150
提交评论