1. 楼层由上至下依次编号为9,8,7,6,5,4,3,2,1,0。
每层都有向上和向下两个按钮,对应20个变量callup[0...9]和calldown[0...9]。
电梯内10个目标层按钮对应变量out[0...9]。
有人按下某个按钮时,相应的变量就增1,一旦要求满足后,该变量就减1。
当有多人的需求相同时,相应的处理时间就增长,用于模拟真实的情况。
2. 电梯处于三种状态之一:UP(上行),DOWN(下行)和Idle(等候)。
如果电梯处于Idle状态且不在1层超过20个时间单位时,则驶回1层。
当电梯处于Idle状态时,一旦收到前往另一层的命令,就转入UP或DOWN状态,执行相应的操作。
3. 其它重要的变量有:floor----当前电梯外乘客所在楼层;
calling----当前电梯外按下按钮的乘客所在的楼层;
up_or_down----电梯外某层按钮的状态(向上箭头或向下箭头);
waittime----电梯空闲时的等待时间;
total----电梯内的总人数(上限为15人);
电梯的数据结构:state----电梯的状态(UP,DOWN,IDLE)current-----电梯目前所处楼层imovingto----电梯的目标楼层队列成员的数据结构:floor―――所在楼层up_down―――目标方向(向上或向下)structqueue*next―――指向下一个成员4. 【进入排队】先在等候队列中查找,若有信息相同(所在楼层相同,目标方向一致)的成员,则对队列无任何操作。
若没有,则在队列末尾插入该人。
5. 【进入电梯】电梯根据人数停留一定时间单位,每进入一个人,从队列中删除该人,callup[ele.current]或者calldown[ele.current]减一,total加一。
6. 【走出电梯】电梯根据人数停留一定时间单位,每出去一个人out[ele.current]减一.7. 【电梯的活动】E1.[在一楼停候]若有人按下一个按钮,则调用相关函数(比如入队,置楼层标志位为1等)处理当前事件.E2.[改变状态]如果电梯处于Up(或Down)状态,但该方向的楼层却无人等待,则要看反方向楼层是否有人等待,而决定置State为Down(或Up)还是Idle。
E3.[让人出入]如果电梯不空且out[ele.current]!=0时,则电梯等候在该楼层出电梯的人离开。
接着检验在该楼层是否有等候前往同一方向去的乘客,若有则等候他们进入电梯。
总原则是先下后上。
E4.[在某楼层(非1楼)停候]若电梯到达目标楼层后,队列为空,则电梯在该楼层停候一定时间,在停候期间若有新的呼叫,则立即转入处理程序处理,否则返回一楼停候。
8. 电梯在上升或下降过程中需要不停地对当前方向上的最终楼层作调整。
比如当前向上,最终楼层为6楼,而有乘客在8楼按了按钮,则最终楼层调整为8楼。
相反方向同理。
2024/4/2 8:05:07 59KB 电梯模拟 用C语言写的
1
可读入文件,更可按你的要求生成随机的矩阵,全图形操作界面!绝对的高大上!!!!!PageRank算法及Java代码实现,加入阻尼系数变量,可轻松修改迭代次数及阻尼变量,并且输出时提示是第几次的迭代输出.对输入的格式要求有很详细的介绍!
2024/4/1 22:53:32 11KB pangrank java
1
Visual_Basic.NET图形图像编程与实例详解
2024/4/1 9:29:03 25.19MB VB.NET
1
CUDA,ComputeUnifiedDeviceArchitecture的简称,是由NVIDIA公司创立的基于他们公司生产的图形处理器GPUs(GraphicsProcessingUnits,可以通俗的理解为显卡)的一个并行计算平台和编程模型。
通过CUDA,GPUs可以很方便地被用来进行通用计算(有点像在CPU中进行的数值计算等等)。
在没有CUDA之前,GPUs一般只用来进行图形渲染(如通过OpenGL,DirectX)。
开发人员可以通过调用CUDA的API,来进行并行编程,达到高性能计算目的。
NVIDIA公司为了吸引更多的开发人员,对CUDA进行了编程语言扩展,如CUDAC/C++,CUDAFortran语言。
注意CUDAC/C++可以看作一个新的编程语言,因为NVIDIA配置了相应的编译器nvcc,CUDAFortran一样。
2024/3/31 19:25:29 184.05MB 工具及程序
1
windows下,最好用的mongodb可视化工具。
robo3t是一款MongoDB的辅助插件,可以帮助您在管理数据库内容以及数据库代码编辑方面提供一定的开发优化方案,内置一个代码编辑区域,您可以将数据库文件放到软件上修改,结合图形化的处理方式,可以将MongoDB数据库中的文件转换为分布式的存储方式,提高数据文件编辑和保存效率,Robo3T是Robomongo的升级版本,在新版中,您可以更加方便的查找数据库对象、利用其中的数据生成器,可以将Excel文件的数据导入数据库中保存,对于制作数据文件来说是非常方便的
2024/3/31 11:05:19 15.9MB robot mongod
1
1000个ppt-SmartArt图形素材,应有尽有,可以帮助快速制作PPT
2024/3/31 11:39:27 5.43MB PPT SmartArt 图形素材
1
z1.综合应用“深度优先搜索”、“宽度优先搜索”、“启发式搜索”这三种人工智能搜索技术的基本知识以及程序设计的相关知识。
z2.通过设计一个八数码问题求解程序,学习、了解状态空间搜索的思想,进一步加深对人工智能课程相关启发式搜索的理解。
z实验内容1.针对八数码问题,在Windows环境下用C/C++语言(Java语言)实现几种搜索算法(最好是图形界面):y深度优先搜索P23y宽度优先搜索P24y启发式搜索算法(h1(n)=W(n)“不在位”的将牌数)P28y启发式搜索算法(h2(n)=P(n)将牌“不在位”的距离和)P40y启发式搜索算法(h3(n)=h(n)=P(n)+3S(n))P462.随机产生或手动输入初始状态,对于同一个初始状态,分别用上面的5种方法进行求解,并对比结果
2024/3/31 7:24:01 7.25MB 八数码
1
基于javaswing的gui图形界面超市管理系统
2024/3/31 3:17:40 10.87MB java swing gui 图形
1
用QT实现的C++把pascal编译成C的编译器,图形化界面,代码带有注释,比较好理解,QT环境配置好了应该能运行,供大家学习
2024/3/30 17:55:20 13.75MB 编译器
1
arcgis实现对面数据中图形的夹角小于指定的多边形进行检查,输入的角度单位度。
521KB arcgis
1
共 1000 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡