【文件属性】:
文件名称:有限状态机的c语言实现
文件大小:2KB
文件格式:
更新时间:2018-11-15 03:22:12
有限状态机
#include
int main()
{ int state_key = 1; //钥匙状态 为1时钥匙区有钥匙,为时钥匙区
无钥匙
int state_hold = 0; // 钥匙持有状态 为1时持有钥匙,为时
未持有钥匙
int state_door = 0; //门状态 0:关闭 1:打开
int state_lock = 1; //上锁状态 1:上锁 0:解锁
int order; // 用于存放用户输入指令
printf("this is a game.\n");
printf ("if you want to OPEN THE DOOR ,input 1\n");
printf ("if you want to CLOSE THE DOOR ,input 2\n");
printf ("if you want to LOCK THE DOOR ,input 3\n");
printf ("if you want to UNLOCK THE DOOR,input 4\n");
// printf ("if you want to LOCK THE DOOR ,input 5\n");
printf("please input the order\n");
while(1)
{ scanf("%d",&order);
// if(order!=(1||2||3||4))
// {
// printf("worng input ,please input again.\n");
// continue;
// }
switch(order)
{
case 1 :
if(state_door==1)
{
printf("the door has been opened before\n");
break;
}
if(state_lock==1)
{
printf("the door has been lock\n");
break;
}
state_door=1;
break;
case 2:
if(state_door==0)
{
printf("the door has been closed before\n");
break;
}
if(state_lock==1)
{
printf("the door has been lock\n");
break;
}
state_door=0;
break;
case 3:
if(state_door==1)
{
printf("the door has been opened before\n");
break;
}
if(state_lock==1)
{
printf("the door has been lock\n");
break;
}
state_lock=1;
break ;
case 4:
if(state_door==1)
{
printf("the door has been opened before\n");
break;
}
if(state_lock==0)
{
printf("the door has not been lock\n");
break;
}
state_lock=0;
break ;
}
}
}