当我用C语言实现电梯问题的时候,我首先想到的就是怎么才能实现这个调度。 我首先把一个模拟电梯的函数给打了出来,先让这个程序模拟电梯的运行,而后加入了算法。在C语言完成电梯问题的过程当中,我用了一个,我用了不少的函数来实现这个电梯的代码。就是想着怎么让这个电梯能完成这个最短期的分配就好。因而我就把全部的变量写在这个Cpp里。 我是这么完成的:
而后我在把模拟电梯的函数打好。
3。再加入电梯的调度算法。算法
我先创建了一个elevator类,而后再将这个类中的有关电梯的代码,电梯的变量打进去。就好像这个是专门负责电梯这一块的。在用C++打电梯的调度问题时,我用了一个cpp,一个.h把负责电梯的这一块代码写好,再放进头文件里。
就是以为若是C语言来实现这个代码的时候是一个车间的话,C++则是一个公司吧。。不知道这样说对不对emmm.
而后下面是个人类。函数
class elevector { public: int currentFloor; int input[3]; int time; int floor; int passengerFloor; int targetFloor; int requestTime; elevector(void) ; ~elevector() ; void goToFloor1(int passengerFloor, int targetFloor, int requestTime, int *time, int* floor); void goToFloor2(int passengerFloor, int targetFloor, int requestTime, int *time, int* floor); void stop(int* time); //void updateDestinationQ(int floor); }; void elevector::goToFloor1(int passengerFloor, int targetfloor, int requestTime, int *time, int* floor) { int *nowTime; nowTime = time; if (requestTime > *nowTime) *time += (abs)(requestTime - *nowTime); *time += (abs)(*floor - targetfloor); *floor = targetfloor; } void elevector::goToFloor2(int passengerFloor, int targetfloor, int requestTime, int *time, int* floor) { int *nowTime; nowTime = time; if (requestTime>*nowTime) *time += (abs)(requestTime - *nowTime); *time += (abs)(*floor - passengerFloor); *floor = passengerFloor; } void elevector::stop(int* time) { *time += 1; } elevector::elevector(void) { } elevector::~elevector() { }