以下是一个简单的电梯系统示例,使用C语言编写。该系统模拟了一个具有多个楼层和多个乘客的电梯系统。
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define MAX_FLOORS 10
#define MAX_PASSENGERS 10
typedef struct {
int current_floor;
int destination_floor;
int passengers[MAX_PASSENGERS];
int num_passengers;
} Elevator;
void initialize_elevator(Elevator *elevator) {
elevator->current_floor = 1;
elevator->destination_floor = 1;
elevator->num_passengers = 0;
}
void add_passenger(Elevator *elevator, int floor) {
if (elevator->num_passengers < MAX_PASSENGERS) {
elevator->passengers[elevator->num_passengers] = floor;
elevator->num_passengers++;
} else {
printf("Elevator is full.\n");
}
}
void move_elevator(Elevator *elevator) {
int i;
for (i = 0; i < elevator->num_passengers; i++) {
if (elevator->current_floor == elevator->passengers[i]) {
printf("Moving to floor %d...\n", elevator->passengers[i]);
elevator->current_floor = elevator->passengers[i];
elevator->destination_floor = elevator->passengers[i];
break;
} else if (elevator->current_floor < elevator->passengers[i]) {
printf("Moving up to floor %d...\n", elevator->passengers[i]);
elevator->current_floor++;
} else {
printf("Moving down to floor %d...\n", elevator->passengers[i]);
elevator->current_floor--;
}
}
}
int main() {
Elevator elevator;
initialize_elevator(&elevator);
srand(time(NULL)); // 初始化随机数生成器种子
int choice, floor;
do {
printf("请选择操作:\n");
printf("1. 添加乘客\n");
printf("2. 移动电梯\n");
printf("3. 退出\n");
scanf("%d", &choice);
switch (choice) {
case 1:
printf("请输入要到达的楼层:\n");
scanf("%d", &floor);
add_passenger(&elevator, floor);
break;
case 2:
move_elevator(&elevator);
break;
case 3:
printf("谢谢使用电梯系统!\n");
break;
default:
printf("无效的选择,请重新输入。\n");
break;
}
} while (choice != 3);
return 0;
}