c语言和c++实现的大致思路
C语言
首先,在读取请求都可以用floor[]
数组来实现对请求的存放,然后模拟电梯的运行,在运行中要时时判断是否有没符合条件的请求,如果有就处理请求。同时也要判断是否有乘客进出电梯,如果有电梯就要停靠,电梯停靠,时间就发生改变,就要再次判断是否有新的请求需处理,每当有新的请求或电梯内人员更新,就要重新判断要去往的楼层。
C++
因为是c++嘛,所以肯定要建个电梯类,因为成员函数的存在所以可以将在c过程中的几个判断的代码整合成几个成员函数。其实在c的实现中这些也可以用函数来实现,但c++的优势也许就在于可以不用那么多参数,也可以对多个变量进行更改。在主函数中处理请求,调用stop函数,判断是否停靠,再调用goingfloor
判断要去的楼层,最后执行going
函数实现电梯的运行。
总的来说,二者还是有很大区别的,但在思路上我用的依旧是c的思路,从面向过程和面向对象名称看来,面向过程解决的是在一个过程中有多个对象参与其中的问题,而面向对象中对象可以同时参与多个过程。嗯,在慕课中有提到许多c++的特性,但这些并不是思想出发点的不同,以上也只是我个人的猜想,对c和c++的不同依旧存在许多疑问。
电梯类
#include<iostream>
using namespace std;
class Elevatorscheduling
{
public:
int currentfloor; //当前位置
int indicator; //运行方向
int people;//电梯内人数
int t;//时间
int nextfloor;
Elevatorscheduling();//初始化
~Elevatorscheduling();
void destinationfloor(int gotofloor);
void showfloor();
};
Elevatorscheduling::Elevatorscheduling()
{
currentfloor=0;
indicator=0;
people=0;
t=0;
}
Elevatorscheduling::~Elevatorscheduling()
{
}
void Elevatorscheduling::destinationfloor(int gotofloor)
{
nextfloor=gotofloor;
if(nextfloor>currentfloor)
{
indicator=1;
}
else if(nextfloor<currentfloor)
{
indicator=-1;
}
}
void Elevatorscheduling::showfloor()
{
cout<<currentfloor<<endl;
}