當我用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() { }