问答题 在考生文件夹下有工程文件sj3.vbp及窗体文件sj3.frm,该程序是不完整的,请在有“?”的地方填入正确内容,然后删除“?”及代码前的所有注释符(即'号),但不能修改其他部分。存盘时不得改变文件名和文件夹,如下图所示。
在名称为Form1的窗体上有3个Text控件及5个命令按钮,功能为:开始启动工程时,界面上除“读取数据”及“关闭”按钮有效之外,其他按钮均不可用(灰色显示);单击“读取数据”按钮之后,利用InputBox让用户连续且必须输入8个数。若录入为非数字符号,则给出提示“输入数据无效,请重新输入:”。输入完毕后,“读取数据”变灰,其他变为可用状态;按相应的按钮可分别求出所输入数据的升序排列及平均值,并在右侧对应的文本框中显示(注意用A(8)存放最大数,A(1)存放最小数);单击“清空”按钮将所有文本框清空。
【正确答案】用数组str(8)来接收InputBox输入的8个数,InputBox的格式为:InputBox(提示[,标题][,默认][,x坐标位置][.Y坐标位置]);Enabled属性可设置控件是否可用,当该值为True时可用,为False时不可用(灰色);Val()函数将字符转换成数值。
根据题意,将5个命令按钮和3个文本框控件添加到窗体中,命令按钮的名称分别为Command1、Command2、Command3、Command4和Command5,Caption属性分别为“读取数据”、“升序显示”、“平均值”、“清空”和“关闭”,文本框的名称分别为Text1、Text2和Text3,Text属性都为空。双击Command1进入代码窗口,补充后的代码如下:
Dim a(8) As Long
Dim str(8) As String
Private Sub Command1_Click()
Dim strl As String
Dim str2 As String
Dim str3 As String
Dim i As Integer
str3=" "
For i=1 To 8
str2=i
str1="输入第"
str1=str1+str2
str1=str1+"个数"
str(i)=InputBox(str1)
If str(i)=" "Then '如果按取消则重新初始化对话框
Form_Load
End If
While Asc(str(i))>Asc("9") Or Asc(str(i))<Asc("0")
If str(i)=" "Then
Form_Load
End If
str(i)=InputBox("输入数据无效,请重新输入:")
Wend
a(i)=Val(str(i))
str3=str3+str(i)+" "
Next i
Command1.Enabled=False
Command2.Enabled=True
Command3.Enabled=True
Command4.Enabled=True
Text1.Text=str3
End Sub

Private Sub Command2_Click()
Dim i As Integer
Dim k As Integer
Dimj As Integer
Dim temp As Long
Dim str As String
Dim temp As String
For i=1 To 8 '升序排列
temp=a(i)
For j=0 To i
If a(j)temp Then '读取的数据比原位置的数据大
For k=i To j+1 Step-1
a(k)=a(k-1) '数据向后移
Next k
a(j)=temp
Exit For
End If
Next j
Next i
For i=1 To 8
temp=a(i)
str=str+temp+" "
Next i
Text2.Text=str
End Sub

Private Sub Command3_Click() '求平均数
Dim i As Integer
Dim total As Long
total=0
For i=1 To 8
total=total+a(i)
Next i
total=total/8
Text3.Text=total
Command1.Enabled=False
Command2.Enabled=True
Command3.Enabled=False
Command4.Enabled=True
End Sub

Private Sub Command4_Click() '清空所有文本框
Text1.Text=" "
Text2.Text=" "
Text3.Text=" "
Command1.Enabled=True
Command2.Enabled=False
Command3.Enabled=False
Command4.Enabled=False
End Sub

Private Sub Command5_Click() '关闭对话框
Unload Me
End Sub

Private Sub Form_Load() '初始化对话框
Command1.Enabled=True
Command2.Enabled=False
Command3.Enabled=False
Command4.Enabled=False
Command5.Enabled=True
End Sub
单击
【答案解析】