1、广东农工商职业技术学院广东农工商职业技术学院VB.NET程序设计程序设计任务二任务二 应用选择结构完善系统应用选择结构完善系统广东农工商职业技术学院广东农工商职业技术学院2学习目标学习目标1、了解、了解VB.NET常用的数据类型常用的数据类型2、了解运算符和表达式、了解运算符和表达式3、掌握变量声明、变量作用域、掌握变量声明、变量作用域4、掌握选择结构的使用、掌握选择结构的使用5、掌握、掌握MessageBox类的常用方法类的常用方法6、了解常见错误类型,掌握错误处理的方法、了解常见错误类型,掌握错误处理的方法广东农工商职业技术学院广东农工商职业技术学院3VB.NET常用数据类型常用数据类型类
2、别类别数据类型数据类型长度长度取值范围取值范围 整整数数类类型型Short8位整数位整数-128127Integer32位整数位整数-3276832767Long64位长整数位长整数-9,223,372,036,854,775,808 到到 9,223,372,036,854,775,807。Byte无符号无符号8位整数位整数0255浮点数类浮点数类型型(带有带有小数点的小数点的数数)Single32位浮点数位浮点数负值取值范围为负值取值范围为-3.4028235E+38 到到-1.401298E-45;正值取值范围为;正值取值范围为 1.401298E-45 到到 3.4028235E+38
3、。(有效数字位数为有效数字位数为7)Double64位浮点数位浮点数负值取值范围为负值取值范围为-1.79769313486231570E+308 到到-4.94065645841246544E-324;正值取值范围为;正值取值范围为 4.94065645841246544E-324 到到 1.79769313486231570E+308。(有有效数字位数为效数字位数为15)Decimal128位的数位的数为了适应高精度的财务和货币计算的需要,精度为为了适应高精度的财务和货币计算的需要,精度为2829位有效数字位有效数字逻辑类型逻辑类型Boolean布尔类型布尔类型True或或FalseObj
4、ect4 个字节个字节任何类型都可以存储在任何类型都可以存储在 Object 类型的变量中。类型的变量中。单个字符单个字符类型类型Char2 个字节个字节(16位位)一个字符,无符号类型一个字符,无符号类型字符串类字符串类型型String取决于实现平取决于实现平台台0 到大约到大约 20 亿个亿个 Unicode 字符。字符。日期类型日期类型DateDateTime8 个字节个字节0001 年年 1 月月 1 日凌晨日凌晨 0:00:00 到到 9999 年年 12 月月 31 日晚上日晚上 11:59:59广东农工商职业技术学院广东农工商职业技术学院4变量与常量变量与常量变量变量变量的声明变
5、量的声明通过类型符号:直接在变量名后面加上类型符号通过类型符号:直接在变量名后面加上类型符号 S&=10 声明声明S为长整型变量为长整型变量 2.使用声明语句:使用声明语句:Dim 变量名变量名 As 类型类型 =初始值初始值 Dim 变量名变量名 类型符类型符 例如,下面两条声明语句的效果相同:例如,下面两条声明语句的效果相同:Dim a As Integer,b As Long,c As Single,d As Double Dim a%,b&,c!,d#注意:定义好的变量要在程序中使用,否则会有警告(未注意:定义好的变量要在程序中使用,否则会有警告(未使用的变量)。使用的变量)。广东农工
6、商职业技术学院广东农工商职业技术学院5变量与常量变量与常量变量变量变量的命名变量的命名由字母、汉字、数字或下划线组成,第一个字符必须由字母、汉字、数字或下划线组成,第一个字符必须是字母或汉字或下划线。是字母或汉字或下划线。如果名称以下划线开头,必须包含至少一个字母或数如果名称以下划线开头,必须包含至少一个字母或数字。字。长度不超过长度不超过1023个字符。个字符。不要与不要与VB.NET中的关键字同名。中的关键字同名。VB.NET对变量中字母的大小写不加以区分。对变量中字母的大小写不加以区分。最好利用最好利用“匈牙利命名匈牙利命名”规则给变量起名,即变量名由规则给变量起名,即变量名由“前缀前缀
7、+后缀后缀”组成。例如组成。例如:IntCountor,DblSum广东农工商职业技术学院广东农工商职业技术学院6变量与常量变量与常量变量变量静态变量的声明静态变量的声明自动变量:用自动变量:用Dim声明,变量值只在过程执行期间才存声明,变量值只在过程执行期间才存在在 静态变量:用静态变量:用Static声明,变量值在程序运行期间一直声明,变量值在程序运行期间一直存在存在 例例 统计单击窗体的次数统计单击窗体的次数 广东农工商职业技术学院广东农工商职业技术学院7变量与常量变量与常量变量变量变量的作用域变量的作用域 块级变量块级变量:用Dim声明,在特定的代码块中声明。如条件语句块.局部变量局部
8、变量:在一个过程内部声明的变量,它只在本过程内有效。用Dim或Static来声明。窗体和模块级变量窗体和模块级变量:在窗体和模块的声明部分定义的变量,它对一个窗体或模块的不同过程都有效.用 Dim或Private来声明。全局变量全局变量:在模块文件中用Public关键字声明的变量.它可以被应用程序中的所有模块引用。广东农工商职业技术学院广东农工商职业技术学院8变量与常量变量与常量常量常量 常量:就是其值固定不变的量常量:就是其值固定不变的量 常量的命名和声明常量的命名和声明命名:遵循变量名命名的规则命名:遵循变量名命名的规则声明格式:声明格式:Const 常量名常量名 As 类型类型=表达式表
9、达式 例:例:Const conMax As Integer=9 声明声明Integer型常量型常量 Const conDate=#10/5/2019#声明声明Date型常量型常量 Const CodeName=“ASCII”声明声明String型常量型常量 Const pi As Double=3.14159265358979 声明声明Double型型常量常量广东农工商职业技术学院广东农工商职业技术学院9运算符运算符1.算术运算符算术运算符 优先级优先级运算运算运算符运算符举例举例结果结果 高高 低低乘方乘方 2 3 8取负取负-2 3-8乘、除乘、除*/5*3/2 7.5整除整除 5*3
10、2 7求余求余 Mod5*3 Mod 2 1加、减加、减+-10-3+(-2)5广东农工商职业技术学院广东农工商职业技术学院10运算符运算符2.字符串运算符字符串运算符运算符:运算符:&和和+例:例:VB=“Visual”+“Basic”连接为字符串连接为字符串“Visual Basic”第第&Str(N)&条记录条记录 Str为数值型转字符型函数。若为数值型转字符型函数。若N为为1,标签上显示,标签上显示“第第1条记录条记录”说明:说明:使用使用+号,要求连接的两个表达式均为字符串型号,要求连接的两个表达式均为字符串型使用使用&号,连接的两个表达式可以为任何类型,但结果为字符串型,号,连接的
11、两个表达式可以为任何类型,但结果为字符串型,如如 “当前日期当前日期”
/8/2019#广东农工商职业技术学院广东农工商职业技术学院11运算符运算符3.关系运算符关系运算符 运运 算算运算符运算符举举 例例结结 果果 等于等于=Hello=helloFalse 不等于不等于 Hello helloTrue 大于大于 Hello helloFalse 大于等于大于等于=45+10=55True 小于小于 a abTrue 小于等于小于等于=45+10 5),结果为,结果为True And:两个表达式均为:两个表达式均为True时,结果为时,结果为True 例如,例如,(4 5)And(8
12、7),结果为,结果为False Or:两个表达式均为:两个表达式均为False时,结果为时,结果为False 例如,例如,(4 5)Or(8 7),结果为,结果为True 广东农工商职业技术学院广东农工商职业技术学院13运算符运算符4.逻辑运算符逻辑运算符XYNot YX And YX Or Y False False True False False False True False False True True False True False True True True False True True广东农工商职业技术学院广东农工商职业技术学院14表达式表达式 表达式:用运算符和圆括
13、号将常量、变量、函数和常数表达式:用运算符和圆括号将常量、变量、函数和常数连接起来组成的有意义的式子。连接起来组成的有意义的式子。如,数值表达式如,数值表达式 Cos(180*Pi/180)*100 逻辑表达式逻辑表达式(N=0)And(N Mod 2 0)运算优先顺序运算优先顺序(从高到低从高到低):函数函数算术运算算术运算(乘方乘方取负取负乘乘/除除整除整除求余求余加加/减减)字符串运算符字符串运算符关系运算符关系运算符逻辑运算符逻辑运算符(NotAndOr)用括号可以改变运算顺序用括号可以改变运算顺序 乘方和负号相邻时,取负优先。乘方和负号相邻时,取负优先。例如:例如:2 -2 的结果是
14、的结果是0.25,相当于,相当于2(-2)广东农工商职业技术学院广东农工商职业技术学院15属性、事件属性、事件1、属性、属性指对象指对象(如窗体或控件如窗体或控件)的特征,称为对象的属性。的特征,称为对象的属性。2、事件、事件指能被对象识别的动作,如单击、双击等。指能被对象识别的动作,如单击、双击等。3、事件过程、事件过程指一段独立的代码。当在对象上发生了某个事指一段独立的代码。当在对象上发生了某个事件,该对象就会响应这个事件,去执行这段独件,该对象就会响应这个事件,去执行这段独立的代码。立的代码。广东农工商职业技术学院广东农工商职业技术学院16属性的设置及代码的编写属性的设置及代码的编写属性
15、的设置有属性的设置有2种方法:种方法:1、利用属性窗口,找到相应对象的属性直接设置、利用属性窗口,找到相应对象的属性直接设置2、在程序代码中,通过赋值语句来设置,格式为:、在程序代码中,通过赋值语句来设置,格式为:对象名对象名.属性名属性名=属性值属性值例:例:Label1.Text=“请输入姓名请输入姓名”编写事件过程代码的步骤:编写事件过程代码的步骤:1、打开代码窗口(方法有很多种)、打开代码窗口(方法有很多种)2、在左边的下拉列表框中选择、在左边的下拉列表框中选择“对象名对象名”3、在右边的下拉列表框中选择、在右边的下拉列表框中选择“事件名事件名”广东农工商职业技术学院广东农工商职业技术
16、学院17选择结构选择结构选择结构:当设定条件成立时执行某些语句,选择结构:当设定条件成立时执行某些语句,条件不成立时则跳过这些语句或执行其它的语条件不成立时则跳过这些语句或执行其它的语句。句。选择结构中要使用选择语句,有两路分支和多选择结构中要使用选择语句,有两路分支和多路分支两种情况路分支两种情况,对应的选择语句有,对应的选择语句有If语句语句(两两路出口路出口)和和Select Case语句语句(多路出口多路出口)。广东农工商职业技术学院广东农工商职业技术学院18选择结构选择结构If条件语句条件语句 1、If语句结构语句结构 If Then End If If Then Else End
17、If 广东农工商职业技术学院广东农工商职业技术学院19选择结构选择结构If条件语句条件语句 2、If语句嵌套语句嵌套 If语句嵌套使用可形成多分支的条件语句结构语句嵌套使用可形成多分支的条件语句结构 If Then ElseIf Then Else End If广东农工商职业技术学院广东农工商职业技术学院20选择结构选择结构If条件语句举例条件语句举例 例例1:用户登录界面的代码:用户登录界面的代码 用于返回登陆结果用于返回登陆结果 Public bResult As Boolean=False 登陆用户的登陆用户的ID Public UserId As String=登陆的用户名登陆的用户名
18、 Public UserName As String=登陆的用户密码登陆的用户密码 Private UserPwd As String=Private Sub btnSubmit_Click(ByVal sender As System.Object,ByVal e As System.EventArgs)Handles btnSubmit.Click 判断用户输入密码的合法性判断用户输入密码的合法性 If UserPwd=“123”And UserName=“123 Then 合法用户合法用户 bResult=True Me.Close()Else 密码错误密码错误 bResult=Fals
19、e MessageBox.Show(请确认你的用户名或密码是否正确请确认你的用户名或密码是否正确)End If End Sub Private Sub btnClear_Click(ByVal sender As System.Object,ByVal e As System.EventArgs)Handles btnClear.Click 关闭登陆对话框关闭登陆对话框 Me.Close()关闭整个程序关闭整个程序 Application.Exit()End Sub广东农工商职业技术学院广东农工商职业技术学院21选择结构选择结构If条件语句举例条件语句举例 例例2:将分数按等级划分:将分数按等
20、级划分(在在“控制台应用程序控制台应用程序”中录入如下代码中录入如下代码)Dim sYourScore As String Dim iScore As Integer System.Console.WriteLine(请输入你的考试分数(0-100之间):)sYourScore=System.Console.ReadLine()iScore=Integer.Parse(sYourScore)If(iScore 100)Then System.Console.WriteLine(不可能的分数!)ElseIf(iScore=100)Then System.Console.WriteLine(你真不
21、可思议,太棒了!)ElseIf(iScore 85)Then System.Console.WriteLine(你真优秀!)ElseIf(iScore 60)Then System.Console.WriteLine(不错不错!)Else System.Console.WriteLine(下次加油哦!)End If System.Console.ReadLine()广东农工商职业技术学院广东农工商职业技术学院22选择结构选择结构Select Case选择语句选择语句 语法格式:语法格式:Select Case Case Case Case Else End Select 功能功能:根据测试表达
22、式的值,决定程序的流向。:根据测试表达式的值,决定程序的流向。值的类值的类型是数值型、字符串型、日期型等,一旦与某个型是数值型、字符串型、日期型等,一旦与某个Case后的后的值相值相等,则执行这个等,则执行这个Case中的中的,完成后执行,完成后执行End Select后的语句。后的语句。如果所有的如果所有的Case后的后的都不与都不与项匹配,则执行项匹配,则执行Case Else后的后的。广东农工商职业技术学院广东农工商职业技术学院23选择结构选择结构Select Case选择语句选择语句 例例3:将例:将例2改写为改写为Select Case结构。结构。Dim sYourScore As
23、String Dim iScore As Integer System.Console.WriteLine(请输入你的考试分数(请输入你的考试分数(0-100之间):之间):)sYourScore=System.Console.ReadLine()iScore=Integer.Parse(sYourScore)Select Case iScore Case 100 System.Console.WriteLine(你真不可思议,太棒了!你真不可思议,太棒了!)Case 85 To 99 System.Console.WriteLine(你真优秀!你真优秀!)Case 60 To 84 Syst
24、em.Console.WriteLine(不错不错!不错不错!)Case 0 To 59 System.Console.WriteLine(下次加油哦!下次加油哦!)Case Else System.Console.WriteLine(不可能的分数!不可能的分数!)End Select System.Console.ReadLine()广东农工商职业技术学院广东农工商职业技术学院24MessageBox类类MessageBox类的常用方法:类的常用方法:Show方法:利用该方法给用户一些提示信息。方法:利用该方法给用户一些提示信息。例例:MessageBox.Show(“请确认密码是否正确请确
25、认密码是否正确”)广东农工商职业技术学院广东农工商职业技术学院25课堂实训课堂实训用户登录界面代码:用户登录界面代码:用于返回登陆结果用于返回登陆结果 Public bResult As Boolean=False 登陆用户的登陆用户的ID Public UserId As String=登陆的用户名登陆的用户名 Public UserName As String=登陆的用户密码登陆的用户密码 Private UserPwd As String=Private Sub btnSubmit_Click(ByVal sender As System.Object,ByVal e As System
26、.EventArgs)Handles btnSubmit.Click 判断用户输入密码的合法性判断用户输入密码的合法性 If UserPwd=“123”And UserName=“123 Then 合法用户合法用户 bResult=True Me.Close()Else 密码错误密码错误 bResult=False MessageBox.Show(请确认你的用户名或密码是否正确请确认你的用户名或密码是否正确)End If End Sub Private Sub btnClear_Click(ByVal sender As System.Object,ByVal e As System.Even
27、tArgs)Handles btnClear.Click 关闭登陆对话框关闭登陆对话框 Me.Close()关闭整个程序关闭整个程序 Application.Exit()End Sub广东农工商职业技术学院广东农工商职业技术学院26常见错误类型常见错误类型 语法错误语法错误 运行错误运行错误 逻辑错误逻辑错误广东农工商职业技术学院广东农工商职业技术学院27错误处理错误处理 使用使用TryEnd Try结构来处理结构来处理“运行错误运行错误”Try可能产生运行错误的语句可能产生运行错误的语句Catch一旦发生运行错误就执行的语句一旦发生运行错误就执行的语句Finally不管错误是否发生都会被执行
28、的语句不管错误是否发生都会被执行的语句End Try广东农工商职业技术学院广东农工商职业技术学院28错误处理错误处理 处理磁盘驱动器错误处理磁盘驱动器错误TryPictureBox1.Image=Image.Fromfile(“a:fileopen.bmp”)CatchMessageBox.Show(“Please insert disk in the drive A!”)End Try广东农工商职业技术学院广东农工商职业技术学院29错误处理错误处理 使用使用Finally子句完成清除任务子句完成清除任务TryPictureBox1.Image=Image.Fromfile(“a:fileop
29、en.bmp”)CatchMessageBox.Show(“Please insert disk in the drive A!”)FinallyMessageBox.Show(“Error handle complete”)End Try 注意:无论注意:无论Try语句是否产生运行错误,都可能需要在语句是否产生运行错误,都可能需要在错误处理程序结束时实现某项任务,如更新变量、使用错误处理程序结束时实现某项任务,如更新变量、使用消息框显示结果或禁用窗体上不需要的对象,此时就需消息框显示结果或禁用窗体上不需要的对象,此时就需要使用要使用Finally子句。子句。广东农工商职业技术学院广东农工商职
30、业技术学院30错误处理错误处理 使用使用Err对象获取较详细的错误信息对象获取较详细的错误信息Err对象:对象:每次产生运行错误时,该对象都会被赋予详每次产生运行错误时,该对象都会被赋予详细的错误处理信息。细的错误处理信息。常用属性:常用属性:Err.Number:提供运行错误的编号:提供运行错误的编号Err.Description:描述运行错误的简短信息:描述运行错误的简短信息广东农工商职业技术学院广东农工商职业技术学院31错误处理错误处理 检测多个运行错误检测多个运行错误TryPictureBox1.Image=Image.Fromfile(“a:fileopen.bmp”)Catch W
31、hen Err.Number=53 文件不存在错误文件不存在错误MessageBox.Show(“Check pathname and disk drive!”)Catch When Err.Number=7 内存不足错误内存不足错误MessageBox.Show(“Is this really a bitmap?”)Catch When Err.Number=7 内存不足错误内存不足错误 MessageBox.Show(Err.Description)End Try广东农工商职业技术学院广东农工商职业技术学院32错误处理错误处理 指定重试次数指定重试次数指多次尝试一种操作指多次尝试一种操作,
32、如果问题仍得不到解决则禁如果问题仍得不到解决则禁用该操作。用该操作。例:先声明例:先声明Retries变量为窗体级变量变量为窗体级变量,然后在然后在Button1的单击事件过程中写如下代码的单击事件过程中写如下代码:Try PictureBox1.Image=Image.Fromfile(“a:fileopen.bmp”)Catch Retries+=1 If Retries=2 ThenMessageBox.Show(“please insert the disk in drive A!”)Else MessageBox.Show(“文件载入文件载入3次失败次失败,请退出请退出!”)Button1.Enabled=False End IfEnd Try广东农工商职业技术学院广东农工商职业技术学院33错误处理错误处理 抛出错误抛出错误调试程序或指定重试次数是时使用。调试程序或指定重试次数是时使用。方法方法1:Err.Raise(7)产生一个内存不足错误产生一个内存不足错误方法方法2:Throw New Exception 抛出一个异常抛出一个异常广东农工商职业技术学院广东农工商职业技术学院34作业作业实训实训1:应用选择结构完善登录窗体:应用选择结构完善登录窗体(见见PPT25页页)实训实训2:设计一个小型计算器:设计一个小型计算器