1、/电梯内部开合控制按钮void PressAlert();/电梯内部报警按钮void run();/电梯运行CElevator();/析构函数protected: void OpenElevator();/打开电梯void CloseElevator();/关闭电梯void UserOperate();/由于程序单线程运行,因此将用户的所有操作集中在每一层停止的时候完成。const int UpperLayers; /电梯最高能到达的楼层const int LowerLayers; /电梯最低能到达的楼层int States5; /电梯当前状态,States0表示运行或停止,0停止,1运行,初
2、值0;States1表示当前所在楼层,初值1;States2表示运行方向,向上0,向下1,初值0;States3表示开合,0开,0合,初值1;States4表示是否故障,0正常,1故障,初值1 int DigitalButtonMostLayers;/整形数组,i为楼层且i!=0,i0,iLowerLayers-1表示电梯内地上i楼层按钮是否被按下,0未按,1按下int OuterDownButtonMostLayers;0时下iLowerLayers表示电梯外i层向下按钮是否被按下,i0iLowerLayers-1表示电梯外i层向下按钮是否被按下,0未按,1按下int OuterUpButt
3、onMostLayers;0时下标iLowerLayers表示电梯外i层向上按钮是否被按下,i0,iLowerLayers-1表示电梯外i层向上按钮是否被按下,0未按,1按下; #endif 二:CElevator.cpp文件内容#include#include CElevator.husing namespace std;CElevator:CElevator():UpperLayers(10),LowerLayers(1) States0 = 0; /初始状态为停止States1 = 1;/初始楼层在楼States2 = 0;/初始方向为向上States3 = 1;/初始电梯为合State
4、s4 = 0;/初始电梯正常for(int i=0;iMostLayers;i+) DigitalButtoni = 0;OuterDownButtoni = 0;OuterUpButtoni = 0; CElevator(int uLayers, int lLayers):UpperLayers(uLayers),LowerLayers(lLayers) myElevator):UpperLayers(myElevator.UpperLayers),LowerLayers( myElevator.LowerLayers) States0 = myElevator.States0;States
5、1 = myElevator.States1;i+) i+) DigitalButtoni = 0; UpperLayers(myElevator.UpperLayers),LowerLayers(myElevator.LowerLayers) States2 = myElevator.States2;States3 = myElevator.States3;States4 = myElevator.States5;DigitalButtoni = myElevator.DigitalButtoni;OuterDownButtoni = myElevator.DigitalButtoni;Ou
6、terUpButtoni = myElevator.DigitalButtoni;CElevator() void CElevator:PressOuterButton(int direction, int floor)if(direction=0) OuterUpButtonfloor-LowerLayers-1 = 1;else OuterDownButtonfloor-LowerLayers-1 = 1;PressInnerDigitalButton(int floor) DigitalButtonfloor-LowerLayers-1 = 1;PressOpen_CloseButton
7、(int operate) if(operate = 0)/打开电梯OpenElevator();else/关闭电梯 CloseElevator();OpenElevator() if(States3 = 0) cout电梯已打开,请先出后进!endlendl;电梯正在打开电梯已打开,请先出后进!States3 = 0;CloseElevator() if(States3 = 1) cout电梯已关闭,请保持安静!电梯正在关闭电梯已关闭,请保持安静!PressAlert() 电梯内部有人报警,请援助!States4 = 1;UserOperate() /按报警按钮int alm = 0; co
8、utalm;if(alm=1) while(States4=1) 电梯出现故障,请维修!维修好请输入0,维修不好请输入1!if(alm = 0 | alm =1) States4 = alm;维修数据不正确!/电梯内部输入到达楼层请电梯内乘客输入所要到达的楼层!多个楼层中间用空格隔开,结束输入0:int floor = 1;while(true) floor;if(floor=0) break;if(floor=LowerLayers) & (floor=UpperLayers) & (floor!=States1) if(floor0)/地下DigitalButtonfloor-LowerLayers = 1;else/地上/没有楼 /电梯外部各楼层输入上楼信号请电梯外部乘客输入上楼信号!多个楼层用空格隔开,结束输入0: (fl
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1