中国地质大学(武汉)远程与继续教育学院
中国地质大学(武汉)远程与继续教育学院
VB程序设计 课程作业4(共 4 次作业) 学习层次:专升本 涉及章节:第10章 ——第12章
一、判断题
1.在窗体上绘制CommonDialog控件时,控件的大小、位置可由用户自己加以设定。 2.当一个菜单项不可见时,其后的菜单项就会往上填充留下来的空位。 3.用Cls方法能清除窗体或图片框中用Picture属性设置的图形。 4.影像框和图片框一样,也可以作为其他控件的容器。
5.BorderWidth属性表示指定直线和形状边界线的线条宽度,该属性值不能设置为0。 6.目录列表框的Path属性,只能用程序代码设置,不能通过属性窗口设置。
7.若某文件已存在,用OUTPUT方式打开该文件,等同于用APPEND方式打开该文件。 8.可以用AddItem方法向目录列表框中加入新表项。
9.文件操作语句Name不仅可以修改文件名称,而且可以移动文件的位置。 10.文件以INPUT模式打开后可以往文件中写入数据。
11.用OUTPUT模式打开文件,如果指定文件和路径不存在,则会自动创建指定文件及路径。
二、选择题
1.用户可以通过设置菜单项的 属性值为False来使该菜单项失效。 A、Hide B、Visible C、Enabled D、Checked 2.菜单编辑器中,同层次的 设置为相同,才可以设置索引值。 A、Caption B、Name C、Index D、ShortCut 3.将图片框的 属性设置成True时,可使图片框根据图片调整大小。 A、Picture B、AutoSize C、Stretch D、AutoRedraw 4. 属性可以用来设置所绘线条宽度。
A、DrawStyle B、BorderStyle C、DrawWidth D、FillColor 5.语句“Circle(1000,1000),800,,,,2”绘制的是 。 A、弧 B、椭圆 C、扇形 D、同心圆 6.BorderStyle属性是用来表示线条的 。 A、长度 B、宽度 C、线形 D、颜色 7.下列 方法或函数可以调用外部的可执行文件。
A、Show B、Shell C、Input D、Open
8.执行语句“Write #1, 234; -34.56, \”后,相应文件内被写入 。 A、234,-34.56,hello,2001-08-03 B、\C、234,-34.56,\ D、234 -34.56 hello 2001-08-03 9.下面 选项能表示目录列表框控件dir1的当前目录。 A、dir1.list(list1.listindex) B、dir1.list(-1) C、dir1.list(list1.listcount) D、dir1.list(0) 10. 方式打开的文件只能读不能写。
A、append B、random C、output D、input
11.语句“open \”用于打开一个顺序文件,该语句的一个重要错误是没有 。
中国地质大学(武汉)远程与继续教育学院
A、指定打开方式 B、指定文件号 C、指定文件名 D、指定打开类型
三、填空题
1.如果工具箱中还没有CommonDialog控件,则应从 菜单中选定 ,并将控件添加到工具箱中。
2.在设计菜单时,可在Visual Basic主窗口的菜单栏中选择 ,单击后从它的下拉菜单中选择“菜单编辑器”菜单项。
3.在图片框中加一幅图片(从磁盘装入)可用 函数来实现。
4.若控件Picture1中要显示C:盘Windows目录下的Cloud.bmp图片,则它的方法是 。 5.画椭圆的方法中,半径以后的参数依次是 、 、 、 。 6.文件的当前读写位置是否到达文件末尾,应用 函数。
7.读文件的 语句从文件的当前位置起至换行符前的所有字符读入到字符串变量。
四、程序阅读题
程序1. 写出程序运行时单击窗体后的结果。
Private Sub Form_Click() Dim i As Integer For i = 1 To 1000 Call Circledemo Next i End Sub
Sub Circledemo()
Dim Radius As Single, XPos As Single, YPos As Single R = 255 * Rnd: G = 255 * Rnd: B = 255 * Rnd
XPos = ScaleWidth * Rnd: YPos = ScaleHeight * Rnd Radius = ((YPos * 0.9) + 1) * Rnd / 10 Circle(XPos, YPos), Radius, RGB(R, G, B) End Sub
程序2. 写出程序运行时单击窗体后,a1.dat文件的结果和窗体上的输出结果。
Private Sub Form_Click() Dim a(1 to 6) As Integer, k As Integer, i As Integer, j As Integer Open \
For i = 1 To 6: j = i * i: Print #1, j; : Next i Close #1
Open \ k = 0
Do While Not EOF(1)
k = k + 1: Input #1,a(k) Loop
Close #1
中国地质大学(武汉)远程与继续教育学院
For i = k To 1 Step - 1: Form1.Print a(i); : Next i End Sub
程序3. 写出程序运行时单击窗体后,a1.dat文件的结果和窗体上的内容。
Private Sub Form_Click() Dim n As byte,i As byte
Open \ n = 6
For i = 1 To n: Print #1,i*2; : Next i Close #1
Open \
For i = 1 To n Input #1, a
If i Mod 5 = 0 Then Print a*2 Next i Close #1 End Sub
程序4. 写出程序运行时单击窗体后,a1.dat文件的结果。
Private Sub Form_Click()
Open \ Call a(5): Close #1 End Sub
Private Sub a(ByVal k) Dim i As Integer If k <> 0 Then a(k - 1)
For i = 1 To k : Print #1,k; : Next i Print #1, End If End Sub
中国地质大学(武汉)远程与继续教育学院
程序5. 写出点击3次窗体后,文件a1.txt中的内容。
Private Sub form_click() Static k As Integer Dim j As Integer k = k + 1
Open \
For j = 1 To k: Print #1, j; : Next j Print #1, Close #1 End Sub
五、程序填空题
1.【程序说明】自制一个简单的图片浏览器。要求在窗体上建立一个影像框和两个命令按钮,命令按钮上显示文字“上一张”和“下一张”。 运行时,显示第一张图片,“上一张”按钮不能响应,单击“下一张”按钮显示另一张图片,“上一张”按钮能响应。显示到最后一张图片时,“下一张”按钮不能响应。(假设在C:\\Windows目录下有1.bmp、2.bmp、??、8.bmp这样8张图片)
Dim n As Byte
Private Sub Command1_Click()
If n < 8 Then Command2.Enabled = True n = n - 1
(1)
If n < = 1 Then Command1.Enabled = (2) : n = 1 End Sub
Private Sub Command2_Click()
(3)
If n> = 1 Then Command1.Enabled = True Call pic
If n = 8 Then Command2.Enabled = False End Sub
Private Sub Form_Load()
n=1: Command1.Enabled = False: Image1.Picture = (4) End Sub Sub pic()
Dim fn As String
fn = \
中国地质大学(武汉)远程与继续教育学院
Image1.Picture= (5)
End Sub
2.【程序说明】右击窗体则打开Windows自带的计算器“C:\\windows\\calc.exe”;单击“退出”按钮时将右击窗体的次数写入磁盘文件。 (1) Private Sub Form_MouseUp(Button As Integer, Shift As Integer, _ X As Single, Y As Single)
If Button = 2 Then n = n + 1: Shell (2) End Sub
Private Sub Command1_Click() Open \(3) Print #1,n: Close #1 (4) End Sub
3.【程序说明】文件c:\\a1.dat中存放若干个学生信息的记录(行),按Command1按钮后,查找文件中姓名与输入姓名相同的记录,找到则删除该记录。
Private Sub Command1_Click() Dim bs As String,cs As String Open \
Open \(1) bs = InputBox(\输入学生姓名\ Do While Not Eof(1) Line Input #1, cs
if InStr(cs, Trim(bs)) = (2) Then print #2,cs Loop
Close #1: Close #2 Kill \
Name (3) End Sub
4.【程序说明】本程序求3~100之间的所有素数(质数)并统计个数;同时将这些素数从小到大依次写入顺序文件e:\\dataout.txt;素数的个数显示在窗体Form1上。
Private Sub Command1_Click()
Dim coun As Integer, flag As Boolean Dim t1 As Integer, t2 As Integer
(1) coun = 0
For t1 = 3 To 100 flag = True
For t2 = 2 To Int(Sqr(t1))
If (2) then flag = False Next t2
(3)