完全取决于一个up,down
缺少了分析人群停留的预测功能
所以我认为
首先在这个程序里面
必须多一个组件
用来统计各个业主可能停留的分布
一旦这个统计的控件真的开始运行
它要担任的工作有这么几个
第一,计算出在目前情况下
在只哪几个楼层停下来
可以让时间最少,停的次数最少
第二,给出候梯人员建议
比如说
“大家好,我是电梯,我现在给出大家一个建议:
刚才大家的按键表明,3个人去23楼,5人去10楼,4人去5楼,还有1个要去3楼
情况是这样的:
上面8楼有3个人去2楼,5个人来1楼,
据估算,如果你要去23楼的话,不如坐3号电梯,因为它将在载大家到目的地的同时,还担任着去顶楼取货的任务。
如果到10楼的,就坐1号就可以,你们大概要等40秒,再加上20秒,你们也即将抵达目的地
按你的要求写了这个程序。试运行正常。
程序运行截图如下:
希望对你有帮助!
【百度知道】土堆上的石头
#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)
}
}电梯系统需要以下几个程序功能:
(1)处理电梯呼叫:乘客呼叫电梯、电梯按钮明灭、电梯控制器处理电梯呼叫、处理按钮信息更新等
(2)处理楼层呼叫:包括乘客选择楼层、楼层按钮明灭、电梯控制器处理楼层呼叫、处理按钮信息更新等
(3)移动停止电梯:包括驱动速度的改变、停止的判定、电梯的运动方向驱动
(4)标志移动方向:让乘客知道电梯目前运动方向、决定是否进入电梯
(5)标志电梯位置:让乘客知道乘客的目的层是否到达。决定是否离开电梯
(6)开关门:乘客进出电梯,电梯应该开关门。应包括电梯正关闭而乘客想进入时乘客可以使电梯门打开
(7)触发紧急处理器:电梯有安全机制确定一个不安全的状态不是瞬时产生的
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)