C实现电梯调度流程
![1378298-20180505230346778-1052632558.png](https://i-blog.csdnimg.cn/blog_migrate/4495558aba3c459c56e4adb734742aa7.png)
C++对象实现类图
![1378298-20180505230715956-1732979553.png](https://i-blog.csdnimg.cn/blog_migrate/929ec876fe076db8b656547db09e5878.png)
对比分析
C
C中主要是使用多个函数对变量进行数据处理的各项操作。
每个函数可能复杂度较高,一个函数进行多种运算后可得到相近于最终结果的数据。
各个函数组成一个核心算法,除算法外无其他有型结构。
数据流动比较随意,只有相对的流动方向,没有相对严谨的隶属结构层次。
C++
C++主要是一个模拟事物的思想,在程序内部将电梯的主要特点捆绑构造为类。
在类中,数据流动方向固定,私有性数据不能随意被篡改,具有高隐蔽性。
类可以附带成员函数,来分担实现一些小功能,因此核心算法可以变得更简化。
在main函数中可通过调用电梯类公用方法获得各种参数,以更便利地运算数据。
数据命名规范,隶属层次分明,面对大数据时用起来更不容易出错。
比较简单的电梯类
#include<queue>
class Elevator
{
private:
int CurrentTime; //当前时间
int CurrentFloor; //当前楼层
queue<int> Destination; //目标队列
int CurrentDirection; //当前方向,<0下,>0上
public:
Elevator(); //构造
~Elevator(); //析构
int GetCurrentFloor(); //当前楼层
void SetNextDestination(int); //接受下一层指令
}
Elevator::~Elevator()
{
cout<<"Elevator has been uninstalled!"<<endl;
}
Elevator::int GetCurrentFloor()
{
return CurrentFloor;
}
Elevator::void SetNextDestination(int Next)
{
Destination.push(Next);
CurrentDirection=Next-CurrentFloor;
}