C++电梯仿真Word格式.docx

上传人:b****3 文档编号:18278731 上传时间:2022-12-15 格式:DOCX 页数:14 大小:17KB
下载 相关 举报
C++电梯仿真Word格式.docx_第1页
第1页 / 共14页
C++电梯仿真Word格式.docx_第2页
第2页 / 共14页
C++电梯仿真Word格式.docx_第3页
第3页 / 共14页
C++电梯仿真Word格式.docx_第4页
第4页 / 共14页
C++电梯仿真Word格式.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

C++电梯仿真Word格式.docx

《C++电梯仿真Word格式.docx》由会员分享,可在线阅读,更多相关《C++电梯仿真Word格式.docx(14页珍藏版)》请在冰豆网上搜索。

C++电梯仿真Word格式.docx

voidOpenElevator();

//打开电梯

voidCloseElevator();

//关闭电梯

voidUserOperate();

//由于程序单线程运行,因此将用户的所有操作集中在每一层停止的时候完成。

constintUpperLayers;

//电梯最高能到达的楼层

constintLowerLayers;

//电梯最低能到达的楼层

intStates[5];

//电梯当前状态,States[0]表示运行或停止,0停止,1运行,初值0;

States[1]表示当前所在楼层,初值1;

States[2]表示运行方向,向上0,向下1,初值0;

States[3]表示开合,0开,0合,初值1;

States[4]表示是否故障,0正常,1故障,初值1

intDigitalButton[MostLayers];

//整形数组,i为楼层且i!

=0,i<

0时下标i-LowerLayers表示电梯内地下i楼层按钮是否被按下,i>

0,i-LowerLayers-1表示电梯内地上i楼层按钮是否被按下,0未按,1按下

intOuterDownButton[MostLayers];

0时下标i-LowerLayers表示电梯外i层向下按钮是否被按下,i>

0,i-LowerLayers-1表示电梯外i层向下按钮是否被按下,0未按,1按下

intOuterUpButton[MostLayers];

0时下标i-LowerLayers表示电梯外i层向上按钮是否被按下,i>

0,i-LowerLayers-1表示电梯外i层向上按钮是否被按下,0未按,1按下

};

#endif

 

二:

CElevator.cpp文件内容

#include<

iostream>

#include"

CElevator.h"

usingnamespacestd;

CElevator:

:

CElevator():

UpperLayers(10),LowerLayers

(1)

States[0]=0;

//初始状态为停止

States[1]=1;

//初始楼层在楼

States[2]=0;

//初始方向为向上

States[3]=1;

//初始电梯为合

States[4]=0;

//初始电梯正常

for(inti=0;

i<

MostLayers;

i++)

{

DigitalButton[i]=0;

OuterDownButton[i]=0;

OuterUpButton[i]=0;

}

}

CElevator(intuLayers,intlLayers):

UpperLayers(uLayers),LowerLayers(lLayers)

}

CElevator(CElevator&

myElevator):

UpperLayers(myElevator.UpperLayers),LowerLayers(myElevator.LowerLayers)

States[0]=myElevator.States[0];

States[1]=myElevator.States[1];

States[2]=myElevator.States[2];

States[3]=myElevator.States[3];

States[4]=myElevator.States[5];

DigitalButton[i]=myElevator.DigitalButton[i];

OuterDownButton[i]=myElevator.DigitalButton[i];

OuterUpButton[i]=myElevator.DigitalButton[i];

~CElevator()

voidCElevator:

PressOuterButton(intdirection,intfloor)

if(direction==0)

OuterUpButton[floor-LowerLayers-1]=1;

else

OuterDownButton[floor-LowerLayers-1]=1;

PressInnerDigitalButton(intfloor)

DigitalButton[floor-LowerLayers-1]=1;

PressOpen_CloseButton(intoperate)

if(operate==0)//打开电梯

OpenElevator();

else//关闭电梯

CloseElevator();

OpenElevator()

if(States[3]==0)

cout<

<

"

电梯已打开,请先出后进!

endl<

endl;

cout<

电梯正在打开…电梯已打开,请先出后进!

States[3]=0;

CloseElevator()

if(States[3]==1)

电梯已关闭,请保持安静!

电梯正在关闭…电梯已关闭,请保持安静!

States[3]=1;

PressAlert()

电梯内部有人报警,请援助!

States[4]=1;

UserOperate()

//按报警按钮

intalm=0;

按报警按钮吗?

输入1表示按,0表示不按:

;

cin>

>

alm;

if(alm==1)

States[4]=1;

while(States[4]==1)

{

cout<

电梯出现故障,请维修!

维修好请输入0,维修不好请输入1!

cin>

if(alm==0||alm==1)

{

States[4]=alm;

}

else

cout<

维修数据不正确!

}

//电梯内部输入到达楼层

请电梯内乘客输入所要到达的楼层!

多个楼层中间用空格隔开,结束输入0:

intfloor=1;

while(true)

cin>

floor;

if(floor==0)

break;

if((floor>

=LowerLayers)&

&

(floor<

=UpperLayers)&

(floor!

=States[1]))

if(floor<

0)//地下

DigitalButton[floor-LowerLayers]=1;

else//地上

DigitalButton[floor-LowerLayers-1]=1;

//没有楼

//电梯外部各楼层输入上楼信号

请电梯外部乘客输入上楼信号!

多个楼层用空格隔开,结束输入0:

else

if((floor>

UpperLayers)&

if(floor<

{

OuterUpButton[floor-LowerLayers]=1;

}

else//地上

OuterUpButton[floor-LowerLayers-1]=1;

//电梯外部各楼层输入下楼信号

请电梯外部乘客输入下楼信号,"

LowerLayers)&

OuterDownButton[floor-LowerLayers]=1;

OuterDownButton[floor-LowerLayers-1]=1;

//按开电梯按钮

intdirection=0;

电梯将要关闭,等人请按打开按钮!

输入1表示按,表示0不按:

direction;

if(direction==1)

OpenElevator();

50;

i++);

//延时

//按关电梯按钮

按关电梯按钮吗?

for(inti=0;

run()

if(States[0]==0)

电梯停在"

States[1]<

层!

if(States[2]==0)//向上

if(States[1]<

OuterUpButton[States[1]-LowerLayers]=0;

//将记录电梯States[1]层有向上的标志取消

DigitalButton[States[1]-LowerLayers]=0;

//将记录电梯在States[1]层停靠的标志取消

OuterUpButton[States[1]-LowerLayers-1]=0;

DigitalButton[States[1]-LowerLayers-1]=0;

}

else//向下

OuterDownButton[States[1]-LowerLayers]=0;

//将记录电梯States[1]层有向下的标志取消

OuterDownButton[States[1]-LowerLayers-1]=0;

}

if(States[1]==1)

终止电梯程序运行吗?

终止输入1,继续运行输入0:

inttemp=0;

cin>

temp;

if(temp==1)

exit(0);

UserOperate();

States[0]=1;

States[1]++;

if(States[1]==0)

States[1]++;

//没有层

}else

cout<

电梯向上运行,将要到达"

if(States[1]==UpperLayers)//向上到最顶,必定要停,且方向变为向下

{

States[2]=1;

//变方向

States[0]=0;

}

else

{

if(OuterUpButton[States[1]-LowerLayers-1]==0&

DigitalButton[States[1]-LowerLayers-1]==0)

{

cout<

没有乘客在"

层上下,电梯继续向上运行!

}

else

States[0]=0;

}

States[1]--;

States[1]=-1;

else

电梯向下运行,将要到达"

if(States[1]==LowerLayers)//向下到最底,必定要停,且方向变为向上

States[2]=0;

States[0]=0;

if(OuterDownButton[States[1]-LowerLayers-1]==0&

层上下,电梯继续向下运行!

}

}

}

三:

main.cpp主函数文件内容

#include<

voidmain()

CElevatormyElevator(8,-3);

myElevator.run();

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 外语学习 > 英语学习

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1