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
ThinkPHP5.1的商城系统,多用户商城电脑端+手机版,破解出来了!!大家可以下载学习使用。
商淘软件电商系统功能(含手机版)(一)系统管理:菜单权限、前台菜单、角色管理、职员管理、登录日志、操作日志、图片空间、商城消息、风格设置、计划任务(二)基础设置:商城配置、导航管理、广告管理、广告位置、银行管理、支付管理、地区管理、友情链接、快递管理、消息模板(三)会员管理:会员等级、会员管理、账号管理(四)文章管理:文章管理、文章分类(五)运营管理:推荐管理、商品推荐、店铺推荐、品牌推荐、财务管理、资金管理、提现申请、结算管理、商家结算(六)订单管理:订单管理、订单管理、投诉管理、退款管理(七)店铺管理:店铺认证、开店申请、店铺管理、停用店铺(八)商品管理:商品管理、已上架商品、待审核商品、违规商品、商品分类、商品属性、品牌管理、商品规格、评价管理(九)虚拟物品自动发货:虚拟商品上架、卡密管理、自动发货(十)扩展管理:插件管理、钩子管理(十二)数据分析:商品销售排行、店铺销售统计、销售额统计、销售订单统计、新增会员统计、会员登录统计(十三)营销管理:商品团购,限时拍卖、微砍价、优惠券、满减、满送、满包邮、签到送积分、积分商城(十四)微信管理:公众号设置、自定义菜单、用户管理、主动回复文本信息、主动回复图文信息、微信消息模板(十五)支付管理:支付宝支付,微信支付、银联支付、货到付款、积分支付、余额支付(十六)短信接口:中国网建、阿里大于、阿里云云通信、短信宝(十七)登录接口:QQ登录、微信登录、微博登录(十八)物流接口:快递100接口(十九)其他接口:UCenter通信接口(可与社区论坛等同步登录退出)
1
使用ssm框架,数据库是mysql,只有输入框模糊查询,可能不够严谨,仅仅拿来练手,适合新手,MySQL数据库自己建,非常简单
2024/3/31 19:26:42 2.49MB javaweb ssm curd
1
这是一个已完成的软件工程课设,图书管理系统,语言是Java和Sqlserver,可以运行,可以实现管理员对图书的增删改查等一系列操作,用户对图书的相关操作。
2024/3/30 17:52:12 86KB 软件工程课设 Java
1
我根据网上的郑平老师的视频,然后加以改进的东西。
适合于初学者的学习。
这是我们课程设计的题目。
有增删改查和打电话发短信等等功能。
2024/3/30 12:31:08 730KB android通讯录
1
V8.9:1.修改了气象文字,字体大小不变,修改成了获取未来3天气象数据判断,如果查找不到关键字就跳过此次更新。
ESP8266_and_ESP32_OLED_driver_for_SSD1306_displays文件夹下的OLEDDisplayFonts.h中。
2.新增时间库,用来调取时间用于农历更新做判断,也可以用于实时时间显示和输出调用:inthours=timeClient.getHours();intminu=timeClient.getMinutes();intsece=timeClient.getSeconds();intTodayDay=timeClient.getDay();StingDetail=timeClient.getFormattedTime()
2024/3/30 12:41:52 44.16MB esp8266气象时钟 esp8266气象站
1
简单的jsp+servlet+jdbc+javaBean实现的增删查改项目,供新手参考
2024/3/30 6:54:24 740KB servlet jdbc jsp
1
基于java_web的校友录论文增删改查等分页功能
2024/3/29 11:49:39 5.36MB java 校友录
1
完整代码,含增删改查功能,前端数据接受方式jsonObject,map……
2024/3/27 16:58:04 3.48MB springBoot mybatis thymeleaf maven
1
共 1000 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡