思路:
外部“上”按钮方法:
外部“下”按钮方法:
(需要的参数是电梯现在的状态(上升或者下降:如上升则等待响应下按钮事件,否则等待;下降同理……)、电梯所在的楼层和触发外部按钮的所在楼层)
内部:
数字按钮(实现输入楼层)
开门:到达楼层,则响应开门时间,否则等待到达再响应事件(实际情况不可能是走到两层之间,你按开门,他也开门,是吧)
关门:user输入楼层后,根据现在的位置判断上或者下的运行 *** 作(如果没有输入,就安静不“动”(实际坐电梯进去不按也是这样的吧))
按你的要求写了这个程序。试运行正常。
程序运行截图如下:
希望对你有帮助!
【百度知道】土堆上的石头
#include<stdio.h>
void main()
{
int n=10,set,end,i
printf("本电梯一共%d层。\n",n)
printf("请输入你所在的楼层:\n")
while(1)
{
scanf("%d",&set)
if(set>=1&&set<=n)
break
printf("没有第%d层,请重新输入:\n",set)
}
printf("你现在在第%d层。\n",set)
printf("请选择:\n1.上行\n2.下行\n")
while(1)
{
scanf("%d",&i)
if(i>=1&&i<=2)
break
printf("选择数字错误,请重新输入:\n")
}
if(i==1)
{
while(1)
{
printf("请输入你要去的楼层:\n")
scanf("%d",&end)
if(end>=1&&end<=n)
{
if(end>=set)
break
else
printf("此为上行,请输入较高层的层数。\n")
}
else
printf("没有第%d层,请重新输入:\n",end)
}
printf("电梯上行中……\n")
for(i=seti<=endi++)
printf("现在到了第%d层。\n",i)
printf("第%d层已到!\n",end)
}
if(i==2)
{
while(1)
{
printf("请输入你要去的楼层:\n")
scanf("%d",&end)
if(end>=1&&end<=n)
{
if(end<=set)
break
else
printf("此为下行,请输入较低层的层数。\n")
}
else
printf("没有第%d层,请重新输入:\n",end)
}
printf("电梯上行中……\n")
for(i=seti>=endi--)
printf("现在到了第%d层。\n",i)
printf("第%d层已到!\n",end)
}
}这是以前作的课程设计,是一个10层电梯的模拟,供楼主参考吧:
printf("上下选择:1-上楼,2-下楼\t")
scanf("%d",&input_direction)
fflush(stdin)
printf("输入该层的乘客想到达的楼层,以-1结束\n")
void check(liftor &myliftor) int flag1=0,flag2=0,flag3=0
for(i=0i<10i++)
{
if(myliftor.stored_flare[i]!=0)
flag1=1
if(myliftor.stored_flare[i]==1)
flag2=1
if(myliftor.stored_flare[i]==2)
flag3=1
}
if(!flag1) myliftor.set_direction(0)
else if(!flag2&&flag3) myliftor.set_direction(2)
else if(!flag3&&flag2) myliftor.set_direction(1)
int main(int argc, char *argv[])
liftor myliftor
char flag
int j
myliftor.direction=1
printf("**************************************\n")
printf("该程序用于模拟10(0-9)层的电梯控制\n")
printf("先输入按下电梯的层号及上下选\n择(类似电梯外的按钮)\n")
printf("每到一层时,输入乘客要到的楼\n层号(类似电梯内的按钮)\n")
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)