求一个电梯的调度管理程序,c++的

来源:百度知道 编辑:UC知道 时间:2024/05/22 13:04:37
RT

/*建立一座两层楼,一部电梯的模拟程序。为简化起见,每部电梯限乘一人,电梯每天在一楼关门等待
模拟程序包括一个时钟,每天从零开始。模拟程序得调度器组件随机设置每一层第一个人到来的时间,当时钟的时间等于第一个人到来的时间时,模拟程序生成一个新到的人将该人放到这一层。然后这个人按下按钮,请求电梯开门。这个人的目的地楼层不能与他上电梯的楼层相同。
如果第一个人到达第一层,则可以在按下按钮、等待电梯开门之后立即进入电梯。如果第一个人在第2层,则电梯要升到第2层去接他。电梯从1层移到2层需要5秒。
电梯到达一层时,打开电梯门上的灯,并在电梯内发出铃声,该层的按钮和电梯中表示该层的按钮复位,电梯门打开,乘客走出电梯(如果有到该层的乘客)。另一乘客(如果该层有人等待)进入电梯按下目的层按钮,电梯们关上。电梯移动前确定移动方向(两层很容易判断),为简单起见,电梯到达一层直到关门所花时间为0。
任何时间每层最多只能有一人等待,如果新到的人(不在电梯中)要到达该层时该层被占用,则一秒后才能安排新到达者。假设每隔5到20秒人们随机到达每层*/
#include < iostream >
#include < ctime >
#include < iomanip >
#include < string >
#include <stdlib.h>
#include < windows.h >
using namespace std;

class person
{
public:
string sex; //定义人员类
person();
void newset();
};
person::person()
{ sex="man"; }
void person::newset()
{
int i;
srand((unsigned)time(NULL));