(3)有一个饮料自动售货机(处理单价为5角钱)的控制处理软件,它的软件规格说明 如下。 · 若投入2.5元硬币,按下“橙汁”或“啤酒”的按钮,则送出相应的饮料。 · 若投入3元钱的硬币,同样按下“橙汁”或“啤酒”的按钮,则自动售货机在送出相应 饮料的同时退回5角钱的硬币。 要求:画出因果图,设计决策表,导出测试用例。
时间: 2024-02-12 19:04:30 浏览: 190
因果图如下:
```
投币金额 --+-- 2.5元 -- 按钮 --+-- 橙汁 -- 饮料出口
| +-- 啤酒 -- 饮料出口
|
+-- 3元 -- 按钮 --+-- 橙汁 -- 饮料出口 -- 5角 -- 退币口
+-- 啤酒 -- 饮料出口 -- 5角 -- 退币口
```
决策表如下:
| 条件 | 操作 | 结果 |
| --- | --- | --- |
| 投币金额=2.5元,按钮=橙汁 | 送出橙汁 | 饮料出口 |
| 投币金额=2.5元,按钮=啤酒 | 送出啤酒 | 饮料出口 |
| 投币金额=3元,按钮=橙汁 | 送出橙汁,退回5角 | 饮料出口,退币口 |
| 投币金额=3元,按钮=啤酒 | 送出啤酒,退回5角 | 饮料出口,退币口 |
测试用例如下:
| 测试用例编号 | 投币金额 | 按钮 | 期望输出 |
| --- | --- | --- | --- |
| 1 | 2.5元 | 橙汁 | 饮料出口 |
| 2 | 2.5元 | 啤酒 | 饮料出口 |
| 3 | 3元 | 橙汁 | 饮料出口,退币口 |
| 4 | 3元 | 啤酒 | 饮料出口,退币口 |
相关问题
有一个饮料自动售货机,处理单价为5角钱c语言
以下是一个简单的C语言程序,模拟饮料自动售货机的功能,处理单价为5角钱:
```
#include <stdio.h>
int main()
{
int balance, choice;
printf("请选择您要购买的饮料:\n");
printf("1. 可乐(0.5元)\n");
printf("2. 矿泉水(0.5元)\n");
printf("3. 果汁(0.5元)\n");
scanf("%d", &choice);
switch (choice) {
case 1:
printf("您选择了可乐!\n");
break;
case 2:
printf("您选择了矿泉水!\n");
break;
case 3:
printf("您选择了果汁!\n");
break;
default:
printf("您的选择无效!\n");
return 0;
}
printf("请投入0.5元硬币:\n");
scanf("%d", &balance);
if (balance == 5) {
printf("购买成功,谢谢惠顾!\n");
} else if (balance > 5) {
printf("购买成功,找您%d角!\n", balance - 5);
} else {
printf("余额不足,请投入0.5元硬币!\n");
}
return 0;
}
```
程序会先输出菜单,让用户选择要购买的饮料。然后让用户投入0.5元硬币,如果投入的金额不足,程序会要求用户继续投币;如果投入的金额超过了0.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)
```
阅读全文