background image

电梯每下降一层,小方块在方框内下降一层。并且小方块在方框内的位置与电
梯当前所在楼层时对应的,例如:若当前电梯运行到第 3 层,则小方块也位
于第三层方框。为了使用户能更清晰地看到电梯的运行过程,小方块每到一层
会停留 1S 的时间。电梯运行到指定楼层后,打开电梯门,然后关门继续运行,
为了模拟真实的效果,电梯在指定楼层停下,大门依次闭合-半开门-全开门-
半开门-闭合。
⑤  

在 1 -- 8 楼之间按任意顺序不连续控制电梯上升与下降。按一次计算机键盘

的上箭头电梯上升一楼,

 

按一次计算机键盘的下箭头电梯下降一楼。 由于所使

用的计算机的某些原因,这里输入 w” 

上升一楼,输入 s” 下降一楼。电梯的

不连续控制只在电梯停在某一层且关上的门之后。提示是 up or down a floor 
only vailable when elevator stop(use w or s )”,当用户可以对电梯进行

不连续控制时,会出现 ~now vailable”的提示。
⑥电梯仿真软件运行时,

在计算机屏幕上显示本软件作者姓名 author: Wang 

Hui Ting”

和日期 data: 2011-12-16”。

4、程序的设计思路

在主程序的最前面是宏,将具有特定功能的画图代码打包成一个个宏放在

住程序的最前面。有清屏的宏,移光标的宏,写横的宏,写竖的宏,画小方块
上升的宏,画小方块下降的宏,画初始小方块的宏,画电梯关门状态的宏,
画电梯半开门状态的宏,画电梯全开门状态的宏。由于这段画图的代码在程序
中会经常使用,所将他们编成宏使用起来更方便。除了主程序外还有一个延时
1S 的子程序。
    开始主程序的运行后,先运行一段初始化程序,然后设置图形显示方式,
再显示提示信息以及有关信息,然后再画电梯的三维模型,这样整个初始界
面就完成了。然后再提示信息下,用户输入要去的楼层,判断该字符串的第一
个字符的 ASCII 码是否在 1-8 范围,如果不是则结束并返回 DOS 界面,如果
是则继续进行下一步程序。将第 1 个数字代表的楼层设为当前站 X(n),并赋给
COUNT(该变量用来记录当前层)。将下个数字代表的层数设为下一站(如
果当前站为最后一站,则重新回到开头提示用户输入信息),将 COUNT 与
下 一 站 X(n+1) 相 比 较 , 若 COUNT 大 于 下 一 站 , 则 小 方 块 下 降 一 层 ,
COUNT--,并显示当前层和目标层以及下箭头,一直循环直到相等;若
COUNT 小于下一站,则小方块上升一层,COUNT++,并显示当前层和目标
层以及下箭头,一直循环直到相等;相等时,则电梯大门大门依次闭合-半开
门-全开门-半开门-闭合。大门关上后,调用 MOV  AH,1     

; INT  16H 检测是

否有按键按下,若没有键盘按下,则 X(n)=X(n+1),读取下一个字符,将该字
符所代表的楼层赋给 X(n+1),并回到前面检测 X(n)是否为最后目标层的程
序段。若有键盘按下,则判断 AL 的值(该值为输入的字符的 ASCII 码),若
AL

为 w’则小方块上升一层,COUNT++;若 AL

为 s’则小方块下降一层,

COUNT--

;两者最后都回到 X(n)=X(n+1),读取下一个字符,将该字符所代

表的楼层赋给 X(n+1)”这一步,若 AL

即不为 w’

也不为 s’,则直接回到该步

骤。

以上是整个程序的大致流程和思路。