C语言BNF语法的图形化展示,收集自互联网,是深入研究C语言语法或者编译原理以及C语言编译器的好材料。
2019-12-21 19:56:57 635KB C语言 BNF
1
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―――目标方向(向上或向下) struct queue *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楼。相反方向同理。
2019-12-21 19:53:17 59KB 电梯模拟 用C语言写的
1
html5图形化编辑
2019-12-21 19:50:18 955KB html5
1
vc实现的哈夫曼树及其图形化,需要安装Easyx绘图库,不同环境下可能需要略作调整,仅作参考
2019-12-21 19:36:21 9KB 哈弗曼树 编码
1
批量Ping工具,图形化展示,网络运维利器,多年使用推荐
2019-12-21 19:35:42 303KB 批量ping 网络ping 局域网扫描
1
一款图形化的telnet软件 支持telnet/SSH/串口等多种连接 功能非常强大 适合网络管理员使用
2019-12-21 19:32:49 8.81MB 超级终端 telnet
1
该程序包含了四种不同的磁盘调度算法(FCFS,SSTF,SCAN,CSCAN),拥有简单的图形界面。而且在运行四种算法后会显示平均磁道长度,将四种算法的平均磁道长度以柱状图比较直观的形式输出,方便用户进行比较。
2019-12-21 19:30:57 1.81MB 磁盘调度算法
1
TP5命令执行图形化工具,哈哈资源分数我想设置成10太好用了
2019-12-21 19:30:04 398KB TP5命令执行 thinkphp命令
1
C语言+easyx库实现图形化扫雷游戏,附带排行榜和计时器,支持自定义难度与预设的三个难度,附带全部图像资源,注解详细,解压即可使用,欢迎初学者下载
1
图形化实现:多线程并发同步,缓冲区容量为2,爸爸放苹果,妈妈放橘子,儿子吃苹果,女儿吃橘子。
2019-12-21 19:22:47 5.22MB 多线程 VC 图形化
1