1.新建工程,界面如下图,将窗体名称改为f1,标题属性为“我的第一个工程”, Text2允许多行,三个命令按钮名称分别为C1、C2、C3,单击C1按钮将Text1的字体改为黑体,Text2的字体改为隶书。 单击C2按钮将Text1的文字颜色改为红色,Text2的背景颜色改为蓝色。单击C3按钮结束程序运行。
Text1
Text2
Private Sub Command1_Click()
Text1.Font = 黑体
End Sub
Private Sub Command2_Click() Text1.ForeColor = vbRed
Text2.ForeColor = vbBlue End Sub
Private Sub Command3_Click() End End Sub
2.新建工程,界面如上图,运行时,鼠标在“改变窗体颜色”按钮上按下时使窗体背景色变为红色,鼠标抬起时使窗体背景色变为绿色。鼠标在窗体空白地方按下时使Text1的内容为“在窗体上按下了鼠标”,鼠标抬起时使Text1的内容为“在窗体上抬起了鼠标”。
Private Sub Command1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Form1.BackColor = vbRed End Sub
Private Sub Command1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
Form1.BackColor = vbGreen End Sub
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) Text1.Text = \在窗体上按下了鼠标\End Sub
Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) Text1.Text = \在窗体上抬起了鼠标\End Sub
3.新建工程,界面如下图,运行时,在文本框Text1中输入内容的同时,在文本框Text2、Text3中显示相同的内容,但字体不同(字体自定)。
Private Sub Command1_Click()
1
Text1.Text = \
Text2.Text = \ Text3.Text = \End Sub
Private Sub Command2_Click() End End Sub
Private Sub Text1_Change() Text2.Text = Text1.Text Text3.Text = Text1.Text End Sub 注:“字体不同”可以在属性那调“Font”
4. 设计一个窗体,如上图所示。当单击某个命令按钮时,对文本框中的文字完成相应的设置。其中,每单击一次“增大”或“缩小”按钮将使文本框中的文字增大或缩小5磅,“粗体”按钮将使文本框中的文字加粗,“斜体”按钮将使文本框中的文字倾斜,“下划线”按钮将使文本框中的文字加下划线,“删除线”按钮将使文本框中的文字加删除线。
Private Sub Command4_Click() Private Sub Command1_Click() Text1.FontSize = Text1.FontSize + 5 Text1.FontItalic = True End Sub End Sub Private Sub Command2_Click() Private Sub Command5_Click() Text1.FontSize = Text1.FontSize - 5 Text1.FontUnderline = True End Sub End Sub Private Sub Command3_Click() Private Sub Command6_Click() Text1.FontBold = True Text1.FontStrikethru = True End Sub End Sub
5. 设计一个窗体,如下图所示。程序中将π定义成符号常量(用Const ),运行时,输入底面半径r
和圆柱高h,然后单击“计算”命令按钮,在相应文本框中显示计算结果。运算结果为只读。
Private Sub Command1_Click() Const pi = 3.14 h = Val(Text1) r = Val(Text2)
Text3.Text = pi * r ^ 2 Text4.Text = 2 * pi * r * h Text5.Text = pi * r ^ 2 * h End Sub
2
中,单击“计算”按钮,求两个数的和。运算结果为只读。
6. 设计界面如上图所示。单击“出题”按钮,产生任意两个【1,100】之间的随机整数于Text1、 Text2Private Sub Command1_Click() Private Sub Command2_Click() Text1.Text = Int(100 * Rnd + 1) a = Val(Text1.Text) Text2.Text = Int(100 * Rnd + 1) b = Val(Text1.Text) End Sub Text3.Text = a + b End Sub
7.设计一个数字钟表程序,界面如图所示。运行时单击窗体,显示当前的年月日星期及时间。 Private Sub Form_Click() Label2.Caption = Year(Now) Label4.Caption = Month(Now) Label6.Caption = Day(Now) Label9.Caption = Weekday(Now) Label11.Caption = Time End Sub
8.设计一个数学函数程序,界面如图所示。程序运行时,在文本框中输入任意数值,单击相应按钮标签中显示结果。文本框始终处于选中状态。
Private Sub Command1_Click() Label3.Caption = Abs(Val(Text1)) Text1.SetFocus Text1.SelStart = 0
Text1.SelLength = Len(Text1.Text) End Sub
3
Private Sub Command2_Click() Label3.Caption = Sqr(Val(Text1)) Text1.SetFocus Text1.SelStart = 0
Text1.SelLength = Len(Text1.Text) End Sub
Private Sub Command3_Click() Label3.Caption = Fix(Val(Text1)) Text1.SetFocus Text1.SelStart = 0
Text1.SelLength = Len(Text1.Text) End Sub
Private Sub Command4_Click() Label3.Caption = Int(Val(Text1)) Text1.SetFocus
Text1.SelStart = 0
Text1.SelLength = Len(Text1.Text) End Sub
Private Sub Command5_Click() Label3.Caption = Sgn(Val(Text1)) Text1.SetFocus Text1.SelStart = 0
Text1.SelLength = Len(Text1.Text) End Sub
9.设计一工程,在文本框中输入一整数,单击“判断”按钮,判断能否同时被3、5、7整除,若能用MsgBox函数显示“能同时被3、5、7整除”,否则显示“不能整除”。
Private Sub Command1_Click() a = Val(Text1)
If a Mod 3 = 0 And a Mod 5 = 0 And a Mod 7 = 0 Then MsgBox \能同时被3、5、7整除\ Else
MsgBox \不能整除\ End If End Sub
10.设计一个计算购书价钱的程序,界面如下图所示。为了提高运行速度,设置Tab键序,使得输入完单价后,焦点定位到输入数量文本框中。单击“计算总价”或用访问键,算出总价。总价文本框要求为只读属性。完成相应功能。
Private Sub Command1_Click() a = Val(Text1) b = Val(Text2) Text3.Text = a * b End Sub
Private Sub Command2_Click() End End Sub
4
11.设计一工程,界面如上图所示。程序运行,单击“计算”,求出对应角度的三角函数的绝对值于文本框Text2中,同时要求选中文本框Text1内容,以便继续输入。
Private Sub Command1_Click() a = Val(Text1) b = a * 3.14 / 180 c = Abs(Sin(b)) d = Abs(Cos(b))
Text2.Text = Text2.Text & a & Space(10) & Format(c, \ & Space(10) & Format(d, \ Text1.SetFocus Text1.SelStart = 0
Text1.SelLength = Len(Text1.Text) End Sub
12.设计一个程序,用户界面如下图所示。程序运行后,单击“计算”,求出应付款额;单击“清除”, 清除所有文本框内容。
Private Sub Command1_Click() a = Val(Text1) b = Val(Text2) c = Val(Text3)
Text4.Text = a * b * c End Sub
5
Private Sub Command2_Click() Text1.Text = \ Text2.Text = \ Text3.Text = \ Text4.Text = \End Sub
13.输入一个学生的学号和考试成绩,然后按如图格式在图片框中输出学号、考试成绩及评语,评语:90~100优秀;80~89良好;70~79中等;60~69及格;0~59不及格。
Private Sub Command1_Click() a = Val(Text2) Select Case a Case 90 To 100 h = \优秀\ Case 80 To 89 h = \良好\ Case 70 To 79 h = \中等\ Case 60 To 69
h = \及格\ Case 0 To 59 h = \不及格\ End Select Picture1.Print
Picture1.Print \学号:\ Picture1.Print
Picture1.Print \分数:\End Sub
14.设计一个窗体Forml,界面如上图所示。编写适当的事件过程,程序运行后在第一个文本框中输入圆的半径,单击“计算”按钮,分别在第二个和第三个文本框中显示圆的面积和周长。
Text3.Text = 2 * a * 3.14 Private Sub Command1_Click()
a = Val(Text1) End Sub Text2.Text = a ^ 2 * 3.14
15.设计一个程序,用户界面如下图所示。程序运行后,单击Command1按钮,求出最大、最小数。
Private Sub Command1_Click()
a = Val(Text1):b = Val(Text2):c = Val(Text3) If a < b Then t = a: a = b: b = t If a < c Then t = a: a = c: c = t If b < c Then t = b: b = c: c = t Text4.Text = a Text5.Text = c
End Sub
6
16.界面如下图所示。编写适当的事件过程,程序运行后在三个文本框中分别输入三角形的边长值,单击“判断并计算”按钮,判断它们是否能组成三角形,若能组成三角形在Text4中显示三角形的面积 ,否则在Text4中显示“FALSE”。
Private Sub Command1_Click() a = Val(Text1):b = Val(Text2):c = Val(Text3)
If a + b < c Or a + c < b Or b + c < a Or Abs(a - b) > c Or Abs(a - c) > b Or Abs(b - c) > a Then Text4.Text = \ Else
h = (a + b + c) / 2
s = Sqr(h * (h - a) * (h - b) * (h - c)) Text4.Text = Format(s, \End If End Sub
17.设计一个程序运行界面如下图所示,将输入的三个不同数,按从小到大的顺序排列。
Private Sub Command1_Click()
a = Val(Text1):b = Val(Text2):c = Val(Text3) If a < b Then t = a: a = b: b = t If a < c Then t = a: a = c: c = t If b < c Then t = b: b = c: c = t
Text1.Text = c: Text2.Text = b: Text3.Text = a End Sub
7
20
18.在窗体上画两个命令按钮分别求11+22+33+44+……+nn小于100000最大值和
?n!?1!?2!?3!???20!的累加和并将结果输出到Label1和Label2中。
For i = 1 To 20 Private Sub Command1_Click()
n = 0: s = 0 n = 1 Do For k = 1 To i n = n + 1 n = n * k s = s + n ^ n Next k Label1.Caption = s s = s + n Loop Until s > 100000 Next i End Sub Label2.Caption = s Private Sub Command2_Click() End Sub s = 0
19.在窗体上画两个文本框输入a和n的值(a和n均为一位数字),单击命令按钮输出Sn=a+aa+aaa+aaaa+?+aa?a(最后一项n个a,例如3+33+333+3333)的值于标签中。
b = String(i, a) Private Sub Command1_Click()
a = Text1.text Sn = Sn + Val(b) n = Val(Text2) Next i Sn = 0 Label1.Caption = Sn For i = 1 To n End Sub
20.单击命令按钮将3到200之间的所有奇数显示在列表框中。
Next i Private Sub Command1_Click()
For i = 3 To 200 Step 2 End Sub List1.AddItem i
21.在窗体上画一文本框用于输入n值,画两个命令按钮分别求下述表达式的值
S1=4?(1?1?1???(?1)n?1n?1351)2n?1
S2=1×3×5×7×?×(2n-1)并将S1、S2的结果输出到图片框。
Private Sub Command1_Click() n = Val(Text1) s = 0
For i = 1 To n
s = s + (-1) ^ (i + 1) / (2 * i - 1) Next i
8
S2 = 1
For i = 1 To n
S2 = S2 * (2 * n - 1) Next i
Picture1.Print 4 * s Picture1.Print S2
End Sub
22.在文本框T1中打印100~999之间的所有水仙花数。 (该数为各位数字的立方和。例如:153=1 3+5 3+3 3 )
Private Sub Command1_Click() For i = 100 To 999 a = Fix(i / 100)
b = Fix(i / 10) - a * 10 c = i - Fix(i / 10) * 10
If a ^ 3 + b ^ 3 + c ^ 3 = i Then T1.Text = T1.Text & i & vbCrLf Next i End Sub
23.有一数列,它的头2个数为0、 1,以后的每个数都是其前2个数之和。编程在文本框T1中输出所有这些数列,直到第30个数或最后一项等于1000为止,同时在另一文本框中输出它们的和。
Private Sub Command1_Click() a = 0: b = 1: s = 0
Text1.Text = a & vbCrLf & b & vbCrLf For i = 1 To 14 s = s + a + b a = a + b b = a + b
Text1.Text = Text1.Text & a & vbCrLf & b & vbCrLf Next i
Text2.Text = s End Sub
24.设计如下图所示界面,单击时输出相应结果,2~N之间素数在列表框中输出,要求判断素数用过程实现。
Function h(a As Integer) As Boolean Dim m As Integer, s As Boolean m = 0
For i = 2 To (a - 1)
If a Mod i = 0 Then m = m + 1 Next i
If m = 0 Then s = True Else s = False h = s
End Function
Private Sub Command1_Click() Dim a As Integer a = Val(Text1)
9
If h(a) = False Then
Text2.Text = \不是素数\ Else
Text2.Text = \是素数\End If End Sub
Private Sub Command2_Click() Dim i As Integer a = Val(Text1) For i = 2 To a
If h(i) = True Then List1.AddItem i Next i
End Sub
25.界面如上图,单击各按钮时输入行数,按此行数在窗体上显示不同的图形(参考教材练习6-15)。 Private Sub Command1_Click() Private Sub Command3_Click() Cls Cls a = Val(InputBox(\请输入行数\a = Val(InputBox(\请输入行数\For i = 1 To a For i = a To 1 Step -1 Print Tab(i); String(a, \ Print Tab(a - i + 1); String(2 * i - 1, \Next i Next i End Sub End Sub Private Sub Command2_Click() Private Sub Command4_Click() Cls Cls a = Val(InputBox(\请输入行数\a = Val(InputBox(\请输入行数\For i = 1 To a For i = a To 1 Step -1 Print Tab(a - i + 1); String(2 * i - 1, \ Print Tab(a - i + 1); String(2 * i - 1, \ Next i Space(3); String(2 * (a - i) + 1, \End Sub Next i
End Sub
26.设计如下图所示界面,单击时输出N!和1!+2!+…+N!结果,要求N!用过程实现。
Function h(n As Integer) As Integer
Dim s As Integer s = 1
For i = 1 To n s = s * i Next i h = s
End Function
Private Sub Command1_Click() Dim n As Integer
10
n = Val(Text1) Text2.Text = h(n) End Sub
Private Sub Command2_Click() Dim n As Integer m = Val(Text1) s = 0
For n = 1 To m s = s + h(n) Next n
Text3.Text = s End Sub
27. 编写一个程序,输出一个5*5的矩阵,该矩阵主、负对角线上元素均为1,其余元素均为2,执行结果如上图所示。 Option Base 1 Dim A(5, 5) As Integer For i = 1 To 5
CurrentY = i * 300 Private Sub Form_Click()
For i = 1 To 5 For j = 1 To 5 For j = 1 To 5 CurrentX = j * 300 A(i, j) = 2 Print A(i, j); If i = j Then A(i, j) = 1 Next j, i If i + j = 6 Then A(i, j) = 1 End Sub Next j, i
28.界面如下图所示。分别在Textl和Text2中输入两个自然数x、y,用展转相除的方法求自然数x,y的最大公约数和最小公倍数。在窗体上显示结果。
Dim a As Integer, b As Integer, x As Integer,
y As Integer,r as Integer
Private Sub Command1_Click() x = Val(Text1) y = Val(Text2) a = x: b = y r = x Mod y Do While r <> 0 x = y
y = r
r = x Mod y Loop
Label3.Caption = y End Sub
Private Sub Command2_Click() Label4.Caption = a * b / y End Sub
11
Text1 Text2 Label3 Label4
29.仿照25题画四个命令按钮,单击各按钮在图片框上显示如下不同的数据图形。
Private Sub Command1_Click() For i = 1 To 6
For j = i To 1 Step -1 Print j; Next j Print Next i End Sub
Private Sub Command2_Click() For i = 6 To 1 Step -1 Print Space(18 - 3 * i); For j = 1 To i Print j; Next j Print Next i
12
End Sub
Private Sub Command3_Click() For i = 1 To 6
Print Space(18 - 3 * i); For j = i To 1 Step -1 Print 7 - j; Next j Print Next i End Sub
Private Sub Command4_Click() For i = 6 To 1 Step -1 For j = i To 1 Step -1 Print j; Next j Print
Next i
End Sub
30.设计一个窗体Forml,编写适当的事件过程。控制Text1中背景色和字体格式。(字体默认为宋体,内容为“欢迎学习VB”)程序运行界面如图所示。
Private Sub Check1_Click() Text1.FontBold = True End Sub
Private Sub Check2_Click() Text1.FontItalic = True End Sub
Private Sub Check3_Click() Text1.FontUnderline = True End Sub
Private Sub Option1_Click() Text1.BackColor = vbRed End Sub
Private Sub Option2_Click() Text1.BackColor = vbYellow End Sub
Private Sub Option3_Click() Text1.BackColor = vbBlue End Sub
31.利用两个列表框控件,设计选项移动窗体如上图。编写适当的事件过程实现功能要求。
Private Sub Command1_Click() If List1.ListCount = 0 Then
MsgBox \列表中没有可选的列\注意\ Exit Sub
If List1.ListIndex >= 0 Then For i = 0 To List1.ListCount – 1
End If
End Sub
Private Sub Command2_Click() For i = 0 To List1.ListCount - 1 List1.Selected(0) = True List2.AddItem List1.Text List1.RemoveItem 0 Next i End Sub
Private Sub Command4_Click() For i = 0 To List2.ListCount - 1 List2.Selected(0) = True List1.AddItem List2.Text List2.RemoveItem 0 Next i End Sub
32.设计界面如下图所示,运行时,当移动滚动条时,在标签中能正确显示摄氏、华氏温度值(C=5(F-32)/9)
13
Private Sub Form_Load() VScroll1.Min = 100 VScroll1.Max = 0 End Sub
Private Sub VScroll1_Change()
Label2.Caption = VScroll1.Value
Label1.Caption = Format(VScroll1.Value * 9 / 5 + 32, \End Sub
33.设计上面界面,按“开始”按钮使标签在窗体上从左向右移动,当遇到窗体的右侧后,改成从右向左移动,按“停止”按钮停止标签移动。
Dim a As Integer
Private Sub Command1_Click()
Timer1.Enabled = True
End Sub
Private Sub Command2_Click()
Timer1.Enabled = False
End Sub
End Sub Private Sub Timer1_Timer()
34.编写一个程序,实现在标签中自动依次显示“祝你”,“考试”,“成功”。
Dim a As Integer
Private Sub Timer1_Timer() a = a + 1 b = a Mod 3 If b = 1 Then Label1.Caption = \祝你\If b = 2 Then Label1.Caption = \考试\If b = 0 Then Label1.Caption = \成功\End Sub
35.窗体上有一个名为L1的列表框,通过属性向列表框添加3个项目,分别是“123、456、789”。当启动后,每次双击列表框中任何一项,则总在最后添加一项,该项是所有项之和。界面如下图。
Private Sub L1_DblClick() Dim b As Double, s As Double
14
a = Val(L1.ListCount) s = 0
For i = 0 To a
b = Val(L1.List(i)) s = s + b Next i
L1.AddItem s End Sub
36.设计如上界面,编写适当的事件过程。 程序运行后,每过1秒钟文本框的背景色能够由红到绿,绿到蓝,再由蓝到红循环变化。
Dim a As Integer
Private Sub Timer1_Timer() a = a + 1 b = a Mod 3 If b = 1 Then Text1.BackColor = vbRed If b = 2 Then Text1.BackColor = vbGreen If b = 0 Then Text1.BackColor = vbBlue End Sub
37.单击第一个按钮,生成20个[0,100]之间的随机整数,显示于文本框1中,单击第二个按钮,求这20个数中的最大数和最小数,显示于文本框2中。
Option Base 1
Dim a(20) As Integer
Private Sub Command1_Click() Text1.Text = \For i = 1 To 20
a(i) = Int(99 * Rnd - 0)
Text1.Text = Text1.Text & a(i) & vbCrLf Next i
For i = 1 To 19 For j = i + 1 To 20 If a(i) > a(j) Then t = a(i) a(i) = a(j) a(j) = t End If Next j, i
Text2.Text = a(1) & Space(3) & a(20) End Sub
38.编写程序,单击第一个按钮,用随机函数产生4行5列的两位整数并输出到图片框1中。单击第二个按钮,实现将第1行和第3行数据交换或第2列和第4列数据交换,输出到图片框2中。
Dim A(1 To 4, 1 To 5) As Integer, B(1 To 4, 1 To 5) As Integer
Private Sub Command1_Click() For i = 1 To 4 s1 = \
For j = 1 To 5
A(i, j) = Int(91 * Rnd + 10) s1 = s1 & Space(2) & A(i, j) Next j
Picture1.Print s1 & vbCrLf Next i End Sub
Private Sub Command2_Click() For i = 1 To 4
15
s1 = \
For j = 1 To 5
If i Mod 2 <> 0 Then c = 4 - i
B(i, j) = A(c, j)
s1 = s1 & Space(2) & B(i, j) Else
B(i, j) = A(i, j)
s1 = s1 & Space(2) & B(i, j) End If Next j
Picture2.Print s1 & vbCrLf Next i End Sub
n39.利用Function 计算N!,求组合数cm?m!。
n!(m?n)!Private Sub Command1_Click()
Dim m As Integer, n As Integer, p As Integer, k As Double
n = Val(Text1): m = Val(Text2): p = m - n x = A(m): y = A(n): z = A(p) k = x / (y * z) Text3.Text = k End Sub
在文本框1中输入n,文本框2中输入m,单击命令按钮,在文本框3中显示组合结果。
Function A(h As Integer) As Integer Dim s As Integer, i As Integer s = 1
For i = 1 To h s = s * i Next i A = s
End Function
40.生成两个0~10之间的随机整数矩阵,分别放入两个列表框,求两个矩阵之和放入第三个列表框。如下图所示。
Private Sub Form_Load() For i = 1 To 5 s1 = \
For j = 1 To 5
a(i, j) = Int(Rnd * 11)
s1 = s1 & Format(a(i, j), \ Next j
List1.AddItem s1 & vbCrLf Next i
For i = 1 To 5 s1 = \
For j = 1 To 5
b(i, j) = Int(Rnd * 11)
s1 = s1 & Format(b(i, j), \ Next j
List2.AddItem s1 & vbCrLf
Next i End Sub
Private Sub Command1_Click() For i = 1 To 5 s1 = \
For j = 1 To 5
c(i, j) = a(i, j) + b(i, j)
s1 = s1 & Format(c(i, j), \ Next j
List3.AddItem s1 & vbCrLf Next i End Sub
Private Sub Command2_Click() End End Sub
41.生成10个两位数的随机整数, 放入A数组, 单击显示按钮全部显示在文本框1中,单击排序按钮由小到大排序,显示在文本框2中。(如上图)
16
Option Base 1
Dim A(10) As Integer
Private Sub Command1_Click() For i = 1 To 10
A(i) = Int(91 * Rnd + 10)
Text1.Text = Text1.Text & A(i) & Space(1) Next i End Sub
Private Sub Command2_Click() For i = 1 To 9 For j = i + 1 To 10 If A(i) > A(j) Then t = A(i) A(i) = A(j) A(j) = t End If Next j, i
For i = 1 To 10
Text2.Text = Text2.Text & A(i) & Space(1) Next i End Sub
42.如下图,单击显示按钮,将20个随机两位整数,输出在LIST1中;单击排序按钮,将使用子过程降序排序的结果输出在LIST2中。
Option Base 1
Dim A(10) As Integer
Private Sub Command1_Click() For i = 1 To 10
A(i) = Int(91 * Rnd + 10) List1.AddItem A(i) Next i End Sub
Private Sub Command2_Click() For i = 1 To 9
For j = i + 1 To 10
If A(i) > A(j) Then t = A(i) A(i) = A(j) A(j) = t End If Next j, i
For i = 1 To 10 List2.AddItem A(i) Next i End Sub
43.编写适当的事件过程,在窗体上输出相应行数的杨辉三角形。点击窗体弹出InputBox对话框,在对话框中输入行数,打印出如上图所示形态的杨辉三角形。
Dim A() As Integer
Private Sub Form_Click() Dim m As Integer, n As Integer
m = Val(InputBox(\请输入行数\ n = m
ReDim A(m, n) For i = 0 To m - 1 A(i, i) = 1 A(i, 0) = 1 Next i
Print Tab(3 * m - 1); 1 For i = 2 To n - 1 s = \
For j = 1 To i - 1
A(i, j) = A(i - 1, j) + A(i - 1, j - 1) s = s & Space(5) & A(i, j)
17
Next j Next i Print Tab(3 * (m - i)); A(i, 0) & s & End Sub Space(5) & A(i, i)
44.编写程序,实现矩阵转置,即将一个n?m的矩阵(均由随机函数产生,并且是两位整数)的行和列互换。单击显示按钮将原矩阵放在图片框1,单击转置按钮将转置后的矩阵输出在图片框2。
Option Base 1
Dim a(4, 5) As Integer, b(5, 4) As Integer Private Sub Command1_Click() For i = 1 To 4 s = \
For j = 1 To 5
a(i, j) = Int(91 * Rnd + 10) s = s & Space(2) & a(i, j) Next j
Picture1.Print s Next i End Sub
Private Sub Command2_Click() For i = 1 To 5 s = \
For j = 1 To 4 b(i, j) = a(j, i)
s = s & Space(2) & b(i, j) Next j
Picture2.Print s Next i End Sub
45.编写函数过程计算1+2+3+。。。+n,运行时输入m,n,p的值,单击“Y=”输出结果(保留三位小数)。y?(1?2?3?...?m)?(1?2?3?...?n)如上图所示。
(1?2?3?...?p)End Function
Private Sub Command1_Click()
Dim m As Integer, n As Integer, p As Integer, k As Double
m = Val(Text1): n = Val(Text2): p = Val(Text3) x = A(m): y = A(n): z = A(p)
18
Function A(h As Integer) As Integer Dim s As Integer, i As Integer s = 0
For i = 1 To h s = s + i Next i A = s
k = (x + y) / z Text4.Text = k
Private Sub Form_Load() For i = 0 To 5
Text1(i).Text = Int(91 * Rnd + 10) Next i End Sub
End Sub
46.利用控件数组Text1、Text2将Text1中随机产生的数,交换到Text2中,界面如下图所示。
Private Sub Command1_Click() For k = 0 To 5
Text2(k).Text = Text1(5 - k).Text Next k End Sub
47.在一工程中有两窗体,界面如图所示,试完成相应功能。 ’这是标准模块的代码: End Sub
Public w As Integer
’这是Form1的代码:
Private Sub Command1_Click() n = Val(Text1) Text2.Text = n ^ 3 End Sub
Private Sub Command2_Click() Form2.Show Unload Me End Sub
’这是Form2的代码:
Private Sub Form_Load() Text1.Text = n
Private Sub Command1_Click() s = 1
For i = 1 To n s = s * i Next i
Text2.Text = s End Sub
Private Sub Command2_Click() Form1.Show Unload Me End Sub
19
48.在窗体放一个文本框和四个组合框,界面如下图所示,组合框1和组合框2的颜色包括:白、黑、红、绿、蓝、黄。组合框3的对齐方式有左、中、右。组合框4字体大小有10、12、14、18、20、22磅,试完成相应功能。
Private Sub Combo1_Click() Select Case Combo1.ListIndex Case 0
Text1.ForeColor = vbWhite Case 1
Text1.ForeColor = vbBlack Case 2
Text1.ForeColor = vbRed Case 3
Text1.ForeColor = vbGreen Case 4
Text1.ForeColor = vbBlue Case 5
Text1.ForeColor = vbYellow End Select End Sub
Private Sub Combo2_Click() Select Case Combo1.ListIndex Case 0
Text1.BackColor = vbWhite Case 1
Text1.BackColor = vbBlack Case 2
Text1.BackColor = vbRed Case 3
Text1.BackColor = vbGreen Case 4
20
Text1.BackColor = vbBlue Case 5
Text1.BackColor = vbYellow End Select End Sub
Private Sub Combo3_Click() Select Case Combo3.ListIndex Case 0
Text1.Alignment = 0 Case 1
Text1.Alignment = 1 Case 2
Text1.Alignment = 2 End Select End Sub
Private Sub Combo4_Click() Select Case Combo4.ListIndex Case 0
Text1.FontSize = 10 Case 1
Text1.FontSize = 12 Case 2
Text1.FontSize = 14 Case 3
Text1.FontSize = 18 Case 4
Text1.FontSize = 20 Case 5
Text1.FontSize = 22 End Select
End Sub
49.用inputBox函数输入10个数,分别求出奇数和偶数之和,用消息框(Msgbox函数)输出。
Private Sub Command1_Click() s1 = 0: s2 = 0 For i = 1 To 10
a = Val(InputBox(\请输入第\个数\b = a Mod 2 If b <> 0 Then s1 = s1 + a Else
s2 = s2 + a End If Next i
MsgBox \奇数之和为\偶数之和为\End Sub
50.用文本框1输入10个学生的某门课程的分数后,给出五级评分。评分标准如下:
优 90≤成绩≤100 良 80≤成绩≤90 中 70≤成绩≤80 及格 60≤成绩≤70 不及格 0≤成绩≤60
评分结果显示在文本框2中,如果分数不在[0,100]范围内,则用消息框(Msgbox函数)给出错误提示,并将焦点定位在输入分数的文本框。
Private Sub Form_Click() Static i As Integer i = i + 1
a = Val(Text1) Select Case a
Case Is < 0, Is > 100
MsgBox \输入错误,请重新输入\错误\Text1.SetFocus Case Is <= 60
Text2.Text = Text2.Text & i & Space(2) & a & Space(2) & \不及格\Label1.Caption = \输入第\个学生的成绩\Case Is <= 70
Text2.Text = Text2.Text & i & Space(2) & a & Space(2) & \及格\Label1.Caption = \输入第\个学生的成绩\Case Is <= 80
Text2.Text = Text2.Text & i & Space(2) & a & Space(2) & \中\Label1.Caption = \输入第\个学生的成绩\Case Is <= 90
Text2.Text = Text2.Text & i & Space(2) & a & Space(2) & \良\
21
Label1.Caption = \输入第\个学生的成绩\Case Is <= 100
Text2.Text = Text2.Text & i & Space(2) & a & Space(2) & \优\Label1.Caption = \输入第\个学生的成绩\End Select End Sub
Private Sub Form_Load()
Label1.Caption = \输入第1 个学生的成绩\End Sub
Private Sub Form_Load()
Label1.Caption = \请输入第1 个学生的成绩\End Sub
22