计算机科学系软件设计基础河北理工大学——VB程序设计计算机第2章VB程序设计基础VisualBasic语言基础顺序结构程序设计选择结构程序设计循环结构程序设计计算机2.3选择结构程序设计本节学习目标:掌握使用选择结构处理程序中分支的方法掌握If…Then,If…Then…Else,If…Then…ElseIf和SelectCase等语句的使用方法。掌握一些基本控件(计时器、单选按钮和复选框、框架)的特殊属性和常用方法。计算机2.2顺序结构程序设计本节重点选择结构的语句格式,执行过程本节难点灵活使用选择结构的嵌套处理实际问题计算机学习内容为员工工资管理系统设置登录密码1实现自动计算员工个人所得税的功能2问题提出问题分析基本的选择结构If…Then单分支结构If…Then…Else双分支结构IFF()函数IF嵌套为系统设置登录密码,添加限制登录次数功能在登录窗体中添加滚动字幕ElseIf多分支结构引例实现系统自动计算所得税的功能计算机在系统中设置登录密码问题的提出在前面设计的员工工资管理系统中,单击“进入系统”按钮,可以直接进入系统,没有对系统加任何安全保护措施。为了使系统更加实用,同时也为了系统的安全,有必要对该程序进行修改。问题分析给程序设置登录密码。我们希望在用户进入系统时,必须输入“用户名”和“密码”,只有当“用户名”和“密码”同时正确方可进入系统。这种想法可以使用下面的流程图实现。计算机在系统中设置登录密码问题分析开始用户名框的值为“jsj”且密码框的值为”computer”true隐藏登录窗体结束false给出错误提示信息,选择用户文本框的内容,清楚密码文本框内容图1实现系统登录功能的程序流程图计算机在系统中设置登录密码If…Then单分支选择结构条件true语句块false图2单分支结构流程图(1)单行结构格式。If条件Then语句块(2)块结构格式。If条件Then语句块EndIf功能:如果条件成立,则执行Then后面的语句块,否则执行选择结构之外的下一条语句。实例2.5(1)计算机在系统中设置登录密码双分支选择结构条件true语句块1false图2选择结构流程图语句块2(1)单行结构格式If条件Then语句块1Else语句块2(2)块结构格式If条件Then语句块1Else语句块2EndIf功能:首先测试条件,如果条件成立,执行Then后面的语句块1;如果条件不成立,执行Else后面的语句块2。执行完Then或Else后面的语句后,跳出选择结构,去执行下一条语句。实例2.5(2)计算机在系统中设置登录密码IIf函数其语法格式是:IIf(条件,条件为真时的值,条件为假时的值)功能:判断条件,如果条件成立,返回“条件为真时的值”作为函数值;如果条件不成立,返回“条件为假时的值”作为函数值。If嵌套If语句块中的语句又是If语句,则为If嵌套。If嵌套时,Else总是与其最近的尚未匹配的If相匹配。修改实例2.5(2),使其能够判断出是否有相等的两个根。计算机在系统中设置登录密码为系统设置登录密码实例_总(2.4)规定:在用户进入系统时,要求用户输入用户名和密码,只有当用户名和密码同时正确是方可进入系统,如果用户名或密码错误,系统都将给出提示,同时系统还会自动选定用户所输入的用户名,删除用户输入的密码。功能分析使用两个文本框分别用于输入用户名和密码,当用户单击“进入系统”按钮时,判断用户名文本框中的值和设定的用户名是否相等,并且密码文本框中的值和设定的密码值是否相等,如果都相等,则隐藏登录窗体,显示主窗体,进入系统。否则不允许用户进入系统。故可使用If选择结构实现该功能。计算机在系统中设置登录密码界面设计设置属性对象(Caption)属性设置Label1(用户名)Name(名称)Lbl_userLabel2(密码)Name(名称)Lbl_passText1Name(名称)Txt_UserNameText空Alignment2-CenterText2Name(名称)Txt_PasswordText空PasswordChar*Alignment2-Center计算机在系统中设置登录密码编写代码PrivateSubCmd_Enter_Click()IfTxt_UserName.Text=jsjAndTxt_Password.Text=computerThenUnloadFrm_LoginFrmmain.ShowElseMsgBox用户名或密码错误,请再试一次!Txt_UserName.SelStart=0'确定选定内容的起始点Txt_UserName.SelLength=10'确定选定内容中包含的字符数Txt_UserName.SetFocus'获得焦点Txt_Password.Text=EndIfEndSub计算机为系统添加限制登录次数功能功能分析银行取钱?输入密码三次错误则不允许再进行操作。可以在代码中加入一个计数器变量来实现。开始用户名框的值为“jsj”且密码框的值为”computer”登录主窗体truefalse计数器变量值加1计数器变量值3?给出错误提示,进入系统按钮不可用结束给出错误提示信息,选定用户文本框的内容,清除密码文本框内容truefalse实例_总(2.5)计算机为系统添加限制登录次数功能修改代码PrivateSubCmd_Enter_Click()IfTxt_UserName.Text=jsjAndTxt_Password.Text=computerThenUnloadFrm_LoginFrmmain.ShowElsem_intTimes=m_intTimes+1Ifm_intTimes=3ThenMsgBox三次密码都错误,你没有使用该系统的权限!Cmd_Enter.Enabled=FalseElseMsgBox用户名或密码错误,请再试一次!Txt_UserName.SelStart=0'确定选定内容的起始点Txt_UserName.SelLength=10'确定选定内容中包含的字符数'若改为选中文本框中现有字符个数'Txt_UserName.SelLength=Len(Txt_UserName.Text)Txt_UserName.SetFocus'获得焦点Txt_Password.Text=EndIfEndIfEndSub计算机为系统添加限制登录次数功能编写KeyPress事件代码PrivateSubTxt_Password_KeyPress(KeyAsciiAsInteger)IfKeyAscii=vbKeyReturnThenCallCmd_Enter_ClickEndSub回车键的码值使用对象浏览器窗口可以查看VB键码常数和码值请同学们自己修改程序:输入用户名后按回车键,即判断用户名是否输入正确。如果正确则使密码框获得焦点,否则要重新输入。输入密码后,如果正确则使“进入系统”按钮获得焦点,否则重新输入。计算机在登录窗体中添加滚动字幕演示程序实例_总(2.6)主要属性(1)Interval属性这是时钟控件最重要的属性,它用于设定时钟触发事件的时间间隔,单位为ms(毫秒)。属性值是一个整数,取值范围为0~65535,即最大时间间隔不能超过65秒。例如,若希望每隔0.5秒产生一个计时器事件,则InterVal属性值应设置为500。这样每隔500毫秒触发一个Timer事件,从而执行相应的事件代码。时钟并不是一个十分精确的时间控件,对于一般电脑,它可以精确计时到1/18秒,模拟到1/1000秒。功能分析-计时器控件计算机在登录窗体中添加滚动字幕主要属性(2)Enabled属性设置时钟控件是否有效。是一个逻辑值,值为True时,开始有效计时,到达计时则触发Timer事件;值为False时,停止时钟控件工作,不再触发事件。若对一个时钟控件,例如Timer1,在程序中设置Timer1.Interval=0,等价于Timer1.Enabled=False功能分析-计时器控件电子时钟计算机在登录窗体中添加滚动字幕PrivateSubTmr_Scroll_Timer_Timer()IfLbl_title1.Left=Frm_Login.WidthThenLbl_title1.Left=Lbl_title1.Left+10‘Lbl_title1.MoveLbl_title1.Left+10‘Move方法ElseLbl_title1.Left=0EndIfEndSub编写滚动字幕代码如何实现窗体上的字幕自右向左移动或自上而下移动?试增加可暂停/继续的按钮,以控制字幕的滚动。增加按钮控制字幕的滚动速度。计算机问题的提出在“员工工资管理系统”中,所有员工的个人所得税都是按照标准工资的10%扣除的,但在实际问题中,个人所得税的比率应随着员工工资的不同而不同,所以,我们有必要对该程序进行修改,使得个人所得税的比率随员工工资的变化而变化。要完成上述功能,就要修改主窗体中的程序代码,使得员工个人所得税税率随员工标准工资不同而不同,当员工的标准工资发生变化时,员工的个人所得税自动重新计算。实现自动计算个人所得税的功能问题分析计算机实现自动计算个人所得税的功能问题分析个人所得税税收计算表月标准工资税率月标准工资不超过800元0超过0元至500元部分5%超过500元至2000元部分10%超过2000元至5000元部分15%超过5000元至20000元部分20%20000元以上25%相对应的计算公式:如果员工工资不超过800元,则个人所得税为:0元;如果员工工资不超过1300元(包括1300),则个人所得税为:(员工工资-800)×5%如果员工工资不超过2800元(包括2800),则个人所得税为:(员工工资-1300)×10%+500×5%如果员工工资不超过5800元(包括5800),则个人所得税为:(员工工资-2800)×15%+1500×10%+500×5%其他几种情况可以根据上面公式依次类推。计算机实现自动计算个人所得税的功能流程图m_intWage=800Truem_intTax=0Falsem_intWage=1300True按公式1计算Falsem_intWage=2800按公式2计算False…………TrueTrue按公式n计算计算机实现自动计算个人所得税的功能多分支选择结构语法格式如下:If条件1Then语句块1ElseIf条件2Then语句块2…Else语句块nEndIf执行过程:先测试条件1,如果条件成立,则执行Then后面的语句块1;如果条件1不成立,继续测试条件2,如果该条件成立,执行Then后面的语句块2……,按照这样的规则依次测试下去。只要测试到某个条件成立,就执行与之对应的Then后面的语句块,然后跳出选择结构执行其后的下一条语句。如果所有条件都不成立,则执行Else后面的语句块n。计算机实现自动计算个人所得税的功能多分支选择结构条件1T语句1块F条件2语句2块T………………F条件n-1式1语句n-1块语句n块FTF多分支结构计算机实现自动计算个人所得税的功能实例(2.5问题3—计算成绩等级)先判断成绩score是否大于等于90,是,则成绩为优秀;不是,接着判断是否大于等于80,是,则成绩为良好;不是,再接着判断是否大于等于70,依次类推下去,直到最后所有条件都不满足,则是不及格。计算机实现自动计算个人所得税的功能SelectCase语句表示多分支结构语法格式如下:SelectCase〈测试表达式〉Case〈表达式表列1〉〈语句块1〉[Case〈表达式表列2〉〈语句块2〉]…[CaseElse〈语句块n〉]EndSelect执行过程:先对“测试表达式”求值,然后顺序测试该值与哪一个Case子句中的“表达式表列”相匹配;如果有匹配的,则执行该Case分支的语句块,然后执行EndSelect后面的语句;如果没找到,则执行CaseElse分支的语句块,然后执行到EndSelect后面的语句。计算机实现自动计算个人所得税的功