C++电梯仿真

上传人:简****9 文档编号:111810555 上传时间:2019-11-03 格式:DOC 页数:10 大小:60KB
返回 下载 相关 举报
C++电梯仿真_第1页
第1页 / 共10页
C++电梯仿真_第2页
第2页 / 共10页
C++电梯仿真_第3页
第3页 / 共10页
C++电梯仿真_第4页
第4页 / 共10页
C++电梯仿真_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《C++电梯仿真》由会员分享,可在线阅读,更多相关《C++电梯仿真(10页珍藏版)》请在金锄头文库上搜索。

1、一:CElevator.h文件内容 #ifndef CELEVATOR_H#define CELEVATOR_Hconst int MostLayers = 100;class CElevatorpublic:CElevator();/构造函数CElevator(int uLayers, int lLayers);/构造函数CElevator(CElevator &myElevator);/拷贝构造函数 void PressOuterButton(int direction, int floor);/电梯外部各楼层操作按钮void PressInnerDigitalButton(int flo

2、or);/电梯内部数字按钮void PressOpen_CloseButton(int operate);/电梯内部开合控制按钮void PressAlert();/电梯内部报警按钮void run();/电梯运行CElevator();/析构函数protected:void OpenElevator();/打开电梯void CloseElevator();/关闭电梯void UserOperate();/由于程序单线程运行,因此将用户的所有操作集中在每一层停止的时候完成。const int UpperLayers; /电梯最高能到达的楼层const int LowerLayers; /电梯最

3、低能到达的楼层int States5; /电梯当前状态,States0表示运行或停止,0停止,1运行,初值0;States1表示当前所在楼层,初值1;States2表示运行方向,向上0,向下1,初值0;States3表示开合,0开,0合,初值1;States4表示是否故障,0正常,1故障,初值1int DigitalButtonMostLayers;/整形数组,i为楼层且i!=0,i0,iLowerLayers-1表示电梯内地上i楼层按钮是否被按下,0未按,1按下int OuterDownButtonMostLayers;/整形数组,i为楼层且i!=0,i0,iLowerLayers-1表示电

4、梯外i层向下按钮是否被按下,0未按,1按下int OuterUpButtonMostLayers;/整形数组,i为楼层且i!=0,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

5、= 1;/初始电梯为合States4 = 0;/初始电梯正常for(int i=0;iMostLayers;i+)DigitalButtoni = 0; OuterDownButtoni = 0; OuterUpButtoni = 0;CElevator:CElevator(int uLayers, int lLayers):UpperLayers(uLayers),LowerLayers(lLayers)States0 = 0; /初始状态为停止States1 = 1;/初始楼层在楼States2 = 0;/初始方向为向上States3 = 1;/初始电梯为合States4 = 0;/初始电

6、梯正常for(int i=0;iMostLayers;i+)DigitalButtoni = 0; OuterDownButtoni = 0; OuterUpButtoni = 0;CElevator:CElevator(CElevator &myElevator):UpperLayers(myElevator.UpperLayers),LowerLayers( myElevator.LowerLayers)States0 = myElevator.States0; States1 = myElevator.States1;States2 = myElevator.States2;States

7、3 = myElevator.States3;States4 = myElevator.States5;for(int i=0;iMostLayers;i+)DigitalButtoni = myElevator.DigitalButtoni;OuterDownButtoni = myElevator.DigitalButtoni;OuterUpButtoni = myElevator.DigitalButtoni;CElevator:CElevator()void CElevator:PressOuterButton(int direction, int floor) if(directio

8、n=0)OuterUpButtonfloor-LowerLayers-1 = 1;elseOuterDownButtonfloor-LowerLayers-1 = 1;void CElevator:PressInnerDigitalButton(int floor)DigitalButtonfloor-LowerLayers-1 = 1;void CElevator:PressOpen_CloseButton(int operate)if(operate = 0)/打开电梯 OpenElevator();else/关闭电梯CloseElevator();void CElevator:OpenE

9、levator()if(States3 = 0)cout电梯已打开,请先出后进!endlendl;else cout电梯正在打开 电梯已打开,请先出后进!endlendl; States3 = 0;void CElevator:CloseElevator() if(States3 = 1)cout电梯已关闭,请保持安静!endlendl;else cout电梯正在关闭 电梯已关闭,请保持安静!endlendl;States3 = 1;void CElevator:PressAlert()cout电梯内部有人报警,请援助!endl;States4 = 1;void CElevator:UserO

10、perate()/按报警按钮int alm = 0;coutalm;coutendl;if(alm=1)States4 = 1;while(States4=1)coutalm;coutendl;if(alm = 0 | alm =1)States4 = alm;elsecout维修数据不正确!endl;OpenElevator();/电梯内部输入到达楼层cout请电梯内乘客输入所要到达的楼层!endl;coutfloor;if(floor=0)break;if(floor=LowerLayers) & (floor=UpperLayers) & (floor!=States1)if(floor

11、0)/地下 DigitalButtonfloor-LowerLayers = 1;else/地上DigitalButtonfloor-LowerLayers-1 = 1;/没有楼coutendl; /电梯外部各楼层输入上楼信号cout请电梯外部乘客输入上楼信号!endl;coutfloor;if(floor=0)break;elseif(floor=LowerLayers) & (floorUpperLayers) & (floor!=States1)if(floor0)/地下OuterUpButtonfloor-LowerLayers = 1;else/地上OuterUpButtonfloor-LowerLayers-1 = 1;/没有楼coutendl;/电梯外部各楼层输入下楼信号cout请电梯外部乘客输入下楼信号,endl;coutfloor;if(floor=0)break;elseif(floorLowerLayers) & (floor=UpperLayers) & (floor!=States1)if(floor0)/地下

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 管理学资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号