当前位置: 高中信息技术 / 综合题
  • 1. (2020高三上·浙江月考) 某著名景点在七月份收到若干旅游公司的通告,通告中包括该公司旅游的起始时间和终止时间, 如[6,10]表示该旅行团 6 号早上到,10 号早上回。疫情期间为避免人员扎堆,公司在时间段[start, ending]进行限流操作,要求在该时间段内景点每天都接待游客,且接待的旅行团越少越好。若景点收到的旅行团的数据是[3,8]、[3,6]、[8,15]、[18,25]、[14,20]、[5,10],[10,18]、[13,18]限流时间是[4,19]。工作人员对旅行团的数据做了如下处理:

    ①将旅行团的旅行时间按照“到达时间”为主要关键字,“返回时间”为次要关键字升序排序。排好序的时间段是[3,6]、[3,8]、[5,10]、[8,15]、[10,18]、[13,18],[14,20]、[18,25].

    ②从前往后遍历时间段,选择“到达时间”不大于“限流开始时间”的时间段,若有多个时间段满足条件,且时间段未超出限流时间,应选择“返回时间”最大的时间段,选择的时间段是[3,8]。

    ③缩小限流时间[8,19],重复步骤 2,选择满足条件的时间段是[8,15],缩小限流时间[15,19],重复步骤 2,选择满足条件的时间段是[14,20],结束时间已超过限流终止时间,结束。

    ④若在遍历时间过程中出现“到达时间”大于“限流开始时间”,景点不能每天接待旅客,则没有满足条件的旅行社。

    小王编写VB程序,程序界面如下所示,单击“排序”按钮,将旅行团的时间按照“到达时间”为主要关键字,“返回时间”为次要关键字升序排序,在Text1和Text2中输入限流的起始时间和终止时间,单击“满足条件的旅行团”按钮,在列表框输出满足条件的旅行团的时间,若没有满足条件的旅行社,则在列表框输出“没有满足条件的旅行团!”

    回答下列问题:

    1. (1) 若景点接收到的旅行社的起始时间和终止时间分别为[5,17]、[7,18]、[4,12]、[3,8]、[2,10],限流时间是[3,15],筛选出的旅行团的时间是
    2. (2) 请在横线处填入合适的代码

      Dim i As Integer, j As Integer, n As Integer, t As Integer Dim a(100) As Integer, b(100) As Integer

      Private Sub Command1_Click()

      '将旅行团个数存入n,加载n个旅行团的起始时间、终止时间并分别放在数组a和数组b中,代码略

          For i = n to 2 step -1

              j=1

              Do while

                  If a(j) > a(j + 1) Or a(j) = a(j + 1) And b(j) > b(j + 1) Then

                      t = a(j): a(j) = a(j + 1): a(j + 1) = t

                      t = b(j): b(j) = b(j + 1): b(j + 1) = t

                  End If

                  j=j+1

              Loop

          Next i

      '输出排好序的时间段,代码略

      End Sub

      Private Sub Command2_Click()

          Dim arrivetime As Integer, leavetime As Integer

          start = Val(Text1.Text): ending = Val(Text2.Text)

          For i = 1 To n

              arrivetime = start

              If a(i) <= arrivetime Then

                  If b(i) > leavetime Then leavetime = b(i): t=i

                  IfThen

                      List2.AddItem  Str(a(t))  &  "---"  &  Str(b(t)) Exit For

                  End If

                  Else

                      If start < arrivetime or i = 1 Then

                          List2.Clear

                          List2.AddItem "没有满足条件的旅行团!"

                     Exit For

                  End If

                  List2.AddItem Str(a(t)) & "---" & Str(b(t))

                 

                  i = i – 1

              End If

          Next i

      End Sub

微信扫码预览、分享更方便