全书配套课件:Visual Basic.NET程序设计_第1页
全书配套课件:Visual Basic.NET程序设计_第2页
全书配套课件:Visual Basic.NET程序设计_第3页
全书配套课件:Visual Basic.NET程序设计_第4页
全书配套课件:Visual Basic.NET程序设计_第5页
已阅读5页,还剩523页未读 继续免费阅读

下载本文档

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

文档简介

1、Visual Basic.NET程序设计第1章 基本知识认识认识Visual BasicVisual Basic1.1窗体及标签的应用窗体及标签的应用1.2文本框与字符串文本框与字符串1.3常用数据类型常用数据类型1.4常用内部函数常用内部函数1.6输入输出对话框输入输出对话框 1.7综合实例综合实例1.8算术运算与表达式算术运算与表达式1.5 本章将介绍VB.NET程序语言的基本结构,以及程序中用到的常量与变量、常用的数据类型以及表达式等,目的是使读者掌握简单的VB.NET程序的编写及设计方法。1.1 认识Visual Basic 1.1.1 对象 Visual Basic.Net是面向对象

2、的程序设计语言,所谓对象就是一个客体,实例中的窗体是一个对象,标签是一个对象,按钮也是一个对象。 不同的对象有不同的特征,窗体对象、标签对象与按钮对象无论从形状还是功能上都不同。 任何对象一般都有属性(Property)、方法(Method)、事件(Event)3个要素。1属性 属性往往是对象的特性的一个参数,例如标签上的文字“Visual Basic”就是标签的一个属性,文字的字体与大小也是标签的一个属性。 一般一个对象有多个属性,不同的对象有不同的属性。 但任何对象都有一个属性Name,它是对象的名称,不同的对象名称不同。2方法 对象的方法是对象的一个动作,它往往是对象的一个函数,实例中用

3、到标签的两个方法:Show()方法:显示标签;Hide()方法:隐藏标签。 方法是一个函数,函数往往是有参数的,参数写在一对圆括号中,没有参数的方法也要写括号,只是括号中为空。 这里的Show()方法、Hide()方法就没有参数。 对象调用它的方法时也用小数点来连接,例如Label1.Show()表示Label1对象调用了它的Show()方法,该方法让它显示。3事件 事件是一个对象对某个动作的响应,例如当按钮被鼠标单击后,按钮就会对单击作出响应。 系统已经预先为按钮安排了一个鼠标单击事件,它对应一段程序过程,用户只需要把要执行的程序写在指定的事件过程中即可。 实例中要把标签的Show()写在“

4、显示”按钮的单击事件过程中,把标签的Hide()写在“隐藏”按钮的单击事件过程中。1.1.2 启动Visual Basic 启动VB.NET程序的方法之一是(不同的计算机软件环境可能启动方法不同,留意VB.NET的安装环境): 选择Windows“开始程序Microsoft Visual Studio 2005”选项 启动后会出现一个Visual Studio 2005的起始页面,执行“文件”“新建”“项目”命令后出现如图1-2所示的对话框。图图1-2 “1-2 “新建项目新建项目”对话框对话框1.1.3 程序实例 例1.1 一个窗体上面有一个“Visual Basic”的标签和两个按钮,单击

5、“显示”按钮后标签显示,单击“隐藏”按钮后标签隐藏,程序运行结果如图1-1所示。图图1-1 1-1 实例程序实例程序1.1.4 程序设计过程 从实例中看到,用VB.NET设计程序的步骤一般分为以下几步: (1)界面设计 即在窗体界面上安排所需的控件。(2)设置控件的属性 在属性窗口中设置控件的属性以满足程序的需要。(3)编写程序代码 在代码窗口中编写VB.NET的程序语句。(4)调试与执行程序 找出并修正程序的错误,执行程序查看是否达到目的。(5)保存程序文件 最后保存程序文件,关闭项目。 根据不同的程序,设计的步骤可能有所不同,但这几个基本步骤大致相同。1.2 窗体及标签的应用 本节介绍窗体

6、及标签控件的基本属性及设置,讲解了事件驱动程序的概念,通过本节的学习使读者掌握事件驱动程序的概念。 如图1-10所示为一个程序实例,程序启动后有一个标签显示“Visual Basic”,位于中间位置,单击“左移”按钮后标签向左移动,单击“右移”按钮后标签向右移动。图图1-10 1-10 实例程序实例程序1.2.1 控件的位置与尺寸 当把一个控件放在窗体上后,该控件有一个位置和大小的问题,可以用窗体的坐标来描述它们。 窗体的坐标以左上角为坐标原点,从左向右为X方向,从上到下为Y方向,坐标单位为像素。 一个长方形的控件用它的左上角坐标(Left,Top)来决定它的位置,Left是X坐标,Top是Y

7、坐标,用宽度(Width)和高度(Height)来决定它的大小,如图1-11所示。图图1-11 1-11 窗体坐标窗体坐标1控件位置 左上角坐标用控件的Left属性和Top属性来表示,例如把Label1控件的左上角坐标设置为(10,20)的语句是: Label1.Left=10 Label1.Top=202控件尺寸 控件的尺寸用宽度(Width)属性、高度(Height)属性来表示,例如把Label1控件的宽度与高度分别设置为200像素与100像素的语句为: Label1.Width=200 Label1.Height=1003位置对象与尺寸对象 VB.NET是面向对象的程序设计语言,一个坐标

8、(X,Y)可以封装在一个叫做Point的对象里,一个Point对象包含一个(X,Y)的数对,表示平面上的一个点。 VB.NET中所有控件的左上角坐标对象都用Location属性来表示,该属性的值是一个Point对象,对象必须用New来建立。 例如把Label1控件的左上角坐标设置为(10,20)的语句可以写成: Label1.Location=New Point(10,20) 这里的New表示建立一个对象Point(10,20),对象必须在建立后才可以使用,下列语句是错误的: Label1.Location=Point(10,20) 控件的尺寸与位置坐标一样,VB.NET也有一个Size对象表

9、示(Width,Height)的一个数对,所有控件的Size属性就是这个尺寸的对象。 例如把Label1对象的宽设置为200像素,高设置为100像素,可以写成: Label1.Size=New Size(200,100) 一样的道理,不能写成: Label1.Size=Size(200,100)4设置控件的位置与尺寸 把一个控件放在窗体上后,它有一个默认的位置与大小,用户可以方便地通过鼠标拖动控件来设置它的位置,像调整Windows窗体的大小一样来改变控件的位置与大小。 用户也可以选择该控件后在属性窗体中设置Location对象的X,Y来设置位置,设置Size对象的Width、Height来设

10、置大小。1.2.2 标签 标签(Label)是用来显示文字信息的常用控件,显示字符信息是通过标签的Text属性的设置来实现的。 常用标签的属性与方法及其功能说明如表1-1所示。属性属性/ /方法方法功功 能能 说说 明明NameName属性属性标签的名称标签的名称TextText属性属性标签显示文本标签显示文本LeftLeft属性属性标签左上角标签左上角X X坐标坐标TopTop属性属性标签左上角标签左上角Y Y坐标坐标LocationLocation属性属性它是一个对象,包含左上角的(它是一个对象,包含左上角的(X,YX,Y)坐标)坐标WidthWidth属性属性标签的宽度标签的宽度Heig

11、htHeight属性属性标签的高度标签的高度表表1-11-1常用标签的属性与方法常用标签的属性与方法属性属性/ /方法方法功功 能能 说说 明明SizeSize属性属性它是一个对象,包含宽度与高度它是一个对象,包含宽度与高度AutoSizeAutoSize属性属性该属性是一个逻辑值,当为该属性是一个逻辑值,当为TrueTrue时,表示标签的宽度自动时,表示标签的宽度自动按其按其TextText文本所需要的宽度来设置,如为文本所需要的宽度来设置,如为FalseFalse,则宽度,则宽度按用户给定值设置按用户给定值设置VisibleVisible属性属性该属性是一个逻辑值,当为该属性是一个逻辑值,

12、当为TrueTrue时,表示标签显示,如为时,表示标签显示,如为FalseFalse,则标签隐藏,则标签隐藏Show()Show()方法方法显示标签,等同于设置标签的显示标签,等同于设置标签的VisibleVisible属性为属性为TrueTrueHide()Hide()方法方法隐藏标签,等同于设置标签的隐藏标签,等同于设置标签的VisibleVisible属性为属性为FalseFalse续表续表1.2.3 窗体 1窗体主要属性 窗体主要属性如表1-2所示。属属 性性功功 能能 说说 明明NameName属性属性窗体的名称窗体的名称TextText属性属性窗体的标题显示文本窗体的标题显示文本W

13、idthWidth属性属性窗体的宽度窗体的宽度HeightHeight属性属性窗体的高度窗体的高度SizeSize属性属性它是一个对象,包含窗体的宽度与高度它是一个对象,包含窗体的宽度与高度ClientSizeClientSize属性属性它是一个它是一个SizeSize对象,表示窗体内部工作区的尺寸,这个尺对象,表示窗体内部工作区的尺寸,这个尺寸比寸比SizeSize属性的小,属性的小,SizeSize包含了窗体边界与标题,包含了窗体边界与标题,ClientSizeClientSize不包含边界与标题不包含边界与标题表表1-21-2窗体主要属性窗体主要属性2窗体主要事件 窗体有一个重要的事件过

14、程,用鼠标双击窗体就可以看到这个过程: Private Sub Form1_Load(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles MyBase.Load End Sub 该过程是在窗体启动时执行的,因此可以把程序的初试化工作放在这个过程中完成。 例如本例中程序启动时标签位置居中就是在这里实现的。1.2.4 程序实例 例1.2 一个程序启动后有一个标签显示“Visual Basic”位于中间位置,单击“左移”按钮后标签向左移动,单击“右移”按钮后标签向右移动,如图1-10所示。1.2.5 程序语句 1

15、执行语句 语句是程序的基本单位,每条语句都执行一定的功能。 在VB.NET中每条语句占一行,程序是由一条条语句组成的,执行时也是按语句的先后顺序一条条执行的。2注释语句 一个事件过程中包含很多语句,每个语句都有一定的功能。 为了说明各个语句或一段语句的功能,可以在程序中插入注释语句。 注释语句是不被计算机执行的语句,它仅起对程序进行注解的作用,方便阅读程序。1.2.6 程序结构 在程序中事件过程是非常重要的概念,过程开始于Sub字头,结束于End Sub语句,用户的代码就写在该过程的内部。 事件过程的格式一般为: Private Sub 控件名称_事件名称(ByVal sender As Sy

16、stem.Object, _ ByVal e As System.EventArgs) Handles 控件函数 过程内容 End Sub1.3 文本框与字符串1.3.1 单行文本框 1文本框属性 文本框属性如表1-3所示。属属 性性功功 能能 说说 明明NameName文本框的名称文本框的名称TextText文本框的文本,这是最常用的属性,通过它可以获取或设置文文本框的文本,这是最常用的属性,通过它可以获取或设置文本框的文本本框的文本ReadOnlyReadOnly若值为若值为TrueTrue则使文本框成为只读的,不可以改写则使文本框成为只读的,不可以改写MaxLengthMaxLength

17、设置文本框最大的输入字符数,如为设置文本框最大的输入字符数,如为0 0则表示没有限制则表示没有限制EnabledEnabled当为当为TrueTrue时文本框可用;为时文本框可用;为FalseFalse时不可用时不可用PasswordCharPasswordChar这是专为输入密码设置的,若属性值为这是专为输入密码设置的,若属性值为“* *”,则在文本框输,则在文本框输入时显示的是入时显示的是“* *”,而不是输入的实际字符,而不是输入的实际字符VisibleVisible该属性是一个逻辑值,当为该属性是一个逻辑值,当为TrueTrue时,表示标签显示,如为时,表示标签显示,如为FalseFa

18、lse,则标签隐藏,则标签隐藏表表1-31-3文本框属性文本框属性2文本框事件 (1)TextChanged事件 (2)KeyPress事件3程序设计 通过文本框的Text属性,可以知道用户输入的文本数据是什么。 Text给出文本的字符串,字符串是VB.NET语言中的一种数据类型,它是由多个字符组成的。 有一个系统函数ToUpper()负责把字符串转为大写,系统函数ToLower()把字符串转为小写。 1.3.2 多行文本框 1多行文本属性 2程序设计 1.4 常用数据类型 1.4.1 整数类型 1整数 整数是程序中用得最多的一种数据类型,根据范围的不同可以分为字节(SByte)、短整数(Sh

19、ort)、整数(Integer)、长整数(Long)。 它们占的字节空间大小不同,范围也不同,如表1-7所示。数数 据据 类类 型型字字 节节范范 围围SByteSByte1 1128128127127ShortShort2 236768367683276732767IntegerInteger4 42147483648214748364821474836472147483647LongLong8 89223372036854775808922337203685477580892233720368547758079223372036854775807表表1-71-7整数类型整数类型2整数常数

20、整数的常数与数学表示没有什么区别,例如123、123、45678等。 一般程序中大多数情况下用的普通整数Integer;如要刻意节省空间,在够用的范围内可以考虑使用SByte类型或Short类型;如数据非常大,则可以考虑使用Long类型。 整数类型也可以用十六进制数和八进制数表示,其中&H表示一个十六进制数,&O表示一个八进制数。 例如&H41表示十六进制整数,对应十进制数65,而&O41为八进制数,对应十进制数33。3整数变量 变量是有名字的存储单元,它的值可以通过程序改变。 程序中用到的变量要定义或声明,定义的方式为: Dim 变量名称 As 数据类型 每个

21、变量都必须有一个名称,变量名称是一个用户定义的变量名字。 变量的名字一般遵循下面的规则: (1)变量名一般以字母开始,后面可以跟若干个英文字母或数字或下划线。 (2)变量名不区分大小写,例如变量A与变量a是相同的。 (3)变量名不宜太长,一般最好有一定的含义,例如用radius及area分别表示圆的半径及面积,就是比较好的命名方法。 (4)VB.NET定义了很多关键字,用户不能定义与关键字重名的变量,否则会引起混乱。 根据这些原则,a、x1、x12、xyz、name、age、student、tel、I_am_a_student等变量名字是合法的,但1x、123、x y等则不合法。 在定义变量时

22、,可以同时定义几个同类型的变量,还可以在定义时说明它的初始值,例如: Dim n As Integer n是Integer整数变量 Dim s As Short s是Short整数变量 Dim m As Long m是Long整数变量 Dim a,b As Integer a,b是Integer整数变量 Dim c As Integer=100 c是Integer整数变量,值为100 Dim x As Integer=10, y As Integer=20 x,y都是Integer变量,x值为10,y为20 如果一个整数变量在定义时没有指定它的值,那么这个变量的值为0。1.4.2 浮点数类型

23、1浮点数 数学中很多数值用整数是不能表示的,例如3.14是一个小数,不能用整数表示。 在VB.NET中用Single(单精度)、Double(双精度)的浮点数类型来表示这一类的数据,如表1-8所示。 数数 据据 类类 型型字字 节节范范 围围SingleSingle4 4对于负值,为对于负值,为3.4028235E+383.4028235E+381.401298E1.401298E4545对于正值,为对于正值,为1.401298E1.401298E45453.4028235E+383.4028235E+38DoubleDouble8 8对于负值,为对于负值,为1.797693134862315

24、70E+3081.79769313486231570E+3084.94065645841246544E4.94065645841246544E324 324 对于正值,为对于正值,为4.94065645841246544E4.94065645841246544E3243241.79769313486231570E+308 1.79769313486231570E+308 表表1-81-8浮点数类型浮点数类型 2浮点数常数 3浮点数变量1.4.3 字符类型 字符类型(Char)是用来表示单个字符的数据类型,一个字符可以是任何的中英文字符,例如“A”、“a”、“学”等。 一个字符常数用一对半角双引

25、号引起来。1字符常数 字符常数就是用双引号引起来的一个符号,例如“a”、“0”、“我”、“你”、“$”等都是字符常数。 字符在内存中实际上是用其对应的Unicode编码的整数来表示的,一个字符占2个字节。 对于英文字符,2字节中的Unicode编码中有1个字节为0,另一个字节的值实际上为其对应的ASCII码值。 ASCII是美国信息标准交换码,它用7位二进制数据对所有的英文符号进行编码,每一个英文字符都对应一个7位二进制数据。 了解ASCII码表的结构对于今后编写程序是十分有益的,总的来说,ASCII码表有以下几个特征: (1)英文字母A的ASCII码是&H41,B的是&H42

26、,Z的是&H5a。 (2)英文字母a的ASCII码是&H61,b的是&H62,z的是&H7a。 (3)数字0的ASCII码是&H30,1是&H31,9是&H39。 (4)回车是&H0d,换行是&H0a,空格是&H20,Tab制表符是&H09,Back Space退格是&H08。1.4.4 字符串类型 1字符串常数 字符串类型(String)表示字符串,字符串是由一个个中英文字符排列组成的数据。 2字符串变量 字符串变量用来存储字符串数据,可以用String类型来定义。例如: Dim s As Str

27、ing Dim a As String=ABC Dim s,t As String 如果一个字符串变量在定义时没有指定它的值,那么这个变量的值为空串。1.4.5 布尔类型 1布尔常数 布尔(Boolean)类型也称为逻辑类型,它只有两个值,即True与False。 True表示真,False表示假。2布尔变量 布尔变量用Boolean类型定义,例如: Dim a As Boolean=True Dim b,c As Boolean1.4.6 日期类型 1日期常数 日期常数写在一对#号之间,其中为任何有效的日期格式,格式如下。 (1)MM/DD/YYYY HH:MM:SS AM/PM,同时指定日

28、期与时间。 (2)MM/DD/YYYY,仅表示日期部分的格式,在没有指定时间部分时时间为午夜。 (3)HH:MM:SS AM/PM,仅指定时间部分的格式,此时日期为1年1月1日。2日期变量 日期变量用Date类型表示,例如: Dim dt As Date Dim d As Date=#12/31/2006# Dim c As Date=#12/31/2006 3:34:23 PM#1.4.7 无符号整数类型 在VB.NET中所有的整数类型都有其对应的无符号整数类型,它们的内存大小一样,但整数范围不同,如表1-9所示。 这些数据类型除了Byte类型在今后文件操作中常用以外,别的类型比较少用。数数

29、 据据 类类 型型字字 节节范范 围围ByteByte1 10 0255255(无符号)(无符号)UShortUShort2 20 06553565535(无符号)(无符号)UIntegerUInteger4 40 042949672954294967295(无符号)(无符号)ULongULong8 80 01844674407370955161518446744073709551615(无符号)(无符号)表表1-91-9无符号整数类型无符号整数类型1.4.8 对象类型 对象类型(Object)表示一个对象,对象变量用Object定义,例如: Dim obj As Object 1.5 算术运

30、算与表达式 1.5.1 算术运算符号 算术运算符号最常用的是加、减、乘、除四则运算,分别用“+”、“”、“*”、“/”符号来表示,此外还有对整数进行的求余数运算及整数除法等运算,如表1-10所示。运运 算算 符符 号号说说 明明实实 用用 类类 型型举举 例例+ +加法运算加法运算实数、整数实数、整数23.0 + 32.0 = 5.023.0 + 32.0 = 5.0;23 + 32 = 5523 + 32 = 55减法运算减法运算实数、整数实数、整数23.023.0 32.0 = 32.0 = 9.09.0;2323 32 = 32 = 9 9* *乘法运算乘法运算实数、整数实数、整数23.

31、023.0 * * 32.0 = 736.0 32.0 = 736.0;2323 * * 32 = 736 32 = 736/ /除法运算除法运算实数、整数实数、整数23.0/32.0 = 0.7187523.0/32.0 = 0.71875ModMod余数运算余数运算整数整数9 Mod 4 = 19 Mod 4 = 1 整除运算整除运算整数除法整数除法94 = 294 = 2+ +或或& &字符串连接字符串连接字符串字符串abc + xyz = abcabc + xyz = abcxyzxyz 幂运算幂运算实数、整数实数、整数25 = 3225 = 32;27 (1/3) =

32、 327 (1/3) = 3表表1-101-10算术运算符号算术运算符号1.5.2 算术表达式 1算术表达式 2字符串表达式1.5.3 类型赋值转换 赋值语句是把一个表达式的值交给一个变量保存,形式是: 变量=表达式 在赋值时要保证左边的变量类型要与右边表达式的值类型一样,如类型不一样,则一般会进行转换,不同的数据类型在进行转换时,应注意转换的规则。(1)整数之间的转换 范围小的整数转范围大的整数时可以安全转换,因为范围大的变量可以存储范围小的整数数据,即SByteShortIntegerLong的转换是安全的。例如: Dim s As Short Dim i As Integer s=123

33、 i=s 正确,i=123(2)整数与浮点数之间的转换 整数转浮点数时总是可以进行的,但转换后浮点数所存储的整数未必是准确的,可能有一定误差。 当进行浮点数转整数时,要保证整数变量能够存储浮点数的整数部分,转换时小数被自动丢掉,不然转换不成功。 例如: Dim s As Short Dim x As Single x=32769.3 s=x 错误,s不能存储32769 x=327.6 s=x 成功,s=327 (3)浮点数之间的转换 (4)数值与字符串之间的转换1.5.4 程序实例 例1.5 设计一个程序,从文本框中输入一个摄氏温度值,单击“转换”按钮后显示出对应的华氏温度。1.6 常用内部函

34、数 1.6.1 常用数学函数 1数学函数函函 数数 名名 称称说说 明明举举 例例Sqrt(N)Sqrt(N)求求N N的平方根,的平方根,N=0N=0,返回实数,返回实数Sqrt(9)Sqrt(9)结果为结果为3 3Abs(N)Abs(N)求求N N的绝对值,的绝对值,N N是实数,返回实数是实数,返回实数Abs(Abs(8.89)8.89)结果结果为为8.898.89Exp(N)Exp(N)求求e eN N值,值,N N是实数,返回实数是实数,返回实数Exp(3)Exp(3)结果为结果为20.08620.086Log(N)Log(N)求求Log(N)Log(N)值,值,N0N0是实数,返回

35、实数是实数,返回实数Log(10)Log(10)结果为结果为2.32.3Log10(N)Log10(N)求求log10(N)log10(N)值,值,N0N0是实数,返回实数是实数,返回实数Log10(10)Log10(10)结果为结果为1 1Sin(N)Sin(N)求求Sin(N)Sin(N)值,值,N N是实数弧度,返回实数是实数弧度,返回实数Sin(0)Sin(0)结果为结果为0 0Cos(N)Cos(N)求求Cos(N)Cos(N)值,值,N N是实数弧度,返回实数是实数弧度,返回实数Cos(0)Cos(0)结果为结果为1 1Tan(N)Tan(N)求求Tan(N)Tan(N)值,值,N

36、 N是实数弧度,返回实数是实数弧度,返回实数Tan(0)Tan(0)结果为结果为0 0Sign(N)Sign(N)返回返回N N的符号,的符号,N0N0,N=0N=0,N0N 大于大于5252=大于或等于大于或等于4=34=3 小于小于5656=小于或等于小于或等于5=65=6= =等于等于5=55=5不等于不等于2323表表2-12-1关系运算关系运算2关系运算表达式 关系运算符用于连接两个表达式,形成关系运算表达式,例如: a+bc+d a=b+c a=b ac2.1.2 逻辑运算符和逻辑表达式 1逻辑运算 逻辑运算是指对逻辑值的运算,主要有“与(And)”、“或(Or)”、“非(Not)

37、”3种运算,VB.NET语言中用And、Or、Not来表示,3种运算的关系如表2-2所示。运运 算算举举 例例说说 明明AndAnda And ba And b二元运算,仅当二元运算,仅当a a、b b两者都为两者都为TrueTrue时结果才为时结果才为TrueTrue,不然为,不然为FalseFalseOrOra Or ba Or b二元运算,只要二元运算,只要a a、b b两者之一为两者之一为TrueTrue结果就为结果就为TrueTrue,不然为,不然为FalseFalseNotNotNot aNot a一元运算,当一元运算,当a a为为TrueTrue时结果为时结果为FalseFals

38、e,a a为为FalseFalse时结果为时结果为TrueTrue表表2-22-2逻辑运算逻辑运算 在And、Or、Not 3种运算中,非运算Not级别最高,And次之,Or运算级别最低。 例如逻辑式a And b Or Not c是先运算Not c,之后运算a And b,最后运算Or。 非运算作用在And、Or及Not运算中有如下规则: (1)Not(a And b)等价于Not a Or Not b。 (2)Not(a Or b)等价于Not a And Not b。 (3)Not(Not a)等价于a。 这些运算规则十分重要,在将来的程序条件中常常用到。2逻辑运算表达式 逻辑运算常常与

39、关系运算相组合,形成逻辑运算表达式。 3逻辑运算应用 例2.1 判断一个整数n是否为奇数。 例2.2 判断一年y是否为闰年。 例2.3 判断一个字母c是否为小写字母。2.2 简单条件语句 2.2.1 简单条件语句 简单条件语句的格式有以下几种:格式一: If 条件 Then 语句格式二: If条件 Then 语句 End If格式三: If条件 Then 语句1 Else 语句2 End IF 2.2.2 简单条件语句的应用 2.2.3 分支语句的嵌套 在If语句的语句块中的语句可以是复合语句,而在复合语句中又可以嵌套另一个If语句,这样可以组成多级的If语句嵌套。2.3 复杂分支条件语句 2

40、.3.1 复杂分支If语句 复杂分支If条件语句的格式是: If 条件1 Then 语句1 ElseIf 条件2 Then 语句2 Else If 条件n Then 语句n Else 语句n+1 End If 2.3.2 复杂分支If语句的应用 2.3.3 Select复杂分支语句 Select语句是复杂分支语句的另外一种形式,格式如下: Select Case 测试表达式 Case表达式列表1 语句1 Case表达式列表2 语句2 Case Else 语句n+1 End Select 其中测试表达式可以是数值类型或字符串类型,表达式列表必须与表达式同数据类型,可以是下列之一: (1)表达式。

41、 (2)一组用逗号分开的枚举值。 (3)表达式1 To表达式2表示的是一段范围的值(包含边界)。 (4)Is关系运算表达式,Is表示测试表达式。2.3.4 条件函数 VB.NET中有两个常用的条件函数,一个是IIF,另一个是Choose。 条件函数用于简单的条件选择,IIF是If语句的简化用法,Choose是Select的简单用法。1IIF条件函数 格式: IIF(条件表达式,表达式1,表达式2) 它的作用是当条件表达式的值为真时,取值为表达式1,否则为表达式2。 例如x,y是两个数,则IIF(xy,x,y)的值就是它们的最大值,IIF(xy,y,x)的值就是它们的最小值。2Choose条件函

42、数 格式: Choose(整数表达式,表达式1,表达式2,表达式n) 它的作用是表达式的值为1,则返回表达式1的值;表达式的值为2,则返回表达式2的值,表达式的值为n,则返回表达式n的值,如表达式的值小于1或大于n,则返回Nothing。2.4 Do循环结构 2.4.1 循环语句的引入 2.4.2 Do循环语句 在计算机中很多的程序计算需要重复循环执行,Do循环语句就是满足这种要求的语句,其结构如下: Do While 条件 语句块 Loop图图2-12 Do2-12 Do循环的流程循环的流程2.4.3 另一种Do循环语句 另外一种Do循环语句结构如下: Do 语句 Loop While 条件

43、图图2-15 Do2-15 Do循环语句流程循环语句流程 2.4.4 Do循环语句的退出 2.4.5 循环语句的问题 1有限次数的循环 2死循环2.5 For循环结构 2.5.1 For循环语句 1For循环 For循环语句的一般格式为: For 变量=初始值表达式 To 变量终值表达式 Step 步长 循环语句 Exit For Next For循环的执行规则是(以步长0为例): (1)当进入For循环时,首先执行变量初始化表达式,接着判断是否超过终值,如超过,则循环一次也不会执行,循环结束。 (2)变量值没有超过终值,则执行循环的语句,循环语句可以是单个语句,也可以是复合语句。如在循环中执

44、行了Exit For语句,则循环退出并结束。 (3)每次执行完一次循环语句,变量的值就按步长增加一个值,返回(2)。 由于循环用的变量决定了循环次数,所以循环变量也称为循环计数器。 当步长为正数时执行逻辑关系如图2-17所示。 当步长为负数时循环过程十分类似,此时循环变量从初值不断减小到终值,当小于终值时循环结束,读者可自行分析其规则。图图2-17 For2-17 For循环的执行流程循环的执行流程2For循环使用注意事项 (1)当步长0时,只有初值终值时循环是不执行的。例如: Dim n As Integer,s As Integer s=0 For n=10 to 1 Step 2 s=s

45、+n Next Print s 则程序执行后输出的s为0,因为循环未执行。 (2)当步长=终值时循环才执行,初值终值时循环是不执行的。例如: Dim n As Integer,s As Integer s=0 For n=1 to 10 Step -2 s=s+n Next Print s 则程序执行后输出的s为0,因为循环未执行。 (3)在循环中一般不要修改循环变量的值,因为循环变量是控制循环执行次数的,一旦循环变量被修改,循环的次数有时就不好控制了。例如: Dim n As Integer For n=1 To 100 If n mod 2=0 Then n=n+1 Next 这样的循环显

46、然不好计算循环次数。 (4)在循环中要防止永远不会结束的循环,想一想以下循环是否会结束: For n=1 to 10 n=n-1 Next n 这种不能自行结束的循环叫做死循环,程序中不能出现死循环,不然程序不能正常结束,步长不能为0,不然也会出现死循环。 (5)For正常退出后循环变量的值是终值再加步长。例如: For n=1 To 9 Next n 则循环结束后n为10。如用Exit For中途退出,则循环变量的值就是当前循环执行时的值。例如: For n=1 to 9 If n mod 2=0 Then Exit For Next n 则n值是2,因为n=2时,2 mod 2=0由Exi

47、t For退出循环。 程序设计中常用判断循环变量最后的值的方法来鉴别循环是否是正常结束的。 2.5.2 For循环的应用 2.5.3 几种循环的比较 从理论上讲,Do循环及For循环都可以互相转换与代替,程序可以根据实际问题的需要来使用什么样的循环。 一般来说,Do循环常用于预先不确定循环次数的循环中,而For循环更适合于预先确定循环次数的循环中。2.6 循环结构的嵌套 2.6.1 循环结构的嵌套 一个循环的循环语句可以是一个复合语句,在复合语句中又包含一个循环,这样就出现了循环的嵌套。2.6.2 多循环的规则 多重循环的规则是:只能并列或嵌套,不能出现交叉。 1循环并列 2循环嵌套 3循环交

48、叉 4循环次数 图图2-26 2-26 循环并列循环并列 外层循环 内层循环 图图2-27 2-27 循环嵌套循环嵌套图图2-28 2-28 循环交叉循环交叉 1 3 2 4 5 6 图图2-29 2-29 多循环的并列与嵌套多循环的并列与嵌套 2.7 异常处理语句 2.7.1 异常语句的引入 2.7.2 异常语句的结构 Try语句格式如下: Try 语句块1 Catch ex As Exception 语句块2 End Try 开始 Try 执行语句块 1 无错误 结束 有错误 执行语句 块 2 图图2-33 Try2-33 Try的执行流程的执行流程2.7.3 抛出异常的语句 在VB.NE

49、T中抛出异常的语句是Throw语句。格式如下: Throw New Exception(异常信息) 其中Throw为抛出语句,New Exception(异常信息)表示建立一个异常类Exception的对象,该对象用指定的字符串设置其Message属性。2.7.4 异常处理的嵌套 异常处理语句Try与循环语句等一样,可以进行嵌套,例如在一个Try语句的尝试执行代码部分有另外一个Try语句的结构如下: Try Try Catch ex1 Exception End Try Catch ex2 Exception End Try 2.8 综合实例 本节将通过几个实例来进一步练习与巩固分支语句与循环

50、语句的使用,读者应该认真分析程序的代码,从中领会各个程序设计的思路。第3章 数组对象一维数组一维数组3.1动态数组动态数组3.2数组操作数组操作3.3综合实例综合实例3.6多维数组多维数组3.5数组的排序与查找数组的排序与查找3.4 本章将介绍VB.NET程序语言的数组对象,数组是数据结构中的一种重要类型,数组在程序中应用十分广泛,通过本章的学习,目的是要掌握VB.NET中数组的程序设计方法。3.1 一维数组 3.1.1 一维数组的引入 3.1.2 一维数组的定义 1数组定义 一维数组的定义方法一般为: Dim 数组变量名称(下标上界) As类型 其中类型可以是任何的VB.NET语言数据类型,

51、数组名称与普通变量名称一样,由用户自己定义。 “下标上界”是数组在内存中的单元数,在定义时指定。例如: Dim c(20) As Char 定义21个字符的数组,即c(0),c(1),c(20) Dim n(20) As Integer 定义能存储21个整数的数组,即n(0),n(1),n(20) Dim f(10) As Single 定义能存储11个Single数的数组,即f(0),f(1),f(10) Dim a(4) As Integer 定义能存储5个整数的数组,即a(0),a(1),a(2),a(3),a(4) 如图3-1所示为Dim a(4) As Integer定义的数组在内存

52、中的分布图,共有5个元素,它的每一个单元都是一个Integer整数,由于一个Integer整数在计算机中占4个字节,因此这个数组在计算机中占20个字节。 a(0) a(1) a(2) a(3) a(4) 图图3-1 3-1 数组数组a(5)a(5)的内存分布的内存分布 值得注意的是,数组的第一个单元下标是0,不是1,在VB.NET中下标固定为0,不能改变,这一点不同于VB的早期版本。 数组的上标值是一个数组大小的反应,一个数组的上标可以通过系统函数UBound函数得到,例如: Dim a(5) As Integer 则UBound(a)值为。2定义且初始化 数组在定义时还可以同时为各个单元设置

53、初始化的值,在定义时不指定数组的大小,数组的大小由提供的数据的多少来决定,例如: Dim s() A Char=a,b,c,d,e 定义数组s(4),并且设置s(0)=“a”,s(1)=“b”,s(2)=“c”,s(3)=“d”,s(4)=“e”。 注意在提供初始值时不能定义数组的大小,例如下列语句是错误的: Dim s(4) A Char=a,b,c,d,e 3.1.3 一维数组的应用 例3.1 输入10个整数,把它们按与输入顺序相反的顺序输出。 例3.2 输入年、月、日,判断该日期是否有效,如有效则输出该日期为星期几。 例3.3 输入一个字符串,统计26个英文字母各个字母出现的次数(不区分

54、大小写)。 3.2 动态数组 3.2.1 动态数组的引入 3.2.2 动态数组 在VB.NET中动态数组用ReDim来定义,实际上用Dim定义的数组都可以用ReDim重新定义大小,例如: Dim a(4) As Integer a数组有5个元素 ReDim a(5) 重定义a数组为6个元素 ReDim a(3) 重定义a数组为4个元素 实际上一个用Dim定义过的数组可以用ReDim语句多次改变它的大小,但注意不能改变数据类型。 在用ReDim改变大小后,原来的数组中的数据一般会丢失,如果要保持原来的数据,则应加上Preserve说明,例如: Dim a(4) As Integer a数组有5个

55、元素 ReDim Preserve a(5) 重定义a数组为6个元素,并保持原来的数据 ReDim是执行语句,因此可以在程序中多处出现,Dim是定义语句,在一个过程中往往只出现一次。3.2.3 动态数组应用 例3.4 输入一些同学的成绩,成绩在0,100之间,输入的成绩无效时结束输入,把成绩从大到小排序输出。3.3 数组操作 数组是计算机中数据存储的一种重要结构,因为一般一组关联的数据总是一个接一个地连续存储的,这种存储就是数组,学习与掌握数组的操作对程序设计十分重要。 常用的数组操作包括:求数组各个元素之和、平均值、最大值、最小值,删除一个数组元素,插入一个数组元素等,本节将通过一些程序实例

56、讲解这些操作的要点。 1最大最小值 2删除元素 3插入元素3.4 数组的排序与查找 3.4.1 数组的排序 数组排序是数组的一个重要操作,所谓数组排序就是移动数组的元素,把数组的元素从小到大(升序)或从大到小(降序)重新排列。 数组排序的方法很多,本节只介绍比较简单的两种排序方法。1方法一(交换法) 数组a(0),a(1),a(n-1)是无序的,在n个元素中找一个最大(小)值,把它与a(0)交换,这样a(0)为最大(小)的,剩余的a(1),a(n-1)的n-1个元素中再找一个最大(小)值,把它与a(1)交换,这样a(0)、a(1)是有序的,剩余的a(2),a(n-1)再找最大(小)值,与a(2

57、)交换,如此下去,直到a(0),a(n-1)全部有序为止,排序完成。 根据这种方法,可以编写数组a从大到小排序的程序如下: Dim i,j,t As Integer Dim a(n-1) As Integer For i=0 To n-1 For j=i+1 To n-1 If a(i)a(j) Then 交换a(i)与a(j) t=a(i): a(i)=a(j): a(j)=t End If Next Next 在这个程序中没有再设计最大值变量,把a(i+1),a(i+2),a(n-1)与a(i)比较,如有大的则与a(i)交换,完成后a(i)为a(i),a(i+1),a(n-1)中最大的。2

58、方法二(插入法) 数组a(0),a(1),a(n-1)是无序的,a(0)自己是有序的,取出a(1),把它插入到a(0)位置前或a(0)后面,插入完成后a(0)、a(1)是有序的,再取a(2),把它插入到a(0)、a(1)中,使a(0)、a(1)、a(2)有序,如此进行,最后取出a(n-1),插入到已经有序的a(0),a(1),a(n-2)中,使a(0),a(1),a(n-2),a(n-1)有序,排序完成。 根据这种方法,可以编写数组a从大到小排序的程序如下: Dim i,j As Integer Dim x,a(n-1) As Integer For i = 1 To n-1 j = i -

59、1 x = a(i) 把x插入到a(0),a(i-1)中 Do While a(j) x a(j + 1) = a(j) j = j - 1 If j = -1 Then Exit Do Loop a(j + 1) = x Next 在这个程序中,把a(i)插入到a(0),a(i-1)中,方法是把它存在一个变量x中,把x与a(i-1)比较,如a(i-1)x,则把a(i-1)移动到a(i),再比较a(i-2)与x,如a(i-2)x,再把a(i-2)移动到a(i-1)处,一般a(j+1)=x,a(j)不移动,x就填在a(j+1)处,这样a(0),a(i-1),a(i)有序。3.4.2 数组的查找

60、1顺序查找 顺序查找是一种最原始最简单的查找方法,程序可以写成: Dim i As Integer For i=0 To UBound(a) If a(i)=x Then 找到x Exit For End if Next If i=Ubound(a)+1 Then 没有找到x End If2二分法查找 如果数组是排序的,则可以采用二分法查找。 以整数数组为例,设数组为a(0),a(1),a(n-1)有n个元素,假定它们从小到大排序,现在要在其中查找一个数据x,看看是否在其中,方法如下: (1)设置l=0,m=UBound(a) (2)如lm,则查找完成,x不在数组中;但如lx,说明x只可能在a(l),a(m-1)中,设置h=m1,转(2)。 如a(m)= 0 And e.KeyChar = 9) Then e.Handled = Tr

温馨提示

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

评论

0/150

提交评论