题库 题库

【简答题】

试题五(共15分)
    阅读以下应用说明、属性设置以及Visual Basic程序代码,将解答写在答题纸的对应栏内。
[应用说明]
    本应用运行时,由用户输入一个正整数n后自动产生n个正整数,然后按照用户的指定要求对该组数进行处理。该应用的运行界面如下图所示:
    
    1. 窗体中有两个文本框(txtSrc,txtObj)、两个标签(lblSrc,lblObj)、三个命令按钮(cmdGendat,cmdProc,cmdQuit)和一个弹出式菜单(procMenu,初始时不可见)。
    2.文本框txtSrc(由标签lblSrc提示)用于显示产生的数据,文本框txtObj(由标签lblObj提示)用于显示处理结果,要求每行显示一个整数。
    3. 程序启动时,命令按钮cmdProc(运算要求)不可用。点击命令按钮cmdGendat(产生数据)后,提示用户输入一个n的值并生成n个正整数存入数组元素a(1)~a(n),然后将数据逐行显示在txtSrc中,并设置命令按钮cmdProc可用。
    4. 点击命令按钮cmdProc(运算要求)后弹出菜单。选择菜单项并单击后,进行相应处理并将结果显示在txtObj中,同时将lblObj的标题改为该菜单项表示的处理命令。
  弹出式菜单“运算要求”的结构如下表所示:
    
    一个整数序列的中位数指对该序列进行非递减(增)排列后最中间位置上的元素。若序列长度为偶数,则取中间两个元素的平均值为其中位数。
[属性设置]
    为实现单击命令按钮cmdProc 后弹出“运算要求”菜单(procMenu),设计时需将procMenu的 (1) 属性设置成false。
    供(1)选择的属性: Default  Enabled  ScaleMode  Style  Visible
[Visual Basic程序代码]
    Dim a() As Integer, n As Integer
    Private Sub Form_Load()
    txtSrc.Text = "":    txtObj.Text = "":      (2)  = False
    End Sub
    Private Sub cmdGendat_Click()  '生成正整数序列并存入数组a
    On Error GoTo Error_handler
    n = InputBox$("请输入数组元素个数:", "输入序列长度")
    If (n < 1) Then
    MsgBox "输入数据错误!", vbOKOnly, "提示:"
    GoTo Error_handler:
    End If
    ReDim a(n) As Integer
    s = ""
    For i = 1 To n          '将生成的正整数存入a(1)~a(n)中
    a(i) = Int(Rnd * 10000) :  s = s & Str$(a(i)) & vbCrLf
    Next
    txtSrc.Text = s
    (3)          '设置运算要求命令按钮可用
    Error_handler:
    End Sub
    Private Sub cmdProc_Click()
    PopupMenu procMenu
    End Sub
    Private Sub MidNum_Click()      '求中位数
    lblObj.Caption = MidNum.Caption & ":"
    For i = 1  To  round((n + 1)/2)  '用选择排序法对数组a进行部分排序
    a(0) = a(i):k = i      ' a(0)用作临时变量,暂存第i次选出的最小元素
    For j = i + 1  To  n
    If a(j) < a(0) Then
    a(0) = a(j): k =  (4)
    End If
    Next
    If k <> i Then
    a(k) = a(i): a(i) = a(0)
    End If
    Next
    If  n / 2 - n \ 2 > 0 Then        'n为奇数时,取中间一个数
    txtObj.Text = Str$(a( (5) ))
    Else                        'n为偶数时,取中间两个数的平均值
    txtObj.Text = Str$(Int((a(n \ 2) + a(n \ 2 + 1)) / 2))
    End If
    End Sub
    '其他代码略

参考答案

   

相关试题