软题库 移动APP 扫码下载APP 随时随地移动学习 培训课程
当前位置:信管网 >> 在线考试中心 >> 信息系统项目管理师题库 >> 试题查看
试卷名称 2008年下半年程序员考试下午真题试题(案例分析)
考试中心《2008年下半年程序员考试下午真题试题(案例分析)》在线考试
试卷年份2008年下半年
试题题型【分析简答题】
试题内容

阅读以下应用说明、属性设置以及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 从下列3道试题(试题五至试题七)中任选1道解答。如果解答的试题数超过1道,则题号小的1道解答有效。   
【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
’其他代码略 


相关试题

推荐文章
合作网站内容