Python第一次作业,也不知道学校为什么布置得这么难
您正在一个非常小的机场中担任地面服务代理,您的工作是处理中国东方航空公司从您的机场到上海浦东的航班的登机流程。您的机场很小,但是到浦东的航线却很受欢迎,您需要准时登上所有乘客,以便飞机能够按计划起飞。但是,由于机场很小,因此没有登机桥,这意味着所有乘客都需要使用穿梭巴士上飞机。由于机场很小(再次),您只有一辆穿梭巴士,一次只能载20名乘客上飞机。公交车将需要10分钟从登机口出发,然后返回。您需要按时上车所有乘客,否则他们将不高兴!
您的乘客已经在登机口前排队等候。现在,您的工作就是使用Python编程语言设计一个程序,以给定乘客人数和到达时间,为乘客分配一趟往返班车。请参阅下面的详细说明。
任务1:登机计划
让我们首先考虑最简单的情况。
现在,您负责只出售经济舱座位的航班,因此只有一班旅客。现在,您可以使用唯一可用的穿梭巴士登机,每次只能载20人到飞机上。假设您的穿梭巴士可将一批乘客从登机口带到飞机,然后在10分钟内返回。公交车一回到登机口,便准备好与新乘客再次出发。
您会在排队中等待的乘客列表中标有到达时间,航班号和登机开始时间。登机时间一到,您就应该开始登机。登机过程应遵循FCFS的原则(先到先得,即先到达登机口的乘客先上穿梭巴士)。您的程序应输出每个回合的出发时间,然后输出在每个特定回合中转入飞机的乘客列表。您可以假设程序输入中的乘客列表是按到达登机口的时间以升序排列的。
同样,航空安全也很重要。为防止劫机,您应防止没有登机证的乘客登机。为此,您需要检查每位试图登机的乘客的航班号。如果他/她的登机证的航班号与航班号不同,则不应将乘客登上公共汽车(和飞机)。
您的登机流程安排程序应遵循任务1的以下规则以及以下两项任务:
穿梭巴士超载是非常危险的。您只应为一轮换乘分配少于或等于穿梭巴士容量(20名乘客)的乘客人数;
为了使过程更加高效,只有在上一轮除外,即登机口的候车人数可能少于20人时,巴士才应发车。
乘客只有在公共汽车出发之前或确切时间到达登机口时才可以登上公共汽车;
一旦不再需要转移乘客,就停止输出。程序输出中的乘客应按到达登机口的时间排序。
您可以参考附录A中有关程序输入和输出的规范。您的解决方案应该在中task1.py。
附录A.输入和输出
我们将通过标准输入(例如stdin)为您的程序提供排队旅客和其他信息的列表来测试您的程序,并且您的程序应将乘客的姓名输出到标准输出(即stdout),以便我们检查程序是否是否正确。您可以在testcases家庭作业存储库的目录中找到一些示例输入和输出。
您可以按照以下Shell中的代码片段的方式测试程序:
$ python3 task1.py < testcase > output
其中输入位于名为的文件中testcase,而程序的输出将位于名为的文件中output。
输入格式将以以下格式给出。
<flight-num> <passenger-num> <boarding-time>
<ordinary-lane-passenger-num>
<passenger1-arrival-time> <passenger1-name> <passenger1-flight-num>
<passenger2-arrival-time> <passenger2-name> <passenger2-flight-num>
...
<passengern-arrival-time> <passengern-name> <passengern-flight-num>
按照以下语义解释输入。
不同的令牌由一个或多个空格分隔;
输入的每一行都以一个换行符结尾,即n;
输入分为三部分,不同的部分由一个附加的换行符分隔。第一个为您提供有关航班的一些基本信息。第二个列表为您提供在普通车道上等待的乘客列表。第三部分将为您提供在优先车道上等待的乘客列表。对于任务1,省略了第三部分(和最后一个换行符);
<flight-num>是一个字符串,可以唯一地标识出您的机场中没有空格的单个航班(例如MU233);
<passenger-num> 将为您提供最终登机的乘客总数;
<boarding-time>提供登机开始的时间(以秒为单位)。它是整数;
每个乘客清单部分均分为两部分。第一部分是单个数字<*-lane-passenger-num> ,该整数是指示队列中乘客人数的整数。第二个是乘客条目行,可以为您提供有关队列中乘客的信息。
<passengerk-arrival-time>是一个整数,指示乘客的到达时间(以秒为单位)。较大的到达时间意味着乘客会稍后到达。
<passengerk-name> 是乘客的名字,您可以假设它唯一地标识了一个乘客;
<passengerk-flight-num>以与相同的格式给出乘客的航班号<flight-num>;
您可以假设乘客名单按到达时间的顺序排列。
您的输出应采用以下格式:
<round1-departure-time>: <name-passenger1> ... <name-passengerm>
...
<roundn-departure-time>: <name-passenger1> ... <name-passengerm>
求大神帮帮忙,快到ddl了还没有头绪,谢谢!!!