第7章程序VB选择结构程序设计ppt课件_第1页
第7章程序VB选择结构程序设计ppt课件_第2页
第7章程序VB选择结构程序设计ppt课件_第3页
第7章程序VB选择结构程序设计ppt课件_第4页
第7章程序VB选择结构程序设计ppt课件_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

.,1,第7章选择结构程序设计,.,2,学习重点,If语句、IIf函数、Switch函数、SelectCase语句的格式与使用。If语句的嵌套使用。掌握常用的选择结构算法。,.,3,本章内容,7.1If语句7.2SelectCase语句7.3基本算法及应用7.4其他应用举例本章小结,.,4,引言,分支结构,.,5,7.1If语句,7.1.1IfThen结构7.1.2IfThenElse结构7.1.3IfThenElseIf结构7.1.4If语句的嵌套7.1.5与If语句有关的函数,.,6,注1:条件表达式的值为True或False,一般是逻辑或关系表达式,也可以是算术表达式(转换为逻辑值),7.1.1IfThen结构,两种格式:,格式1:块形式IfThen语句体EndIf,格式2:单行形式IfThen语句体,注2:当条件为True时执行语句体,否则执行If语句的下一条语句,注3:语句体中可以是多条语句,当采用格式2时,所有的语句必须写在一行,用冒号隔开语句体中的语句,.,7,7.1.1IfThen结构,例:已知有两数x、y,编程使x中存放较大的数分析:如果x=y,则不需要做处理如果xy,则做交换处理实现:IfxyThentemp=xx=yy=tempEndIf用格式2描述:IfxyThentemp=x:x=y:y=temp,特别注意:块结构时If和EndIf成对出现,.,8,7.1.1IfThen结构,例7-1电子闹钟设计,主要利用文本框、按钮、计时器控件实现闹钟功能。,.,9,例7-1,程序代码如下:PrivateSubCommand1_Click()Timer1.Enabled=NotTimer1.Enabled用Not运算进行开关控制EndSubPrivateSubTimer1_Timer()DimdAsDated=Text1.TextIfHour(Time)=Hour(d)AndMinute(Time)=Minute(d)ThenBeep到达时间后发声EndSub,功能:连续1分钟响铃,60次,等价于:IfHour(Time)=Hour(d)AndMinute(Time)=Minute(d)ThenBeepEndIf,.,10,7.1.2IfThenElse结构,两种格式:,格式1:IfThen语句体1Else语句体2EndIf,格式2:IfThen语句体1Else语句体2,注:当条件为True时执行语句体1,否则执行语句体2,.,11,例7-2已知x,求,程序代码如下:PrivateSubCmdCul_Click()DimxAsSingle,yAsSinglex=Val(txtX.Text)第1个文本框的名称是txtXIfxyThenPrintx&“”&yElseIfxyThenPrintx&“”&yElsePrintx&“=”&yEndIfEndIf,.,18,7.1.4If语句的嵌套,注1:If语句的完整性,即内层If语句必须完整地出现在外层If语句的Then子句或Else子句中。,内外层不能有交叉!,.,19,7.1.4If语句的嵌套,注2:ElseIf的匹配原则Else始终与上面距离其最近的未被匹配过的If匹配注3:IfEndIf的匹配If块必须以一个EndIf语句结束,IfThenIfThenElseEndIfElseIfThenIfThenElseEndIfEndIf,.,20,7.1.4If语句的嵌套,为使程序结构更为清晰,要养成良好的书写习惯。,IfThenIfThenElseEndIfElseIfThenIfThenElseEndIfEndIf,为体现层次,可以使用Tab健排放不同层次的语句,.,21,7.1.4If语句的嵌套,例7-4根据用户输入年龄和性别,输出不同的欢迎信息。其中小于14岁的男性为boy,大于14岁的男性为guy,其中小于14岁的女性为girl,大于14岁的女性为miss。,.,22,例7-4,程序代码如下:PrivateSubCommand1_Click()IfOp_male.Value=TrueThenIfVal(Txt_age.Text)0,1,IIf(x=0,0,-1)判断x的符号,.,26,1.IIf函数,将If语句改写成使用IIf函数:,Ifx30Theny=0ElseIfx=50Theny=(x-30)*10Elsey=(x-50)*20+20*10EndIf,等价于:y=IIf(x=80,B,grade80,C)用于多分支情况条件表达式和值必须成对出现!,.,28,2.Switch函数,将If语句改写成使用Switch函数:,Ifx=、=,不可以使用逻辑运算符表示多个范围。前面四种情况的组合,如CaseIs10,2,4,6,Is=“a”Andch=“A”Andch=“0”AndchB,A=B,A=BThenMax=AElseMax=BIfABThenMax=AElseMax=B,.,37,7.3.2用户输入时按键的判断,两种方法:一是在输入时判断,使用文本框的Key事件;常用:KeyPress事件(KeyAscii参数)二是在全部输入完成后再对每个字符进行判断,使用循环结构依次获取字符串中的字符。,例7-7在文本框中输入一个字符串,要求只能出现字母。PrivateSubText1_KeyPress(KeyAsciiAsInteger)If(KeyAsciiAsc(z)And_(KeyAsciiAsc(Z)ThenKeyAscii=0EndSub,.,38,7.3.3信息的有效性验证,例7-8登录界面设计,“确定”按钮的Click事件过程如下:PrivateSubcmdok_Click()Iftxtuser.Text=Ortxtpwd.Text=ThenMsgBox请输入完整信息!ElseIftxtpwd.Text20082008ThenMsgBox密码错误,不能登录!txtpwd.Text=txtpwd.SetFocusElseMsgBoxtxtuser.Text&,欢迎您!EndIfEndIfEndSub,有效信息:帐号和密码都不能空密码符合要求,这样的密码设置方法,安全性差,.,39,7.3.4单选钮和复选框的应用,单选钮多选一在同一组单选钮中只有一个按钮的Value属性值为1,通常使用IfThenElseIf的语句格式进行判断。复选框多选多同一组复选框中可以同时有多个被选中,也可以只选中一个,也可以一个都不选中,通常我们对各个复选框进行独立判断。,.,40,7.3.4单选钮和复选框的应用,例7-9根据用户选择,求若干门课程的总分或平均分,参考代码如下:PrivateSubcmdCal_Click()DimsumAsInteger,nAsIntegerIfchkChinese.Value=1Thensum=sum+Val(txtChinese.Text):n=n+1IfchkMath.Value=1Thensum=sum+Val(txtMath.Text):n=n+1IfchkEnglish.Value=1Thensum=sum+Val(txtEnglish.Text):n=n+1IfoptTotal.ValueThentxtResult.Text=n&门课总分:&vbCrLf&sumElseIfn0ThentxtResult.Text=n&门课平均分:&vbCrLf&sum/nEndIfEndSub,问:变量n的作用是什么?,.,41,7.4其他应用举例,例7-10例7-11例7-12例7-13,.,42,例7-10,例7-10调整3个文本框中的数值,使其中的数值按小到大的顺序排放,IfabThentemp=a:a=b:b=temp如果a大于b,交换a和b的值IfacThentemp=a:a=c:c=temp如果a大于c,交换a和c的值IfbcThentemp=b:b=c:c=temp如果b大于c,交换b和c的值,.,43,例7-11,例7-11求一元二次方程ax2+bx+c=0的根,根据数学中一元二次方程的求根公式,令:当0时,方程有两个不相等的实根;当=0时,方程有两个相等的实根;当0Thenx1=(-b+Sqr(delta)/(2*a)第1个根x2=(-b-Sqr(delta)/(2*a)第2个根txtroot=X1=&x1&Chr(13)&Chr(10)&X2=&x2ElseIfdelta=0Thenx1=-b/(2*a)txtroot=Twoequalroot,X1=X2=&x1Elsex1=-b/(2*a)根的实部x2=Sqr(-delta)/(2*a)根的虚部txtroot=X1=&x1&+&x2&i&Chr(13)&Chr(10)&X2=&x1&-&x2&iEndIfEndIf,.,45,例7-12,例7-12编程实现输入一个整数,判断其能否被3、5、7整除,并输出以下信息之一:(1)能被3、5、7整除。(2)能被其中两个数(要指出哪两个)整除。(3)能被其中一个数(要指出哪一个)整除。(4)不能被3、5、7任一个整除。,.,46,代码1,IfxMod3=0AndxMod5=0AndxMod7=0ThenMsgBox能被3,5,7整除IfxMod3=0AndxMod5=0AndxMod70ThenMsgBox能被3,5整除IfxMod3=0AndxMod7=0AndxMod50ThenMsgBox能被3,7整除IfxMod5=0AndxMod7=0AndxMod30ThenMsgBox能被5,7整除IfxMod3=0ThenMsgBox能被3整除IfxMod5=0ThenMsgBox能被5整除IfxMod7=0ThenMsgBox能被7整除,.,47,代码2,IfxMod3=0AndxMod5=0AndxMod7=0ThenMsgBox能被3,5,7整除ElseIfxMod3=0AndxMod5=0AndxMod70ThenMsgBox能被3,5整除ElseIfxMod3=0AndxMod7=0AndxMod50ThenMsgBox能被3,7整除ElseIfxMod5=0AndxMod7=0AndxMod30ThenMsgBox能被5,7整除ElseIfxMod3=0ThenMsgBox能被3整除ElseIfxMod5=0ThenMsgBox能被5整除ElseIfxMod7=0ThenMsgBox能被7整除ElseMsgBox不能被3、5、7任一数整除EndIf,.,48,代码3,IfxMod3=0Thenn=n+1s=s&3EndIfIfxMod5=0Thenn=n+1s=s&5EndIfIfxMod7=0Thenn=n+1s=s&7EndIfIfn0ThenMsgBox能被&s&这&n&个数整除ElseMsgBox不能被任一数整除EndIf,.,49,代码4,n=0IfxMod3=0Thenn=n+1EndIfIfxMod5=0Thenn=n+2EndIfIfxMod7=0Thenn=n+4EndIf,SelectCasenCase0:MsgBox不能被任一数整除Case1:MsgBox能被3整除Case2:MsgBox能被5整除Case3:MsgBox能被3,5整除Case4:MsgBox能被7整除Case5:MsgBox能被3,7整除Case6:MsgBox能被5,7整除Case7:MsgBox能被3,5,7整除EndSelect,.,50,例7-13,例7-13模拟红绿灯。在界面上有两个图像框,分别显示信号灯和汽车,设定信号灯的变化规律是黄灯1秒,红灯2秒,绿灯3秒,汽车从左向右行驶,当行驶到路口时,根据信号灯的提示进行等待或行驶,.,51,ConstpathAsString=C:ProgramFilesMicrosoftVisualStudioCommonGraphicsIconsTrafficDimaAsIntegerPrivateSubTimer1_Timer()a=a+1Ifa6Thena=1EndIfSelectCaseaCase1Image1.Picture=LoadPicture(path&TRFFC10B.ICO)Case2,3Image1.Picture=LoadPicture(path&TRFFC10C.ICO)Case4,5,6Image1.Picture=LoadPicture(path&TRFFC10A.ICO)Timer2.Enabled=TrueEndSelectEndSub,.,52,例7-13,PrivateSubTimer2_Timer()Ifa=Line1.X1-100And_Image2.Left+Image2.WidthMe.WidthThenImage2.Left=-Image2.WidthEndI

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论