
电梯程序通过编程写入进入。根据查询相关信息显示程序由编程计算机送入PLC,读出则是将PLC内的程序传送到计算机中。将与电梯升级任务信息对应的电梯升级程序文件通过电梯通讯设备转发给电梯主板进行程序写入。在电梯主板完成程序写入时,比较电梯主板上的当前程序文件中的程序数据和电梯升级程序文件中的程序数据,若两者完全相同,则记录升级成功的作业信息,若两者不完全相同,则记录升级失败的作业信息。将升级成功的作业信息或者升级失败的作业信息发送至服务器。
/建立一座两层楼,一部电梯的模拟程序。为简化起见,每部电梯限乘一人,电梯每天在一楼关门等待
模拟程序包括一个时钟,每天从零开始。模拟程序得调度器组件随机设置每一层第一个人到来的时间,当时钟的时间等于第一个人到来的时间时,模拟程序生成一个新到的人将该人放到这一层。然后这个人按下按钮,请求电梯开门。这个人的目的地楼层不能与他上电梯的楼层相同。
如果第一个人到达第一层,则可以在按下按钮、等待电梯开门之后立即进入电梯。如果第一个人在第2层,则电梯要升到第2层去接他。电梯从1层移到2层需要5秒。
电梯到达一层时,打开电梯门上的灯,并在电梯内发出铃声,该层的按钮和电梯中表示该层的按钮复位,电梯门打开,乘客走出电梯(如果有到该层的乘客)。另一乘客(如果该层有人等待)进入电梯按下目的层按钮,电梯们关上。电梯移动前确定移动方向(两层很容易判断),为简单起见,电梯到达一层直到关门所花时间为0。
任何时间每层最多只能有一人等待,如果新到的人(不在电梯中)要到达该层时该层被占用,则一秒后才能安排新到达者。假设每隔5到20秒人们随机到达每层/
#include < iostream >
#include < ctime >
#include < iomanip >
#include < string >
#include <stdlibh>
#include < windowsh >
using namespace std;
class person
{
public:
string sex; //定义人员类
person();
void newset();
};
person::person()
{ sex="man"; }
void person::newset()
{
int i;
srand((unsigned)time(NULL));
for(i=0;;i++)
{
if(rand()==1)
{sex="man"; break; }
if(rand()==2)
{sex="woman"; break; }
}
}
class elevator
{
public:
int now; //定义电梯类
elevator();
};
elevator::elevator()
{ now=1; }
class Time
{
public:
static void outtime() //定义时间类,用于输出电梯每次运行时的时间
{
SYSTEMTIME t;
GetLocalTime(& t);
cout<<" //"<<twYear<<""<<twMonth<<""<<twDay<<" "<<twHour<<":"<<twMinute<<":"<<twSecond<<endl;
}
};
void last(long n) //用于等待时输出的函数
{
long i;
i=n/500;
for(i=0;i<n/500;i++)
{
cout<<''; Sleep(500);
}
cout<<endl;
}
void waiting()
{ long m; //模拟随机等待的时间函数
srand((unsigned)time(NULL));
cout<<"elevator waiting";
for(int i=0;i<1000;i++)
m=rand()%(20000-5000+1)+5000;
last(m);
}
void output(long t,person & p,elevator & e) //电梯模拟函数
{
static n=1; //定义乘客的个数
if( t==1) //有人在一楼按铃
{
pnewset();
if(enow!=1) //但是此时电梯停留在二楼
{
cout<<"person "<<n<<"(a "<<setw(5)<<psex<<") arrived floor 1"; //输出有人到达一楼
Time::outtime(); //输出此时的准确时间
cout<<"elevator running";
last(5000);
cout<<"person "<<n<<"(a "<<setw(5)<<psex<<") enters elevator"; //输出乘客进入电梯
Time::outtime(); //输出此时的准确时间
cout<<"elevator running";
last(5000);
cout<<"person "<<n<<"(a "<<setw(5)<<psex<<") arrives floor 2"; //输入乘客到达二楼
Time::outtime(); //输出此时的准确时间
enow=2;
n++;
system("color 0C"); waiting(); system("color 0F");
}
else //此时电梯就是一楼
{
cout<<"person "<<n<<"(a "<<setw(5)<<psex<<") arrives floor 1"; //输出有人到达一楼
Time::outtime(); //输出此时的准确时间
cout<<"person "<<n<<"(a "<<setw(5)<<psex<<") enters elevator"<<endl;
cout<<"elevator running";
last(5000);
cout<<"person "<<n<<"(a "<<setw(5)<<psex<<") arrives floor 2";
Time::outtime();
enow=2;
n++;
system("color 0C"); waiting(); system("color 0F");
}
}
if(t==2) //有人在二楼按铃
{
if(enow!=2) //但是电梯此时不在二楼
{
cout<<"person "<<n<<"(a "<<setw(5)<<psex<<") arrived floor 2";
Time::outtime();
cout<<"elevator running";
last(5000);
cout<<"person "<<n<<"(a "<<setw(5)<<psex<<") enters elevator";
Time::outtime();
cout<<"elevator running";
last(5000);
cout<<"person "<<n<<"(a "<<setw(5)<<psex<<") arrives floor 1";
Time::outtime();
enow=1;
n++;
system("color 0C"); waiting(); system("color 0F");
}
else //此时电梯就是二楼
{
cout<<"person "<<n<<"(a "<<setw(5)<<psex<<") arrives floor 2";
Time::outtime();
cout<<"person "<<n<<"(a "<<setw(5)<<psex<<") enters elevator";
Time::outtime();
cout<<"elevator running";
last(5000);
cout<<"person "<<n<<"(a "<<setw(5)<<psex<<") arrives floor 1";
Time::outtime();
enow=1;
n++;
system("color 0C"); waiting(); system("color 0F");
}
}
}
int main()
{
coutfill('');
cout<<setw(80)<<'';
coutfill(' ');
system("color 0C");
cout<<setw(50)<<"欢迎使用电梯模拟程序"<<endl; //输出头菜单
coutfill('');
cout<<setw(80)<<'';
coutfill(' ');
int i;
person p;
elevator e;
srand((unsigned)time(NULL)); //定义随机数种
waiting();
system("color 0F");
for(i=0;;i++)
output(rand(),p,e); //调用电梯模拟函数
return 0;
}
以上就是关于电梯程序怎么写入进入全部的内容,包括:电梯程序怎么写入进入、求一个电梯的调度管理程序,c++的、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)