VisualBasic.NET程序设计教程上海商学院信息管理与信息系统教研室.ppt
1,Visual Basic.NET程序设计教程上海商学院信息管理与信息系统教研室沈群力(SQL),2,第三章 VB.NET语言基础,3.1 变量、常量与数据类型3.2 运算符和表达式3.3 常用函数3.4 程序结构和编码规则3.5 综合应用,本章目录,3,3.1 数据类型、变量和常量,本章目录,4,3.1.1 数据类型,本章目录,主要数据类型,5,整型:主要Integer(包括Short 和Long)形式:n 例如:123、-123、+123、123i均表示整数 123.0、1,234就是非整数实数:主要Single(包括Double)形式:n.n、nEm、n.nEm 例如:123.45、0.12345E+3(0.12345103),1.数值数据类型,6,1、整数 定义:不带小数点和指数符号的数。特点:数精确表示,但数范围有限。类型关键字或符号:整型Integer或%(默认)短整型Short 长整型Long或&。形式:ns|i|L 例:123、123s、123L、+123 正确的整数 123.0、1,230 错误,7,2、实数:定义:带小数点或指数符号的数。特点:数精不精确表示,但数范围大。类型:单精度 Single或!,双精度Double或#。形式:尾数 E|D 指数 F|R 其中:E表示单精度指数符号、D表示单精度指数符号 尾数可以整数(必须要求指数)也可以小数 例:123.45、123.45F、0.12345E+3、12345E-2、0.12345D+3 都是 同值实数,8,3、逻辑型数据(Boolean)逻辑型数据只有两个值:真(True)和假(False)注意:当把数值型数据转换为逻辑型数据时,0 转换为False,非0值转换为True。当把逻辑型数据转换为数值型数据时,False转换为0,True转换为-1。,9,思考:下列语句的执行结果是:Dim Tag As Boolean Tag=6 8 msgbox(Tag),10,4、日期型数据(Date)形式:#一般为:月/日/年,VB接受许多种日期时间格式 例:下面的 Date/Time 值全部有效。#3-6-93 13:20#March 27,1993 1:20am#Apr-2-93#14 April 1993#12/18/1999#,11,5.字符和字符串数据类型,字符型(Char)存放一个Unicode字符,字符可以包括所有西文字符和汉字,占两个字节.形式:字符 例如:a、2、中等。字符串(String)类型存放若干个字符形式:字符串 例如,12345、abcde123、程序设计等。注意:(1)字符和字符串都必须是用西文的双引号引起(2)表示空字符串,而 表示有一个空格的字符;(3)若字符串中有双引号,例如,要表示字符串:123abc,则用连续两个双引号表示,即:123abc。,12,例3.2 测试数据类型有效范围。利用变量的MaxValue和MinValue可以测试上述数据类型的有效范围.,13,表达式:S=2*3.14*r s、r是变量,2、3.14是常量,其中2是整数,3.14是实数 变量 在程序运行中其存储的值可以改变变量名命名规则:非法变量名 必须以字母或汉字开头,由字母、汉字、数字或下划线组成,长度小于等于255个字符 不能使用VB.NET中的关键字 VB.NET不区分变量名的大小写,一般变量名首字母用大写,其余用小写字母表示;常量全部用大写字母表示,本章目录,变量,3xy 数字开头y-z 不允许出现减号Wang Ping 不允许出现空格Dim VB.NET的关键字Cos 标准函数名,14,值类型和引用类型的变量 值类型变量 直接存放数据。每个值类型变量有它自己的数据拷贝,因此对一个值类型变量的操作不能影响其他的变量。引用类型变量 并不真的包含数据,存放的是指向其他数据的内存地址的指针,也就是把数据值所在的地址作为引用变量的值。该种变量对象的引用简称为赋值或存储。字符串、数组和类是引用类型的变量。,本章目录,15,变量概述,x是值类型变量,存放的值为1234;s是引用类型变量,指向VB.NET的一个引用,本章目录,16,变量声明,1.用Dim语句显式声明变量 Dim 变量名 As 类型=初始值As部分缺省:创建的变量为Object类型初始值子句:表示给声明的变量赋值一条Dim语句可同时定义多个变量。多个相同类型变量,可用一个As来指定(前面几个由逗号分隔),这时不能给变量赋初值。例如:Dim m,n,j As Integer,x,y As Single,k k为Object类型,本章目录,17,2.隐式声明默认状态下,系统要求对使用的变量都显式声明,当使用没有声明的变量时,该变量名下有绿色曲线(表示语法错)。若对变量不声明而直接使用,称为隐式声明。则需要在模块中所有程序代码的最前面加语句:Option Explicit Off 对初学者,最好变量加以显式声明,这样有助于程序的查错。,本章目录,18,3.1.4 常量,常量是在程序运行中不变的量,VB.NET中有三种常量:直接常量 其常数值直接反映了其类型 符号常量 用户声明,便于程序阅读或修改Const 符号常量名 As 类型=表达式 例 Const PI=3.14系统常量 系统提供许多内部常量和枚举 例如:vbCrLf 回车/换行组合符 枚举 如控件的颜色、边框线型等 Color.Red,本章目录,19,3.2 运算符和表达式,本章目录,运算符和表达式:结果类型 算术运算符与算术表达式 数值 字符串运算符与字符串表达式 字符串 关系运算符与关系表达式 逻辑 逻辑运算符与逻辑表达式 逻辑,20,1.算术运算符,例:5+10 mod 10 9/3+2 2 结果:10,注意:对算术运算符两边的操作数应是数值型,若是数字字符或逻辑型,则自动转换成数值类型后再运算。例如:30-True 结果是31,逻辑量True转为数值-1,False转为数值0False+10+4 结果是14,本章目录,21,2.字符串运算符,&两旁的操作数可任意,转换成字符型后再连接+两旁的操作数应均为字符型;1)数值型:则进行算术加运算;2)一个为数字字符,另一个为数值,自动将数字字符转换为数值后进行算术加;3)一个为非数字字符,另一个为数值型,出错。例如:操作 结果 操作 结果ab&123 ab123 ab+12 出错12&456 12456 12+456 468 12&True 12True12+True 11注意:在变量后使用运算符时,变量与间应加一个空格,本章目录,22,3.关系运算符,关系运算符是双目运算符,作用是对两个操作数进行大小比较,若关系成立,则返回True,否则返回False。操作数可以是数值型、字符型。,本章目录,23,4.逻辑运算符,逻辑运算符除Not是单目运算符外,其余都是双目运算符,作用是将操作数进行逻辑运算,结果是逻辑值True或False。,本章目录,24,表达式,1.组成 变量、常量、函数、运算符和圆括号2.书写规则 运算符不能相邻 例a+-b是错误的 乘号不能省略 例x 乘以y 应写成:x*y 括号必须成对出现(均使用圆括号)表达式从左到右在同一基准上书写,无高低、大小3.不同数据类型的转换 运算结果的数据类型向精度高的数据类型靠 Integer=字符运算符关系运算符逻辑运算,本章目录,25,表达式书写举例,a*b*c*d/e/f/g 或 a*b*c*d/(e*f*g),例逻辑表达式书写,选拔优秀生的条件为:年龄(Age)小于19岁,三门课总分(Total)高于285分,其中有一门为100分,如果其表达式写为:Age285 And(Mark1=100 Or Mark2=100 Or Mark3=100)如果取消括号有何问题?请读者考虑。,sin(45*3.14/180)+(exp(10)+log(10)/sqr(x+y+1),本章目录,26,3.3 常用函数,3.3.1 名称空间和类VB.NET通过名称空间把类库划分为不同的组,将功能相近的类划到相同的名称空间。名称空间,可以方便地组织应用程序要使用的各个类。(1)VB.NET函数库的名称空间和模块Conversion 转换函数DateAndTime 日期和时间函数Strings 字符串函数VbMath 随机函数,本章目录,27,3.3.1 名称空间和类,(2)基础类库中的名称空间和类,本章目录,28,名称空间的使用,引用名称空间的方法:项目引用 新建一个项目时,VB.NET根据所建项目类型,自动导入部分名称空间的引用 直接引用 给出名称空间的全名,就可访问其中的任一个类及其各项内容 例 使用Math类开方函数sqrt:Label1.Text=system.Math.sqrt(100)Imports语句导入 在代码中就可直接使用名称空间的类或成员。导入语句的格式:Imports 名称空间 位置 程序代码最上方 Public Class Form1上,本章目录,29,数学函数,.NET中的数学函数包含在Math类。使用前在模块的开头用语句 Imports System.Math导入,本章目录,30,数学函数,Rnd函数返回0和1(包括0但不包括1)之间的双精度随机数.每次运行时,要产生不同序列的随机数,先执行Randomize 语句。产生ab的之间的随机整数:Int(Rnd*(b-a)+a),本章目录,31,3.3.3 转换函数,本章目录,32,转换函数说明,Chr和Asc函数互为反函数。Chr(Asc(“r”)Chr(66)“B“Asc(“B)66 Asc(Chr(66)99 Chr(Asc(“K”)“K”Ucase$(abcdefg)“ABCDEFG(2)Str函数将非负数值转换成字符类型后,会在转换后的字符串左边增加一空格。(3)Val将数字字符串转换为数值类型,当字符串中出现数值类型规定的字符外的字符,则停止转换,函数返回的是停止转换前的结果。例如表达式:Val(-123.45ty3)结果为-123.45。,本章目录,33,转换函数说明,(4)CDdate函数将以日期型表达式转换成日期类型。例如表达式:CDate(2005/5/12)结果为日期类型VB.NET中还有其他类型转换函数,例如,CInt、CBool、CSng、CStr等,详细例子查阅帮助功能。,本章目录,34,3.3.4 字符串函数,字符串编码VB.NET中字符串长度是以字(习惯称字符)为单位,每个西文字符和每个汉字都作为一个字,占两个字节。这是因为VB.NET采用Unicode(国际标准化组织ISO字符标准)来存储和操作字符串。VB.NET中字符串处理有两种方式:保留和更新了VB6.0版本提供的函数;另一种是用System.String类的成员(函数),本章目录,35,字符串函数,本章目录,LTrim(ABC)结果为ABCRTrim(ABC)结果为ABCTrim(ABC)结果为ABCLeft(ABCDE,2)结果为ABRight(ABCDE,2)结果为DEMid(ABCDE,2,3)结果为BCDMid(ABCDE,2,6)结果为BCDE,36,本章目录,Now 返回系统日期和时间 WeekDay 返回星期代号 DateAdd(要增减日期形式,增减量,要增减的日期变量)DateDiff(要间隔日期形式,日期1,日期2)例如求两个时间相差的秒数:DateDiff(”s”,#19:3:23#,#19:5:1#)结果为98日期属性 year month day hour Minute,日期函数说明,37,3.3.6 Shell函数,Shell函数可调用各种应用程序。格式如下:Shell(命令字符串,窗口类型)命令字符串为要执行的应用程序名(包括路径),必须是可执行文件(.com、.exe、.bat)。窗口类型表示执行应用程序的窗口状态,04,6,1表示正常窗口状态(默认)。函数调用成功返回一个任务标识ID,不成功,则返回0。例如:,本章目录,i=Shell(c:windowssystem32calc.exe),38,3.4 程序结构和编码规则,本章目录,39,程序结构和编码规则,编码规则(1)VB.NET代码不区分字母的大小写 关键字首字母自动转换成大写,其余字母转换成小写。用户自定义的变量、过程名,以第一次定义的为准,以后输入的自动向首次定义的形式转换。(2)语句书写自由一行上可书写多句语句(用冒号分隔),一行最多255个字符。单行语句可分若干行书写,在本行后加入续行符(空格和下划线)。,本章目录,40,3.5 综合应用,例3.3 模仿Word中字符串替换功能和字幕滚动。设计思路:利用Shell函数调用winword.exe执行Word程序观察其替换对话框。本例字符串替换功能实现方法:利用查找(InStr)、取子串(Left、Mid)等函数实现利用替换(Replace)函数实现标题显示:Me.Text=Space(20-j)&查找与替换例 要产生滚动效果,可用时钟(Timer1)控件和Space函数,改变空格数达到自右向左滚动字幕效果。,本章目录,41,本章小节,变量:在程序运行中其存储的值可以改变 值类型变量、引用类型变量 变量声明 Dim 变量名 As 类型=初始值运算符 算术运算符、字符串运算符、关系运算符和逻辑运算符名称空间导入 Imports 名称空间 数学函数使用 Imports System.MathShell函数 调用各种应用程序,本章目录,42,思考题,VB.NET提供了哪些数值类型?声明类型时,其类型关键字分别是什么?其类型符又是什么?2.说明Option Explici的作用。3.什么是值类型变量?什么是引用类型变量?4.怎样声明一个符号常量?符号常量与变量的区别?5.解释整除与除法运算的区别?6.将数字字符串转换成数值,可以用哪些函数、方法?,本章目录,