当前位置: 高中信息技术 / 综合题
  • 1. (2023·嘉兴模拟) 某工厂安排了若干条生产计划,数据存储在Excel文件“task.xlsx”中,数据格式如图a所示,数据以链表形式存储,现要对生产计划进行合理性检查。

    检查结果分为如下三种情况(以完成的任务数m=5为例说明):

    ①安排合理:完成的任务数大于等于m,且执行过程中无重复任务。例如:计划1完成任务的顺序为:任务0→任务6→任务4→任务1→任务5→结束(-1),共安排了5个任务。

    ②任务不足:完成的任务数小于m。例如:计划2完成任务的顺序为:任务6→任务2→任务0→任务1→结束(-1),只安排了4个任务,出错任务为任务1。

    ③任务重复:任务安装中存在重复任务。例如:计划3完成任务的顺序为:任务7→任务3→任务5→任务1→任务0→任务3→结束,其中任务3重复,出错任务为任务 0。

    1. (1) 根据题意,图a中计划4的检查结果为(单选,填字母:A .安排合理 / B .任务不足 / C .任务重复)。
    2. (2) 主程序如下,请在划线处填入合适代码。

      import pandas as pd

      m = int(input('请输入需完成的最少任务数:'))

      df = pd.read_excel('task.xlsx')

      name = list(df.columns[2:]) #取任务名称

      plan = list(df.计划号) #取计划号

      task = list(df.values)

      #task 中的保存 df 中的数据,不含标题。格式如图b所示

      for i in range(len(task)):

          head = task[i][1]

         

          stat,k = check_up(link,head)

          if stat == 2:

              print(plan[i],':安排合理,共完成',k,'项任务')

          elif :

              print(plan[i],':任务重复,出错任务为',name[k])

          else:

              print(plan[i],':任务不足,出错任务为',name[k])

    3. (3) 函数check_up的功能是用于检查一条生产计划是否合理,并返回检查结果,请在划线处填入合适代码。

      def check_up(link,head):

          cnt=1

          p=link[head]

          pre=p

         

          while p!= -1 and p not in finished:

              finished.append(p)

              pre = p

             

              cnt+=1

          if p==-1:

              if cnt<m:

                  return 1,pre

              else:

                  return 2,cnt

          elif p in finished:

              return 0,pre

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