1 / 48

第 2 章 VB.NET 编程基础

第 2 章 VB.NET 编程基础. 目标 了解 VB.NET 程序书写规则 了解 VB.NET 和 VB 的不同 掌握 VB.NET 中的数据类型、变量与常量 掌握各种运算符 掌握数组的用法 掌握各种控制结构 掌握过程与函数. 2.1 VB.NET 程序书写规则. 任何程序设计语言都有确定的书写规则。 VB.NET 的主要规则如下: 1 、代码不区分大小写 对于 VB.NET 的关键字,一般将首字母转换为大写,其余字母转换为小写; 对于用户定义的变量、过程和函数名,以定义的格式为准,以后输入时将自动转换为定义时的格式 2 、程序书写自由

torie
Download Presentation

第 2 章 VB.NET 编程基础

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第2章 VB.NET编程基础 • 目标 • 了解VB.NET程序书写规则 • 了解VB.NET和VB的不同 • 掌握VB.NET中的数据类型、变量与常量 • 掌握各种运算符 • 掌握数组的用法 • 掌握各种控制结构 • 掌握过程与函数

  2. 2.1VB.NET程序书写规则 • 任何程序设计语言都有确定的书写规则。VB.NET的主要规则如下: • 1、代码不区分大小写 • 对于VB.NET的关键字,一般将首字母转换为大写,其余字母转换为小写; • 对于用户定义的变量、过程和函数名,以定义的格式为准,以后输入时将自动转换为定义时的格式 • 2、程序书写自由 • 如果在一行内显示多个语句,则在各个语句间用冒号分隔,例如: • A=A+1:B=B+A:C=C+B • 一般一个语句占据一行,如果一条语句太长,不能在一行内写完,则要续行。VB.NET用“一个空格”+“下划线”表示续行

  3. 2.1VB.NET与VB的不同 • 1、变量方面 • 在VBScript中一律将变量视为Variant型变量,ASP.NET中可使用Dim语句显式声明变量的数据类型,因为它是基于VB.NET的,不再是ASP中的VBScript. • 2、过程、函数调用方面 • VB.NET中过程调用语法为:过程名(参数列表),且VB.NET中默认为“按值传递”参数。 • 3、数组方面 • 原VB6的一些数组声明方式在VB.NET中已不再适用,如: • Dim intMyArr(15 to 30) • 在VB.NET中数组的下标总是基于0的。 • 赋初值得方式也不同,见书。 • 4、部分常用函数的改变

  4. 2.2 数据类型

  5. 2.2 数据类型

  6. 2.3 常量与变量 • 1、常量 • 常量是代表某些特殊含义的不可改变的值。分为系统常量和用户自定义的常量。系统常量是系统预先定义好的常量,可 以在脚本中使用,不受作用域和可见性限制。 • 系统常量:例:vbcrlf:回车换行符 • 用户自定义常量 声明常量的语法如下: [Public|Protected|Friend|Private] Const constname [As DataType]=InitExpr

  7. 2.2 常量与变量 • 2、变量 • 变量它相当于一个容器,用于保存程序执行过程中可能发生变化的值。 • 1)命名规则: • 只能是字母、下划线和汉字开头,后跟字母、数字、下划线和汉字。 • 不能使用VB.NET系统保留的关键字 • 变量名在其声明的作用域内必须唯一 • 采用Pascal和Camel命名法

  8. 2.2 常量与变量 • 2)变量的声明 • 变量必须在使用前说明。提高编译效率,减少输入错误 • 例: dim dtvar as date • dim intx as integer =100 • dim chry as char • 在ASPX页面的顶部的<page>指令中,可以设置: • <%@ Page language=“VB” explicit=“true” %> • 会要求变量必须先定义,后使用! • 3)变量的作用域 • 变量按作用域可分为“全局变量”和“局部变量”。

  9. 课堂实训1 • 在不同的子程序或函数中定义同名的局部变量,并显示变量的值。操作步骤: • 1)新建一个名称为“2-1”的项目,并将该项目下的默认窗体改名为“ex2-1.aspx”。 • (2)双击“ex2-1.aspx”窗体,进入代码编辑页面,在page_load事件中和子程序proc1()中,分别定义一字符串变量message,赋不同的值并显示相应变量的值。

  10. 课堂实训2 • 声明一个全局变量,并在子程序或函数中改写该全局变量的值。 • 操作步骤: • (1)新建一个名称为“2-2”的项目,并将该项目下的默认窗体改名为“ex2-2.aspx。 • (2)双击“ex2-2.aspx”窗体,进入代码编辑页面,声明一个全局变量message,在事件Page_Load中和子程序proc1()中,对该全局变量赋值并显示该变量的值。

  11. 课堂实训3 • 声明一个全局变量,并在子程序或函数中声明同名的局部变量,并赋值。 • 操作步骤: • (1)新建一个名称为“2-3”的项目,并将该项目下的默认窗体改名为“ex2-3.aspx”。 • (2)双击“ex2-3.aspx”窗体,进入代码编辑页面,声明一个全局变量message,在子程序proc1()中声明同名局部变量并赋值,

  12. 课堂实训4 • 课堂实训4:静态变量的使用。 • 操作步骤: • (1)新建一个名称为“2-4”的项目,并将该项目下的默认窗体改名为“ex2-4.aspx”。 • (2)双击“ex2-4.aspx”窗体,进入代码编辑页面,输入代码

  13. 2.3 运算符 1、赋值运算符

  14. 2.3 运算符 2、算术运算符

  15. 3、 比较运算符 2.3 运算符

  16. 4、逻辑运算符 2.3 运算符 • 逻辑运算符是用来连接多个条件式,并判断其结果真假以决定程序流程的运算符

  17. 5、连接运算符 2.3 运算符 • 连接运算符就是将两个表达式连接在一起。运算符有“&”和“+”,如果操作数是“String”类型,那么这两个运算符完成的功能是一样的

  18. 2.4 数组 2.4.1 数组的概念 数组(Array)用来存放一组具有相同数据类型的值,可以用数组名字引用一系列变量,并用数字(索引)来识别它们。在许多场合,使用数组可以缩短和简化程序,因为可以利用索引值设计一个循环,高效处理多种情况。数组的元素下标是连续的,因为对每一个索引值都分配空间,所以不要不切实际地声明一个太大的数组

  19. 2.4 数组 2.4.2 声明与设置数组值 声明数组 与变量一样,数组也是要先声明后才能使用。下面为 声明数组方法: Dim 数组名称(下标大小)As 数据类型, 或 Dim 数组名称() As 数据类型=New 数据类型(下标大小){ } 设置数组值 设置数组的语法: 数组名称(索引值) = 元素

  20. 2.4 数组 2.4.3 改变数组大小 VB.NET中并不允许声明一个大小不确定的数组。但是,它允许我们随时调整数组的大小,以符合编程需要。下面是它的语法格式: ReDim [Preserve] 数组名称(数组大小) 其中:“ReDim”语句用来改变数组大小,而“Preserve”关键字则会将原数组中的数据保留下来

  21. 2.4.4 数组列表 2.4 数组 【例2-2】下列程序的输出结果如图所示。 <%@ page language="vb" %> <html> <head> <script language="vb" runat="Server"> Public Sub Page_Load(sender as Object,e as EventArgs) Dim j as integer Dim arl as New ArrayList() For j=0 to 10 arl.Add(j) Next j For j=0 to 10 Response.write(Arl(j)&"<br>") Next j End Sub </script> </head> <body> </body> </html>

  22. 2.4.5 多维数组 2.4 数组 • VB.NET还支持多维数组。如要使用二维数组,则可以用下面三种方式中的一个来定义它: • Dim array1(2,2) As Integer • Dim array2 As Integer(,) • Redim array2(2,2) • Dim array3 As Integer(,)={{10,20},{30,40}} • ′array3(0,0)=10 array3(0,1)=20 • ′array3(1,0)=30 array3(1,1)=40

  23. 2.5 控制语句 • 控制语句是用来改变语句的流程,VB.NET的控制语句又可分为两种:选择语句和循环语句 • 2.5.1 选择语句 • 1、If语句 • If语句是常用的选择语句,它适用于判断条件所产生的可能性不是很多的情形。针对该条件语句,介绍两种常用语法格式。 • 语法格式一: • If (逻辑条件) Then • (执行语句序列1) • Else • (执行语句序列2) • EndIF

  24. 2.5 控制语句 语法格式二: If (逻辑条件1) Then (执行语句序列1) Else I f (逻辑条件2) then (执行语句序列2) …… Else I f (逻辑条件n) then (执行语句序列n) Else (执行语句序列n+1) End IF

  25. 课堂实训5 • 按年龄发放工资。根据用户输入不同的年龄,显示相应的工资。 • 操作步骤: • (1)新建一个名称为“2-5”的项目,并将该项目下的默认窗体改名为“ex2-5.aspx”。 • (2)将”ex2-5.aspx”窗体中的PageLayout属性设置为FlowPageLayout。并在该窗体中输入“请您输入您的年龄:”;并添加一个按钮、一个文本框和一个标签框。 • (3)双击“ex2-5.aspx”窗体,进入代码编辑页面,在btnsubmit_click事件中编程: 从文本框中获取用户输入的年龄,并根据年龄显示不同的工资。

  26. 2.5 控制语句 2、条件语句Select Case语句 适用于判断条件为多种可能时。语法格式如下: Select Case 被测表达式 Case Value1 执行语句序列1 Case Value2 执行语句序列2 …… Case ValueN 执行语句序列N Case Else 执行语句序列N+1 End Select

  27. 课堂实训6 • 课堂实训6:用Select …Case语句实现根据用户输入的不同的年龄,显示相应的工资 • 操作步骤: • (1)新建一个名称为“2-6”的项目,并将该项目下的默认窗体改名为“ex2-6.aspx”。 • (2)”ex2-6.aspx”窗体的界面设计同课堂实训5的“ex2-5.aspx”。 • (3)双击“ex2-6.aspx”窗体,进入代码编辑页面。在btnsubmit_click事件中编程:从文本框中获取用户输入的年龄,并根据年龄显示不同的工资。

  28. 2.5.2循环语句 • 循环语句用于重复执行一段代码。VB.NET根据不同的情况,提供了四种循环语句:Do…Loop语句、For Each…In…Next语句、For…Next语句和While…End While语句。 • 1、  Do…循环语句 • 语法格式: • Do While(Until)判断条件 • 执行语句序列 • [Exit Do] • 执行语句序列 • Loop • 或 • Do • 执行语句序列 • Loop While(Until) 判断条件

  29. 课堂实训7 • 课堂实训7:计算10以内数的累加和程序。 • 操作步骤: • (1)新建一个名称为“2-7”的项目,并将该项目下的默认窗体改名为“ex2-7.aspx”。 • (2)将”ex2-7.aspx”窗体中的PageLayout属性设置为FlowPageLayout。并在该窗体中输入“请输入10以内的数:”;并添加一个按钮、一个文本框和一个标签框。 • 3)双击“ex2-7.aspx”,进入代码编辑页面。在btnsubmit_Click事件中编程:根据用户输入的值计算累加和

  30. 2.5.2循环语句 2、For…Next语句 用于事先知道确切循环次数的循环语句,其语法格式如下: For i=起始值 to 终止值 Step 步长 执行语句序列 Exit For 执行语句序列 Next

  31. 课堂实训8 • 课堂实训8:计算10以内的奇数累加和程序 • 操作步骤: • (1)新建一个名称为“2-8”的项目,并将该项目下的默认窗体改名为“ex2-8.aspx”。 • (2)“ex2-8.aspx”的页面设计同课堂实训7的页面设计。唯一区别是将按钮(btnsubmit)的text属性改为“计算奇数累加和”。 • (3)双击“ex2-8.aspx”,进入代码编辑页面。在btnsubmit_Click事件中编程:根据用户输入的值计算奇数累加和。

  32. 2.5.2循环语句 • 3、For Each…In…Next语句 • 与For…Next循环类似,用于对数组或集合中每个元素进行遍历的。下面是一个用For Each…In…Next遍历数组元素的例子。例: • Sub Sum() • Dim array as String={“元素1”,”元素2”,”元素3”,”元素4”} • Dim Item As String • For Each Item In array • Response.Write(Item & “<br>”) • Next • End Sub • 4、While…End While语句 • While…End While语句类似于Do While…Loop语句。 • 语法格式如下:While 判断条件 • 执行语句序列 • End While

  33. 2.6 函数与过程 • 对于一个复杂的处理过程,可以将其分化为几个相对独立的小程序,每个小程序解决一个或一部分问题,这些小程序就称为过程或函数。利用过程或函数编程,可以简化问题,具有以下好处: • 过程具有可重用性。 • 可提高代码的可读性。 • 可增强代码的可维护性。 • 过程和函数的本质区别是:函数可以返回值,而过程不行 • 1、过程 • 声明一个过程的语法格式: • [访问修饰符]Sub 过程名 [(参数列表)] • 执行语句序列 • [Exit Sub] • 执行语句序列 • End Sub • 过程参数的声明 • 其语法声明如下: • [Optional] [ByVal|ByRef] [ParamArray] argumentname As DataType • 过程调用的语法格式: • [Call] 过程名[(参数列表) • 说明:Call为调用的关键字,可以省略。

  34. 课堂实训9 课堂实训9:根据用户输入的年龄,若年龄大于40,显示“***对不起,你不是年青人!”若年龄小于等于40,则显示“***年青人,你风华正茂!”。要求年龄判断用过程实现。 操作步骤: (1)新建一个名称为“2-9”的项目,并将该项目下的默认窗体改名为“ex2-9.aspx”。 (2)将”ex2-9.aspx”窗体中的PageLayout属性设置为FlowPageLayout。并在该窗体中输入“请输入您的姓名:”和“请输入您的年龄:”。添加一个按钮、二个文本框和一个标签框。 3)双击“ex2-9.aspx”,进入代码编辑页面。输入以下代码: btnsubmit_Click事件:获取用户输入的姓名和年龄。

  35. 2.6 函数与过程 • 2、函数 • 函数的语法声明如下: • Function 函数名[(参数列表)][As Type] • 执行语句序列 • [Exit Function] • 执行语句序列 • End Function • 说明: • 函数可以有一个返回值,一般是在函数体的末尾用“函数名=返回值”形式返回值,也可以用Return(返回值)语句返回值。 • As Type用于说明函数返回值的类型,为可选项。 • 如果在函数执行过程中遇到Exit Function语句,则忽略Exit Function后面的执行语句序列,立即退出函数体.

  36. 2.6 函数与过程 函数的调用的格式: 变量名=函数名[(参数列表)] 说明:函数的调用一般用于赋值表达式的右边。可以把一个函数作为一个值来看待。函数也可以不返回值,这时函数的作用就相当于过程。

  37. 课堂实训10 • 课堂实训10:求两个数的和。要求求和程序用函数实现。 • 操作步骤: • (1)新建一个名称为“2-10”的项目,并将该项目下的默认窗体改名为“ex2-10.aspx”。 • (2)将”ex2-10.aspx”窗体中的PageLayout属性设置为FlowPageLayout。并在该窗体中添加两个文本框、一个按钮和一个标签框并输入一个“+”号。 • 3)双击“ex2-10.aspx”,进入代码编辑页面。输入以下代码。 • sum_Click事件:获取用户输入的两个加数,并调用函数求和。

  38. 2.6 函数与过程 3、属性过程 • 属性声明 • 属性本身是由包含在Property语句和End Property语句之间的代码块来定义的 • 语法如下: • [Public|Private|Friend|Protected] Property propertyname[(argumentlist)] As datatype • Get • ……… • Return expression • End Get • Set[(ByVal newvalue As datatype)] • Lvalue=newvalue • End Set • End Property

  39. 2.6 函数与过程 3、属性过程 • 属性的引用 • 属性过程是被引用属性的代码隐式调用的 • 属性名在代码中使用的方式要与变量名在代码中使用的方式一样 • 调用Set过程的语法如下: • propertyname[(asrgumentlist)]=expression • 调用Get过程的语法如下: • lvalue=propertyname[(argumentlist)]

  40. 2.7 参数传递 1、按值传递 • 语法是: • [Private |Public|Friend] Sub subname(ByVal paramname As datatype) • statements • End Sub • 或是: • [Private|Public|Friend] Function functionname(ByVal paramname As DatatType) As DataType • Statements • Return expression • End Function

  41. 2.7 参数传递 2、按地址传递 • 按地址传递参数是用变量的内存地址去访问实际变量的内容 ,它的语法是: • [Private |Public|Friend] Sub subname(ByRef paramname As datatype) • Statements • End Sub • 或是: • [Private|Public|Friend] Function functionname(ByRef paramname As DatatType) As DataType • Statements • Return expression • End Function

  42. 2.7 参数传递 【例】按值传递参数 • <script langauge="vb" runat="Server"> • sub total(ByVal day As Integer ,ByVal overtime As Double) • Dim money As Double • Money=day*800+overtime*800/3 • Response.Write("工作"& day &"天 加班"& overtime &"小时"&"<br>") • Response.Write("薪水总额: "& money &"<br>") • Day+=10 • Response.write("函数中的天数+10后="& day &"天"&"<br>") • end sub • sub page_load() • dim day,overtime As Double • day=24 • overtime=15 • total(day,overtime) • Response.write("主程序中的工作天数="& day &"<br>") • end sub • </script>

  43. 2.7 参数传递 【例】 按地址传递参数 • <script langauge="vb" runat="Server"> • sub total(ByRef day As Integer ,ByVal overtime As Double) • Dim money As Double • Money=day*800+overtime*800/3 • Response.Write("工作" & day & "天 加班" & overtime & "小时" & "<br>") • Response.Write("薪水总额:" & money & "<br>") • Day+=10 • Response.write("函数中的天数+10后=" & day & "天" & "<br>") • end sub • sub page_load() • dim day,overtime As Double • day=24 • overtime=15 • total(day,overtime) • Response.write("主程序中的工作天数=" & day & "<br>") • end sub • </script>

  44. 2.7 综合实训—创建一个数值计算程序 • 项目功能:该项目完成两个数的加法、减法、乘法、除法、a的b次幂、求余等。 • 设计思路:将各种操作符添加到列表框的成员中,单击“结果为”按钮,根据列表框成员的值进行相应的运算,将运算的结果显示到标签中。 • 设计界面见下图:

  45. 2.7 综合实训—创建一个数值计算程序 • btnsubmit_Click事件:完成根据用户所选的运算符,对两个操作数进行计算,并将结果显示出来到标签中。 • Private Sub btnsubmit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnsubmit.Click • Dim myoperator As String • myoperator = operator.SelectedItem.Value.Trim • Dim intval As Integer • Select Case myoperator • Case "+" • intval = CType(myvalue1.Text, Integer) + CType(myvalue2.Text, Integer) • myresult.Text = intval.ToString • Case "-" • intval = CType(myvalue1.Text, Integer) - CType(myvalue2.Text, Integer) • myresult.Text = intval.ToString • Case "*" • intval = CType(myvalue1.Text, Integer) * CType(myvalue2.Text, Integer) • myresult.Text = intval.ToString

  46. 2.7 综合实训—创建一个数值计算程序 • Case "/" • intval = CType(myvalue1.Text, Integer) / CType(myvalue2.Text, Integer) • myresult.Text = intval.ToString • Case "\“ • intval = CType(myvalue1.Text, Integer) \ CType(myvalue2.Text, Integer) • myresult.Text = intval.ToString • Case "^" • intval = CType(myvalue1.Text, Integer) ^ CType(myvalue2.Text, Integer) • myresult.Text = intval.ToString • Case "mod" • intval = CType(myvalue1.Text, Integer) Mod CType(myvalue2.Text, Integer) • myresult.Text = intval.ToString • End Select • End Sub

  47. 2.7 综合实训—创建一个数值计算程序 • 说明: • IsPostBack:指示该页是为响应客户端回发而加载,还是被首次加载访问。True:为响应客户端回发而加载该页;False:是首次被加载访问 • Ctype函数:返回表达式显示地转换为指定数据类型、对象、结构、类或接口后的结果。语法格式如下:Ctype(expression,typename),如果expression的值超过了typename所允许的范围,将会出现错误。

  48. 本章小结 • 本章主要讲述了VB.NET的基本语法。程序的书写规则。变量与常量的区别,变量的作用范围。各种运算符的含义和使用方法。数组的声明及赋值。选择语句和循环语句的结构以及过程和函数的作用和区别。

More Related