一个C++程序作业,模拟电梯运行

一个C++程序作业,模拟电梯运行,第1张

为了简单,分配了1到9层另外也没加入有几人同时按,不过那样也不难,再分配10个每层的变量,随机按再处理,是先向上还是直接向下不过那倒真的可以用到真的上了

#include <stdioh>

#include <dosh>

#include <ctypeh>

#define ON 1

#define OFF 0

main(){

int power,i;

char oldkey,key ;

struct date today;

struct time now;

getdate(&today); /把系统当前日期存入today所指向的date结构中/

gettime(&now);

gotoxy(25,3);

printf("Today's date is %d-%d-%d\n",todayda_year,todayda_mon,todayda_day);

gotoxy(25,6);

printf("Current time is %02d:%02d:%02d\n",nowti_hour,nowti_min,nowti_sec);

if( nowti_hour>=8||(nowti_hour<=23&&nowti_min<59)){

power=ON;

printf("\n\n\nLift power is onLift stop in 1 floor");

}

else {

power=OFF;

printf("Lift power is off");

}

oldkey=0;

while(power==ON) {

printf("\n\n\nFloor");

for(i=1;i<10;i++)

printf("\n %d",i);

printf("\nPress floor number or q to shut down power :");

if( nowti_hour>=8||(nowti_hour<=23&&nowti_min<59))

power=ON;

else

power=OFF;

key=bioskey(0);

key=key&0x00ff;

system("cls");

if(key=='0'){

power=OFF;

printf("\n\n Lift Power off");

sleep(1);

break;

}

if(key>oldkey)

printf(" %c Go up!",24);

if(key<oldkey)

printf(" %c Go down!",25);

if(key==oldkey)

printf(" %c ok you are here",22);

sleep(2);

system("cls");

printf("\n\n ");

switch(key){

case '1':

if(key==oldkey)

printf(" %c ok you are here",22);

else if(key>oldkey)

printf("%c Go up!stop in %c floor",24,key);

else

printf("%c Go down!stop in %c floor",25,key);

oldkey=key;

break;

case '2':

if(key==oldkey)

printf(" %c ok you are here",22);

else if(key>oldkey)

printf("%c Go up!stop in %c floor",24,key);

else

printf("%c Go down!stop in %c floor",25,key);

oldkey=key;

break;

case '3':

if(key==oldkey)

printf(" %c ok you are here",22);

else if(key>oldkey)

printf("%c Go up!stop in %c floor",24,key);

else

printf("%c Go down!stop in %c floor",25,key);

oldkey=key;

break;

case '4':

if(key==oldkey)

printf(" %c ok you are here",22);

else if(key>oldkey)

printf("%c Go up!stop in %c floor",24,key);

else

printf("%c Go down!stop in %c floor",25,key);

oldkey=key;

break;

case '5':

if(key==oldkey)

printf(" %c ok you are here",22);

else if(key>oldkey)

printf("%c Go up!stop in %c floor",24,key);

else

printf("%c Go down!stop in %c floor",25,key);

oldkey=key;

break;

case '6':

if(key==oldkey)

printf(" %c ok you are here",22);

else if(key>oldkey)

printf("%c Go up!stop in %c floor",24,key);

else

printf("%c Go down!stop in %c floor",25,key);

oldkey=key;

break;

case '7':

if(key==oldkey)

printf(" %c ok you are here",22);

else if(key>oldkey)

printf("%c Go up!stop in %c floor",24,key);

else

printf("%c Go down!stop in %c floor",25,key);

oldkey=key;

break;

case '8':

if(key==oldkey)

printf(" %c ok you are here",22);

else if(key>oldkey)

printf("%c Go up!stop in %c floor",24,key);

else

printf("%c Go down!stop in %c floor",25,key);

oldkey=key;

break;

case '9':

if(key==oldkey)

printf(" %c ok you are here",22);

else if(key>oldkey)

printf("%c Go up!stop in %c floor",24,key);

else

printf("%c Go down!stop in %c floor",25,key);

oldkey=key;

break;

}

}

getch();

}

朋友去买本书吧!好多关于PLC的书上都有!我买了本上面有很多的!

书名 图解西门子S7-200系列PLC应用88例

作者 郑凤翼,金沙 主编

出版社 电子工业出版社

ISBN 9787121084126

定价 3980元

出版日期 2009-4-1

页码 377

字数 字

版次 1

印次

▼内容简介

本书以西门子S7—200系列PLC为例,在详细介绍识读PLC梯形图方法和技巧的基础上,精选88个应用实例,讲述各种电动机、机床、一般机械设备、木料传送设备、建筑设备等的PLC控制,以便广大读者在工作中推广使用。�

本书深入浅出、图文并茂,适合广大初、中级电工人员阅读。

▼图书目录

第1章 导读��

11 S7—200系列PLC的系统配置与常用指令

12 本书写作特点��

13 识读PLC梯形图和指令语句表的方法和步骤

14 梯形图中的基本电路程序��

例1-1 瞬时接通/延时断开电路�

例1-2 延时接通/延时断开电路2例

例1-3 长时间定时电路3例��

例1-4 闪烁电路��

例1-5 脉冲发生器电路4例��

例1-6 计数器应用电路2例��

例1-7 分频电路��

例1-8 比较电路(译码电路)��

例1-9 优先电路2例��

例1-10 报警电路3例��

第2章 电动机的PLC控制��

例2-1 用一般指令编程的电动机单向运行的PLC控制

例2-2 用置位复位指令编程的具有过载报警的电动机单向运行的PLC控制电路��

例2-3 具有点动调整功能的电动机启动、停止控制电路

例2-4 电动机单向间歇运行的PLC控制

例2-5 单按钮控制的电动机的启动、停止控制电路3例

例2-6 电动机正反转的PLC控制�

例2-7 直接转换的电动机正反转运行控制

例2-8 行程开关控制的自动循环控制电路

例2-9 交流电动机-△降压启动的PLC控制(一)

例2-10 交流电动机的-△减压启动的PLC控制(二)

例2-11 三相感应电动机的串电阻减压启动控制

例2-12 三相感应电动机的串自耦变压器减压启动控制

例2-13 串电阻减压启动和反接制动控制电路

例2-14 单管能耗制动控制电路�

例2-15 3台电动机-△减压顺序启动逆序停止的PLC控制

例2-16 三台电动机M�1~M�3的启动/停止控制

例2-17 三台电动机的顺序启动控制

例2-18 步进控制指令编程的3台电动机M�1、M�2、M�3的PLC控制��

例2-19 用比较指令编程的电动机顺序启动的PLC控制

例2-20 三台电动机顺序延时启动、逆序延时停机控制电路��

例2-21 用移位寄存器指令编程的四台电动机M�1~M�4的PLC控制(一)��

例2-22 用移位寄存器指令编程的四台电动机M�1~M�4的PLC控制(二)��

第3章 PLC在机床电气控制系统中的应用��

例3-1 CA6140普通车床的PLC控制��

例3-2 C650型卧式车床的PLC控制��

例3-3 Z3040型摇臂钻床的PLC控制��

例3-4 深孔钻组合机床的PLC控制��

例3-5 双头钻床的控制��

例3-6 M7130平面磨床的PLC控制��

第4章 PLC在一般机械设备控制中的应用��

例4-1 通风机监控运行的PLC控制��

例4-2 锅炉引风机和鼓风机的控制��

例4-3 电动葫芦升降测试系统控制��

例4-4 简易桥式起重机的控制��

例4-5 剪板机的控制2例��

例4-6 毛皮剪花机控制��

例4-7 某轮胎内胎硫化机PLC控制��

例4-8 弯管机控制��

例4-9 洗车自动清洗��

例4-10 多种液体混合装置的PLC控制3例��

例4-11 食品或药品成型设备的PLC控制��

第5章 PLC在物料传送设备控制中的应用

例5-1 单处卸料运料小车自动往返控制3例

例5-2 多种工作方式的单处卸料运料小车自动往返控制(用启-保-停电路模式编程)��

例5-3 多种工作方式的运料小车运行的PLC控制(用顺序控制寄存器指令编程)��

例5-4 两处卸料的选料小车的PLC控制

例5-5 采用移位指令编程的小车运行的PLC控制

例5-6 三级传送带顺序启动、逆序停止的PLC控制

例5-7 四节传送带的PLC控制��

例5-8 用功能指令编程的台车的呼车控制

例5-9 传送带的PLC控制��

第6章 PLC在建筑设备控制中的应用

例6-1 仓库大门的PLC控制��

例6-2 使用启-保-停电路的编程自动门控制系统

例6-3 水塔供水系统的PLC控制�

例6-4 根据压力上、下限变化对4台水泵进行恒压供水的控制

例6-5 电梯的PLC控制��

例6-6 喷泉控制电路��

第7章 机械手、大小铁球分选和交通信号灯的PLC控制�

例7-1 用启-保-停电路模式编程的机械手运动的PLC控制

例7-2 用子程序和移位寄存器指令编程的机械手的PLC控制

例7-3 通过传送带传送工件的机械手的PLC控制

例7-4 大小球分拣的PLC控制�

例7-5 十字路口交通信号指挥灯的PLC控制(一)

例7-6 十字路口交通信号指挥灯的PLC控制(二)

例7-7 十字路口交通信号指挥灯的PLC控制(三)

例7-8 用置位、复位指令编程的十字路口交通信号灯的PLC控制

例7-9 人行横道交通信号灯的PLC控制

第8章 灯光、抢答器、密码锁及洗衣机的PLC控制

例8-1 楼梯灯的PLC控制��

例8-2 用顺序控制指令SCR编写的舞台灯光的PLC控制

例8-3 彩灯的PLC控制��

例8-4 采用时基脉冲结合计数器编程的彩灯控制

例8-5 彩环广告牌的PLC控制��

例8-6 节日彩灯的PLC控制��

例8-7 天塔之光的PLC控制�

例8-8 彩灯的PLC控制��

例8-9 用计数器指令与比较指令编程的密码锁的PLC控制

例8-10 简单的3组抢答器的PLC控制(一)

例8-11 简单的3组抢答器的PLC控制(二)

例8-12 带数码管显示的抢答器的PLC控制

例8-13 较复杂的三组抢答器的PLC控制

例8-14 全自动洗衣机的PLC控制�

第9章 PLC在模拟量控制中的应用

例9-1 在自动称重混料控制系统的应用

1、进入电梯之前,先不要急着进去,先观察门是否正常打开,如果出现卡顿就得当心。千万别埋头就想钻进去。

2、再观察电梯有没有来到本层,很多没有观察的人就是没有看清,一脚踩空,看到电梯稳稳的停下来才进入。

3、电梯门即将关闭的时候,不能用手或者其他物体阻碍正常的程序,这样很可能造成电梯程序失常。

4、在电梯内不要乱按上面的按钮,千万不要开关开关的来回按,这样同样对电梯程序有着影响。

5、在电梯内最好不要靠在电梯门上,因为一旦危险出现,门是最危险的地带。最好站在电梯的侧面。

6、如果电梯内有扶手的话,就要抓紧扶手,因为如果电梯出现故障的话,有东西扶着,避免摔伤。

7、不要是电梯超载或乘坐的人过多,超载了电梯就会提醒,人过多可能造成电梯高负荷运转,还是等等,不要挤在电梯里。

8、出现意外的时候不要用手去掰门。

9、出电梯的时候也要等电梯停稳了再下去。

matlab里的a(:,2:2:end)代表什么?

在matlab中,a(:, 2:2:end)表示从阵列的第二列开始,每隔一列取一列,直到最后一列。

举例如下:

a=

[1, 2, 3, 4, 3, 2;

2, 3, 2, 1, 3, 2];

b = a(:, 2:2:end);

>> % 执行上面的语句后,输出的矩阵b为:

2 4 2

3 1 2

matlab中Y(:,2)代表什么意思

Y(:,2)表示的是Y的第二行的所有元素,出来的是一个行向量!

矩阵的这种描述还有如下形式:

Y(k,:),表示的Y的第k列

Y(i:j,k:l),表示的事Y的第i-j行,与k-l列的交叉处得资料形成的矩阵!

matlab中的resf(1,[1,2])=fin代表什么

把变数resf第一行的第1、2列的资料用变数fin代替,换句话说,是把变数fin(一定要是12的矩阵)赋值给把变数resf第一行的第1、2列。

游戏里的STR DEX INT SKL END CHA 都代表了什么。

STR 力量值

DEX 敏捷值

INT 智力值

SKL 技能值

END 结束 通常为The End 意思为结局

CHA 不知道没见过,你确定没打错吗?

east end 和 weast end代表什么

东区和西区。

东区一般含贬义,就是指穷人和移民聚集地。

西区是伦敦中心,商业区和景点都很集中,时尚中心。

#在matlab里代表什么

MATLAB语言里面应该是没有#的,在别的程式语言(Java,Python等)里面,#是注释的意思,等同于MATLAB里面的%

The End 代表什么?

瑗 我啥都不想说了该放就放了 不必想念想再多也没用 它代表着一段感情结束也代表着开始

材料30CrMnSiNi2A里的30和2A代表什么?求大神

牌号前两位表示平均含碳量的万分之几,合金元素后面的数字表示合金元素的含量,合金元素平均含量小于15%的只标明元素符号。30CrMnSiNi2A中碳含量在030%左右,所以是30,Ni含量140%~180%,所以是Ni2。A表示高阶优质钢。

数控里的h2代表的什么意思

H2是加工中心或者数控铣床的数控程式里的程式码。

它表示2号刀长值,H是刀长的意思,H2表示刀补画面里的2号刀长值。

如果我的回答对您有帮助,请及时采纳为最佳答案,谢谢!

1电梯里的铃铛的图案代表什么? 2电梯里的电话的图案代表什么?

铃铛图案是求援警铃按钮

电话图案是对讲,连线物业值班室

/建立一座两层楼,一部电梯的模拟程序。为简化起见,每部电梯限乘一人,电梯每天在一楼关门等待

模拟程序包括一个时钟,每天从零开始。模拟程序得调度器组件随机设置每一层第一个人到来的时间,当时钟的时间等于第一个人到来的时间时,模拟程序生成一个新到的人将该人放到这一层。然后这个人按下按钮,请求电梯开门。这个人的目的地楼层不能与他上电梯的楼层相同。

如果第一个人到达第一层,则可以在按下按钮、等待电梯开门之后立即进入电梯。如果第一个人在第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++程序作业,模拟电梯运行全部的内容,包括:一个C++程序作业,模拟电梯运行、用PLC程序控制四层电梯模拟运行求能人给编个程序、乘电梯小妙招等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10110639.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存