实现简单电梯调度
- 本程序基于以下设定:
- 在乘客请求电梯时,电梯才知道乘客的信息。
- 电梯在每秒内会规划好下一秒的行动。
- 电梯不会超载,乘客不会等的不耐烦去走楼梯。
- 电梯可以在运行过程中瞬间掉头。
- 乘客请求时刻为整数时刻。
- 程序信息:
- 程序包括一个头文件,一个头文件中类的实现,和一个主函数。
- 头文件
passager.h
。- 长度20行。
- 包括类:
passager
。 - 成员变量(
public
):id(int)
:记录乘客的编号。isok(int)
:记录乘客的状态,分为0,1,2
三种,00
:还未进入电梯。1
:已经进入了电梯。2
:已经离开了电梯。
floor(int)
:表示请求电梯时所在的楼层。direction(int)
:表示目标楼层。time(int)
:表示请求电梯的时间。goal(int)
:表示此时请求电梯前往的楼层。
- 成员函数(
public
):passager
:构造函数。~passager
:析构函数。call(void)
:- 输入:此时的时间。
- 作用:更新该事件乘客的目标。
in_out(int)
:- 输入:现在的楼层和现在的时间。
- 作用:判断是否有乘客需要进出,并更新乘客的状态。
- 输出:离开的乘客所等待的时间。
- 重载运算符
>>
:- 作用:输入时间,请求电梯时乘客所在的楼层,和目标楼层,并将目标楼层改为
1
或10
。
- 作用:输入时间,请求电梯时乘客所在的楼层,和目标楼层,并将目标楼层改为
- 源文件
passager.cpp
:为passager
类的实现。- 长度:62行。
- 源文件
lift.cpp
:- 长度:100行。
- 变量:
liftgoal(int)
:电梯当前运行目标。nowtime(int)
:当前时间。liftfloor(int)
电梯当前所在楼层。goalid(int)
:电梯当前运行目标的请求乘客编号。sumtime(int)
:总等待时间。
- 函数:(未完待续)
原文地址:https://www.cnblogs.com/jhy16193335/p/8426760.html
时间: 2024-10-07 17:34:05