C语言实现简单的电梯控制系统

这篇博客分享了作者使用C语言实现的电梯控制系统,项目已移至GitHub。作者在优快云上受到启发,用DEV C++编译通过,并提供了源码下载链接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

项目已经转移至GitHub:https://github.com/Kyfafyd

在刚刚看到这个题目的时候,觉得毫无头绪,之后在优快云上面也看到了很多想法,但是大多不是C语言,也不是源码,或者编译不通过,不过也给了我一些启迪,以下是自己的一些想法,在DEV C++编译通过。若有不足之处请不吝指正!

       下面就贴源码了,我也上传了资源,也可以去下面这个网址下载~

        https://download.youkuaiyun.com/download/qq_42073370/10603339

elevator.h

//
//elevator.h
/*****************************************************************************
/*C语言简易电梯实现(模拟状态机)
/*
/*通过定义两个枚举类型和两个结构表征电梯当前状态
/*
/*具有如下功能:
/*电梯状态初始化(电梯在一楼且电梯门关闭)
/*选择电梯是否继续运行
/*控制电梯每次运行时的方向
/*在电梯运行过程中添加层数
/*输入电梯层数是可乱序输入
/*判断电梯是否超载
/*增加或减少电梯内人数
/*宏定义电梯最大载客数和楼层范围,可根据需要修改elevator.c中的MAX_FLOOR,MAX_NUM
/*最后电梯还原为初始化时的状态 
******************************************************************************/
#ifndef elevator_h
#define elevator_h
//当前事件类型 
typedef enum tagT_EventType {
    EVENT_OPEN = 0,
    EVENT_UP,
    EVENT_DOWN,
    EVENT_CLOSE,
    EVENT_WARN,
    EVENT_STOP,
    EVENT_DELWARN
}T_EventType;
//当前状态类型
typedef enum tagT_StateType {
    STATE_STOP = 0,
    STATE_OPEN,
    STATE_UP,
    STATE_DOWN,
    STATE_WARN
}T_StateType;
//电梯状态结构参量 
typedef struct Elevator {
    int num;
    int level;
    T_EventType event;
    T_StateType state;
}El, *Ele;
//电梯需到达的楼层记录的结构
typedef struct Ele_floor {
    int floor;
    struct Ele_floor *next;
}Fl, *Flo;
//提示语
//事件列表 
void meau_event();
//状态列表 
void meau_state();
//楼层获取提示
void meau_floor(Ele p);
//电梯状态初始化(电梯处于一楼且电梯门关闭) 
void init_elevator(Ele p);
//楼层获取 
void Get_floor(Flo L, Ele p);
//删除已经到达的楼层
void Delete_floor(Flo L);
//电梯状态转换 
void trans_elevator(Ele p, int k);//k为接下来需要到达的楼层 
//遍历要到达的每个楼层 
void Every_floor(Flo s, Flo L, Ele p, int k);
//输出要到达的楼层
void Print_floor(Flo L);
//获取还要到达的楼层数目 
int Amount_floor(Flo L);
//将当前输入的楼层与一输入的楼层合并
Flo Merge_floor(Flo L1, Flo L2);
//删除重复楼层 
void Delete_samefloor(
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值