期末复习《VB程序设计》期末复习指导.docx
《期末复习《VB程序设计》期末复习指导.docx》由会员分享,可在线阅读,更多相关《期末复习《VB程序设计》期末复习指导.docx(19页珍藏版)》请在冰点文库上搜索。
![期末复习《VB程序设计》期末复习指导.docx](https://file1.bingdoc.com/fileroot1/2023-6/8/1f306e83-81dd-498a-bb8f-a2c7edcc0c8d/1f306e83-81dd-498a-bb8f-a2c7edcc0c8d1.gif)
期末复习《VB程序设计》期末复习指导
《VB程序设计》期末复习指导
考试题型
1. 选择题
2.填空题
3.请指出下列程序的运行结果
4.
(1)根据要求,完整程序
(2)编写程序
数据类型P11程序结构(if、for、select)P21定义数组P31文本框控件P43标签控件P43列表框控件P48图片、图像框控件P53MDIchildP77通用对话框P56
各章重点
第一章 基础知识
VisualBasic的特点:
(1)可视化的设计平台,
(2)面向对象的设计方法,(3)事件驱动的编程机制,(4)结构化的设计语言,(5)充分利用windows资源,(6)开放的数据库功能与网络支持
对象:
封装好的数据和代码。
对象具有各种属性、事件和方法。
VB中的典型对象有窗体、控件、打印机等。
属性:
描述对象的性质和特征。
事件:
能被对象识别并响应的动作。
事件过程:
对象在识别到某事件发生后将执行相应的过程。
方法:
对象可执行的动作和功能类:
对象的模版,通过类可以产生各种同类对象。
第二章 VB语言基础
2.1 标准数据类型:
(1)数值型数据
Integer整型
2
-32768-32767
十六进制&H
八进制&O
Long 长整型
4
同上
Single单精度
4
有效数位最多为7位
Double双精度
8
有效数位最多为15位
Currency货币
8
小数点后最多保留4位
Byte字节
1
0-255的整数,无符号
(2)字符串型数据(String):
字符数据用ASCII码即美国信息交换标准码表示。
(3)布尔型数据(Boolean):
占2个字节,只有2个值(真true和假false)
(4)日期型数据(Date)
日期型数据占8个字节,表示范围从100.1.1-9999.12.31。
日期型常数应用一对##把日期和时间值括起来。
例:
#09/10/20**# 或 #20**-09-12#
#08:
30:
00AM# #09/10/20**08:
30:
00AM#
(5)对象型数据(Object):
占4个字节,用于引用任何对象。
对象型变量应用SET语句赋值。
(6)变体型数据(Variant):
在程序未经声明就直接使用的变量称为变体型变量。
变体型变量可用于存放任何类型的数据。
2.2 变量
变量代表内存中某指定的存储单元,变量的值在程序运行过程中可以随时变化的。
变量具有名字和数据类型两种属性。
名字:
用于在程序中标识变量和使用变量的值,数据类型:
确定变量中能保存何种数据。
VB中具有两种形式的变量:
属性变量和内存变量。
属性变量是VB系统自动创建的。
内存变量程序员根据需要创建的。
变量的命名规则:
第一个字符必须是字母;不能包含有小数点;字符数不得超过255个字符;不能使用VB的关键字做变量名。
练习2.2:
下列哪一个不是VB的合法变量名?
(1)ABCDEFG (5) ok
(2)P000000 (6) now
(3)89TWDDFF (7) new
(4)XYZ (8) iif
答案(3)(6)(7)(8)
变量的声明
[Dim|Static|Public|Private]<变量1>[as<类型>][,<变量2>[as<类型>]]
Dim,Static,Private 声明的是过程级局部变量。
Dim,Private 也可用于声明模块级私有变量。
Public 声明的是整个工程级的公共变量。
Static声明的是静态变量。
例:
dimcountasinteger
Privatesumasdouble,strnameasstring
Staticaverageassingle
Public ynasboolean
2.3常 量
常量代表内存中指定的存储单元,常量的值在程序运行过程中是不变化的。
直接常量:
在程序代码中以直接明显的形式给出的数据,为直接常量 .根据使用的数据类型,常量分为:
字符串常量:
需用双引号括起来。
"sdfdf“,对于回车换行符,可用其ASCII码表示,例:
text1.text=“Howareyou?
"+chr(13)+chr(10)
数值常量:
5种数据类型:
整数、长整数、定点数、浮点数和字节数。
布尔常量:
只有两种值:
true,false
日期常量:
用一对“#”将表示日期和时间的值括起来,表示日期型常量。
例:
#30/09/20**#,#20**-09-30#,#Mar420**10:
12:
30#
符号常量:
了改善程序的可读性和可维护性,通常使用符号常量。
符号常量分为两种:
内部常量和用户常量。
[Public|Private]Const<常量名>[as<数据类型>]=<表达式>
2.4常用的内部函数的应用
X=INT(-3.4)→X=-4 X=INT(3.4)→X=3
X=FIX(-3.4)→X=-3 X=FIX(3.4)→X=3
X=SIN(30*3.14/180)→X=0.5
X=SQR(9)→X=3 X=ABS(-3)→X=3
X=left(“hello”,2)→X=“he“
X=right(“hello”,1)→X=“o“
X=mid(“hello”,1,2)→X=“he“
X=STR(123.456)→X=“123.456”
X=VAL(“123.456”)→X=123.456
Date=#20**-03-12#
Time=#10:
30:
00#
M=month(date)→m=3
H=Hour(time)→H=10
Randomize 产生随机数的种子
Rnd 产生0-1之间的随机数
例:
产生100以内(不含100)的随机整数 Int(Rnd*100)
例:
产生两位的随机整数 Int(10+Rnd*90)
第三章 常用控件的使用
用户通常通过命令按钮来执行某个命令。
如:
“确定”,“退出”等.Click事件:
鼠标单击事件
标签控件通常用来显示文本。
文本框控件通常用来接受用户输入的文本。
Name属性:
名称
Text属性:
设置或读取文本框中的文字
Maxlength属性:
设置文本框中文本的最大长度
Locked属性:
设置是否允许用户在文本中输入或修改文本
Multiline属性:
设置文本框是单行的还是多行的。
passwordchar:
设置文本框是否作为密码输入框。
Change:
当文本框内容变化时将触发本事件
复选框控件可用来让用户进行“真/假”“是/否”等选项的设置
单选框控件可用来让用户在一组相关的选项中选择一项,因此单选框控件总是成组出现的。
位于同一容器中的单选框控件被为一组,当这一组中某个单选框控件被选中时,这组中其他的单选框将自动处于不选中状态。
组合框控件类似于文本框,但可提供一组预制的选项供用户选择。
用户可从下拉式列表框中直接选择某项内容,也可在组合框中输入列表项中没有的内容。
图片框控件主要用于显示图片或用做其他控件的容器。
picture属性:
设置图片框要显示的图片。
运行状态下可用“loadpicture”函数来设置图片。
例:
picture1.picture=loadpicture(“c:
\cloud.bmp”)
picture1.picture=loadpicture’即清除原来的图片。
图像框用于显示图片。
picture属性:
设置图像框要显示的图片。
运行状态下可用“loadpicture”函数来设置图片。
例:
image1.picture=loadpicture(“c:
\cloud.bmp”)
定时器控件可用于定时引发事件。
Interval属性:
设置定时器的定时时间间隔,以毫秒为单位。
enable属性:
设置定时器是否有效。
例:
设置定时器timer1的定时时间间隔为1秒:
timer1.Interval=1000
第四章 赋值与输入输出
Print方法
[<对象名称>].Print [<表达式列表>]
多个表达式之间用分隔符号“,”或分号“;”隔开。
若句末无分隔符,则自动换行。
对于表达式,先计算后输出。
卸载窗体 unloadform1 Unloadme
结束程序End
注释语句rem或‘
消息对话框
变量=msgbox(<消息内容>[,<对话框类型>[,<对话框标题>]])
消息内容:
对话框中出现的文本。
对话框类型:
对话框中出现的按钮和图标。
输入对话框 变量=inputbox(<信息内容>[,<对话框标题>[,<默认内容>]])
第五章 选择结构程序设计
选择结构:
根据所给定的条件决定从不同的分支中执行某一分支的相应操作。
条件表达式的值为真(true)和假(false)。
条件表达式分为关系表达式和布尔表达式。
关系运算符:
对两个表达式的值进行比较,关系成立,返回true,否则返回false。
关系运算符有:
<,<=,>,>=,=,<>六种。
其优先级相同。
例:
能判断闰年的布尔表达式:
闰年的条件:
年号(y)能被4整除,但不能100整除;或者能被400整除。
ymod4=0andymod100<>0orymod400=0
if语句
单行结构的if语句 语法格式:
if<条件>then[<语句序列1>][else<语句序列2>]
iif函数 语法格式:
iif(<条件表达式1>,<真部分>,<假部分>)
应用举例:
Y=iif(xmod2,”奇数”,”偶数”)
块结构的if语句
语法格式:
if<条件表达式>then
[语句列1]
Else
[语句列2]
Endif
Selectcase语句
Selectcase表达式
Case 5to10
语句序列
Case1,2,3
语句序列
Case20
语句序列
Caseis<30
语句序列
Caseelse
语句序列
Endselect
例:
编程实现如下功能:
PrivateSubCommand1_Click()
Label2="你的成绩等级为:
"
SelectCaseVal(Text1)
CaseIs<60 :
Label2=Label2&"不及格"
CaseIs<70 :
Label2=Label2&"及格"
CaseIs<80 :
Label2=Label2&"中等"
CaseIs<90 :
Label2=Label2&"良好"
CaseIs<=100:
Label2=Label2&"优秀"
CaseElse :
Label2=Label2&"非法成绩,请重新输入!
"
EndSelect
EndSub
第六章 循环结构程序设计
Do[{while|until}<条件>] 前测型
[<语句序列1>]
[exitdo]‘跳出该语句所在的最内层循环
[语句序列2]
Loop
Do 后测型
[<语句序列1>]
[exitdo]‘跳出该语句所在的最内层循环
[语句序列2]
Loop[{while|until}<条件>]
For[<语句序列1>]
[exitfor]‘跳出该语句所在的最内层循环
[语句序列2]
Next[<循环变量>]
例:
PrivateSubCommand1_Click()
Print
Fori=1To8
PrintTab(i);
Forj=1To8
Print"*";Spc
(1);
Nextj
Print
Nexti
EndSub
第七章 数组
数组是一组名称相同、具有相同数据类型的,按顺序排列的变量。
数组中的变量,称为数组元素或下标变量。
数组的下标必须用括号括起来。
X
(2)不能写成x2。
下标可以是常数、变量或表达式,但必须是整数。
数组元素在上、下界内是连续分布的。
缺省情况下,数组的下界为0。
只有一个下标的数组,为一维数组,如:
a(0)。
具有两个下标的数组,为二维数组,如:
a(0,0)。
以此类推,最多可达16维。
静态数组的声明:
Dim数组名(<维数定义>) [as<类型>]
<维数定义>指定数组的维数以及各维的范围;
例:
dima(10)asinteger, c(1to6)asinteger
Dimb(2,3)asdouble,d(1to3,1to4)asstring
Dimb(2,3)asdouble定义了一个3╳4个元素的双精度类型的二维数组。
各维的范围不得超过long长整型的范围。
数组声明语句不仅能定义数组,为数组分配存储空间,而且还能对数组进行初始化,数值型元素的初值为0,字符型元素的初值为空,变体型元素初值为empty,对象型元素初值为nothing。
引用数组元素,应在数组名后的括号中指明下标a
(2)。
动态数组:
当声明一个大的静态数组时,该数据即长期占据主存,浪费系统资源。
在声明动态数组时,并未在内存中创建该数组,不占据空间。
使用动态数组时,应先用redim语句为数组分配元素个数。
在使用动态数组的过程中,可运用redim语句重新指定数组的元素个数。
声明动态数组:
Public|private|dim|static数组名( )as类型
分配元素个数 Redim[preserve]数组名(<维数定义>)[as<类型>]
Redim是可执行语句,只能出现在过程中
使用关键字Preserve,可保留数组原来的内容。
控件数组为一组类型相同、功能相似的同名控件。
,不同的控件数组元素具有不同的下标(index)。
对控件数组元素执行同样的操作,将进入同一事件过程,可利用返回的index值来识别是由哪个控件引发的事件。
使用控件数组,可实现在运行时动态产生新控件。
例:
随机产生10个两位的整数,找出最大值、最小值和平均值。
PrivateSubCommand1_Click()
Dima(1To10)AsInteger
DimmaxAsInteger,minAsInteger,averageAsSingle
Label1.Caption="“
Randomize
average=0
Fori=1To10
a(i)=Int(Rnd*100)
average=average+a(i)
Label1.Caption=Label1.Caption&a(i)&""
Nexti
max=a
(1)
min=a
(1)
average=average/10
Fori=1To10
Ifa(i)>maxThen
max=a(i)
EndIf
Ifa(i) min=a(i)
EndIf
Nexti
Label2.Caption="最大值:
"&max
Label3.Caption="最小值:
"&min
Label4.Caption="平均值:
"&average
EndSub
第八章 过程
VB中的两类过程:
内部过程:
包括系统内部的函数过程(abs,sqr)和事件过程(command1_click).
用户自定义过程:
用户根据自己的需要定义的,可供应用程序多次调用的过程.
根据过程是否有返回值,VB中过程又分为:
子程序过程(SUB),函数过程(FUNCTION)
VB的子程序过程包括:
事件过程:
由VB自行声明,对用户发出的事件进行响应的程序段。
事件过程是依附于窗体和控件的。
通用过程:
将一段需要反复使用的程序代码,编写为一个公共的过程,以供应用程序的各个过程调用。
通用过程不与特定的事件过程联系,只能由别的过程调用,可存在于窗体模块、标准模块和类模块中。
通用过程的声明
[Private|Public|Static]Sub <过程名>([形参表]
EndSub
Static声明的为静态过程,该过程中的局部变量只分配一次存储空间,且这些变量的值在整个程序运行期间都存在。
可使用EXITSUB从过程中退出。
过程体内,不可再定义过程,但可以调用其他过程
参数的传递:
按值传递(Byval),按址传递(Byref)
形参:
指明从调用过程传递给本过程的变量个数和类型。
各形参之间用逗号分隔,形参可以是变量或数组,但不能是定长字符串变量。
实参:
是在调用Sub,function时传递给Sub,function过程的参数。
实参可以是常量、表达式、变量或数组名。
按址传递(Byref):
传递的是变量的内存地址,在子过程中可以改变变量的值。
在按址传递时,实参必须是变量。
按值传递(Byval):
传递的是变量的数值,在子过程中对该数值的操作,不会改变实参变量的值。
按址传递的效率更高,但按值传递时,形参是个真正的局部变量。
形参的声明:
[[optional][byval|byref]|paramarray]<变量名>[()][as<类型>][=<缺省值>]
Optional:
表示后续的参数是可选的 Byval:
按值传递 Byref:
按址传递,VB缺省为Byref
Paramarray:
指明最后这个参数为变体型Optional数组。
不能与Optional、Byval和Byref同时使用,只能用于最后一个参数。
例:
Subtryout(xasinteger,yasinteger)‘按址传递
x=x+100
y=y*6
print“x=“;x,”y=“,y
‘输出结果为:
x=110 y=120
Endsub
Privatesubcommand1_click()
A=10:
b=20
Print“a=“;a,”b=“;b
‘输出结果为:
a=10 b=20
Tryouta,b ‘按址传递,a和b的值被x和y修改。
Print“a=“;a,”b=“;b
‘输出结果为:
a=110 b=120
Endsub
例:
产生一个随机数序列的数组,并调用sorta过程对其进行升序排序。
PrivateSubcommand1_Click()
Dima(10)asinteger
Randomize
Fori=1to10
a(I)=int(rnd*100)
text1=text1&a(I)&“ “
NextI
Sorta(a)
Fori=1to10
text2=text2&a(I)&“ “
NextI
EndSub
Subsorta(a()asinteger)
ForI=1toubound(a)-1
forj=I+1toubound(a)
Ifa(j)>a(I)then
T=a(I)
A(I)=a(j)
A(j)=t
Endif
Nextj
Nexti
EndSub
第九章 变量与过程的作用域
变量与过程可访问的范围称为作用域,按照作用域分类,变量可分为局部变量(过程级变量)、模块级变量和全局变量(工程级变量或公共变量)。
模块是用来存储代码的单元,VisualBasic中有窗体模块(扩展名为*.frm)、标准模块(扩展名为 *.bas)、类模块(扩展名为*.cls)等三种类型的模块。
窗体模块的文件名为*.frm,包含窗体、控件的设置、事件过程、通用过程等。
标准模块包括公共的或模块级变量、常数、类型、外部过程和全局过程的全局声明或模块级声明。
第十章文件管理
10.1 公共对话框
1.添加公共对话框控件”microsoftcommondialogcontrol6.0”.控件文件为”comdlg32.ocx”.
假设对话框控件名为CommonDialog1
2.使用打开对话框 CommonDialog1.Showopen
3.使用另存为对话框 CommonDialog1.ShowSave
4.使用颜色对话框 CommonDialog1.Showcolor
颜色(color):
设置初始颜色,返回用户选择的颜色.
5.使用字体对话框 CommonDialog1.Showfont
6.使用打印对话框 CommonDialog1.Showprinter
7.使用帮助对话框 CommonDialog1.Showhelp
10.2 数据文件
数据文件按照数据存放的方式可分为:
顺序文件:
用于连续存放的文本数据
随机文件:
用于有固定长度记录结构的文本数据或二进制数据
二进制文件:
用于二进制数据.
10.2.1 访问顺序文件
顺序文件结构简单,只提供第一条记录的存储位置,每次查找某个数据,都必须从第一个记录开始逐一查找.适用于有规律的不经常修改的数据,顺序文件通常以ANSI字符存储.
1.顺序文件的打开和关闭
Open<文件名>for{input|output|append}as<文件号>[len=buffersize]
Close文件号1,文件号2,…….
2.顺序文件的读取
读取文件时,文件应以input方式打开.
Line input#<文件号>,<变量名> ‘读到回车换行符或文件尾
Input(length,<文件号>) ‘读取指定长度的字符
Input#<文件号>,<变量名>[,<变量名>……] ‘读取文件中的数据列
3.顺序文件的写入操作
写入文件时,文件应以output或append方式打开.
Print#<文件号>,