用C语言编写电梯控制系统,包括开门关门控制系统和楼层检测系统,要求开始楼层在1楼,共20层,输入几楼就到几楼并开门处于闲置状态,在程序运行的过程中随机输入“(|)”就开门,输入“)|(”就关门
时间: 2023-12-12 11:02:16 浏览: 117
基于51单片机的三层电梯系统设计.doc
好的,根据您的需求,我为您编写了一个简单的电梯控制系统,包括开门关门控制系统和楼层检测系统。代码如下:
```
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
// 定义电梯状态
#define IDLE 0
#define RUNNING 1
#define DOOR_OPEN 2
#define DOOR_CLOSE 3
// 定义电梯属性
int current_floor = 1; // 当前所在楼层
int target_floor; // 目标楼层
int direction = 0; // 运行方向
int status = IDLE; // 电梯状态
// 定义开门关门函数
void open_door() {
printf("Opening door...\n");
status = DOOR_OPEN;
}
void close_door() {
printf("Closing door...\n");
status = DOOR_CLOSE;
}
// 定义楼层检测函数
int detect_floor() {
return current_floor;
}
// 定义电梯运行函数
void run_elevator() {
// 判断电梯状态
if (status == DOOR_OPEN) {
close_door(); // 关门
} else if (status == DOOR_CLOSE) {
// 判断运行方向
if (current_floor < target_floor) {
direction = 1; // 上行
} else if (current_floor > target_floor) {
direction = -1; // 下行
} else {
return; // 已到达目标楼层
}
// 更新电梯状态
status = RUNNING;
} else if (status == RUNNING) {
// 判断是否到达目标楼层
if (current_floor == target_floor) {
open_door(); // 开门
} else {
// 更新电梯状态
status = RUNNING;
// 更新当前楼层
current_floor += direction;
printf("Moving to floor %d...\n", current_floor);
}
}
}
int main() {
// 初始化随机数种子
srand(time(NULL));
// 开始循环
while (1) {
// 检测输入
char input = getchar();
getchar(); // 消费掉回车符
if (input == '|') {
open_door(); // 开门
} else if (input == '(') {
close_door(); // 关门
} else if (input == ')') {
// 随机生成目标楼层
target_floor = rand() % 20 + 1;
printf("Target floor: %d\n", target_floor);
run_elevator(); // 运行电梯
}
// 检测楼层
int floor = detect_floor();
if (floor != current_floor) {
current_floor = floor;
printf("Arrived at floor %d\n", current_floor);
}
}
return 0;
}
```
在这个程序中,我们使用了 getchar() 函数来检测用户的输入,并使用 getchar() 函数消费掉回车符。当用户输入 “|” 时,调用 open_door() 函数开门;当用户输入 “(” 时,调用 close_door() 函数关门;当用户输入 “)” 时,随机生成目标楼层并调用 run_elevator() 函数运行电梯。
在 run_elevator() 函数中,我们根据当前状态和运行方向来更新电梯状态,并根据当前楼层和目标楼层来判断是否需要开门或者运动到下一层。在 detect_floor() 函数中,我们模拟了一个楼层检测函数,每次返回当前楼层。
最后,在主函数中,我们使用一个死循环来不断检测用户输入和当前楼层,并根据输入和楼层信息来控制电梯的运行。
阅读全文