有一个饮料自动售货机(处理单价为5角钱)的控制处理软件,若投入5角钱的硬币,按下“橙汁”或“啤酒”的按钮,则相应的饮料就送出来。若投入1元钱的硬币,同样也是按“橙汁”或“啤酒”的按钮,则自动售货机在送出相应饮料的同时退回5角钱的硬币。 用因果图法测试该程序
时间: 2024-05-07 13:21:15 浏览: 92
以下是该程序的因果图:
```
硬币投入 --+--> 5角钱硬币计数器 --+--> 退回5角钱硬币
| |
| +-----------------+
| |
+-->(投入1元硬币)--> 饮料选择器 --+--> 橙汁
|
+--> 啤酒
```
该因果图中,硬币投入是唯一的起点,可以导致5角钱硬币计数器和饮料选择器两个事件。5角钱硬币计数器和饮料选择器之间没有直接的因果关系,因为饮料选择器的输出取决于硬币投入的金额和用户的选择,而不是5角钱硬币计数器的状态。同时,投入1元硬币会触发饮料选择器和5角钱硬币计数器两个事件,因为它既可以购买饮料又可以获得5角钱的找零。
相关问题
有一个饮料自动售货机(处理单价为5角钱)的控制处理软件,若投入5角钱的硬币,按下“橙汁”或“啤酒”的按钮,则相应的饮料就送出来。若投入1元钱的硬币,同样也是按“橙汁”或“啤酒”的按钮,则自动售货机在送出相应饮料的同时退回5角钱的硬币。
这个自动售货机的控制处理流程如下:
1. 接收用户投入的硬币,判断硬币的面值是5角钱还是1元钱。
2. 如果是5角钱的硬币,则等待用户按下“橙汁”或“啤酒”的按钮。
3. 如果用户按下“橙汁”或“啤酒”的按钮,则相应的饮料被送出,同时扣除5角钱的硬币。
4. 如果是1元钱的硬币,则等待用户按下“橙汁”或“啤酒”的按钮。
5. 如果用户按下“橙汁”或“啤酒”的按钮,则相应的饮料被送出,同时扣除1元钱的硬币,并退回5角钱的硬币。
实现时,需要用硬件设备(比如传感器)来检测硬币的面值和按钮的按下情况,并使用相应的控制逻辑来实现上述流程。
有一个饮料自动售货机(处理单价为5角钱)的控制处理软件,它的软件规格说明如下 ·若投入2.5元硬币,按下“橙汁”或“啤酒”的按钮,则送出相应的饮料。 ·若投入3元钱的硬币,同样按下“橙汁”或“啤酒”的按钮,则自动售货机在送出相应饮料的同时退回5角钱的硬币。 要求:设计决策表,
为了设计这个自动售货机的决策表,我们需要列出所有可能的输入条件、操作步骤以及对应的输出结果。这是一个简单的流程:
**决策表**
| 输入 | 按钮选择 | 输出操作 |
| -- | --- | --- |
| 硬币金额 | 橙汁 | 送出橙汁 |
| 硬币金额 | 啤酒 | 送出啤酒 |
| 2.5元 | 橙汁或啤酒 | 送出对应饮料 |
| 3元 | 橙汁或啤酒 | 送出对应饮料 -> 退回5角硬币 |
**状态转换规则**
1. 如果投入的是2.5元硬币并选择了橙汁或啤酒,那么程序会直接送出发饮料。
2. 如果投入的是3元硬币,则程序首先检查用户的选择,无论选哪一种饮料,都会送出饮料,并退回5角硬币。
**伪代码示例**
```python
def operate(drink_selection, coin_amount):
if coin_amount == 2.5 and (drink_selection == "橙汁" or drink_selection == "啤酒"):
deliver_drink(drink_selection)
elif coin_amount == 3 and (drink_selection == "橙汁" or drink_selection == "啤酒"):
deliver_drink(drink_selection)
return_change(0.5)
```
阅读全文