1

我正在尝试建立一个表格来描述下面描述的硬币兑换机的 FSA 行为。

有一个插槽可以接受 50c 硬币和 2 个按钮,用户可以按下这些按钮来获得 20c 或 10c 硬币作为找零。一旦插入 50c 硬币,机器就会锁定以防止再添加硬币。当用户按下 20c 按钮时,机器检查剩余值是否足够,然后给用户一个 20c 硬币。如果剩余值不够,则机器“死机”(为简单起见)。10c 按钮的工作原理类似。

机器的事件是insert50c, give20c, give10c。

所以,据我了解,这个 FSA 有 6 个状态,比如说 0、10、20、30、40、50。状态由剩余要退还的钱的​​价值来表示。我在这里画了一个粗略的状态图,但我错过了任何转换吗?

4

1 回答 1

0

你的状态图看起来不错。在任务中它说“用户可以按下以获得 20c 或 10c 硬币”。我完全错过了这个用户交互。如果金额为 10c,用户按 20c,会怎样?

因此,如果机器只允许接受 50c 而不是 20c 的零钱,那没关系。每次硬币找零,换钱机都有一个取消按钮,可以分解。这是怎么回事?

于 2017-11-17T09:57:18.850 回答