




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
程序设计与实践项目二
数据类型及运算符2011.12.12
相关语法及设计理念活动一
计算抛物运动的高度活动二
计算三角形的面积小结活动三
字符的查找和替换活动四
办公用品采购汇总相关语法及设计理念
一.数据类型数据类型分为两种:值类型和引用类型值类型包括:所有数值数据类型(如整数、小数)、Boolean、Char和Date、所有结构(即使其成员是引用类型)、枚举。引用类型包括:String(用于处理文本)、所有数组(即使其元素是值类型)、类类型(如:Form)、委托。例:DimiAsInteger=0DimkcmAsInteger="VisualBasic"1.数值数据类型分为整数类型和非整数类型整数类型分有符号整数和无符号整数。有符号整数包括:Short、Integer和Long,无符号整数是Byte。非整数类型是表示同时带有整数部分和小数部分的数字的类型,包括:Single、Double和Decimal,它们都是有符号类型。其中Single和Double为浮点数,Decimal为定点数标准数据类型标准数据类型2.字符数据类型字符数据类型用来处理Unicode字符,每个字符占两个字节,包括两种类型:Char和String。Char类型用来存储单个字符或汉字,占两个字符。例如,"A"、"0"、"数"等。String类型是任意一系列文本字符,例如字母、数字、特殊字符和空格。例如"Thequickbrownfoxjumpsoverthelazydog"、"@#fT^3-35ert"。字符类型数据用一对西文双引号“"”括起来表示,""表示空字符串,""表示有一个空格字符。如表示的字符串中包含双引号“"”,则用连续的两个双引号表示。如:s="xyz""12"则变量s的值为字符串:xyz"12。3.逻辑数据类型Boolean类型是逻辑类型,又称布尔类型,专门用来处理True和False这两个逻辑量。4.日期时间类型Date类型是日期时间类型,包含日期值和时间值,表示从0001年1月1日凌晨0:00:00到9999年12月31日晚上11:59:59的时间。用一对“#”括起来,日期的格式为m/d/yyyy,例如,#8/31/2009#。时间值为12小时或24小时制,例如,#1:15:30PM#或#13:15:30#。例如,#8/31/20091:30:00PM#是一个合法的日期时间值。5.对象类型Object类型以地址形式存储,可以指向任意数据类型的数据,包括应用程序中任意对象实例。因此,可以将任意类型的数据赋值给Object类型的变量。二、常量和变量的命名规则1.必须以字母或下画线开头,由字母、十进制数字和下画线组成,长度不超过1023个字符。2.如果名称以下画线开头,则必须包含至少一个字母或十进制数字。3.不能使用VB中的关键字,如:Integer、If等。4.VB中不区分常量或变量名的大小写。例如,st1、St1和ST1视为同一个常量或变量。为了便于阅读程序,通常变量名采用首字母大写、其余字母小写的形式,而常量名全部采用大写。例如,str、intSum、lngA_b和Sinx等都是合法的变量名,PI、MAXI等通常作为常量名。三、常量1.直接常量例如,123S、12345、“A”、“0120”、&H56、&HAB122.用户声明符号常量用户声明符号常量的格式如下:Const符号常量名[As类型]=常量表达式ConstPIAsSingle=3.14ConstNAsInteger=100ConstSTAsString="sum"ConstM=N*23.系统提供的常量分为内部常量和枚举常量两类,如:vbCrLf、vbExclamation四、变量声明变量声明格式:Dim<变量名>[As<类型名称>][=初始值]例如:DimxAsSinglex
=
x
+
1Dimi,j,kAsInteger,x,yAsSingle,p在环境参数OptionStrict为On的情况下,必须先声明变量才可使用。五、运算符1.算术运算符运
算
符功
能优
先
级实
例运算结果^指数15^225-取负值2-x-5*乘32*x10/(浮点)除3x/22.5\整除4x\22Mod取模(余数)5xMod21+加6x+27-减6x-23五、运算符2.串联运算符串联运算符有两个:+和&,其作用都是将两个字符串连接起来+运算符既可作为字符串运算符,又可作为算术运算符&运算符不管两边操作数的数据类型如何,直接进行连接操作xyx&yx+y"123""100""123100""123100""123E1"100"123E1100"1330123100"123100"223"123A"100"123A100"出错,转换无效五、运算符3.关系运算符用于比较两个表达式,并返回表示两个值之间关系的Boolean值运
算
符功
能实
例结
果>
大于123>45True>=大于等于"123">="45"False<
小于"computer"<"计算机"True<=小于等于"abc"<="abc"False=等于1.23E2=123True<>
不等于"abc"<>"ABC"TrueLike字符串匹配"VB程序设计"Like"VB*"TrueIs和IsNot比较对象变量
五、运算符在比较时应注意以下原则:(1)如果两个操作数都是数值型,则按数值的大小比较。(2)避免对非整数做相等或不等的判断,例如,1.0/3.0*3.0
=
1这在数学上是成立的,但在计算机上执行时,可能会得到假值(False),应改写为:Abs(1.0/3.0*3.0
-
1.0)
<=1E
-
6(Abs是求绝对值的函数)当两个值的差值小于一个很小的数时,即认为这两个数相等。(3)如果两个操作数都是字符型,则从左到右逐个字符比较,以其ASCII码值大小比较。即首先比较两个字符串的第一个字符,其ASCII码值大的字符串大。如果第一个字符相同,则比较第二个字符,依此类推,直到遇到不同字符。(4)汉字字符大于西文字符。五、运算符4.逻辑和按位运算符运算符功
能优先级说
明Not逻辑非1当操作数为False时,结果为True;当操作数为True时,结果为FalseAnd逻辑与2两个操作数都为True时,结果才为True,否则为FalseAndAlso短路逻辑与2如果第一个操作数为False,则不会计算第二个操作数的值,结果为False;如果第一个操作数为True,则结果同第二个操作数Or逻辑或3两个操作数中有一个为True时,结果为TrueOrElse短路逻辑或3如果第一个操作数为True,则不会计算第二个操作数的值,结果为True;如果第一个操作数为False,则结果同第二个操作数Xor逻辑异或4两个操作数互斥,即一个为True、另一个为False时,结果才为True,否则为False五、运算符例如:(1)判断变量x的值是否在[10,100]区间中的表达式为:x>=10Andx<=100(2)在TextBox1文本框中输入性别,TextBox2文本框中输入年龄。判断是否达到退休年龄的表达式是:TextBox1.Text="男"AndVal(TextBox2.Text)>=60OrTextBox1.Text="女"AndVal(TextBox2.Text)>=55注意:如果Not、And、Or和Xor运算的操作数都是数值,则以数值的二进制逐位进行逻辑运算,称为按位运算。六、表达式1.表达式的组成表达式是由常量、变量、运算符、函数和圆括号组成的符号序列。表达式通过运算后得到一个结果,运算结果的数据类型由数据和运算符决定。分为:算术表达式、关系表达式、逻辑表达式和字符串表达式。2.优先级算术运算符>字符串运算符>关系运算符>逻辑运算符3.数据类型的转换在算术运算中,如果操作数具有不同的数据类型,则系统自动将精度低的数据转换成精度高的数据,并进行运算。数据精度次序如下:Byte<Short<Integer<Long<Decimal<Single<Double七、常用内部函数1.数学函数数学函数包含在System.Math类中。使用时,在函数名前面加“Math.”,如Math.sqrt(x)。在程序的开头,即在PublicClassForm1语句的上面添加语句:ImportsSystem.Math在程序中就可以直接使用数学函数,即省略前面的“Math.”,例如直接写Round(4.56)。例如:求30°的正弦函数值,更精确地可以表示为:Math.Sin(30*Math.PI/180)Math.PI表示圆周率2.转换函数程序中经常要将数据进行转换,如字符转换为整数、大小写字母转换、进制转换等。如Val(s)、Int(x)、Asc(s)等。七、常用内部函数3.日期和时间函数Now():返回当前系统日期和时间Today():返回或设置当前系统的日期函数Year、Month和Day分别返回指定日期的年、月、日的值使用Day函数时,必须用Microsoft.VisualBasic命名空间对其进行限制,即使用Microsoft.VisualBasic.Day4.字符串函数Len(s):返回字符串所包含字符的个数Mid(s,n[,m]):返回从字符串s中从第n个字符开始的m个字符Lelf(s,n):从字符串s左边第一个字符开始截取n个字符Trim(s):同时去除字符串s左边和右边的空格例如:Len(“中国Zhong”)、Mid(“中国Zhong”,3,1)、Left(“中国Zhong”,2)、Trim("12.3")注意:Lelf可以是控件的属性名,当作为函数使用时,在前面加上“Microsoft.VisualBasic.”七、常用内部函数5.随机函数格式:Rnd([x])功能:产生一个[0,1)范围内Single类型的随机数,x的值决定了Rnd生成随机数的方式,系统根据种子值计算出下一个随机数。要产生一个[n,m]之间的随机数,可以使用公式Int((m-n+1)*Rnd+n)例如,求[2,100)之间的随机数:Int(98*Rnd+2)注意:为了避免产生的随机数序列是相同的,使用随机函数前,可以使用Randomize语句七、常用内部函数6.格式输出函数格式:Format(表达式,格式字符串)Format(1234.567,"g")
"1234.567"Format(1234.5,"f")
"1234.50"Format(1234.567,"N")
"1,234.57";Format(1234.567,"C")
"¥1,234.57"Format(1234.567,"Scientific")
"1.23E+03"Format(1234.567,"e")
"1.234567E+003"Format(123.456,"0.00")
"123.46"Format(123.456,"#.##")
"123.46"Format(123.456,"00000.0000")
"00123.4560"Format(123.456,"#####.####")
"123.456"Format(1234.56,"0,000.00")
"1,234.56"Format(0.12346,"##.00%")
"12.35%"七、常用内部函数7.Shell函数格式:Shell(命令字符串[,窗口类型])功能:调用DOS或Windows下的可执行程序。其中命令字符串是要执行的应用程序名(包括路径和文件名)例:调用Windows的“计算器”程序则执行语句f=Shell("c:\windows\System32\calc.exe",AppWinStyle.NormalFocus)活动一
计算抛物运动的高度
活动简介将小球垂直向上抛出,物体的高度和时间的关系可以用公式
计算位置的窗口上有三个文本框,用于输入初始高度、初速度和时间。设计一个“计算”按钮,单击此按钮,开始计算,并在标签中显示出来活动实施一、建立项目二、界面设计界面布局参见图2-5,界面中各个控件的属性见表2-13。活动实施二、界面设计界面布局参见图2-5,界面中各个控件的属性见表2-13。活动实施三、代码设计程序用到4个变量,分别存放初始速度、初始高度、时间和高度,并将重力加速度定义为常量1.“计算”按钮的事件过程代码为:ConstGAsSingle=9.8 '声明符号常量Dimh,h0,v0,tAsSingle '定义变量h0=Val(TextBox1.Text):v0=Val(TextBox2.Text)t=Val(TextBox3.Text)Ift>=0Andh0>=0Andv0>=0Then'判断输入数据是否正确h=h0+v0*t-1.0/2*G*(t^2)ElseMsgBox("数据不正确,请重新输入",vbExclamation,"提示")TextBox1.Focus()'将光标定位在文本框TextBox1内EndIfLabel5.ForeColor=Color.BlueLabel5.Text=h活动实施2.单击“退出”按钮事件中的代码如下所示。PrivateSubButton2_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.ClickExitEndSub活动实施四、调试单击工具栏上的“启动调试”按钮
,运行程序。如果出现错误,修改后重新运行。五、保存单击工具栏上的“全部保存”按钮
,在“保存项目”对话框中输入名称:计算抛物运动高度,选择保存位置,单击“保存”按钮。试一试编写一个程序,具有以下功能:输入半径后,计算圆周长、圆面积、圆球表面积和圆球体积。要求将
定义为符号常量。提示:圆周长=2r,圆面积=r2,圆球表面积=4r2,圆球体积=。定义一个变量存储半径,用文本框输入,再用四个标签分别显示四个计算量活动二
计算三角形的面积
活动简介已知三角形两边边长和两边的夹角,根据余弦定理求第三边:三角形的面积Area可由以下公式求得:活动实施一、界面设计窗体界面是有3个文本框用于输入两边边长和夹角,3个标签用于标注,两个标签显示计算结果,两个按钮用于启动计算功能,一个“退出”按钮。活动实施一、界面设计控件类别控
件属
性设置值窗体Form1Text计算三角形面积Font宋体,小四标签Label1TextaLabel2TextbLabel3Text夹角(°)Label4Textc边长为:Label5Text面积为:文本框TextBox1Font宋体,小四TextBox2Font宋体,小四TextBox3Font宋体,小四命令按钮Button1Text边长Button2Text边长Button3Text退出(&E)活动实施二、代码设计程序用到5个变量,分别存放3边边长、夹角、面积ImportsSystem.Math‘导入数学函数名称空间PublicClassForm1Dima,b,c,delta,S,AreaAsSingle'定义模块级变量'程序首先自动执行Load事件过程PrivateSub三角形_Load(ByValsenderAsObject,ByValeAsSystem.EventArgs)HandlesMe.LoadButton1.Enabled=TrueButton2.Enabled=False'使“面积”按钮不可用TextBox1.Focuse()'将光标定位在第1个文本框中EndSub活动实施'控制文本框只能输入数字(包括0~9和小数点)PrivateSubTextBox1_KeyPress(……)HandlesTextBox1.KeyPressIfNot(Asc(e.KeyChar)>=Asc("0")AndAsc(e.KeyChar)<=Asc("9")
Ore.KeyChar=".")Thene.Handled=True'按下的键盘值将不会作用EndIfEndSub'使用余弦定理求第三边PrivateSubButton1_Click(……)HandlesButton1.Clicka=Val(TextBox1.Text):b=Val(TextBox2.Text)delta=Val(TextBox3.Text)c=Sqrt(a*a+b*b-2*a*b*Cos(delta*PI/180))Label4.Text&=Format(c,"#.##")Button2.Enabled=TrueEndSub活动实施'使用海伦公式求面积PrivateSubButton2_Click(……)HandlesButton2.ClickS=1.0/2*(a+b+c)Area=Sqrt(S*(S-a)*(S-b)*(S-c))Label5.Text&=Format(Area,"#.##")EndSub'退出程序PrivateSubButton3_Click(……)HandlesButton3.ClickEndEndSub活动实施注意(1)在PublicClassForm1的上面添加一行语句:ImportsSystem.Math(2)控制文本框的输入,可以在文本框的KeyPress事件过程中判断键盘值e.KeyChar的值。e.KeyChar是按键符,Asc为求字符的ASCII码值,e.Handled表示当前按键的处理情况,若为True,则表示已处理过,则不再在文本框中显示出来。(3)PI为圆周率,是在Math类中定义的公有字段。也可以用Math.PI表示。试一试编写一个程序,实现以下功能:随机产生一个[10,20]之间的十进制偶数,并转换成八进制和十六进制数,显示这三个数值。提示:要产生的是两位的偶数,用公式Int(Rnd*11)+10产生随机数,用If语句判断是否为偶数,若不是随机数,则重新单击命令按钮再次产生新的随机数,并用转换函数进行转换。PrivateSubButton1_Click(……)HandlesButton1.ClickDimxAsIntegerx=Int(Rnd()*11)+10IfxMod2=1ThenMsgBox("PleaseClick''")TextBox1.Text=""ElseTextBox1.Text=xEndIf
……'其他代码EndSub活动三
字符的查找和替换
活动简介窗体上有4个标签、4个文本框和5个按钮,3个文本框中依次输入文本内容、要查找的内容和替换成新的内容。单击“多函数替换”按钮,在第一个文本框中查找是否存在要查找的内容,如果存在,则全部替换成新的内容;单击“替换函数”按钮,使用系统提供的字符函数完成替换。单击“清空”按钮,清空三个文本框(除第一个文本框之外);单击“退出”按钮,结束程序的运行。活动实施二、界面设计控件类别控
件属
性设
置
值窗体Form1Text(空)Font宋体,五号,加粗标签Label1Text字符串Label2Text查找Label3Text替换为Label4Text结果Label5Text(空)文本框TextBox1Text上海理工大学TextBox2Text理工TextBox3Text海洋命令按钮Button1Text多个函数Button2Text替换函数Button3Text调用WordButton4Text清空Button5Text退出(&E)时钟Timer1EnabledTrueInterval100活动实施二、代码设计1.设置变量Dimi,j,kAsInteger2.单击“多个函数”事件代码利用InStr函数可以找出子串在字符串中的起始位置,利用Len函数求出子串的长度,利用Left函数取出子串前面的字符,Mid函数取出子串后面的字符。PrivateSubButton1_Click(……)HandlesButton1.Clicki=InStr(TextBox1.Text,TextBox2.Text)
'在TextBox1中查找出现TextBox2内容的位置存放在i变量中k=i+Len(TextBox2.Text)TextBox4.Text=Microsoft.VisualBasic.Left(TextBox1.Text,i-1)
+TextBox3.Text+Mid(TextBox1.Text,k)EndSub活动实施3.单击“替换函数”事件代码直接使用Replace函数进行替换。代码如下。PrivateSubButton2_Click(……)HandlesButton2.ClickTextBox4.Text=""TextBox4.Text=Replace(TextBox1.Text,TextBox2.Text,TextBox3.Text)EndSub4.单击“调用Word”事件代码PrivateSubButton3_Click(……)HandlesButton3.Clicki=Shell("C:\ProgramFiles\MicrosoftOffice\Office14\winword.exe",1)'调用Word2010,具体路径参考当前使用的计算机EndSub活动实施5.设置窗口标题滚动效果利用时钟控件,在设计时设置时钟的Enabled属性值为True,使得只要启动程序,时钟就会自动启动。PrivateSubTimer1_Tick(……)HandlesTimer1.TickMe.Text=Space(35-j)&"查找与替换"
'随着j的增加,空格数减少,视觉上窗口标题栏字符串向左移动j=j+1Ifj>35Thenj=0EndSubPrivateSubButton4_Click(……)HandlesButton4.Click‘清空TextBox4.Text=""EndSub注意:(1)Left可以是函数名也可以是属性名,因此当作为函数使用时,应加上前缀“Microsoft.VisualBasic.”。(2)用Me来表示当前窗体,不能使用Form1。活动实施(3)使用替换函数Replace函数可以将主串(TextBox1)中的子串(TextBox2)全部替换为要替换的子串(TextBox3)。使用多个函数进行查找,只能替换掉一个字符串,当替换完第一个字符串时,可以将按钮的标题改为“下一个”,单击该按钮,重新执行一次查找和替换。当变量i的值小于等于0时,表示全部替换完毕。“多个函数”按钮的事件过程修改如下。i=InStr(TextBox1.Text,TextBox2.Text)Ifi>0Thenk=i+Len(TextBox2.Text)TextBox4.Text=Microsoft.VisualBasic.Left(TextBox1.Text,i-1) +TextBox3.Text+Mid(TextBox1.Text,k)Button1.Text="下一个"TextBox1.Text=TextBox4.TextElseMsgBox("全部替换完!"):Button1.Text="多个函数"EndIf试一试编写一个程序,其窗体上有2个文本框和1个标签,当在左面的文本框中输入一个字符,在右面的文本框中立即显示出该字符,并将该字符插入最前面。同时在窗体的标题栏上显示出共输入了几个字符。例如,依次输入字母a、b、c,在右面的文本框中依次显示:a、ba、cba,在标签栏上先后显示:输入了1个字符、输入了2个字符、输入了3个字符。提示:在文本框的KeyPress事件过程中编写程序,用e.KeyChar获得当时按键的字符。PrivateSubTextBox1_KeyPress(……)HandlesTextBox1.KeyPressTextBox2.Text=e.KeyChar&TextBox2.TextLabel1.Text="输入了"&Len(TextBox2.Text)&"字符"EndSub活动四办公用品采购汇总
活动简介在办公信息管理的界面上有3个文本框,分别用于输入名称、单价和数量,有3个按钮:“购买”、“合计”和“计算器”。单击“购买”按钮后,将输入的名称、单价和数量列入清单,并计算出金额。单击“合计”按钮后,计算出合计金额。为了便于用户计算,单击“计算器”按钮,自动运行Windows的计算器程序。活动实施二、界面设计控件类别控
件属
性设
置
值窗体Form1Text季度办公用品采购汇总Font宋体,小五号标签Label1Text(空,其属性在窗体的Load事件中赋值)Label2Text(空,用于显示名称)Label3Text(空,用于显示单价)Label4Text(空,用于显示数量)Label5Text(空,用于显示金额)文本框TextBox1Text(空)TextBox2Text(空)TextBox3Text(空)命令按钮Button1Text已购买Button2Text合计Button3Text计算器Button4Text退出(&E)活动实施二、代码设计DimsumAsSinglePrivateSubForm1_Load(……)HandlesMyBase.LoadLabel1.Text="名称
单
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年MCL(BCL)系列离心压缩机项目发展计划
- 2025年新型墙体屋面材料项目建议书
- 2025年钢包精炼成套设备项目建议书
- 四年级数学(三位数乘两位数)计算题专项练习及答案
- 基层医院护理质量管理教材
- 陕西艺术职业学院《中国当代经典诗歌鉴赏》2023-2024学年第一学期期末试卷
- 护理创新教学模式
- 陕西财经职业技术学院《编辑学概论》2023-2024学年第二学期期末试卷
- 陕西青年职业学院《基本乐理》2023-2024学年第一学期期末试卷
- 集宁师范学院《嵌入式微控制器设计及应用》2023-2024学年第二学期期末试卷
- 移动家客等级技能认证考试题含答案
- 电力线路维保服务投标方案(技术方案)
- 七年级下册道德与法治第二单元《焕发青春活力》测试卷、答案及解析
- 2024地铁从业人员综合知识考试题库及答案
- 2022-2023学年新疆维吾尔自治区喀什地区喀什市人教版六年级下册期中测试数学试卷
- 江苏省苏州市张家港市2023-2024学年高一年级下册4月期中生物试题(解析版)
- 中医医疗技术手册2013普及版
- 公务手机使用管理制度
- 幼儿英语自然拼读Letter of the Week C
- 早产儿疑难病例护理讨论
- 燃气管道智能化监管与预测性维护
评论
0/150
提交评论