1、有一个饮料自动售货机(处理单价为5角钱)的控制处理软件,它的软件规格说明如下: 若投入2.5元硬币,按下“橙汁”或“啤酒”的按钮,则相应的饮料就送出来。 若投入3元钱的硬币,同样也是按“橙汁”或“啤酒”的按钮,则自动售货机在送出相应饮料的同时退回5角钱的硬币。 要求:画出因果图,设计决策表,设计测试用例。
时间: 2023-11-04 20:08:14 浏览: 339
因果图如下:
![因果图](https://i.imgur.com/3ZT5BcB.png)
决策表如下:
| 条件 | 操作 | 结果 |
|:---:|:---:|:---:|
| 投入2.5元硬币,按下“橙汁”按钮 | 无 | 送出橙汁 |
| 投入2.5元硬币,按下“啤酒”按钮 | 无 | 送出啤酒 |
| 投入3元硬币,按下“橙汁”按钮 | 无 | 送出橙汁,退回5角钱硬币 |
| 投入3元硬币,按下“啤酒”按钮 | 无 | 送出啤酒,退回5角钱硬币 |
测试用例如下:
| 测试用例编号 | 输入 | 期望输出 |
|:---:|:---:|:---:|
| 1 | 投入2.5元硬币,按下“橙汁”按钮 | 送出橙汁 |
| 2 | 投入2.5元硬币,按下“啤酒”按钮 | 送出啤酒 |
| 3 | 投入3元硬币,按下“橙汁”按钮 | 送出橙汁,退回5角钱硬币 |
| 4 | 投入3元硬币,按下“啤酒”按钮 | 送出啤酒,退回5角钱硬币 |
相关问题
有一个饮料自动售货机(处理单价为5角钱)的控制处理软件,它的软件 规格说明如下: 若投入5角钱的硬币,按下“橙汁”或“啤酒”的按钮,则相应的饮料就 送出米。若投入1元钱的硬币,同样也是按“橙汁”或“啤酒”的按钮,则自 动售货机在送出相应饮料的同时退回5角钱的硬币。 用程序模拟该自动售货机(注:用屏幕输入、输出来模拟售货机的动作),使 用判定表设计方法进行用例设计。
以下是使用判定表设计方法进行用例设计的情况:
| 条件 | 动作 |
| ------------------- | --------------------------------------- |
| 投入5角钱硬币 | 等待用户按下“橙汁”或“啤酒”的按钮 |
| 投入1元钱硬币 | 等待用户按下“橙汁”或“啤酒”的按钮 |
| 用户按下“橙汁”按钮 | 如果投入5角钱硬币,则送出橙汁;否则不做任何操作 |
| 用户按下“啤酒”按钮 | 如果投入5角钱硬币,则送出啤酒;否则不做任何操作 |
| 用户按下退款按钮 | 如果投入1元钱硬币,则送出相应饮料并退回5角钱硬币;否则不做任何操作 |
以下是该自动售货机的程序模拟(使用Python):
```python
coin = input("请投入硬币(5角钱或1元钱):")
if coin == "0.5":
drink = input("请选择饮料(橙汁或啤酒):")
if drink == "橙汁":
print("您已购买橙汁")
elif drink == "啤酒":
print("您已购买啤酒")
else:
print("无效的选择")
elif coin == "1":
drink = input("请选择饮料(橙汁或啤酒):")
if drink == "橙汁":
print("您已购买橙汁,退回5角钱硬币")
elif drink == "啤酒":
print("您已购买啤酒,退回5角钱硬币")
else:
print("无效的选择")
else:
print("无效的硬币")
```
有一个饮料自动售货机(处理单价为5角钱)的控制处理软件,它的软件规格说明如下: 若投入5角钱的硬币,按下“橙汁”或“啤酒”的按钮,则相应的饮料就送出来。若投入1元钱的硬币,同样也是按“橙汁”或“啤酒”的按钮,则自动售货机在送出相应饮料的同时退回5角钱的硬币。 用程序模拟该自动售货机(注:用屏幕输入、输出来模拟售货机的动作),使用判定表设计方法进行用例设计。c语言程序代码及完整的决策表设计和测试用例设计
以下是该自动售货机的C语言程序代码,包括决策表设计和测试用例设计。
```c
#include <stdio.h>
int main()
{
int coin, choice;
printf("Please insert a coin (0.5 yuan or 1 yuan): ");
scanf("%d", &coin);
if (coin == 0.5)
{
printf("Please choose your drink:\n1. Orange juice\n2. Beer\n");
scanf("%d", &choice);
switch (choice)
{
case 1:
printf("Here is your orange juice.\n");
break;
case 2:
printf("Here is your beer.\n");
break;
default:
printf("Invalid choice.\n");
break;
}
}
else if (coin == 1)
{
printf("Please choose your drink:\n1. Orange juice\n2. Beer\n");
scanf("%d", &choice);
switch (choice)
{
case 1:
printf("Here is your orange juice, and 0.5 yuan change.\n");
break;
case 2:
printf("Here is your beer, and 0.5 yuan change.\n");
break;
default:
printf("Invalid choice.\n");
break;
}
}
else
{
printf("Invalid coin.\n");
}
return 0;
}
```
接下来是该自动售货机的判定表设计。
|条件|操作1:投入0.5元硬币|操作2:投入1元硬币|
|:-:|:-:|:-:|
|橙汁按钮被按下|送出橙汁|送出橙汁,退回0.5元硬币|
|啤酒按钮被按下|送出啤酒|送出啤酒,退回0.5元硬币|
|其它按钮被按下|无操作|无操作|
最后是该自动售货机的测试用例设计。
|测试用例编号|测试条件|预期结果|
|:-:|:-:|:-:|
|1|投入0.5元硬币,按下橙汁按钮|屏幕输出“Here is your orange juice.”|
|2|投入0.5元硬币,按下啤酒按钮|屏幕输出“Here is your beer.”|
|3|投入0.5元硬币,按下其它按钮|屏幕无输出|
|4|投入1元硬币,按下橙汁按钮|屏幕输出“Here is your orange juice, and 0.5 yuan change.”|
|5|投入1元硬币,按下啤酒按钮|屏幕输出“Here is your beer, and 0.5 yuan change.”|
|6|投入1元硬币,按下其它按钮|屏幕无输出|
|7|投入0.2元硬币,按下橙汁按钮|屏幕输出“Invalid coin.”|
|8|投入1.5元硬币,按下啤酒按钮|屏幕输出“Invalid coin.”|
阅读全文