首页 > 技术文章 > 2017级面向对象程序设计 作业三

easteast 2018-05-06 21:00 原文

Deadline:2018-05-13 22:00pm

题目升级

一栋10层的大楼(楼层编号1-10),设3台无限载重的电梯,初始时电梯停在1层。其中:1号电梯只能停留在奇数层,2号电梯可以各层都停留,3号电梯只停留在第1层和偶数层。电梯移动1层的耗时为1,在某一层停靠的耗时为1(时间初始为0)。电梯不允许未仆先知,必须在时间到了之后才能开始响应这条请求。
为了使得电梯完成接送所有乘客的运行时间最短,请你编写一个程序来进行电梯调度。

输入

输入文件的文件名为 input.txt ,其中:第一行为一个非负整数N,代表乘客的请求数量;接下来N行,描述了这N个请求的信息,格式为请求时刻 起始楼层数 去往楼层
保证请求时刻是单调不减的

/*input example*/
2
1 1 2
1 2 1

输出

输出调度决策,3部电梯分别输出到3个文件。文件名分别为output1.txtoutput2.txtoutput3.txt,其中:每一行的输出格式为时刻 停靠楼层。(初始时停在1层的状态不输出
注意:“时刻”指的是在某层楼停靠的时刻,且不算入在该层的停靠时间。

/*onput1.txt为空*/

/*onput2 example*/
3 2

/*onput3 example*/
2 2
4 1

博客要求

  • 选择C或C++代码实现,另一种用文字描述或画图解释程序应如何实现。
  • 描述整个过程中碰到的所有困难以及解决的过程
  • 在博客开头贴出项目的github地址

测试说明

本次作业依然采用互测形式。代码必须遵循一定的代码规范,要有注释,可读性尽可能好。

提交到Github上的项目需新建一个名字为3Elevators-scheduling的文件夹,在里面上传本次的作业代码。

一个示例组织目录如下所示(仅为示例,命名、文件数量等未必需要遵守):

     / 3Elevators-scheduling
         / main.cpp
         / elevator.cpp
         / elevator.h  
         ...
     / BIN
         / elevator.exe
         / input.txt
         / output.txt
         / Lib.dll (exe运行需要的动态链接库文件,可以没有)

推荐阅读