VB复习要点Word格式文档下载.docx
- 文档编号:8008576
- 上传时间:2023-05-09
- 格式:DOCX
- 页数:39
- 大小:55.72KB
VB复习要点Word格式文档下载.docx
《VB复习要点Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《VB复习要点Word格式文档下载.docx(39页珍藏版)》请在冰点文库上搜索。
和数字"
l"
形式几乎相同、O的小写字母"
与数字"
0"
也难以区,这在输入代码时要十分注意,避免单独作为变量名使用。
3.对象名称(Name)属性写错
在窗体上创建的每个控件都有默认的名称,用于在程序中唯一地标识该控件对象。
系统为每个创建的对象提供了默认的对象名,例如,Text1、Text2、Command1、Label1等。
用户可以将属性窗口的(名称)属性改为自己所指定的可读性好的名称,如txtInput、txtOutput、cmdOk等。
对初学者,由于程序较简单、控件对象使用较少,还是用默认的控件名较方便。
当程序中的对象名写错时,系统显示"
要求对象"
的信息,并对出错的语句以黄色背景云。
用户可以在代码窗口的"
对象列表"
框检查该窗体所使用的对象。
4.Name属性和Caption属性混淆
Name属性的值用于在程序中唯一地标识该控件对象,在窗体上不可见;
而Caption属性的值是在窗体上显示的内容。
5.对象的属性名、方法名写错
当程序中对象的属性名、方法名写错时,VB系统会显示"
方法或数据成员未找到"
的信息。
在编写程序代码时,尽量使用自动列出成员功能,即当用户在输入控件对象名和句点后,系统自动列出该控件对象在运行模式下可用的属性和方法,用户按空格键或双击鼠标即可,这样既可减少输入也可防止此类错误出现。
6.变量名写错
用Dim声明的变量名,在后面的使用中表示同一变量而写错了变量名,VB编译时就认为是两个不同的变量。
例如,下面程序段求1~100的和,结果放在Sum变量中:
DimsumAs
Integer,iAsInteger
Sum=0
For
i
=1
to100
Sum=Sun+i
Nexti
PrintSum
显示的结果为100。
原因是累加和表达式Sum=Sun+i中的右边的变量名Sum写成Sun。
VB对变量声明有两种方式,可以用变量声明语句显式声明,也可以用隐式声明,即不声明直接使用。
上述变量名的写错,系统为两个不同的变量各自分配内存单元,造成计算结果不正确。
因此,为防止此类错误产生,必须对变量声明采用限制其为显式声明方式,也就是在通用声明段加OptionExplicit语句。
7.语句书写位置错
在VB中,除了在"
通用声明"
段利用Dim等对变量声明语句外,其他任何语句都应在事件过程中,否则运行时会显示"
无效外部过程"
若要对模块级变量进行初始化工作,则一般放在FormLoad()事件过程中。
8.无意形成控件数组
若要在窗体上创建多个命令按钮,有些读者会先创建一个命令按钮控件,然后利用对该控件进行复制、粘贴,这时系统显示:
已经有一个控件为"
Command1"
创建一个控件数组吗?
的信息,若单击"
是"
按钮,则系统创建了名称为Command1的控件数组。
若要对该控件的Click事件过程编程,系统显示的框架是:
PrivateSubCommand1_Click(IndexAsInteger)
EndSub
Index表示控件数组的下标。
若非控件数组,Click事件过程的框架是:
PrivateSubCommand1_Click()
EndSub
请注意直到学习第四章数组前,一律不使用控件数组。
9.Print方法中定位问题
定位通过Tab、Spc函数和最后的逗号、分号和无符号来控制。
VB中通过Print方法中各参数的综合使用达到所需的结果,但初学者往往难以掌握。
(1)
Tab(n)与Spc(n)的区别
Tab(n)从最左第1列开始算起定位于第n列,若当前打印位置已超过n列,则定位于下一行的第n列,这是常常定位不好出现的问题。
在格式定位中,Tab用得最多。
Spc(n)从前一打印位置起空n个空格。
例如,下面程序段显示了Tab与Spc的区别,效果如图所示。
PrivateSubCommandl_Click()
Print"
1234567890”,
PrintTab
(1);
**"
;
Tab
(2);
%%%"
spc
(2);
$$$$"
EndSub
(2)紧凑格式"
分号的使用
紧凑格式"
,即输出项之间无间隔。
但对于数值型,输出项之间系统自动空一列,而由于数值系统自动加符号位,因此,大于零的数值,实际空两列。
对于字符型之间无空格。
例如,下面程序段,效果如图所示。
Print1;
-2;
3
Print"
1234"
5678"
A"
B"
C"
D"
"
E"
F"
从该例应区分数值和字符在紧凑格式输出的差异。
10.打开工程时找不到对应的文件
一般,一个再简单的应用程序也应由一个工程.vbp文件和一个窗体.frm文件组成。
工程文件记录该工程内的所有文件(窗体.frm文件、标准模块.bas文件、类模块.cls文件等)的名称和所存放在磁盘上的路径。
若在上机结束后,把文件复制到软盘上保存,但又少复制了某个文件,下次打开工程时就会显示"
文件未找到"
也有在VB环境外,利用Windows资源管理器或DOS命令将窗体文件等改名,而工程文件内记录的还是原来的文件名,这样也会造成打开工程时显示"
解决此问题的方法:
一是修改.vbp工程文件中的有关文件名:
二是通过"
工程"
菜单的"
添加窗体"
中的"
现存"
选项,将改名后的窗体加入工程。
第二章
VB语言基础和顺序结构
2.1
1.VB程序的书写规则
VB代码书写规则
1)程序中不区分字母的大小写,Ab与AB等效;
2)系统对用户程序代码进行自动转换:
●
对于VB中的关键字,首字母被转换成大写,其余转换成小写
若关键字由多个英文单词组成,则将每个单词的首字母转换成大写
对于用户定义的变量、过程名,以第一次定义的为准,以后输入的自动转换成首次定义的形式
(2)
语句书写规则
1)
在同一行上可以书写多行语句,语句间用冒号(:
)分隔
2)
单行语句可以分多行书写,在本行后加续行符:
空格和下划线
3)
一行允许多达255个字符
(3)
程序的注释方式
整行注释一般以Rem开头,也可以用撇号'
用撇号'
引导的注释,既可以是整行的,也可以直接放在语句的后面,最方便;
3)可以利用“编辑”工具栏的“设置注释块”、“解除注释块”来将设置多行注释。
2.VB提供的数据类型
VB提供了丰富的数据类型(见教程表1.3.1),每种数据类型有关键字或类型符表示,不同的数据类型占用不同的存储空间,用户可根据实际问题的需要使用合适的类型。
除此数据类型外,VB还提供了构造类型,即数组和用户自定义类型(相当于记录类型)。
3.变量和常量
(1)变量
变量的命名规则:
☆ 必须以字母或汉字开头,由字母、汉字、数字或下划线组成,长度≤255个字符;
☆不能使用VB中的关键字,并尽量不与VB中标准函数名同名;
如:
Dim、Sin
☆VB中不区分变量的大小写,一般变量首字母用大写,其余用小写;
常量全部用大写字母表示
☆为了增加程序的可读性,可在变量名前加一个缩写的前缀来表明该变量的数据类型。
变量的声明:
有利用Dim等声明语句或类型符声明各种类型的变量,也可以不声明直接使用具有Variant变体类型的变量。
为使程序运行安全、可靠,对使用的变量还是利用显式声明为好。
变量的初值:
系统默认数值型变量为零、字符型变量为空(…Q),对象变量为Nothing。
(2)常量
在VB中,常量有三类,分别为:
·
直接常量,例如,1、1.23、&
Hab、0.123El、"
1234asd"
、#2000/5/5#、True、False。
用户自定义常量,例如,ConstPI=3.14159。
VB系统提供的常量,例如,vbEmpty、vbInteger、vbNormal。
4.运算符及优先级
算术运算符
-、^、*或\、/、Mod、+或-
由高到低
字符运算符
+或&
同级
关系运算符
=、>
、>
=、<
、<
>
、Is、Like
逻辑运算符
Not、And、Or、Xor、Eqv、Imp
高到低
5.表达式书写及值的类型
书写规则:
从左到右在-行上书写,无高低区分:
表达式中的运算符可以用圆括号括起,以改变运算的优先级或增加表达式的消蜥度。
不能使用方括号或花括号,圆括号可以出现多个,但要配对。
值的类型:
在算术表达式中,出现不同的数据类型,向精度高的数据类型转换。
6.常用函数
VB中提供了丰富的函数,教程中按算术、字符串、日期和时间、转换,格式等分类列出了一些常用的函数,对函数完整的形式和使用举例参阅VB帮助。
查阅的方法一般有两种:
对已知函数名,选中函数名,按F1键:
未知函数名,进入VB帮助后,通过"
目录"
选项卡,选择"
VisualBasic文档"
目录,再选择"
参考"
下的"
语言参考"
函数"
7.赋值语句
赋值号"
="
左边只能是变量;
一次只能对一个变量赋值。
8.与用户交互函数和过程
InputBox函数和MsgBox函数或过程。
2.3
1.逻辑表达式书写错,在VB没有造成语法错而形成逻辑错
例如,要将数学上表示变量x在一定数值范围内如3≤x<10,以VB的逻辑表达式表示,有的读者写成的VB表达式为:
3<
=x<
10
此时在其他语言中将产生语法错,而在VB中不产生语法错,程序能运行,但不管x的值为多少,表达式的值永远为True,这造成程序能正常运行的假象,其结果是不正确的。
因为在VB中,当两个不同类型的变量或常量参加运算时,有自动向精度高的类型转换的功能。
例如,逻辑常量Tme转换为数值型的值为-1,False为0;
反之数值型非0转换为逻辑型的值为True,0为False。
同样数字字符与数值运算,转换为数值型。
例如,语句
PrintTrue+3
'
显示的结果是2
123"
+100
显示的结果是223
Print#5/1/2000#+3
显示的结果是00-5-4
根据此原因,表达式:
3<
=x
(1)
(2)
值的计算过程是:
首先根据x的值计算3<
=x,结果总为True或False;
然后该值(-1或0)与10比较永远为True。
正确的VB表达式书写为:
=xAndx<
2.同时给多个变量赋值,在VB没有造成语法错而形成逻辑错
例如,要同时给x,y,z三个整型变量赋初值1,有的读者写成如下赋值语句:
x=y=z=1
在C语言中,上述语句是可以实现同时对多个变量赋值,而在VB中规定一句赋值语句内只能给一个变量赋值,但上述语句并没有产生语法错,运行后x,y,z中的结果均为0。
原因是VB将y=z=1作为一个表达式,再将表达式的结果赋值给x。
在VB中默认数值型变量的初值为0,根据上面错误1的分析类推,因此表达式y=z=l的结果为0,所以x赋得的值为0、y、z变量的值为默认值o。
3.标准函数名写错
VB提供了很多标准函数,如IsNumeric()、Date()、LeR()等。
当函数名写错时,如将IsNumeric写成IsNummeric,系统显示"
子程序或函数未定义"
,并将该写错的函数名选中提醒用户修改。
[提示]
如何判断函数名、控件名、属性、方法等是否写错,最方便的方法是当该语句写完后,按Enter键,系统把被识别的上述名称自动转换成规定的首字母大写形式,否则为错误的名称。
4.数据合法性检查中引起程序的死循环
在数据输入时,经常需要对输入的数据作合法性检查,以确保程序运行的正确性。
如在实验:
第1题中,对输入的温度要求是数字,否则删除原输入的内容,焦点仍定位于文本柜。
有关属性设置见下表,界面如图2.2.2所示,程序段如下。
表2.2.1
控件有关属性
有关控件名
TabIndex
Text1
2
Text2
3
Command1
4
5
PrivateSubText1_LostFocus()
IfNotIsNumeric(Text1)Then
Text1="
Text1.SetFocus
EndIf
EndSub
PrivateSubText2_LostFocus()
IfNotIsNumeric(Text2)Then
Text2="
Text2.SetFocus
当华氏温度(Text1)输入错时,焦点在Text2处不停地闪动,程序产生死循环。
原因是当Textl输入结束按Tab键,激发TextlLostFocus事件,焦点已到Text2;
但当判断Textl文本框输入数据错时,执行Textl.SetFocus,使焦点从Text2拉回到Textl;
而又激发Text2_LostFocus事件,此时并没有判断Text2文本框输入数据错,又执行Text2.SetFocus,使焦点从Text1拉回到Text2,如此交错造成死循环。
而当摄氏温度(Text2)输入错时,程序正常运行。
因为当Text2输入结束按Tab键,焦点已到Commanl,因此不会产生死循环。
解决Text1输入错时死循环的问题,只要把PrivateSubText2_LostFocus()事件的If表达式IfNotIsNumeric(Text2)Then改为:
IfText2<
AndNotisNumeric(Text2)Then即可。
5.如何终止死循环
当编写程序时考虑不周到,产生死循环(尤其使用第四章介绍的循环结构)时,只要同时按Ctrl+Break键就町终止死循环,找出死循环的原因,修改程序。
6.声明局部变量和窗体级变量的问题
在VB程序中,除了大量的控件对象外,还要使用一些变量,暂时存放一些中间结果。
这些变量的声明可以放在过程外的"
段(称为窗体级变量,在教程的3.7.4节介绍),也可以放在过程中(称为局部变量),怎样安置这些变量,初学者觉得有点头疼。
两者区别:
窗体级变量在本窗体的所有过程中均可使用:
而局部变量仅在变量所在的过程中可使用,也即随着本过程的执行而分配存储空间,当执行到EndSub语句,分配的内存空间回收,变量的值也丢失。
具体对实验二第2题来说,在方法一中窗体内有四个过程,共同要用到三个变量a,b,c,因此这些变量的声明应在"
段,否则Click事件过程中a,b,c变量的值为零。
在方法二中只有一个事件过程,变量a,b,c作为过程级变量声明,当然声明与窗体级变量效果相同。
方法一:
方法二:
Dimag,b#,c#
Pfiv~eSubForm-Click()
PrivateSubTextl_LostFocus()
Dima#,b#,c#
…
对变量a赋值
用到变量a,b,c
EndSub
对变量b赋值
PrivateSubText3_LostFocus()
对变量c赋值
PrivateSubCommand1_Click()
7.在FormLoad事件中,SetFocus方法不起作用
原因同Print方法,因为系统在窗体装入内存时无法同步地用SetFocus方法定位控件的焦点。
解决的方法在属性窗口对要定位焦点的控件将其Tablndex值设置为。
就可。
8.程序运行时对多个文本框间焦点移动的问题
方法-:
按"
Tab"
键。
这时可不必编程,直接利用系统提供的功能方便地在各控件之间移动。
若要确定离开或进入了哪个控件,则利用"
控件LostFocus'
或"
控件_GotFocus'
事件进行判断。
方法二:
回车"
这时必须通过KeyPress事件编程宋实现,有关程序段如下:
PrivateSub某文本框_KeyPress(KeyAsciiAsInteger)
IfKeyAscii=13Then
另一控件.SetFocus
…
第三章
选择结构
3.1
1.单边IF语句的两种格式和使用
(1)If<
表达式>
Then
(2)If<
Then<
语句>
语句块>
EndIf
其中,表达式可以是任何表达式,即算术、字符、关系和逻辑表达式,按表达式的值非。
为True,0为False来判断。
多行的IF必须与EndlF配对;
单行格式没有EndIf关键字。
2.双边IF语句的两种格式和使用
语句1>
Else<
语句2>
语句块1>
Else
语句块2>
3.多边IF语句的格式和使用
If<
表达式1>
Then
ElseIf<
表达式2>
[Else
语句块n+1>
]
ElseIf之间不能有空格。
4.IF语句的嵌套和使用
If<
表达式11>
区分嵌套的层次方法,每个Endlf与它上面最接近的If配对。
书写为锯齿形,便于区分和配对。
5.情况语句SelectCase的格式和使用
格式:
SelectCase<
变量或表达式,
Case<
表达式列表1>
表达式列表2>
[CaseElse
EndSelect
其中,<
变量或表达式>
只能是对一个变量进行多种情况的判断;
<
表达式列表i>
中不能山现"
变量或表达式"
中出现的变量。
6.条件测试函数的形式和使用
IIf(<
条件表达式>
,当条件为True时的值,当条件为False时的值)
Choose(<
数字类型变量>
,值为1的返回值,值为2的返回值…)
Switch(<
条件表达式1>
,条件表达式1为True时的值
[,<
条件表达式2>
,条件表达式2为True时的值…])
3.3
1.在选择结构中缺少配对的结束语句
对多行式的If块语句中,应有配对的EndIf语句结束。
否则,在运行时系统会显示"
块If没有EndIf"
的编译错误。
同样对SelectCase语句也应有与其相对应的EndSelect语句。
2.多边选择ElseIf关键字的书写和条件表达式的表示
多边选择ElseIf子句的关键字ElseIf之间不能写有空格,即不能写成ElseIf。
在多个条件表达式的表示时,应从最小或最大的条件依次表示,以避免条件的过滤。
例如,已知输入某课程的百分制成绩mark,要求显示对应五级制的讦定,评定条件如下:
有以下几种表示方式,语法上都没有错,但执行后结果有所不同,请读者分析哪些正确?
哪些错误?
下面给出的答案中,方法一、二、五正确,其余错误,请读者分析各自的原因。
方法一:
方法三:
Ifmark>
=90Then
Ifmark<
60Then
Ifmark>
=60Then
优"
不及格"
及格"
ElseIfmark>
=80Then
ElseIfmark<
70Then
ElseIfmark>
=70Then
良"
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VB 复习 要点