1 / 9
文档名称:

电梯算法问题.docx

格式:docx   大小:15KB   页数:9页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

电梯算法问题.docx

上传人:85872037 2018/6/25 文件大小:15 KB

下载得到文件列表

电梯算法问题.docx

相关文档

文档介绍

文档介绍:某栋写字楼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