请使用java实现电梯控制程序,电梯的情况:单门电梯,4层楼
时间: 2024-03-27 15:36:10 浏览: 138
【渠道版】以太网单门控制器
以下是一个简单的Java电梯控制程序实现,电梯有单门,共有4层楼。程序基本逻辑是通过一个状态变量 currentFloor 来记录当前电梯所在的楼层,通过一个数组 buttons[] 来记录每个楼层的上下按钮是否被按下,通过一个变量 direction 来记录电梯的运行方向。具体实现如下:
```java
import java.util.Scanner;
public class ElevatorControl {
public static void main(String[] args) {
int currentFloor = 1; // 当前所在楼层
boolean[] buttons = new boolean[4]; // 每层楼的上下按钮状态
String direction = "up"; // 电梯的运行方向,初始为向上
Scanner scanner = new Scanner(System.in);
while (true) {
System.out.println("当前楼层:" + currentFloor);
System.out.print("请选择目标楼层(1-4):");
int targetFloor = scanner.nextInt();
if (targetFloor == currentFloor) { // 如果目标楼层与当前楼层相同,则不需要移动
System.out.println("电梯已到达目标楼层!");
continue;
}
if (targetFloor < 1 || targetFloor > 4) { // 如果目标楼层不在合法范围内,提示错误
System.out.println("目标楼层不合法,请重新选择!");
continue;
}
if (targetFloor > currentFloor) { // 如果目标楼层比当前楼层高,向上运行
direction = "up";
for (int i = currentFloor + 1; i <= targetFloor; i++) { // 逐层判断按钮状态
if (buttons[i - 1]) { // 如果有上行按钮按下,则到达该层后停止
System.out.println("电梯到达第" + i + "层楼!");
currentFloor = i;
buttons[i - 1] = false; // 把该层的上行按钮状态改为未按下
}
}
} else { // 如果目标楼层比当前楼层低,向下运行
direction = "down";
for (int i = currentFloor - 1; i >= targetFloor; i--) { // 逐层判断按钮状态
if (buttons[i - 1 + 2]) { // 如果有下行按钮按下,则到达该层后停止
System.out.println("电梯到达第" + i + "层楼!");
currentFloor = i;
buttons[i - 1 + 2] = false; // 把该层的下行按钮状态改为未按下
}
}
}
System.out.println("电梯到达目标楼层!");
}
}
}
```
在程序中,每次循环都会先输出当前电梯所在的楼层,然后提示用户选择目标楼层。用户输入目标楼层后,程序会进行一系列判断,包括目标楼层是否与当前楼层相同、目标楼层是否在合法范围内等。如果目标楼层符合要求,程序会根据电梯的当前位置和运行方向逐层判断每个楼层的上下按钮状态,如果有按钮被按下,则到达该层后停止,并把该层的按钮状态改为未按下。最后输出电梯到达目标楼层的提示信息。
这只是一个简单的电梯控制程序实现,实际的电梯系统还需要考虑更多的因素,比如多个电梯的调度、电梯停靠时间、电梯故障处理等。
阅读全文