文档介绍:某栋写字楼6层,有1部电梯,编写一个电梯仿真程序
A. 考虑如下条件
1. 每层楼都有上行和下行两个按键
,时间间隔和到达楼层是随机的
,同时只能容纳一定数量的客人,如果已经达到人数额度,电梯将不理会任何请求
(比如,电梯往3楼上行,3楼的客人在电梯到达3楼之前按上行键,程序有权调度电梯在3楼开门)
,匀速运行
(比如在10秒的时候电梯无法预知11秒时某层客人的请求)
B. 目标
2. 设计一个接口,实现调度算法的可替换性(比如,通过重新实现该接口可以使系统使用其它算法)
C. 输入和输出
输入:
客人的请求序列,格式为到达时间,所在楼层,请求楼层,假设该输入是按照时间递增的
比如:
1 2 3
2 3 1
在1秒的时候有客人请求从2层到3层,2秒的时候有客人请求从3层到1层
输出: 设计一种简单实用的输出可以清晰地反映电梯的运转情况
#include<iostream>
#include<>
using std::cout;
using std::cin;
using std::endl;
struct floor
{
    int to;   
    floor* next;
};
struct Node
{
    int up;
    int down;
    floor* downto;
    floor* upto;
};
int ren;
class lift
{
    private:
        int current;
        int toward;
        int person;
        int rch_person[7];
    public:
        enum { null,up,down };
        lift():current(1),toward(null),person(0){ for(int i=1;i<7;i++) rch_person[i]=0; };
        int how_person(){ return person; };
        int return_toward(){ return toward; };
        void set_current();
        void set_toward(Node*);
        int return_current(){ return current; };
        void insert_reach(int x);
        void out_reach();
        void show(){ cout<<"Now is