本项目为一款基于计算机编程实现的电梯运行仿真软件的源代码。通过此代码可以构建并测试复杂的多电梯系统模型,优化调度算法以提升效率和用户体验。
建立一个模拟程序来管理一座两层楼的建筑,并且该建筑内设有一部电梯。为了简化问题,在此设定每部电梯仅能搭载一人,每天开始的时候电梯会在一楼等待。
具体要求如下:
1. 模拟程序需要包含一个时钟功能,从零点开始计时。
2. 每层楼的人到来时间由模拟程序中的调度器随机生成。当当前的虚拟时间为某人到达的时间时,该人的信息会被加入到相应的楼层中,并且他会按下电梯按钮请求上电梯。
3. 这个人的目的地不能是他们所在的位置。例如:如果一个人在一楼等待,则他可以立即进入电梯;而如果他在二楼等候,则需要先让电梯升至二层接载此人。
4. 从一楼到达二楼或反之,所需时间为5秒。当电梯达到某一层时,会开启门灯并发出提示音,同时该楼层的按钮以及位于电梯内的对应楼层按钮会被复位;乘客可以离开电梯(如果有等待中的乘客),新来的乘客进入后按下目的地层按钮。
5. 任意时刻每层楼最多只能有一人在等候。如果新的到达者发现所到层数已被占用,则需稍等一秒才能被安排上。
6. 假设每隔5至20秒,人们会随机出现在任一层。
需要为每个类(building, floor, elevator, person, button, time)设计一个头文件来存放相应的定义,并且创建另一个程序文件用于实现这些类。例如:floor.h 和 floor.cpp 文件中可以包含楼层相关的定义和功能实现。
输出结果通过文字表示,如“Person1 arrived on Floor1”、“Person 1 enters Elevator”。