题目

某教室在上午8点到12点的时间段可以安排活动。为了安排尽可能多场次的活动,按以下方法安排:先安排结束时间早的活动;若有多个活动的结束时间相同,则优先安排占用时间少的活动。要求编写一个VB程序,实现上述功能。在文本框Text1中输入一批数据(数据都用逗号分隔并以逗号结尾),奇数位置数据表示某活动的起始时间,偶数位置数据表示该活动的结束时间,单击“确定”按钮Command1后,在列表框List1中显示各活动的起始和结束时间,在列表框List2中显示选择安排的活动。运行界面如图所示。   (1) 要清空Text1中的内容,可以把Text1对象的属性设置为空值。(单选,填字母:A . Caption / B . Text / C . Text.Clear)。 (2) 实现上述功能的VB程序如下,请在划线处填入合适代码。 Private Sub Command1_Click()     Const n = 100     Dim ss As String, t As String, i As Integer     Dim k As Integer, p As Integer, temp As Integer     Dim s(1 To n) As Integer, f(1 To n) As Integer     Dim num(1 To n) As Integer, flag(1 To n) As Boolean     ss = Text1.Text     starttime = 480: endtime = 720      '教室可以安排活动时间为8:00到12:00     k = 0: p = 0     For i = 1 To Len(ss)         ch = Mid(ss, i, 1)         If ch <> "," Then             t = t + ch         Else                          p = (k - 1) \ 2 + 1             If k Mod 2 = 1 Then s(p) = convert(t) Else f(p) = convert(t)             t = ""         End If     Next i     For i = 1 To p         num(i) = i     Next i     For i = 1 To p         List1.AddItem Str(num(i)) + " " + ff(s(i)) + " " + ff(f(i))     Next i     For i = 1 To p - 1         For j = p To i + 1 Step -1             If Then                 temp = num(j): num(j) = num(j - 1): num(j - 1) = temp                 temp = s(j): s(j) = s(j - 1): s(j - 1) = temp                 temp = f(j): f(j) = f(j - 1): f(j - 1) = temp             End If         Next j     Next i     For i = 1 To p         If s(i) >= starttime And f(i) <= endtime Then             flag(i) = True                      End If     Next i     List2.AddItem "活动号 起始时间 结束时间"     For i = 1 To p         IfThen             List2.AddItem Str(num(i)) + "  " + ff(s(i)) + "  " + ff(f(i))         End If     Next i End Sub Function convert(s As String) As Integer     '把时间格式的s转换为整数,如"08:20"转化为500。代码略 End Function Function ff(t As Integer) As String     '把整数t转换为时间格式,如500转化为"08:20"。代码略 End Function (3) 程序加框处的代码有误,请改正。 答案: 【1】B 【1】k = k + 1【2】f(j) < f(j - 1) Or f(j) = f(j - 1) And s(j) > s(j - 1)【3】starttime = f(i) flag(i) 或flag(i) = True   
信息技术 试题推荐
最近更新