Visual Basic概述
略
基本控件
略
VB语言基础
一、简答题
1.基本数据类型是系统定义的标准数据类型,可以直接使用。分为6类:数值型,日期型,逻辑型,字符型和变体型。
(1)数值型数据
数值型数据分为整型和实型两类。整型数据分为整数和长整数,实型数据分为单精度和双精度数据。有时把货币型和字节型数据也归为数值型数据。
n 整数(Interger)。
n 长整数(Long)。
n 单精度数(Single)。
n 双精度数(Double)。
n 货币型数据(Currency)。
n 字节型数据(Byte)。
(2)日期型数据(Date)
(3)逻辑型数据(Boolean)
(4)字符型数据
(5)对象型数据(Object)
(6)变体型数据(Variant)
其关键字和类型符如下表所示:
数据类型 |
关键字 |
类型符 | |
数 值 型 |
整型 |
Integer |
% |
长整型 |
Long |
& | |
单精度型 |
Single |
! | |
双精度型 |
Double |
# | |
货币型 |
Currency |
@ | |
字节型 |
Byte |
无 | |
日期型 |
Date(time) |
无 | |
逻辑型 |
Boolean |
无 | |
字符型 |
String |
$ | |
对象型 |
Object |
无 | |
变体型 |
Variant |
无 |
2.存储1.2345的数据,且所需的内存最少,应使用单精度数的数据类型
3.在VB6.0中对于没有赋值的变量,系统默认值是0
二、选择题
1.不合法的变量名有:(3)、(4)、(5)、(8)、(11)、(12)、(14)
2.A 3.B 4.C 5.D 6.A 7.A 8.C 9.A 10.B 11.D 12.D
13.B 14.D 15.B 16.B 17.B 18.B 19.C
三、填空题
1. 0.8
2. -3
3.False
4.True
5 JiangXi---NanChang
数组
1.指出下面数组说明语句哪些是正确的,哪些是错误的。正确的指出数组元素的个数和类型,错误的指出原因。
(1)Dim a(10) As Integer
(2)Dim b(-10) As Double
(3)Dim c(8,3) As Byte
(4)Dim d(-10 To -1) As Boolean
(5)Dim e(-99 To -5, -3 To 0)
(6)Dim f(-10 To -20, 10 To 20) As Long
(7)Dim g(10, -10) As Single
(8)Dim h(100 To 100, 100) As String
(9)Dim x(5) As Integer
ReDim x(10) As Integer
(10)Dim y()
ReDim y
答:(1)、(3)、(4)、(5)、(8)正确。
(2)错误。数组上界小于下界。因为未指明上界、下界,VB默认下界为0。
(6)、(7)错误。二维数组f的第一维的上界小于下界。
(9)错误。不能对动态数组以外的数组类型作重定义。
(10)错误。重定义时未指定数组大小。
2.试述用Dim,ReDim,Static三个关键字说明数组的区别。
答:Dim用于声明指定了大小或未指定大小(动态)数组,它所声明的数组会在定义该数组变量的程序结束后释放其所分配的内存空间。ReDim用于对动态数组重义。Static则用于声明静态数组,它所声明的数组在程序编译阶段会分配内存空间,且在定义该变量的程序结束后,该数组所拥有的内存空间不释放,变量的值仍在内存中,再次运行时,将上次运行的结果作为该变量的初始值。只有当整个程序退出时,数组所占内存才会释放。
3.计算并输出
答:参考程序:
Option Base 1
Private Sub Form_Click()
Dim x(), y()
Dim S As Integer, i As Integer
x = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
y = Array(11, 12, 13, 14, 15, 16, 17, 18, 19, 20)
S = 0
For i = 1 To 10
S = x(i) * y(i)
Next i
Print "S="; S
End Sub
4.读入n个整数,将它们按从小到大的顺序排列。假设读入的是非数字表示读入结束。
答:参考程序:
Option Base 1
Private Sub Form_Click()
Dim x() As Integer
Dim n As Integer, vT, i As Integer, j As Integer
n = 0
Do While True
vT = InputBox("请输入第" & n & "个数:")
If IsNumeric(vT) Then
n = n + 1
ReDim Preserve x(n)
vT = Val(vT)
Print vT;
x(n) = vT
For i = 1 To n
If x(i) > vT Then
For j = n To i + 1 Step -1
x(j) = x(j - 1)
Next j
x(i) = vT
Exit For
End If
Next i
Else
Exit Do
End If
Loop
For i = 1 To n
Print x(i);
Next i
End Sub
5.用随机函数生成有n(n≥10)个数值元素的一维数组,求出这个数组元素中的最大值、最小值和它们的平均值。
答:参考程序:
Option Base 1
Private Sub Form_Click()
Dim x() As Single, S As Single
Dim n As Integer, i As Integer
Dim MaxN As Single, MinN As Single
n = Val(InputBox("请输入n值:"))
ReDim x(n)
For i = 1 To n
Randomize
x(i) = Rnd()
Next i
MaxN = x(1): MinN = x(1): S = x(1)
For i = 2 To n
If x(i) > MaxN Then MaxN = x(i)
If x(i) < MinN Then MinN = x(i)
S = S + x(i)
Next i
Print "最大值:"; MaxN; "最小值:"; MinN; "平均值:"; S / n
End Sub
6.有3组数,每组10个,且均已按从大到小顺序排好。编一个程序将这3组数合并为一组数,并仍按从大到小排列。
答:算法思想是先将两数组合并成一个新的数组,然后将该数组与第三个数组合并。两个数组的合并请参考[例5-16]。
7.列表框(ListBox)的Sorted属性只能在设计阶段由属性窗口设定。试设计程序,由3个命令按钮组成控件数组,选择列表框项目的排列方式:按输入顺序、按升序、按降序排列。
答:程序代码如下:
Dim x(9) As String ’x用于保存原始数据
Private Sub Form_Load() ’生成列表框中的数据
For i = 0 To 9
Randomize
x(i) = Rnd()
lstData.AddItem (x(i))
Next i
End Sub
Private Sub cmdAsc_Click() ’升序排列
For i = 0 To 8
For j = i + 1 To 9
If lstData.List(j) < lstData.List(i) Then
t = lstData.List(i)
lstData.List(i) = lstData.List(j)
lstData.List(j) = t
End If
Next j, i
End Sub
Private Sub cmdDesc_Click() ’降序排序
For i = 0 To 8
For j = i + 1 To 9
If lstData.List(j) > lstData.List(i) Then
t = lstData.List(i)
lstData.List(i) = lstData.List(j)
lstData.List(j) = t
End If
Next j, i
End Sub
Private Sub cmdOrg_Click() ’输入顺序
lstData.Clear
For i = 0 To 9
lstData.AddItem (x(i))
Next i
End Sub
8.设计程序实现:
(1)用随机整数形成一个6×6的整数方阵A。
(2)求出其上三角元素和下三角元素(不包括对角线)的和。
(3)求主对角线元素之和,求次对角线元素之和。
(4)求靠边元素的和。
(5)取出不靠边元素生成一个新的方阵B。
答:参考程序:
Option Base 1
Private Sub Form_Click()
Dim A(6, 6) As Integer, B(4, 4) As Integer, S As Integer
'生成矩阵A
For i = 1 To 6
For j = 1 To 6
Randomize
A(i, j) = Int(Rnd() * 100)
Print A(i, j);
Next j
Next i
'求上三角和
S = 0
For i = 1 To 5
For j = i + 1 To 6
S = S + A(i, j)
Next j, i
Print "上三角和:"; S
'求下三角和
S = 0
For i = 2 To 6
For j = 1 To i - 1
S = S + A(i, j)
Next j, i
Print "下三角和:"; S
'求主对角线元素之和
S = 0
For i = 1 To 6
S = S + A(i, i)
Next i
Print "主对角线元素之和:"; S
'求次对角线元素之和
S = 0: j = 6
For i = 1 To 6
S = S + A(i, j)
j = j - 1
Next i
Print "次对角线元素之和:"; S
'求靠边元素和
S = 0
For j = 1 To 6
S = S + A(1, j)
S = S + A(6, j)
Next j
For i = 2 To 5
S = S + A(i, 1)
S = S + A(i, 6)
Next i
Print "靠边元素和:"; S
'生成一个新的方阵B
For i = 2 To 5
For j = 2 To 5
B(i - 1, j - 1) = A(i, j)
Print B(i - 1, j - 1);
Next j
Next i
End Sub
9.大部分元素是0的矩阵称为稀疏矩阵。假设稀疏矩阵A有k个非0元素,则可用k×3的矩阵B简记之,其中第一列是行号,第二列是列号,第三列是该行、列号的非0元素值。例如:
A=
试编程序读入一个M×N稀疏矩阵,转换成简记形式并输出。
答:参考程序:
Option Base 1
Const M = 4, N = 4
Private Sub Form_Click()
Dim A(M, N) As Integer, B() As Integer, k As Integer
k = 0
For i = 1 To M
For j = 1 To N
A(i, j) = Val(InputBox("请输入元素A(" & i & "," & j & "):"))
If A(i, j) <> 0 Then k = k + 1
Next j, i
ReDim B(k, 3)
k = 1
For i = 1 To M
For j = 1 To N
If A(i, j) <> 0 Then
B(k, 1) = i: B(k, 2) = j: B(k, 3) = A(i, j)
k = k + 1
End If
Next j, i
End Sub
10.用户输入一个M×N 的矩阵A,编程使其旋转-90°,形成另一个矩阵B并输出矩阵B。
答:参考程序:
Option Base 1
Const M = 4, N = 3
Private Sub Form_Click()
Dim A(M, N) As Integer, B(N, M) As Integer
For i = 1 To M
For j = 1 To N
A(i, j) = Val(InputBox("请输入元素A(" & i & "," & j & "):"))
Next j, i
For i = 1 To M
For j = 1 To N
B(j, i) = A(i, j)
Next j, i
For i = 1 To N
For j = 1 To M
Print B(i, j);
Next j
Next i
End Sub
过程
略
常用控件
一、选择题
1.C 2.B 3. D 4. A 5. D 6.C 7.B 8.C 9.C 10.D
11.B 12.C 13.B 14.B 15.D 16.C 17.D 18.C 19.C 20.C
二、填空题
1.AutoSize
2.ScrollBars、MultiLine、True
3.Text1. SetFocus
4.0
5.Picture1. Picture=LoadPicture(“Pic2.gif”)
6.True
7.Picture
8.interval
9.enabled
10.下拉组合框、简单组合框、下拉式列表框、Style、 0、1、2
三、编程题(略)
界面设计
一、选择题
1.A 2.A 3.B 4.B 5.A 6.A 7.B 8.A 9.A 10.D 11.D
二、填空题
1.ALT,&,下划线
2.菜单项自动增删
3.索引
4.SHOWFONT,ACTION
5.-
6.SHOWHELP
7.FLAGS
8.图像列表
9.LOAD
10.MDI子窗体
11.Hide myform
12.Show form1
13.true
14.-
15.工具
16.Filename
17.工程,工程属性
18.Queryunload
三、编程题
1.(1)建立如下图所示的界面。
窗体上各对象的属性设置见下表:
控件对象或窗体 |
name |
Caption |
窗体 |
form1 |
浏览图片 |
图片框控件 |
Picture1 |
|
通用对话框控件 |
Commondialog1 |
(2)建立菜单
菜单及各菜单项的属性设置见下表:
标题 |
名称 |
可见 |
菜单 |
menu |
不选 |
……打开 |
open |
选中 |
……关闭 |
close |
选中 |
(3)编写代码
Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 2 Then
PopupMenu menu
End If
End Sub
Private Sub Picture1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 2 Then
PopupMenu menu
End If
End Sub
以上代码实现单击右击,打开快捷菜单menu。
Private Sub close_Click()
End
End Sub
Private Sub open_Click()
CommonDialog1.ShowOpen
Picture1.Picture = LoadPicture(CommonDialog1.FileName)
End Sub
open_Click事件过程中的代码实现将打开对话框中所选择的图片在图片框里显示。
1. 略
数据库应用
1. 数据管理技术经历哪三个阶段?
答:数据管理技术经历以下三个阶段:
人工管理阶段。50年代中期以前的计算机主要用于科学计算,数据处理都是通过手工方式进行的。当时外存没有磁盘等直接存取的存储设备;软件没有操作系统,数据的处理是批处理。
文件系统阶段。50年代后期到60年代中期,计算机不仅用于科学计算,还大量用于管理工程中,这时已有操作系统,在操作系统中有专门的数据管理软件,一般称为文件系统。文件系统是数据库系统发展的初级阶段,但不是真正的数据库系统,
数据库系统阶段。由于文件系统的缺陷,60年代末期,人们对文件系统进行了扩充,研制了一种结构化的数据组织和处理方式,才出现了真正的数据库系统。数据库为统一管理与共享数据提供了有力支撑,这个时期数据库系统蓬勃发展形成了有名的“数据库时代”。数据库系统建立了数据与数据之间的有机联系,实现了统一、集中、独立地管理数据,使数据的存取独立于使用数据的程序,实现了数据的共享。
2. 关系模型数据库有什么特点?
答:关系模型是建立在严格的数学概念的基础上的。在关系模型中,实体以及实体间的联系都是用关系表示的。在用户看来,一个关系模型的逻辑结构是一张二维表,它由行和列组成。无论实体还是实体之间的联系都用关系来表示,对数据的检索结果也是关系(即表),因此概念单一,其数据结构简单、清晰。关系模型的存取路径对用户透明,从而具有更高的数据独立性,更好的安全保密性,也简化了程序员的工作和数据库开发建立的工作。正因为存取路径对用户透明,所以其查询效率往往不如非关系数据模型。
3. 什么是SQL?
答:结构化查询语言SQL(Structured Query Language)是用于对存放在计算机中数据库的数据进行组织、管理和检索的工具,是操作数据库的工业标准语言。按照ANSI(美国国家标准协会)的规定,SQL被作为关系型数据库管理系统的标准语言。
4. 什么记录集对象?
答:“记录集(RecordSet)”对象描述来自数据表或命令执行结果的记录集合,其组成为记录(行)。常用于指定可以检查的行、移动行、指定移动行的顺序、添加、更改或删除行、通过更改行而更新数据源等。
5. 数据环境设计器的主要作用是什么?
答:数据环境(Data Environment)是VB6.0提出的一个新概念,它可以将许多单独使用的对象和控件组合成一个单独的环境,建成后的这个数据环境可用来访问任何数据库、查询或加入其中的存储过程。在VB中使用数据环境后,如果程序中有多处引用了某个数据库的地方需要更改数据引用,只需对数据环境作一处改动,应用程序中的其他有关地方就会作出相应变动,为开发应用程序带来极大的方便。从某种角度看,Data Environment的作用相当于一个通用的Data控件,它可以在任何情况下使用,可以连接到所有的数据库、表以及只含一个查询或表的对象上,而不仅仅局限于连接到某个查询或表上。
6. 数据环境设计器用什么对象与数据库连接,用什么对象与数据表连接。
答:分别用连接(Connection)对象和命令(Command)对象。
7. 写出用环境设计器Data Environment的命令对象rsCommand_XA01_Table获取学生档案表XA01表中所有男生记录的语句。
答:SELECT * FORM XA01 WHERE 性别='男'
8. 用DataReport对象设计的报表由哪5部分组成?
答:报表通常由以下5部分组成,但在实际使用中可以根据需要选择所需部分:
报表标头——每份报表只有一个,可以用标签建立报表名。
页标头——每页有一个,即每页的表头,如字段名。
细节——需要输出的具体数据,一行一条记录。
页脚注——每页有一个,如页码。
报表脚注——每份报表只有一个,可以用标签建立对本报表的注释、说明。
9. 如何在数据报表中添加日期、时间、页号等项目?
答:在页标头(Section2)与页脚注(Section3)区域中,单击鼠标右键,在弹出式菜单中选择插入控件命令,然后再选择当前日期、当前时间、当前页号、总页数等命令。
10.用什么数据报表控件可统计数值型字段的和、平均值、最大值或最小值?
答:RptFuction函数控件可用于统计某数值型字段的和、平均值、最大值或最小值等。
文件
一、略
二、选择题
1.D 2.C 3.C 4.B 5.C
6.B 7.B 8.D 9.C 10.B
三、略
图形操作
1.B 2.C 3.B 4.A 5.A 6.D 7.A
7程序填空:
(1)Form1_Paint (2) Line-(2,0) (3) Line-(0,-2)
(4) Line-(-2,0) (5) Refresh
多媒体程序设计
一、选择题
1.B 2.C 3.B 4.A 5.A 6.D 7.A 8.A
二、填空题
1.MMControl控件
2.Command属性的Open命令
三、程序填空:
(1)Form1_Paint (2) Line-(2,0) (3) Line-(0,-2)
(4) Line-(-2,0) (5) Refresh
四、简答题
1.用 DeviceType属性指定多媒体设备的类型。
2.用Command属性来发送MCI命令。共有14个控制命令,如Open(打开一个多媒体文件)、Play(播放多媒体文件)、Stop(停止)等。
3.要显示多媒体文件的播放速度,需要在MMControl_StatusUpdate过程中编写代码,以便实现用Slider控件显示文件的播放进程。
web编程技术
1. WWW:World Wide Web即WWW,又称万维网,是Internet上的信息检索工具。使用专门的网页开发工具,如VBScript、JavaScript等语言或软件可以设计Web网页。
服务器:服务器是整个网络系统的核心,它为网络用户提供服务并管理整个网络,在其上运行的操作系统是网络操作系统。随着局域网络功能的不断增强,根据服务器在网络中所承担的任务和所提供的功能不同把服务器分为:文件服务器、打印服务器和通信服务器。
客户机:客户机又称工作站。客户机是指当一台计算机连接到局域网上时,这台计算机就成为局域网的一个客户机。客户机与服务器不同,服务器是为网络上许多网络用户提供服务以共享它的资源,而客户机仅对操作该客户机的用户提供服务。客户机是用户和网络的接口设备,用户通过它可以与网络交换信息,共享网络资源。客户机通过网卡、通信介质以及通信设备连接到网络服务器。
超链接:本质上属于一个网页的一部分,它是一种允许我们同其他网页或站点之间进行连接的元素。各个网页链接在一起后,才能真正构成一个网站。所谓的超链接是指从一个网页指向一个目标的连接关系,这个目标可以是另一个网页,也可以是相同网页上的不同位置,还可以是一个图片,一个电子邮件地址,一个文件,甚至是一个应用程序。而在一个网页中用来超链接的对象,可以是一段文本或者是一个图片。当浏览者单击已经链接的文字或图片后,链接目标将显示在浏览器上,并且根据目标的类型来打开或运行。
2. 同其他脚本语言一样,在HTML文件中嵌入VBScript的语法是:
<script language= “vbscript”>
<!—
‘这里是程序
-->
</script>
VBScript程序被嵌在<script></script>标签之间,用language属性指定脚本语言是VBScript,代码部分用HTML的注释标签<!—和-->保护起来,是为了防止在某些不支持脚本的浏览器中脚本代码污染HTML文件。虽然<script>…</script>可以出现在HTML文件的<head>…</head>之间或<body>…</body>之间,但为了便于处理,一般把主要的脚本放在<head>…</head>之间,而且把主要工作放在Sub和Function等过程中,供需要时调用。
3. 将外部HTML文档导入到DHTML页面设计器:在“工程资源管理器”窗口中双击“DHTMLPage1”选项,打开DHTML页面设计器。在DHTML页面设计器工具栏上单击“DHTML页面设计器属性”按钮,打开“DHTML页面设计器属性”对话框,选择“保存HTML于外部文件”单选按钮,单击“打开”按钮,从“打开”对话框中选择“demomain.htm”文件,单击“确定”按钮。这样就把HTML页面文件引入了工程。
4. SGML(Standard Generalized Markup Language通用标识语言标准,一种比HTML更早的标志语言标准),人们发现,使用SGML是可以的,SGML的覆盖面很广,凡是有一定格式的文件都属于SGML,比如报告,乐谱等等,HTML是SGML在网络上最常见的文件格式。但是SGML太庞大,编程复杂,于是最终选择了"减肥"的SGML---XML作为下一代web运用的数据传输和交互的工具。
由此可知,XML来源于SGML(Standard Generalized Markup Language通用标识语言标准,一种比HTML更早的标志语言标准), XML就是SGML的简化版,只不过省略了其中复杂和不常用的部分。
[1] 附各章后练习的参考答案