电梯控制系统用C语言写出实现下面问题的程序 【问题描述】 写出一个包括运行控制系统、开关门控制系统和楼层检测系统的电梯控制系统。要求可以实现电梯的运行并且显示出所在的楼层号码,并且在到目的楼层后可以继续输入想到的下一层,但电梯不运行时可以通过输入指令来控制开门关门。比如输入“(|)”开门,输入“)|(”关门。
时间: 2024-03-14 08:45:11 浏览: 23
以下是一个简单的电梯控制系统的C语言代码实现,其中包括了运行控制系统、开关门控制系统和楼层检测系统:
```c
#include <stdio.h>
int main() {
int current_floor = 1; // 当前所在楼层
int dest_floor = 1; // 目的楼层
int is_running = 0; // 是否在运行
int is_opening = 0; // 是否在开门
int is_closing = 0; // 是否在关门
char input[10]; // 输入指令
while (1) {
if (!is_running) {
printf("当前所在楼层:%d\n", current_floor);
}
printf("请输入指令:");
scanf("%s", input);
if (input[0] == '(' && input[1] == '|' && input[2] == ')') {
if (is_running) {
printf("电梯正在运行,无法开门!\n");
} else if (is_closing) {
printf("正在关门,请稍后再试!\n");
} else {
printf("开门中...\n");
is_opening = 1;
is_closing = 0;
}
} else if (input[0] == ')' && input[1] == '|' && input[2] == '(') {
if (is_running) {
printf("电梯正在运行,无法关门!\n");
} else if (is_opening) {
printf("正在开门,请稍后再试!\n");
} else {
printf("关门中...\n");
is_closing = 1;
is_opening = 0;
}
} else {
if (sscanf(input, "%d", &dest_floor) == 1) {
if (dest_floor < 1 || dest_floor > 10) {
printf("输入楼层无效,请重新输入!\n");
} else if (is_opening) {
printf("正在开门,请稍后再试!\n");
} else if (is_closing) {
printf("正在关门,请稍后再试!\n");
} else {
printf("运行中...\n");
is_running = 1;
is_opening = 0;
is_closing = 0;
}
} else {
printf("指令无效,请重新输入!\n");
}
}
if (is_running) {
if (current_floor < dest_floor) {
printf("电梯正在往上运行...\n");
current_floor++;
} else if (current_floor > dest_floor) {
printf("电梯正在往下运行...\n");
current_floor--;
} else {
printf("电梯已到达目的楼层:%d\n", dest_floor);
is_running = 0;
}
}
}
return 0;
}
```
该程序中,使用了一个无限循环来不断地接收用户输入指令。当用户输入开门或关门指令时,程序会判断当前电梯状态并进行相应的操作;当用户输入目的楼层时,程序会判断电梯状态并开始运行,直到到达目的楼层后停止运行。在运行过程中,程序会不断更新当前所在楼层,并输出电梯的运行状态。