include
define NU1 10
define NU2 10
//里面成员必须大写
typedef enum fangxiang // 标识符
{
EAST,
WEST = 99,
SAUTH,
NORTH = 100,
xq,
}E;
//定义状态机的所有状态集
typedef enum STATE
{
STATE1,
STATE2,
STATE3,
STATE4,
STATE5,
STATE6,
STATE7,
}S;
int main(void)
{
int num = 0;
//1、密码锁初始状态
S current_state = STATE1;
// 输入密码,进行解锁
printf(“输入一个密码数字:”);
while (1)
{
scanf(“%d”, &num);
printf(“num = %d.\n”, num);
//解锁子开始
switch (current_state)
{
case STATE1:
if (num == 9)
{
current_state = STATE2; // 用户每输对一次,进入下一状态
}
else
{
current_state = STATE1;
}
break;
case STATE2:
if (num == 5)
{
current_state = STATE3; // 用户每输对一次,进入下一状态
}
else
{
current_state = STATE1;
}
break;
case STATE3:
if (num == 2)
{
current_state = STATE4; // 用户每输对一次,进入下一状态
}
else
{
current_state = STATE1;
}
break;
case STATE4:
if (num == 7)
{
current_state = STATE5; // 用户每输对一次,进入下一状态
}
else
{
current_state = STATE1;
}
break;
default:
current_state = STATE1;
break;
}
if (current_state == STATE5)
{
printf("开了锁,请进!.\n");
//break
return 0;
}
if (current_state == STATE1)
{
printf("初始状态.\n");
}
}
/*
E e = EAST;
printf(“e = %d.\n”, e);
e = xq;
printf("e = %d.\n", e);
*/
return 0;
}