资源描述
实验A
A.1
Private Sub Command1_Click()
Label3 = Text1
End Sub
A.2
Private Sub Form_Load()
Timer1.Interval = 0
End Sub
Private Sub Command1_Click() '自动
Timer1.Interval = 200
End Sub
Private Sub Command2_Click() '手动
Timer1.Interval = 0
Call MyMove
End Sub
Private Sub Timer1_Timer()
Call MyMove
End Sub
Sub MyMove()
Label1.Move Label1.Left - 50
If Label1.Left < 0 Then Label1.Left = Form1.Width
End Sub
A.3
Private Sub Form_Click()
Text1 = Val(Text1) + 1
End Sub
Private Sub Form_Load()
Text1 = 0
End Sub
A.4
Private Sub Form_Click()
Caption = "单击窗体,改变图片"
Picture = LoadPicture(App.Path + "\n_015.bmp")
Print "欢迎使用VB"
End Sub
Private Sub Form_DblClick()
Cls
Caption = "双击窗体,卸去图片"
Picture = LoadPicture("") '
End Sub
Private Sub Form_Load()
Caption = "装入窗体"
Picture = LoadPicture(App.Path + "\n_016.bmp")
Print "装入图"
End Sub
Private Sub Form_Resize() ' 该事件的作用窗体始终与图一样大
'Caption = "窗体大小不变"
'Form1.Width = 260 * 16 ' 260是Tongji-2.bmp图的宽度,象素单位
'Form1.Height = 260 * 16 + 200 ' 260是图的高度,象素单位,200是窗体的标题栏高度
End Sub
A.5
Sub Command1_Click()
Text1.FontName = "隶书"
Text1.FontSize = 25
End Sub
Sub Command2_Click()
Text2.Text = Text1.SelText
Text2.FontName = Text1.FontName
Text2.FontSize = Text1.FontSize
End Sub
实验B
B.1
Private Sub Command1_Click()
Text2 = Format(5 / 9 * (Val(Text1) - 32), "0.00")
End Sub
Private Sub Command2_Click()
Text1 = Format(9 / 5 * Val(Text2) + 32, "0.00")
End Sub
或
Private Sub Command1_Click()
Dim f!, c! ' 声明两个变量
f = Val(Text1)
c = 5 / 9 * (f - 32)
Text2 = Format(c, "0.00") ' 保留两位小数
End Sub
Private Sub Command2_Click()
Dim ff!, cc! ' 声明两个变量
cc = Val(Text2)
ff = 9 / 5 * cc + 32
Text1 = Format(ff, "0.00") ' 保留两位小数
End Sub
B.2
Private Sub Command1_Click()
Label2 = Format(Val(Text1) * Val(Text1) * 3.14, "0.00")
End Sub
Private Sub Command2_Click()
Label3 = Format(Val(Text1) * 3.14 * 2, "0.00")
End Sub
Private Sub Text1_LostFocus()
If Not IsNumeric(Text1.Text) Then
MsgBox "输入有非数字字符,请重新输入", , "警告"
Text1.Text = ""
Text1.SetFocus
End If
End Sub
或
Private Sub Command1_Click()
Label2 = Format(Val(Text1) * Val(Text1) * 3.14, "0.00")
End Sub
Private Sub Command2_Click()
Label3 = Format(Val(Text1) * 3.14 * 2, "0.00")
End Sub
Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
If Not IsNumeric(Text1.Text) Then
Text1.Text = ""
End If
End If
End Sub
B.3
Private Sub Command1_Click()
n = Int(Log(2) / Log(1.008) + 1)
Label1 = n & "年后人数超过26亿"
End Sub
B.4
Private Sub Command1_Click()
Dim x, dx, cd
x = Text1.Text
dx = UCase(x)
cd = Len(x)
Print "大写字母为:"; dx
Print "字符串长度为:"; cd
End Sub
B.5
Private Sub Command1_Click()
Text1 = Int(Rnd * 900 + 100)
End Sub
Private Sub Command2_Click()
Dim x%, x1%, x2%, x3%
x = Val(Text1)
x1 = x Mod 10 ' 分离出的个位数
x2 = (x Mod 100) \ 10 ' 分离出的十位数
x3 = x \ 100 ' 分离出的百位数
Label1 = x1 * 100 + x2 * 10 + x3
End Sub
B.6
Private Sub Form_Click()
Label1 = Left(Text1, 11)
Label2 = Mid(Text1, 12, 6)
Label3 = Right(Text1, 5)
End Sub
B.7
Private Sub Command1_Click()
Print
For i = 1 To 5
Print Tab(15 - i * 2); String(2 * i - 1, "★"); Spc(18 - 4 * (i - 1)); String(2 * i - 1, "★")
Next i
End Sub
Private Sub Command2_Click()
Cls
End Sub
进一步要求:
Private Sub Command1_Click()
Print
For i = 1 To 5
Print Tab(15 - i * 2); String(2 * i - 1, "★"); String(10 - (2 * i - 1), "☆"); String(2 * i - 1, "★")
Next i
End Sub
Private Sub Command2_Click()
Cls
End Sub
B.8
Private Sub Form_Click()
x = Val(InputBox("输入一正实数", "计算", 0))
pf = Format(x * x, "0.000")
pfg = Format(Sqr(x), "0.000")
lf = Format(x * x * x, "0.000")
lfg = Format(x ^ (1 / 3), "0.000")
Print "平方为:"; pf; Space(5); "平方根为:"; pfg; Space(5); "立方为:"; lf; Space(5); "立方根为:"; lfg
End Sub
实验C
C.1
Private Sub Form_Click()
Dim x!, y!
x = Val(InputBox("输入x的值"))
If x < 1000 Then
y = x
ElseIf x < 2000 Then
y = 0.9 * x
ElseIf x < 3000 Then
y = 0.8 * x
Else
y = 0.7 * x
End If
Print y
End Sub
C.2
Private Sub Form_Click()
Dim x!, y!
x = Val(InputBox("输入上网时间"))
If x < 10 Then
y = 30
ElseIf x < 50 Then
y = 30 + 2.5 * (x - 10)
Else
y = 30 + 2.5 * 40 + 2 * (x - 50)
End If
If y > 150 Then
y = 150
End If
Print y
End Sub
C.3
Private Sub Command1_Click()
Dim x!, y!, z!
x = InputBox("input x")
y = InputBox("input y")
z = InputBox("input z")
Print " x y z"
Print " 排序前"; x; " "; y; " "; z
If x < y Then t = x: x = y: y = t
If x < z Then t = x: x = z: z = t
If y < z Then t = y: y = z: z = t
Print " 排序后" & x & " " & y & " " & z
End Sub
Private Sub Command2_Click()
Dim x!, y!, z!
x = InputBox("input x")
y = InputBox("input y")
z = InputBox("input z")
Print " x y z"
Print " 排序前"; x; " "; y; " "; z
If x < y Then t = x: x = y: y = t
If y < z Then
t = y: y = z: z = t
If x < y Then
t = x: x = y: y = t
End If
End If
Print " 排序后" & x & " " & y & " " & z
End Sub
C.4
Dim a(3) As Integer
Private Sub Command1_Click()
Picture1.Cls
For i = 0 To 2
a(i) = Int(Rnd * 100 + 200)
Picture1.Print a(i)
Next i
End Sub
Private Sub Command2_Click()
Picture2.Cls
Dim z As Integer
For i = 0 To 1
If a(i) > a(i + 1) Then
z = a(i + 1)
a(i + 1) = a(i)
a(i) = z
End If
Next i
Picture2.Print a(0)
Picture2.Print a(1)
Picture2.Print a(2)
End Sub
C.5
Private Sub Text2_LostFocus()
Dim m%, n%, y%
m = Val(Text1)
n = Val(Text2)
If n Mod 2 <> 0 Then
MsgBox ("脚数必定为偶数")
Text2 = ""
Text2.SetFocus
Else
y = n / 2 - m
If y < 0 Then
MsgBox ("脚数必须≥2倍的头数,请重新输入")
Text2 = ""
Text2.SetFocus
Else
x = n / 2 - m
Label2 = y
Label3 = m - y
End If
End If
End Sub
C.6
Private Sub Command1_Click()
Dim a!, b!, c!, x1!, x2!, de!
a = Text1
b = Text2
c = Text3
de = b * b - 4 * a * c
t = 2 * a
If de = 0 Then
Text4 = Format(-b / t, "0.00")
Text5 = Format(-b / t, "0.00")
ElseIf de > 0 Then
Text4 = Format((-b + Sqr(de)) / t, "0.00")
Text5 = Format((-b - Sqr(de)) / t, "0.00")
Else
Text4 = Format(-b / t, "0.00") & "+" & Format(Sqr(Abs(de)) / t, "0.00") & "i"
Text5 = Format(-b / t, "0.00") & "-" & Format(Sqr(Abs(de)) / t, "0.00") & "i"
End If
End Sub
Private Sub Command2_Click()
Text1 = ""
Text2 = ""
Text3 = ""
Text4 = ""
Text5 = ""
End Sub
C.7
Private Sub Text3_LostFocus()
Select Case Trim(Text3)
Case "+"
Text4 = Val(Text1) + Val(Text2)
Case "-"
Text4 = Val(Text1) - Val(Text2)
Case "*"
Text4 = Val(Text1) * Val(Text2)
Case "/"
If Val(Text2) = 0 Then
MsgBox "分母为零,重新输入"
Text2 = ""
Text2.SetFocus
Else
Text4 = Val(Text1) / Val(Text2)
End If
End Select
End Sub
C.8
Private Sub Text1_LostFocus()
Select Case Trim(Text1)
Case 1
Text2 = "Monday"
Case 2
Text2 = "Tuesday"
Case 3
Text2 = "Wednesday"
Case 4
Text2 = "Thursday"
Case 5
Text2 = "Friday"
Case 6
Text2 = "Saturday"
Case 7
Text2 = "Sunday"
Case Is > 7, Is < 1
MsgBox "数字为1~7,重新输入"
Text1 = ""
Text1.SetFocus
End Select
End Sub
或者
Private Sub Text1_LostFocus()
If Text1 > 7 Or Text1 < 1 Then
MsgBox "数字为1~7,重新输入"
Text1 = ""
Text1.SetFocus
Else
Text2 = Choose(Text1, "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday")
End If
End Sub
实验D
D.1
Private Sub Form_Click()
For i = 1 To 9
Print Tab(10 - i); String(2 * i - 1, Trim(Str(i)))
Next i
End Sub
D.2
Private Sub Form_Click()
For i = 1 To 10 Step 1
Print Tab(i); String((20 - 2 * i), Chr(64 + i))
Next i
End Sub
D.3
Private Sub Command1_Click()
Dim s!, t!, i&
s = 1
t = 1
For i = 1 To 100000
t = t + i
s = s + 1 / t
If 1 / t < 0.00001 Then Exit For
Next i
Print "For结构"; s, i; "项"
End Sub
D.4
Private Sub Command1_Click()
Dim n&, pi#, i&
n = InputBox("输入n值")
pi = 2
For i = 1 To n
pi = pi * (2 * i) / (2 * i - 1) * (2 * i) / (2 * i + 1)
Next i
Print "当n=" & n & "时,pi="; pi
End Sub
D.5
Private Sub Form_Click()
Dim s!, t!, i!, a%, n%
a = Int(Rnd * 9 + 1)
n = Int(Rnd * 6 + 5)
t = 0: s = 0
Print "a="; a, "n="; n
For i = 1 To n
t = t * 10 + a
s = s + t
Print t;
Next i
Print
Print "s="; s
End Sub
D.6
Private Sub Command1_Click()
Dim s As Integer
s = 0
For i = 1 To 9
For j = 0 To 9
For k = 0 To 9
s = i * 100 + j * 10 + k
If s = i ^ 3 + j ^ 3 + k ^ 3 Then
Print s
End If
Next k
Next j
Next i
End Sub
Private Sub Command3_Click()
formd6.Hide
main.Show
End Sub
D.7
Private Sub Command1_Click()
Dim a!, x0!, x1!
a = 27
x0 = 2
i = 0
Do
i = i + 1
x1 = 2 * x0 / 3 + a / (3 * x0 * x0)
If Abs(x1 - x0) < 0.00001 Then Exit Do
x0 = x1
Loop
Print x1, i
End Sub
D.8
Private Sub Command1_Click()
s = 0
x0 = 0.01
For i = 1 To 30
s = s + x0
x0 = x0 * 2
Next i
Print s
End Sub
D.9
Private Sub Command4_Click()
Picture1.Cls
Picture1.Print "x课安排在 "; "y课安排在 "; "z课安排在 "
Picture1.Print ""
For z = 5 To 6
For x = 1 To z - 2
For Y = x + 1 To z - 1
X1 = Choose(Weekday(x), "周一", "周二", "周三", "周四", "周五", "周六", "周日")
Y1 = Choose(Weekday(Y), "周一", "周二", "周三", "周四", "周五", "周六", "周日")
z1 = Choose(Weekday(z), "周一", "周二", "周三", "周四", "周五", "周六", "周日")
Picture1.Print " "; X1; " "; Y1; " "; z1
Next Y
Next x
Next z
End Sub
实验E
E.1
Private Sub Form_Click()
Dim a(1 To 10) As Integer
For i = 1 To 10
a(i) = Int(Rnd * 71 + 30)
Print a(i); " ";
Next i
Max = a(1)
Min = a(1)
Avg = a(1)
For i = 2 To 10
If a(i) > Max Then Max = a(i)
If a(i) < Min Then Min = a(i)
Avg = Avg + a(i)
Next i
Avg = Avg / 10
Print
Print "Max="; Max; " Min="; Min; " Avg="; Avg
End Sub
E.2
Private Sub Form_Click()
Dim a
a = Array(56, 78, 98, 88, 76, 78)
For i = 0 To 5
Print String(a(i) \ 5, "◆"); a(i)
Print
Next i
End Sub
E.3
Dim a%(19)
Private Sub Command1_Click()
Picture1.Cls
For i = 0 To 19
a(i) = Int(Rnd * 101)
Picture1.Print a(i); " ";
If (i + 1) Mod 4 = 0 Then Picture1.Print
Next i
End Sub
Private Sub Command2_Click()
Picture2.Cls
Dim s(5 To 9)
For i = 0 To 19
k = a(i) \ 10
Select Case k
Case 0 To 5
s(5) = s(5) + 1
Case 9 To 10 '90~100分的人数
s(9) = s(9) + 1
Case 6 To 8 ' 存放其他三个分数段的下标有规律,根据K获得
s(k) = s(k) + 1
End Select
Next i
For i = 5 To 9
If s(i) <> 0 Then Picture2.Print "s("; i; ")的人数有 "; Format(s(i), "0"); "个"
Next i
End Sub
E.4
Private Sub Command1_Click()
Picture1.Cls
Dim d%(1 To 10)
For i3 = 1 To 10
Randomize
d(i3) = Int(Rnd * 91 + 10)
Next i3
For i = 1 To 10
For j = 1 To 10 - i
If d(j) < d(j + 1) Then
t = d(j): d(j) = d(j + 1): d(j + 1) = t
End If
Next j
Next i
For i = 1 To 10: Picture1.Print d(i);
If i Mod 5 = 0 Then Picture1.Print
Next i
End Sub
E.5
Dim a%(3, 3), b%(3, 3)
Private Sub Form_Load()
For i = 0 To 3
For j = 0 To 3
a(i, j) = Int(Rnd * 36 + 35)
b(i, j) = Int(Rnd * 41 + 100)
Next j
Next i
End Sub
Private Sub Command1_Click()
Picture1.Cls
For i = 0 To 3
For j = 0 To i
Picture1.Print a(i, j); " ";
Next j
Picture1.Print
Next i
End Sub
Private Sub Command2_Click()
Picture2.Cls
For i = 0 To 3
For j = i To 3
Picture2.Print Tab(j * 6); b(i, j);
Next j
Picture2.Print
Next i
End Sub
Private Sub Command3_Click()
Picture3.Cls
sa = 0
For i = 0 To 3
sa = sa + a(i, i)
Next i
sb = 0
For i = 0 To 3
sb = sb + b(i, 3 - i)
Next i
Picture3.Print "A数组主对角线元素和为:"; sa
Picture3.Print "B数组副对角线元素和为:"; sb
End Sub
E.6
Private Sub Form_Click()
n = InputBox("输入n值")
ReDim a6%(n + 1, n + 1)
a6(0, 0) = 1: a6(1, 1) = 1: a6(1, 0) = 1
For i = 2 To n + 1
For j = 2 To i
a6(i, j) = a6(i - 1, j - 1) + a6(i - 1, j)
Picture1.Print a6(i, j); "";
Next j
Picture1.Print
Next
End Sub
E.7
Private Sub Form_Load()
List1.Clear
List1.AddItem "大学计算机基础"
List1.AddItem "C/C++程序设计"
List1.AddItem "VB程序设计"
List1.AddItem "Web程序设计"
List1.AddItem "多媒体技术与应用"
List1.AddItem "数据库技术与应用"
List1.AddItem "网络技术与应用"
List1.AddItem "硬件技术基础"
List1.AddItem "软件技术技术基础"
End Sub
Private Sub List1_Click()
If List2.ListCount >= 5 Then
MsgBox ("超过5门课程,不能再选")
Exit Sub
Else
List2.AddItem List1.Text
List1.RemoveItem List1.ListIndex
End If
End Sub
E.8
Sub Combo1_KeyPress(KeyAscii As Integer)
Select Case KeyAscii
Case 48 To 57, 13
Case Else
KeyAscii = 0
End Select
If KeyAscii = 13 Then
Combo1.AddItem Combo1.Text
Combo1.Text = ""
End If
End Sub
Private Sub Command1_Click()
Dim min%, max%
min = Val(Combo1.List(0))
max = Val(Combo1.List(0))
imin = 0
imax = 0
For i = 1 To Combo1.ListCount - 1
If Val(Combo1.List(i)) > max Then
imax = i
max = Combo1.List(i)
ElseIf Val(Combo1.List(i)) < min Then
imin = i
min = Combo1.List(i)
End If
Next i
t = Combo1.List(0)
Combo1.List(0) = Combo1.List(imin)
Combo1.List(imin) = t
t = Combo1.List(Combo1.ListCount - 1)
Combo1.List(Combo1.ListCount - 1) = Combo1.List(imax)
Combo1.List(imax) = t
End Sub
E.9
Private Sub Form_Click()
For i = 0 To Screen.FontCount - 1
If Asc(Left(Screen.Fonts(i), 1)) < 0 Then
Picture1.Print Screen.Fonts(i)
Picture2.FontName = Screen.Fonts(i)
Picture2.Print "商丘师范学院"
End If
Next i
End Sub
E.10
Private Type clerk
number As String * 3
name As String * 5
salary As Integer
End Type
Dim a(0 To 4) As clerk, n%
Private Sub Command1_Click()
If n >= 5 Then
MsgBox ("输入人数超过数组声明的个数")
Else
With a(n)
.number = Text1
.name = Text2
.salary = Text3
Picture1.Print a(n).number, a(n).name, a(n).salary
Print
End With
n = n + 1
Text1 = ""
Text2 = ""
Text3 = ""
End If
End Sub
Private Sub Command2_Click()
Dim t As clerk, i%, j%
For i = 0 To n - 1
For j = i To n - 1
If a(i).salary < a(j + 1).salary Then
t = a(i): a(i) = a(j + 1): a(j + 1) = t
End If
Next j
Next i
Picture1.Cls
Picture1.Print "工号 姓名 工资"
For i = 0 To n - 1
Picture1.Print a(i).number, a(i).name, a(i).salary
Print
Next i
End Sub
实验F
F.1
Private Sub Form_Click()
Dim a(1 To 10), amin, i%
For i = 1 To 10
展开阅读全文