
一、填空题:(第一章 Visual Basic程序设计概述)
1、Visual Basic是一种面向_对象_的可视化程序设计语言,采取了__事件驱动__的编程机制。
2、在VB中工程文件的扩展名是_ Vbp ,窗体文件的扩展名是frm _,标准模块文件的扩展名是_ bas _。
3、执行“工程”菜单下的部件命令,可选择并添加ActiveX控件。
4、Visual Basic 6.0用于开发_ WINDOWS环境下的应用程序。
第二章 简单的VB程序设计1、设置是否可以用Tab键来选取命令按钮,应该用_ Tabstop ___属性。
2、一个控件在窗体的位置由__ Left ___和_ top ___属性决定,其大小由__ height _和_ width _属性决定。
3、利用对象的属性setfocus可获得焦点,对于一个对象,只有其visible属性和_ enabled __属性为true,才能接受焦点。
4、设置控件背景颜色的属性名称是_ backcolor __。
5、所有控件都具有的共同属性是__ name __属性。
6、一般情况下,控件有两个属性项的缺省值是相同的,这两个属性项是_ name和caption。
7、VB中的每个对象(控件)都有一组特征,这组特征称为_属性_,我们通过修改它可以控制对象的外观和操作。
8、通常情况下,VB中一个工程主要包括如下四个文件:窗体文件、工程文件、类模块文件和_标准模块文件_文件,后者的扩展名为.Bas,通常由Basic语言编写,是一个可共用的子程序。
9、VB有三种工作模式,分别是设计(Design)模式、_运行模式__和中断(Break)模式。
第三章1、一般可以使用____ Const ______关键字声明常量。
2、_ Variant _类型也称变体类型,是一种通用的、可变的数据类型,它可表示或存储任何一种数据类型。
3、变量的声明分为两种方法:_隐式声明__和__显示声明__。、
4、在VB中,用_ option base _语句设定数组的下界,用ubound _和_lbound语句分别返回数组的上、下界。
5、在代码模块中加入Option Explicit的目的是_强制变量声明。
6、function aa (a1 as date,optional a2 as boolean) as single,写出optional命令的作用表示a2是一个可选参数__。
7、在VB中,我们用一个简单的_ End__语句就能实现退出程序。
8、生成消息框的命令是_Msgbox_,生成输入框的命令是Inputbox __。
9、通用对话框(commondialog)属activex控件,它可以显示多个标准对话框,包括打开/另存为、字体、打印等对话框,若要显示所有文件,则应设置其属性filter=_*.* __,若要使它显示为打印对话框,则应使用什么方法_、showprint __。
10、从字符串中任意位置截取字符的函数是_ Mid()__。
11、语句For j = 3 To 20 Step 3 使循环体执行了___6___次。
12、对于正在使用的动态数组Arraya(),要增加一个单元,但不能破坏数组内的数据,则应使用语句__ redim preserve arraya(ubound(arraya())+1)__。
13、在Visual Basic中声明静态变量的关键字是___ static___。
14、表达式10 Mod 6 \\ 4的值为___0___。
15、表达式chr(Asc("a") + 5)的值为___f______。
16、VB中使用注释有2种方法,即__ rem_和__’______。
17、VB中的数据以四种形式存储:常量、_变量、数组和记录。
18、为了在VB中存储一个4行5列的二维矩阵,需要定义一个整型的数组,请把数组定义语句补充完整:Dim Juzhen(_1 to 4,1 to 5_) as Integer。
19、控件数组由一组相同类型的控件组成,这些控件共用一个相同的控件名,但是每个控件都有一个唯一的下标来区分,我们使用属性_ Index __来设置下标。
20、在过程调用中,实现调用过程的实参和被调用过程的形参之间的数据传递有两种方式:按值传递和_按地址__。
21、为了保证程序中必须对变量的强制性定义,需要在代码模块的声明部分加入_ Option Explicit __语句。
22、分析For……Next循环结构的实例:For i = 5 To 30 Step 2 中,循环体一共执行了_13_____次。
23、表达式Mid("UniversityOfPetroleum", 8, 4) 的值为_ ityo__。
24、常量分为普通常量和_符号_常量。
25、要将大写字母转换为小写字母,可使用_ LCase__函数。
26、不管焦点在哪个控件上,按___ ESC__键相当于按了取消按钮。
27、执行“工程”菜单下的_部件__命令,可选择并添加ActiveX控件。
28、断点_是程序中VB停止执行的地方。
29、逻辑常量为True或__ False ___。
30、使用了_ Option Explicit __的声明后,当程序中使用未经声明的变量时,程序运行时会报错。
31、要将小写字母转换为大写字母,可使用UCase__函数。
32、自字符串N1位开始向右取N2个字符,要使用_ Mid__函数。
33、日期常量表示时,用符号___#___将日期型数据括起来。
34、局部变量只能在_过程_中声明和使用。
35、模块级变量的声明关键字是Dim或__ private ___。
36、函数Abs(x)的功能是_求x的绝对值____。
37、表达式3/6*5的值是_2.5___。
第四章1、向列表框控件添加新项目的方法是__ AddItem __。
2、在VB中,最主要的两种对象是_窗体___和__控件___。
3、当窗体启动时可通过StartUpPostion _ _属性控制窗体位于所有者的中心位置。
4、若要将窗体Form1隐藏起来,则可通过执行代码__ form1.hide __来实现。
5、要使装入到列表框中的数据项能自动按字母顺序排序,应设置该控件的___ sorted __ ____属性为___ ture ___。
6、窗体上放置了若干个文本框和命令按钮,当窗体装入后,要将焦点自动定位到文本框Text1上,则在设计时需要将__ text1__控件的_ tabindex __属性设置为__0____。
7、在标签控件中通过编程使文字换行用的代码是__ chr(10)__ _。
8、设置计时器控件只能触发___ timer ____事件。
9、设置计时器对象触发事件的时间间隔用__ interval ___属性。
10、滚动条控件主要支持两个事件,它们是__scroll和change__事件。
11、要使鼠标停留在按钮上显示特殊的鼠标形状,应设置的属性值是_ mousepointer _。
12、设某列表框共有10项,按题目要求补齐程序,完成相应的功能。
(1)按下命令按钮Command1时将列表框第的内容显示在窗体上:
Private Sub Command1_Click( )
List.__ selected __(7)=True
Print List1._ text _
End Sub
(2)单击列表框某一项时立即将该项打印在窗体上:
Private Sub List1_Click( )
Print___ list1.text ___
End Sub
(3)按下命令按钮Command1时在窗体上删除第1、3、5、7、9项:
Private Sub Command1_Click( )
For I=1 To 5
List1.__ removeitem 2*i-1__________
Next I
End Sub
(4)在列表框的每一项之后插入一个新的项:
Private Sub Command1_Click( )
For I=1 to 10
X=InputBox(“请输入插入的第” & I & “项内容”)
List1.AddItem__ x,2*i-1__________
Next I
End Sub
13、设在界面上放置了一个滚动条Hscroll1和一个标签控件Label1,要使每次单击滚动条两端箭头时,或单击滚动条滑块与两端箭头之间的空白区域时,标签内容能够反映滚动条的值,补齐以下代码。
Private Sub Hscroll1.___ change ____( )
Label1.Caption = Hscroll1.___ value __
End Sub
要使拖动滚动条滑块时标签内容能够反映滚动条的值,补齐以下代码。
Private Sub Hscroll1.__ scrol ___( )
Label1.Caption = Hscroll1.__ value ____
End Sub
14、列表框(ListBox)用于列出可供选择的项目的列表,用户可以选择一个或多个项目。它具有几个非常重要的数组属性,其中__ List__属性存放了列表框中所有项目的值。
15、菜单项一般由标题、访问键、快捷键和复选标志等构成,通过对相应的属性进行设置可以改变这些项目的状态,其中与复选标志相对应的属性是__ Checked _。
16、keydown与keypress事件各有其参数,若需获得用户按下 "a" 还是 "A" 需用__ keypress ___事件。
17、控件组合框组合了文本框和列表框的功能,是VB中一种功能非常强大的选择类控件。
18、若需要将窗体Form2以模态窗口的形式显示出来,可通过执行代码_ Form2.Show 1__来实现。
19、菜单中的分隔条是一种菜单控件,不响应__ Click(或鼠标单击)_事件,不能被选中。
第五章1、文件按存取方式及其组成结构可分为_顺序__文件、随机__文件和、二进制____文件。
2、为了使文件列表框List1和目录列表框Dir1之间能产生同步效果,必须在_ dir1的chang __事件过程中加入语句_ list1.path=dir1.path __。
3、文件系统控件的作用是向用户显示系统中的文件,方便用户选择,它是一组控件的组合,包括:驱动器列表框、__目录列表框 __和文件列表框。
第六章 图形操作1、使用__ print __方法可在窗体中进行文本的输出,用_ circle __方法可画圆,用_ line ___方法可画直线。
2、用___ loadpicture ___函数可加载图形。
3、为了使一个Picture控件能自动根据装入的图片调整大小,应设置该控件的_ autosize ___属性为True。
第七章 面向对象的编程1、类是具有相同性质的对象的__集合_______。
2、语句DIM TEMP AS Object的作用是____定义了一个对象类型的变量TEMP _。
第三章 VB基本语言
四、读程序题
1、分析以下程序,写出运行结果。
Private Sub Form_Click()
score = Int(Rnd * 10) + 80
Select Case score
Case Is < 60
A$ = "F"
Case 60 To 69
A$ = "D"
Case 70 To 79
A$ = "C"
Case 80 To
A$ = "B"
Case Else
A$ = "A"
End Select
Print A$
End Sub
结果如下:B
2、读下面的程序,分析其功能,写出运行结果。
在窗体上有一个命令按钮,名称为Command1。然后编写如下程序:
Private Sub Command1_Click()
For I = 1 To 4
For J = 0 To I
Print Chr$(65 + I);
Next J
Next I
End Sub
程序运行后,如果单击命令按钮,则在窗体上显示的内容是什么?
结果如下:
BB
CCC
DDDD
EEEEE
3、阅读下面的程序,分析并写出其功能。
Sub insert(a() As Single,ByVal x As Single)
Dim m as integer,n as integer
n=1
Do While n<20 And x>a(n)
n=n+1
Loop
For m=20-1 To n Step –1
a(m+1)=a(m)
Next m
a(n)=x
End Sub
功能如下:
在20个由小到大排列的数据中插入一个数,插入数据后的数据仍按由小到大的顺序排列。
4、分析以下程序,写出运行结果。
Sub subP(b() As Integer)
For i =1 To 4
b(i)=2*i
Next i
End Sub
Private Sub Commandl_Click()
Dim a(1 To 4)As Integer
a (1)=5
a (2)=6
a (3)=7
a (4)=8
subP a()
For i =1 To 4
Print a(i)
Next i
End Sub
运行上面的程序,单击命令按钮,输出结果是什么?
输出结果为:
2
4
6
8
5、分析以下程序,写出运行结果。
Sub sele()
Dim n as Integer
i=21:n=3
Do While i>n
i=i-n
Loop
Print i
End Sub
输出结果为:
3
6、分析以下程序,写出运行结果。
Sub selectPrint()
Dim a as Integer
Dim b as Integer
Dim c as Integer
a=2:b=5:c=2
If(a>=b)and(a>=c) or (b>c) Then
Print a
a=a+2
Else
Print b
EndIf
Print a;b;c
End Sub
输出结果为:
2
452
7、分析以下程序,写出运行结果。
Sub swap()
Dim x as Integer
Dim y as Integer
Dim z as Integer
x=1:y=2:z=0
Print x;y;z
x=x+y
x=x*z
Print x,y,z
End Sub
输出结果为:
120
0 2 0
8、分析以下程序,写出运行结果。
Sub selectPrint()
Dim a as Integer
Dim b as Integer
Dim c as Integer
a=3:b=3:c=2
If(a>=b)and(a>c)Then Print a
Print a,b,c
End Sub
输出结果为:
3
3 3 2
第四章 常用控件与窗体
1、对窗体编写如下代码:
Option Base 1
Private Sub Form_KeyPress(KeyAscii As Integer)
a = Array(237,126,87,48,498)
m1 = a(1)
m2 = 1
If KeyAscii = 13 Then
For i =2 To 5
If a(i)>ml Then
m1 =a(j)
m2 =i
End If
Next i
End If
Print m1
Print m2
End Sub
程序运行后,按回车键,输出结果是什么?
输出结果为: 498
5
2、阅读下面的程序,写出执行结果。
Private Sub Form_load()
Form1.show
d = 0
For a = 1 To 2
For b = 1 To a
For c = b To 5
d = d + 1
Next c
Next b
Next a
Print d
End Sub
结果如下:
14
Private Sub Form_Click()
Dim a(10) As Integer, 五、编程题
1、输入一年号,判断它是否是闰年。界面如下图所示,包括两个标签、一个文本框和一个命令按钮。提示:如果此年号能被400整除或者不能被400除尽,也不能被100除尽,但能被4整除,则它是闰年;否则,不是闰年。
1、参考代码如下:
Private Sub Command1_Click()
Dim year, x As Integer
year = Val(Text1.Text)
If year Mod 400 = 0 Then
Label2.Caption = "是闰年"
Else
' 下面是嵌套块If语句
If year Mod 4 = 0 And year Mod 100 <> 0 Then
Label2.Caption = "是闰年"
Else
Label2.Caption = "不是闰年"
End If
End If
End Sub
2、输入两个正整数m、n,求m和n的最大公约数。要求建立如下图所示的窗体,其中主要的控件包括:两个标签(Lable1、Lable2)、两个文本框(Text1、Text2)和一个按钮(Command1)。
2、程序参考代码如下:
Private Sub Command1_Click()
Dim m, n, r As Integer
m = Val ( Text1.Text )
n = Val ( Text2.Text )
If m < 0 Or n < 0 Then ‘ 若判断为非法数据,Then子句输出相应信息
Label2.Caption = "输入数据有错!"
Else ‘ 若判断为合法数据,Else子句用辗转相除法求余数
r = m Mod n
Do While r <> 0
m = n
n = r
r = m Mod n
Loop
‘ 循环结束后n中存放的就是最大公约数,输出n值
Label2.Caption = "最大公约数为:" & n
End If
End Sub
3、输入某学生成绩(百分制),若是100≥成绩≥90输出优秀;若是90>成绩≥80输出良好;若是80>成绩≥70输出中等;若是70>成绩≥60输出及格;若是60>成绩≥0,输出不及格;若是其他数则输出error信息。
3、参考代码如下:
Private Sub Command1_Click()
Dim x As Single
x = Val(Text1.Text)
If x > 100 Or x < 0 Then
Text2.Text = "error"
ElseIf x < 60 Then
Text2.Text = "不及格"
ElseIf x < 70 Then
Text2.Text = "及格"
ElseIf x < 80 Then
Text2.Text = "中等"
ElseIf x < 90 Then
Text2.Text = "良好"
Else
Text2.Text = "优秀"
End If
End Sub
4、在窗体中显示从9号字型到16号字型。
4、参考代码如下:
Private Sub Form_Load()
Dim i As Integer
Show '使输出可见
Form1.Font = "新宋体"
For i = 9 To 16 Step 1
Form1.FontSize = i
Print i; "号字型"
Next i
End Sub
5、在有序序列中插入一个数,使插入后的数列仍然有序(设按由小到大排列)。
5、参考代码如下:
Private Sub Command1_Click()
Dim a(1 To 11) As Single '定义静态数组a含11个元素
Dim i, j As Integer
Dim num As Single
' 给数组元素赋初值,即原始队列
a(1) = 3: a(2) = 5: a(3) = 7: a(4) = 8: a(5) = 9
a(6) = 13: a(7) = 16: a(8) = 19: a(9) = 33
a(10) = 38
' 输出原始队列
For i = 1 To 10
Label2.Caption = Label2.Caption & a(i) & " , "
Next i
num = Val(Text1.Text)
' 把输入的数插入队列中
For i = 10 To 1 Step -1
If num < a(i) Then
a(i+1) = a( i ) ' 元素后移一个位置
else
a(i+1) = num
Exit For ' 退出循环
End If
Next i
' 输出新队列
For i = 1 To 11
Label3.Caption = Label3.Caption & a(i) & " , "
Next i
End Sub
6、编程实现二维数组转置。
6、参考代码如下:
Option Base 1
Private Sub Form_Load()
Const N = 4 ' 常量N决定二维数组大小
Dim a(N, N) As Integer
Dim i, j, Temp As Integer
Show
' 数组初始化
For i = 1 To N ' For循环 i从1变化到N
For j = 1 To N
a(i, j) = i * 10 + j
Next j
Next i
' 输出原始数组
Print "转置前的数组:"
For i = 1 To N ' For循环 i从1变化到N
For j = 1 To N
Print a(i, j);
Next j
Next i
' 数组转置
For i = 1 To N ' For循环 i从1变化到N
For j = 1 To i ' 交换
Temp = a(i, j)
a(i, j) = a(j, i)
a(j, i) = Temp
Next j
Next i
' 输出转置后的数组
Print "转置后的数组:"
For i = 1 To N ' For循环 i从1变化到N
For j = 1 To N
Print a(i, j);
Next j
Next i
End Sub
7、随机输入10个100以内的整型数,计算其和及平均值。
7、参考代码如下:
i As Integer
Dim sum As Integer, ave As Integer
sum = 0
For i = 1 To 10
a(i) = Int(Rnd * 101)
sum = sum + a(i)
Next i
ave = sum / 10
Print sum, ave
End Sub
8、找出所有的水仙花数。水仙花数是个三位数,它的各位数字的立方和等于这个三位数本身。例如371=33+73+13,则371是水仙花数。
8、参考代码如下:
Private Sub Form_Load()
Dim i, j, k, Flower As Integer
Show
For i = 1 To 9
For j = 0 To 9
For k = 0 To 9
Flower = i * 100 + j * 10 + k
If Flower = i ^ 3 + j ^ 3 + k ^ 3 Then Print Flower ; "是水仙花数"
Next k
Next j
Next i
End Sub
9、从键盘输入一个大于2的正整数,判断该数是否是素数。
9、程序参考代码如下:
Private Sub Command1_Click()
Dim m, i, y As Integer
m = Val(Text1.Text)
If m <= 2 Then
Label2.Caption = "输入数据有错"
Else
k = Sqr(m) + 1
For i = 2 To k
y = m Mod i
If y = 0 Then Exit For
Next i
If y = 0 Then
Label2.Caption = m & "不是素数"
Else
Label2.Caption = m & "是素数"
End If
End If
End Sub
10、求二维数组中的最小值及其所在行号、列号。
10、程序参考代码如下:
Option Base 1
Private Sub Form_Load()
Const N = 5 ' 常数 N 确定数组的大小
Dim a(N, N) As Integer
Dim i, j, row, line, min As Integer
Show
For i = 1 To N ' For循环 i从1变化到N
For j = 1 To N ' For循环 j从1变化到N
a(i, j) = Int(100 * Rnd) + 1 ' 产生N*N个1~100间的随机数
Next j
Next i
' 输出二维数组
Print "数组内容是:"
For i = 1 To N
For j = 1 To N
Print a(i, j);
Next j
Print ' 输完一行元素后输出一个换行
Next i
' 设定初始值
min = a(1, 1): row = 1: line = 1
' 寻找最小数
For i = 1 To N
For j = 1 To N
If a(i, j) < min Then
min = a(i, j)
row = i
line = j
End If
Next j
Next i
' 输出结果
Print "最小值是:"; min
Print "在第"; row; "行第"; line; "列"
End Sub
11、求一元二次方程ax2+bx+c=0的根(包括实根和复根)。
11、参考代码如下:
Private Sub Command1_Click()
Dim a, b, c, delt, realpart, imagpart As Single
a = Val(Text1.Text): b = Val(Text2.Text): c = Val(Text3.Text):
delt = b * b - 4 * a * c
If a = 0 Then
Label2.Caption = "是一元一次方程:"
If b<>0 then
Text4.Text = "x1=" & -c / b
Else
If c=0 then
Text4.Text = "有无穷根"
Else
Text4.Text = "无根"
End if
End if
Else
' 下面嵌套块If语句
If delt = 0 Then
Label2.Caption = "有两个相等的实根:"
Text4.Text = "x1=" & -b / 2 / a
Text5.Text = "x2=" & -b / 2 / b
ElseIf delt > 0 Then
Label2.Caption = "有两个不等的实根:"
Text4.Text = "x1=" & (-b + Sqr(delt)) / (2 * a)
Text5.Text = "x2=" & (-b - Sqr(delt)) / (2 * a)
Else
Label2.Caption = "有两个共轭复根:"
realpart = -b / (2 * a)
imagpart = Sqr(-delt) / (2 * a)
Text4.Text = "x1=" & realpart & "+" & imagpart & "i"
Text5.Text = "x2=" & realpart & "-" & imagpart & "i"
End If ' 此行End If部分与内层的块If语句对应
End If ' 此行End If部分与外层的块If语句对应
End Sub
12、输入一个正整数n,计算出n!并输出。
12、参考代码如下:
Private Sub Command1_Click()
Dim n, i, t As Long
n = Val(Text1.Text)
i = 1: t = 1
If n < 0 Then
Label2.Caption = "error"
ElseIf n = 0 Then
Label2.Caption = "0!=1"
Else
Do While i <= n
t = t * i
i = i + 1
Loop
Label2.Caption = n & "!=" & t
End If
End Sub
13、Faibonacci数列为0,1,1,2,3,5,8,13 …,计算并输出第20项以及前20项的和。
13、参考代码如下:
Private Sub Form_Load()
Dim Prev, Last, NewOne, sum As Long
Dim i As Integer
Prev = 0: Last = 1: sum = Prev + Last
For i = 3 To 20
NewOne = Prev + Last
sum = sum + NewOne
Prev = Last
Last = NewOne
Next i
Label1.Caption = "第20项为" & NewOne
Label2.Caption = "前20项的和为" & sum
End Sub
第四章 常用控件与窗体
五、编程题
1、在窗体上有一个文本框控件,名称为TxtTime;一个计时器控件,名称为Timer1,要求每一秒在文本框中显示一次当前的时间,请编程实现。
1、参考代码如下:
Private Sub Form_Load()
Timer1.Interval = 1000
End Sub
Private Sub Timer1_Timer()
Txttime.text = Time
End Sub
2、在Text1中输入任一英文字母,在Text2中显示该英文字母及其ASCII码值。要求在文本框Text2中显示出所有输入的英文字母及其ASCII码值,如下图所示。
2、参考代码如下:
Private Sub Command1_Click()
Dim Char As String * 1
Char = Trim(Text1.Text)
Text2.Text = Text2.Text & Spc(5) & Char & _
Spc(10) & Str(Asc(Char)) & chr(13)&chr(10)
Text1.SetFocus
Text1.SelStart = 0
Text1.SelLength = Len(Text1.Text)
End Sub
3、编写一个程序,能够实现任意个整数的排序。
4、编程实现以下功能:用户首先分别在两个文本框中输入两个数,然后在具有“加、减、乘、除”等四个菜单项的“计算”菜单中单击某一项,即可在标签中显示出相应的结果或者错误提示。
5、编程实现任意两个数的“加、减、乘、除”。
6、编写一个程序,能够求任意个正整数的最大值和最小值。
7、编程求任意两个正整数的最大公约数。
六、程序分析填空题六、程序分析填空题
1、建立一个如图所示的简单编辑器。用户在文本框(text1)中输入正文后,选中某些文本时可进行“剪切”、“复制”和“粘贴”操作。假设在窗体声明部分定义了一个变量str1,用于保存复制和剪切的内容,请把剪切按钮(btnCut)的Click事件补充完整。
程序运行界面:
Private Sub btnCut_Click()
‘请补充
Str1 = text1.selText
text1.selText = “”
End Sub
2、计算1 + 2 + 3 + …… + 100的和并输出。请把下面用Do While ……Loop循环结构实现这一功能的代码补充完整。
Private Sub Form_Load()
Dim sum,count as Integer
‘请补充
Sum = 0
Count = 0
Do while count <=100
‘请补充
Count = count + 1
Sum = sum + count
Loop
Text1.Text = sum
End Sub
3、列表框控件(ListBox)支持多项选择,这项功能在对用户的兴趣爱好进行调查的时候显得非常好用,在下图所示的界面中列表框List1用于列出爱好选项,供用户进行多项选择。
请把下列代码补充完整,能够取得用户的所选爱好选项:
Private Sub Command1_Click()
Dim i As Integer
Dim s As String
s = txtname.Text & "爱好"
For i = 0 To List1.ListCount - 1
‘请补充
If List1.Selected(i) Then
S = s & List1.List(i)
End If
Next
Label3.Caption = s
End Sub
4、要求利用计时器Timer1,在窗体Form1上每隔1秒钟打印一个1到10的随机整数,请把下列代码补充完整:
Private Sub Form_Load()
Show
‘请补充
Timer1.Interval = 1000
End Sub
Private Sub Timer1_Timer()
‘请补充
Form1.Print Int(Rnd*10) + 1
End Sub
第五章 文件
四、编程题
1、实现二进制方式文件的复制。
1、参考代码如下:
Private Sub Command1_Click()
Dim if1 As Integer, if2 As Integer
Dim sf1 As String, sf2 As String
Dim buffer() As Byte ‘使用动态数组
sf1 = InputBox("请输入源文件名:", "源文件")
sf2 = InputBox("请输入目标文件名:", "目标文件")
If sf1 = "" Or sf2 = "" Then Exit Sub
if1 = FreeFile
Open sf1 For Binary As if1 '打开源文件
if2 = FreeFile
Open sf2 For Binary As if2 '创建目标文件
ReDim buffer(1 To LOF(if1)) '分配内存
Get #if1, , buffer '读源文件
Put #if2, , buffer '写目标文件
Close '关闭所有打开的文件
MsgBox "完成复制。"
End Sub
2、如下图所示,实现一个简单的文件管理器。
2、参考代码如下:
Private Sub cmdCopy_Click()
Dim destFile As String
If fSource.FileName = "" Then Exit Sub '先选定文件
destFile = InputBox("输入目标文件名:")
If destFile <> "" Then '不为空
FileCopy fSource.FileName, destFile '复制文件
End If
End Sub
Private Sub cmdExit_Click()
End
End Sub
Private Sub cmdKill_Click()
Dim res
If fSource.FileName = "" Then Exit Sub '首先选定文件
res = MsgBox("确定要删除文件 " & fSource.FileName & " 了吗?", vbOKCancel)
If res = vbOK Then ' 确认操作
Kill fSource.FileName '删除文件
End If
End Sub
Private Sub cmdName_Click()
Dim destFile As String
If fSource.FileName = "" Then Exit Sub '首先选定文件
destFile = InputBox("输入新文件名:")
If destFile <> "" Then
Name fSource.FileName As destFile '命名(移动)文件
End If
End Sub
Private Sub dirSource_Change()
fSource.Path = dirSource.Path '与文件列表关联
End Sub
Private Sub drvSource_Change()
dirSource.Path = drvSource.Drive '与文件夹关联
End Sub
第六章 图形操作
四、编程题
1、如下图显示当前目录下的图片文件列表,并能够预览选定的图片。
1、参考代码如下:
Private Sub drvList_Change()
dirList.Path = drvList.Drive ' 设置当前驱动器
End Sub
Private Sub dirList_Change()
fileList.Path = dirList.Path ' 设置当前目录
End Sub
Private Sub fileList_Click()
Dim s As String ' s为所选文件的全称
If Right(fileList.Path, 1) = "\\" Then
s = fileList.Path & fileList.FileName
Else
s = fileList.Path & "\\" & fileList.FileName
End If
Label4.Caption = s
If Right(s, 1) <> "\\" Then Image1.Picture = LoadPicture(s) ' 显示图片
End Sub
Private Sub Form_Load()
fileList.Pattern = txtFile.Text ' 初始化文件列表框
End Sub
Private Sub txtFile_LostFocus()
fileList.Pattern = txtFile.Text ' 改变筛选条件
End Sub
第九章 Visual Basic与数据库
二、编程题
1、请编程实现每两秒在标签中显示一次当前的时间。
2、找出被3、5、7整除,余数为1的最小的2个正整数。
3、有一个m×n的实型矩阵A(m,n),找出其中最大的那个元素所在的行和列。
4、找出能同时被5和7整除的最小的10个正整数。
5、编写一个程序,能够输出100~1000之间所有的素数。
6、从键盘上任意输入100个整数,统计负数的个数,并计算正数的和。
7、有一种数,正序读与反序读都相同,这种数叫回文数,如88、858、2332等。求出4位数以内(0~9999)的所有回文数。
8、输出“九九乘法表”。
