V B语言程序设计 选择结构程序设计

上传人:t****d 文档编号:242979216 上传时间:2024-09-13 格式:PPT 页数:58 大小:696KB
返回 下载 相关 举报
V B语言程序设计 选择结构程序设计_第1页
第1页 / 共58页
V B语言程序设计 选择结构程序设计_第2页
第2页 / 共58页
V B语言程序设计 选择结构程序设计_第3页
第3页 / 共58页
点击查看更多>>
资源描述
单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,第4章 分支结构,例 2-1,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,第4章 选择结构,选择结构程序设计,第四章,本章内容,4.1 条件表达式,4.2 条件语句,4.3 多分支语句,4.4 选择性控件,4.5 计时器控件,4.6 程序举例,1.关系运算符及关系表达式(简单条件),运算符,功 能,例 子,表达式值,小于,3*520,True,=,小于或等于,3*2,大于,31,True,=,大于或等于,6+8=15,False,=,等于,3*6=20,False,不等于,4-5,True,条件表达式,关系运算符的优先级别相同。,关系表达式说明,(1) 在关系表达式中两个操作数进行大小比较,结果为逻辑值。,(2) 如果两个操作数是数值型,则按其大小比较。,(3) 如果两个操作数是字符串,则按字符的ASCII码值从左到右逐一比较,最先出现的不一样字符之间的关系决定了两个字符串比较的结果。,“AB” “AC” 结果:True,“56” Text2 若是数字字符,不能比较,Val(Text1) Val(Text2) 转换数值,再比较大小,结果:True,关系表达式说明,(4) 如果两个操作数是日期型,将日期看成“yyyymmdd”的8位整数,按数值大小比较。,#09/18/2006# #09/23/2006# 结果为:False,2.逻辑运算符及逻辑表达式,(复杂条件),运算符,功 能,例 子,表达式值,NOT,非,NOT 3+56,NOT 3+56 AND 4*5=20,3+56 AND 4*5=20,True,False,OR,或,6*8=45 OR 42 Xor 32 Xor 34,False,True,Eqv,等价,76 Eqv 76 Eqv 78,True,False,Imp,蕴含,76 Imp 78,76 Imp 78,False,True,例:,检查变量x是否大于等于3且小于等于7,正确: 3= 3 And x =7 ),错误: 3=x=7 或 3=x Or x=7,例:x=9,3=x= 3 And x 21,32 And 21,结果:True,结果:False,结果:True,结果:False,a,小数,b,大数,比a大,比b小 用 And,比a小,比b大 用 Or,a,小数,b,大数,x =b,表达式的组成及种类,表达式的种类 :,算术运算符与算术表达式,字符串连接运算符与字符串连接表达式,关系运算符与关系表达式,逻辑运算符与逻辑表达式。,运算符的优先级,当一个表达式中存在多种运算符时,按如下优先级的先后顺序进行运算:,算术运算符字符运算符关系运算符逻辑运算符,函数幂()取负(-)乘、浮点除(*、/)整除( )取模(mod)加减(+、-)连接(&)关系运算符逻辑运算符(NotAndOrXorEqvImp),3+56 AND 4*5=20,结果:True,例:,判断某一年是否是闰年,条件是:能被4整除,但不能被100整除;或者能被400整除。,y Mod 4=0,y Mod 400=0,y Mod 100 0,and,or,条件语句,格式1:,(单行结构的条件语句,不需要End If),If Then ,格式2 :,(必须以 End If 结束),If Then,End If,功能:如果“条件”成立(其值为True)或为非0值,则执行“语句”,否则,直接执行End If语句的下一条语句。,条件,语句,N,Y,1. IfThen语句(单分支结构),正例:,If cj 60 Then Print “成绩不及格”,正例:,If cj 60 Then,Print “成绩不及格”,End If,错例:,If cj = 60 Then n=n+1 : Print “成绩及格”,正例:,If cj = 60 Then,n=n+1,Print “成绩及格”,End If,两个数的交换,例:已知两个数,x,和,y,,比较它们的大小, 使得x大于y.,If xy Then,t=x,x=y,y=t,End If,If x b Then,m = a,Else,m = b,End If,If c m Then m = c,Text4.Text = m,End Sub,程序代码 程序流程图,假,假,真,开始,从3 个文本框中,读取数值,a, b, c,a b,m = b,c m,结束,m = a,真,m = c,在文本框Text4,中显示m值,m = a,If bm then m=b,If cm then m=c,IIf 函数,格式,:,IIf(条件,True部分的值,False部分的值),功能,:,当“条件”为真时,True部分的值为函数值;而当“条件”为假时,False部分的值为函数值。,例如,将a、b中的小数,放入Min变量中:,Min=IIf(ab,a,b),等价于:,If a b Then,m = a,Else,m = b,End If,If c m Then m = c,Text4.Text = m,End Sub,If a b Then,If a c Then,m = a,Else,m = c,End If,Else,If b c Then,m = b,Else,m = c,End If,End If,Private Sub Form_Load(),Dim h As Integer,Show,使print输出在窗体上的内容可见,h = Hour(Time(),取系统的时间,FontSize = 30 : ForeColor = RGB(255, 0, 0),BackColor = RGB(255, 255, 0),If h 12 Then,Print 早上好!,Else,If h 18 Then,Print 下午好!,Else,Print 晚上好!,End If,End If,End Sub,例4.3,根据不同的时间段发出问候语,2. ElseIf格式(多分支结构),格式:,If 条件1 Then,语句块1,ElseIf 条件2 Then,语句块2,Else,语句块n,End If,功能:若“条件1”为True,执行“语句1”;否则若“条件2”为True,执行“语句2”;否则若,即依次判断各条件的值,若上述条件均不成立,执行“语句n”。,条件1,条件2,语句2,语句1,语句n,语句n-1,假,假,假,真,真,真,真,条件n-1,If h 12 Then,Print 早上好!,ElseIf h 18 Then,Print 下午好!,Else,Print 晚上好!,End If,2. ElseIf格式,If h 12 Then,Print 早上好!,Else,If h =90 Then,Print 优,ElseIf score =80 Then,Print 良,ElseIf score =70 Then,Print 中,ElseIf score =60 Then,Print 及格,Else,Print 不及格,End If,2. ElseIf格式,Select Case多分支语句,格式:,Select Case 测试表达式,Case 表达式列表1,语句块1,Case 表达式列表2,语句块2,Case Else,语句块n,End Select,功能:根据“测试表达式”的值,与,Case,后,表达式列表,进行相等测试,从多个语句块中选择符合条件的一个语句块执行。,情况语句说明,(1) “表达式列表I”与“测试表达式”类型必须相同;,(2) “表达式列表I”为下列四种形式:,一个值 如: Case 2,一组值(用逗号分隔) 如: Case 2,4,6,8,表达式1 To 表达式2 如: Case 60 To 100,(必须把较小值写在前面,即表达式1表达式2 ),Is 关系表达式 如: Is 60,(只能是简单条件,不能为组合条件),Case Is 100,Select Case h,Case Is 12,Print 早上好!,Case Is 18,Print 下午好!,Case Else,Print 晚上好!,End Select,Select Case,格式,Select Case h,Case Is 18,Print 下午好!,Case Is 12,Print 早上好!,Case Else,Print 晚上好!,End Select,Private Sub Command1_Click(),Dim score As Integer, temp As String,score = Val(Text1.Text),temp = 成绩等级为:,Select Case score,Case 0 To 59,Label2.Caption = temp + 不及格,Case 60 To 79,Label2.Caption = temp + 及格,Case 80 To 100,Label2.Caption = temp + “优良,Case Else,Label2.Caption = 成绩出错,End Select,End Sub,例4.4,判断成绩的等级(优良、及格、不及格),Case Is 100,例:,判断大小写字母问题,用Select Case情况语句实现。,提供选项让用户选择,如选择“,是,”或“,否,”,从列表中选择某一项或某几项等,选择的控件有:,单选按钮、复选框、列表框和组合框,选择性控件,单选按钮(OptionButton),单选按钮(OptionButton),控件由一个圆圈“”及紧挨它的文字组成,总是以成组的形式出现。,单选按钮用于从一组选项中选取其一。如果有一项被选中,则其他单选按钮将自动变成未选中。,有“选中”和“未选中”两种状态,单选按钮组,Caption属性,单选按钮(OptionButton),如果在一个窗体中要建立一个以上的选项组时,需添加,框架(Frame)分组,,置于同一框架中的单选按钮组成一组。,2. 常用属性,Caption属性:,设置单选按钮旁边的文字说明,Value属性:,表示单选按钮是否被选中,选中时 Value值为,True,否则为,False,。在一组单选按钮组中,选中其中一个,其余就会自动未选中。,Alignment属性:,设置单选按钮标题的对齐方式,Style属性;Picture属性,3. 事件,Click事件,当运行时单击单选按钮,单选按钮的Value属性的值由False改为True,执行相应的操作代码。,(1) 创建应用程序的用户界面和设置对象属性,单选按钮组;,初始状态:设置,Option1,的,Value,属性值设置为True,或通过代码“,Option1.Value=True,” 来实现,(2) 编写程序代码,功能要求,例4.5,用单选按钮组控制显示不同的字体,程序代码如下:,Private Sub Option1_Click(),Text1.FontName = 宋体,End Sub,Private Sub Option2_Click(),Text1.FontName = 幼圆,End Sub,Private Sub Option3_Click(),Text1.FontName = 楷体_GB2312,End Sub,说明:,程序代码中所用的字体名称(如“宋体”、“幼圆”等)必须与系统提供的字体相一致,复选框(CheckBox),控件由一个四方形小框和紧挨它的文字组成。提供“选中”和“未选中”两种可选项,复选框也称作复选按钮,被选中后左侧方块中会出现,用户可通过复选框是否被选中控制操作。,在一组复选框选项中,用户可以选择一个或多个复选框选项,也可以一个选项也不选。,复选框(CheckBox),2. 常用属性,Caption属性,Value属性:,表示复选框的状态,有三种取值:,0,未选中(缺省值),1,选中,2,不可用(灰色显示),Alignment属性;Style属性;Picture属性,3. 事件,Click事件,在应用程序中可以创建一个事件过程,检测控件对象Value属性值,再根据检测结果执行相应的处理,复选框,(CheckBox),(1)创建应用程序的用户界面和设置对象属性,多行文本框(带垂直滚动条)和四个复选框,(2)编写程序代码,功能要求:,程序开始运行后,用户在文本框中输入一段文字(如“复选框应用示例”),然后按需要单击各复选框,则文字的字体、字型、字号及颜色随之改变,例4.6,用复选框来控制文字的字体、字型、字号及颜色,Private Sub Check1_Click(),If Check1.Value = 1 Then,判复选框1是否选中,Text1.FontName = 楷体_GB2312,Else,Text1.FontName = 宋体,End If,End Sub,Private Sub Check2_Click(),If Check2.Value = 1 Then,判复选框2是否选中,Text1.FontItalic = True,Else,Text1.FontItalic = False,End If,End Sub,Private Sub Check3_Click(),If Check3.Value = 1 Then,判复选框3是否选中,Text1.FontSize = 25,Else,Text1.FontSize = 9,End If,End Sub,Private Sub Check4_Click(),If Check4.Value = 1 Then,判复选框4是否选中,Text1.ForeColor = RGB(255, 0, 0),Else,Text1.ForeColor = RGB(0, 0, 0),End If,End Sub,计时器控件(Timer),时钟控件以Interval为时间间隔产生 Timer事件(每隔多长时间调用一次Timer事件过程)。,属性名,属性值,说 明,Interval,数值,设置时钟控件的计时事件的时间间隔数。单位为ms(0.001s),取值范围(064767),即最大时间间隔不超过65秒。,如: 间隔时间为0.5秒是则Interval=500。,间隔时间为1秒则Interval=1000。,Interval=0时,时钟控件失效。,Enabled,逻辑值,True:有效计时,False:停止时钟工作,计时器控件只响应一个,Timer,事件。也就是说,计时器控件对象在间隔了一个Interval设定时间后,便触发一次Timer事件。运行时计时器控件不可见,也不能更改大小。,自动产生Timer事件,(执行相应的事件过程),自动产生Timer事件,(执行相应的事件过程),时间间隔,(Interval属性值),两个Timer事件之间的时间间隔,例4.7,建立一个电子时钟,(1) 创建应用程序的用户界面和设置对象属性,一个计时器控件和一个文本框。计时器控件Timer1的Interval属性值设定为1000(1秒),(2) 编写程序代码,Private Sub Timer1_Timer(),timer事件过程,Text1.Text = Time(),Time是时间函数,End Sub,运行界面,设计界面,例4.8,实现字体的放大,利用计时器可以按指定间隔时间对字体进行放大,(1)创建应用程序的用户界面和设置对象属性,一个计时器控件和一个标签 。 标签内显示文字“,放大,”,计时器控件Timer1的计时器采用默认的属性值,Enabled属性值为True(真),Interval属性值为0,(2)编写程序代码,Private Sub Form_Load(),Label1.Caption = 放大,Label1.Width = Form1.Width,把标签的高度和宽度,设置为窗体相同尺寸,Label1.Height = Form1.Height,Timer1.Interval = 800,End Sub,Private Sub Timer1_Timer(),If Label1.FontSize 0 Then,s = s - 1,s大于0时减1,Else,If m 0 Then,s等于0时先判m是否大于0,m = m - 1,m大于0时减1,s = 59,End If,End If,Text1.Text = Format(m, 00),数字字串,2位格式,Text2.Text = Format(s, 00),If s = 0 And m = 0 Then,Beep,响铃,即让喇叭发一声响,MsgBox 计时结束,End,End If,End Sub,先在窗体上显示以下考题:,鸡兔同笼,已知鸡和兔总头数为h=23,总脚数为f=56,求鸡兔各有多少只?,再提供输入框由学生回答问题,然后采用输出框显示对答案的评判意见。,分析:,设鸡数为j1,兔鸡数为t1,则有,j1 + t1 = h j1 = (4 * h - f) / 2,2*j1 + 4*t1 = f t1 = (f - 2 * h) / 2,例4.10,求鸡数和兔数,当用户单击“答题”按钮时,程序提供输入对话框,由用户输入答案,再通过输出框显示评判意见。采用的程序代码如下:,Private Sub Form_Load(),Show,Print,FontSize = 18,Print Spc(9); 考一考你,FontSize = 13,Print,Print Spc(5); 鸡兔同笼,已知鸡和兔总头数为23,,Print Spc(3); 总脚数为56,求鸡兔各有多少?,End Sub,Private Sub Command1_Click(),“答题”,h = 23 : f = 56,总头数及总脚数,j1 = (4 * h - f) / 2,求出的鸡数,t1 = (f - 2 * h) / 2,求出的兔数,j2 = Val(InputBox(鸡的只数是多少?, 请回答),t2 = Val(InputBox(兔的只数是多少?, 请回答),Select Case True 选择真值,Case j1 = j2 And t1 = t2,MsgBox 回答完全正确!,Case j1 = j2,MsgBox 鸡数回答正确,但兔数不对!,Case t1 = t2,MsgBox 兔数回答正确,但鸡数不对!,Case Else,MsgBox 回答错误!,End Select,End Sub,(1) 创建应用程序的用户界面和设置对象属性,单选按钮组Option1、Option2、Option3及Option4分别代表+、-、*(乘)和/(除)运算,(2) 编写程序代码,例4.11,输入两个运算数和运算符(+、-、*或/),组成算式并计算结果,然后显示出来,Private Sub Command1_Click(),“计算”按钮,Dim a As Single, b As Single, t As Single, s As String,a = Val(Text1.Text),b = Val(Text2.Text),Select Case True,Case Option1.Value, + 运算,s = “+“ : t = a + b,Case Option2.Value, - 运算,s = “-“ : t = a - b,Case Option3.Value, * 运算,s = * : t = a * b,Case Option4.Value, / 运算,s = /“ : t = a / b,End Select,Text3.Text = a & s & b & = & t,End Sub,Private Sub Command2_Click(),Text1.Text = ,Text2.Text = ,Text3.Text = ,End Sub,Private Sub Command3_Click(),End,End Sub,Private Sub Form_Load(),Option1.Value = True, + 运算,End Sub,56、请根据以下要求设计Visual Basic应用程序(包括界面和代码)。,在名称为Form1的窗体上画一个名称为Frame1、标题为框架的框架,在框架内添加两个名称分别为Option1、Option2的单选按钮,其标题分别为第一项、第二项 。要求通过设置控件的属性将第二项设置为被选中,框架为不可用。运行程序后的窗体如图所示。,注意:存盘时必须存放在考生文件夹下,工程文件名为sj87.vbp,窗体文件名为sj87.frm。,修改属性值:,Frame1.Caption=” 框架”,Frame1.Enabled = False Option1.Caption=”第一项”,Option2.Caption=”第二项”,Option2.Value = True,59、 在名称为Form1的窗体上画一个名称为Text1的文本框;画两个标题分别为对齐方式、字体,名称分别为Frame1、Frame2的框架;在Frame1框架中画三个单选按钮,标题分别为左对齐、居中、右对齐,名称分别为Option1、Option2、Option3;在Frame2框架中画两个单选按钮,标题分别为宋体、黑体,名称分别为Option4、Option5。,要求:编写五个单选按钮的Click事件过程,使程序运行时,单击这些单选按钮,可以对文本框中的文字实现相应的操作(如图所示)。,注意:要求程序中不得使用变量,每个事件过程中只能写一条语句。存盘时必须存放在考生文件夹下,工程文件名为sj93.vbp,窗体文件名为sj93.frm。,Private Sub Option1_Click(),Text1.Alignment = 0,End Sub,Private Sub Option2_Click(),Text1.Alignment = 2,End Sub,Private Sub Option3_Click(),Text1.Alignment = 1,End Sub,Private Sub Option4_Click(),Text1.FontName = 宋体,End Sub,Private Sub Option5_Click(),Text1.FontName = 黑体,End Sub,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 大学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!