问题 问答题

注意:下面出现的“考生文件夹”均为c:\wexam\25160001。 (1) 在考生文件夹下有工程文件sjt3.vbp及窗体文件sjt3.frm,该程序是不完整的,请在有号的地方填入正确内容,然后删除及所有注释符(即’号),但不能修改其他部分。存盘时不得改变文件名和文件夹。如图16-3所示。 在名称为Form1的窗体上有1个Labe1控件,四个Text控件及七个命令按钮,功能为:开始启动工程时,界面上除“开始录入”及“退出”按钮之外,其他按钮均不可用(灰色显示);单击“开始录入”按钮之后,利用InputBox让用户连续且必须录入10个数。若录入为非数字符号,则给出警告“输入数据无效,请重新输入数值数据,请输入第n个数”;录入完毕后,“开始录入”变灰,其他变为可用状态;按相应的按钮可分别求出所录入数据的升序、降序排列及最大数和最小数,并在右侧对应的文本框中显示(注意用 A(10)存放最大数,A(1)存放最小数);单击“清除”按钮将所有文本框清空。 (2) 在考生文件夹下有工程文件sit4.vbp及窗体文件sjt4.frm,该程序是不完整的,请在有号的地方填入正确内容,然后删除及所有注释符(即’号),但不能修改其他部分。存盘时不得改变文件名和文件夹。如图16-4所示。 在名称为Form1,标题为“求和程序”的窗体上有3个Labe1控件,2个Text控件和3个命令按钮。该程序的主要功能是求从1到Text1中用户输入的任意自然数n的累加和。刚启动工程时,“显示结果”和“清除”按钮均为灰色;可以在输入框内输入任意自然数(n值太大时,运算时间将很长,建议不超过9位)。在输入数的同时“显示结果”变为可用。当输入为非数值时,累加结果为0;单击“显示结果”可以在Text2中显示累加和,且该框内的文字不可修改,同时“显示结果”变灰,“清除”变为可用;单击“清除”,输入框和显示框均显示“0”单击“关闭”按钮结束程序的运行。

答案

参考答案:

解析: 在窗体上建立好控件后,先设置控件属性,再编写事件过程。
用数组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
第三步:调试并运行程序。
第四步:按题目要求存盘。

单项选择题
单项选择题 案例分析题