【答案解析】[解析] 在窗体上建立好控件后,先设置控件属性,再编写事件过程。
用数组a(10)来接收InputBox输入的10数,InputBox的格式为:InputBox(提示[,标题][,默认][,X坐标位置][,Y坐标位置]);控件是否可用可利用其Enabled属性设置,当该值为True时可用,为False时不可用(灰色);判断是否是数字可用IsNumeric(),如果是数字返回True,否则返回False;本程序中用到的排序方法是将某一个元素做为标杆,其后的每一个元素与其比较,若小于标杆则两者交换,依此类推,题中要求排完序后a(1)至a(10)依次存放大数,在文本框中显示升序和降序的时候只要两者反序显示即可,即升序可依次显示a(1)到a(10),降序可依次显示a(10)到a(1)。解题步骤:
第一步:建立界面并设置控件属性。程序中用到的控件及其属性见表16-3。
表 16-3
控 件
|
属 性
|
设 置 值
|
标签
|
Caption
|
点击“开始录入”按钮,录入10个数
|
文本
|
Name
Scrollbars
Multilane
|
Text1
2-vertical
true
|
文本
|
Name
Scrollbars
Multilane
|
Text4
2-vertical
true
|
文本
|
Name
|
Text2
|
文本
|
Name
|
Text3
|
按钮
|
Name
Caption
|
Command1
最大数
|
按钮
|
Name
Caption
|
Command2
最小数
|
按钮
|
Name
Caption
|
Command3
升序排列
|
按钮
|
Name
Caption
|
Command4
降序排列
|
按钮
|
Name
Caption
|
Command5
退出
|
按钮
|
Name
Caption
|
Command6
开始录入
|
按钮
|
Name
Caption
|
Command7
清除
|
第二步:编写程序代码。
程序提供的代码:
Option Explicit
Dim a(10) As Variant
Dim i As Integer, j As Integer
Dim m As Single
Private Sub Command1_Click()
"Text2.Text=
Command1.Enabled=False
Command7.Enabled=True
End Sub
Private Sub Command2_Click()
"Text3.Text=?
Command2.Enabled=False
Command7.Enabled=True
End Sub
Private Sub Command3_Click()
For i=1 To 10
"Text1.Text=Text1.Text &?& ","
Next i
Command3.Enabled=False
Command7.Enabled=True
End Sub
Private Sub Command4_Click()
For i=10 To 1 Step -1
"Text4.Text=Text4.Text &?& ","
Next i
Command4.Enabled=False
Command7.Enabled=True
End Sub
Private Sub Command5_Click()
End
End Sub
Private Sub Command6_Click()
Label1.Enabled=False
For i=1 To 10
a(i)=InputBox("请输入第" & i & "个数,请务必输入数值数据! ","输入")
Do While IsNumeric(a(i) )=False
a(i)=InputBox("输入数据无效,请重新输入数值数据! ! !" & "请输入第" & _
i & "个数","输入")
Loop
Next i
For i=1 To 9
For j=i+1 To 10
"If Val(a(j) ) ?Val(a(i) ) Then
m=a(j)
a(j)=a(i)
a(i)=m
End If
Next j
Next i
Command6.Enabled=False
Commandl.Enabled=True
Command2.Enabled=True
Command3.Enabled=True
Command4.Enabled=True
Command5.Enabled=True
Command7.Enabled=False
End Sub
Private Sub Command7_Click()
"Text1.Text=?
"Text2.Text=?
"Text3.Text=?
"Text4.Text=?
Label1.Enabled=True
Command6.Enabled=True
Command4.Enabled=False
Command3.Enabled=False
Command2.Enabled=False
Commandl.Enabled=False
Command7.Enabled=False
End Sub
Private Sub Form_Load()
Command1.Enabled=False
Command2.Enabled=False
Command3.Enabled=False
Command4.Enabled=False
Command7.Enabled=False
End Sub
参考代码:
Option Explicit
Dim a(10) As Variant
Dim i As Integer, j As Integer
Dim m As Single
Private Sub Command1_Click()
Text2.Text=a(10)
Command1.Enabled=False
Command7.Enabled=True
End Sub
Private Sub Command2_Click()
Text3.Text=a(1)
Command2.Enabled=False
Command7.Enabled=True
End Sub
Private Sub Command3_Click()
For i=1 To 10
Text1.Text=Text1.Text & a(i) &","
Next i
Command3.Enabled=False
Command7.Enabled=True
End Sub
Private Sub Command4_Click()
For i=10 To 1 Step -1
Text4.Text=Text4.Text & a(i) &","
Next i
Command4.Enabled=False
Command7.Enabled=True
End Sub
Private Sub Command5_Click()
End
End Sub
Private Sub Command6_Click()
Label1.Enabled=False
For i=1 To 10
a(i)=InputBox("请输入第" & i & "个数,请务必输入数值数据!","输入")
Do While IsNumeric(a(i) )=False
a(i)=InputBox("输入数据无效,请重新输入数值数据! ! !" & "请输入第" & i & _
"个数","输入")
Loop
Next i
For i=1 To 9
For j=i+1 To 10
If Val(a(j) )< Val(a(i) ) Then
m=a(j)
a(j)=a(i)
a(i)=m
End If
Next j
Next i
Command6.Enabled=False
Command1.Enabled=True
Command2.Enabled=True
Command3.Enabled=True
Command4.Enabled=True
Command5.Enabled=True
Command7.Enabled=False
End Sub
Private Sub Command7_Click()
Text1.Text=""
Text2.Text=""
Text3.Text=""
Text4.Text=""
Label1.Enabled=True
Command6.Enabled=True
Command4.Enabled=False
Command3.Enabled=False
Command2.Enabled=False
Command1.Enabled=False
Command7.Enabled=False
End Sub
Private Sub Form_Load()
Command1.Enabled=False
Command2.Enabled=False
Command3.Enabled=False
Command4.Enabled=False
Command7.Enabled=False
End Sub
第三步:调试并运行程序。
第四步:按题目要求存盘。
(2) [解析] 控件是否可用可利用其Enabled属性设置,当该值为True时可用,为False时不可用(灰色);计算从1到n的数字的和可从1开始向后计算,每一步计算的结果都保留然后再用上一步计算的值和后面的数字计算;清除可使文本框的内容置空来实现(文本框.Text="");显示结果框内的文字不可修改,是通过Locked属性变为True时锁定的。解题步骤:
第一步:建立界面并设置控件属性。程序中用到的控件及其属性见表16-4。
表 16-4
标 题
|
属 性
|
设 置 值
|
Label
|
Name
Caption
|
Label1
该程序的功能是求S∶S=1+2+3+…+n
|
Label
|
Name
Caption
|
Label2
请输入:n(0≤n≤999999999)
|
Label
|
Name
Caption
|
Label3
结果显示框
|
Text
|
Name
|
Text1
|
Text
|
Name
Caption
|
Text2
True
|
Commandbutton
|
Name
Caption
|
Command1
显示结果
|
Commandbutton
|
Name
Caption
|
Command2
清除
|
Commandbutton
|
Name
Caption
|
Command3
关闭
|
第二步:编写程序代码:
程序提供的代码:
Option Explicit
Private Sub Command1_Click()
Dim i As Double
Dim sum As Double
Dim n As Double
sum=0
n=Val(Text1.Text)
For i=1 To n
" sum=?
Next 1
"Text2.Text=?
Command1.Enabled=False
Command2.Enabled=True
End Sub
Private Sub Command2_Click()
"Text1.Text=?
"Text2.Text=?
Command1.Enabled=True
Command2.Enabled=False
End Sub
Private Sub Command3_Click()
End
End Sub
Private Sub Form_Load()
Command1.Enabled=False
Command2.Enabled=False
End Sub
Private Sub Text1_Change()
Command1.Enabled=True
End Sub
Option Explicit
Private Sub Command1_Click()
Dim i As Double
Dim sum As Double
Dim n As Double
sum=0
n=Val(Text1.Text)
For i=1 To n
sum=sum+i
Next i
Text2.Text=sum
Command1.Enabled=False
Command2.Enabled=True
End Sub
Private Sub Command2_Click()
Text1.Text=0
Text2.Text=0
Command1.Enabled=True
Command2.Enabled=False
End Sub
Private Sub Command3_Click()
End
End Sub
Private Sub Form_Load()
Command1.Enabled=False
Command2.Enabled=False
End Sub
Private Sub Text1_Change()
Command1.Enabled=True
End Sub
第三步:调试并运行程序。
第四步:按题目要求存盘。