c++的实现过程
在这次的作业中,要求是三个不同的电梯,但是我并没有建三个电梯类,而是在处理请求时判断要去往楼层的类型,再分别放入相对应的电梯里,比如只在奇数层停的电梯,它没有去往偶数层的请求,就不会在偶数层停靠。然后其它的与上次作业实现思路上并没有太大的差别,仍然是用···floor[]···数组来对请求的存放,电梯运行模拟的是现实生活中的电梯,不倒退,此外在判断运行方向是新增加了一种情况,在电梯静止时,如果向上和向下同时有请求,运行方向向上。在请求同时符合两台电梯运行条件的情况下,根据电梯内人数和等候的人数选择人数较少的那台。
遇到的困难及解决方法
由于有上次作业的基础,这次遇到的困难主要是在改bug,有一个是样例,我的其中一个输出与答案差一秒,因为我一开始选择电梯时是根据电梯内人数选择的,这样就会造成两个人等的都是同一台,经过修改后,我的输出还是差了一秒,然后发现我的电梯不能处理同一楼层的多个请求,所以即使第二个请求是一时刻发出的,但是依然会等到二时刻才开始处理,于是我对请求的处理进行了调整,只要有对请求进行处理,电梯就不运行,直到没有处理说明此刻没有请求,再考虑电梯的运行。