某程序输入三个整数作为三角形的边长,判断并输出三角形的类型(等边三角形、等腰三角形、一般三角形)。请用等价类划分法设计该程序的测试用例
时间: 2023-12-03 09:02:08 浏览: 201
根据等价类划分法,可以将输入的三个整数分为以下等价类:
1. 等边三角形:三个边长相等的情况
2. 等腰三角形:两个边长相等的情况
3. 一般三角形:三个边长都不相等的情况
4. 非三角形:其中任意两个边长之和小于第三个边长的情况
根据以上等价类,设计以下测试用例:
等边三角形:
- (3, 3, 3)
- (10, 10, 10)
等腰三角形:
- (3, 4, 4)
- (5, 5, 7)
一般三角形:
- (3, 4, 5)
- (7, 8, 9)
非三角形:
- (1, 2, 4)
- (5, 10, 25)
其中,等边三角形和等腰三角形都属于特殊情况,需要额外测试;一般三角形包含了边长都不相等的情况,也需要覆盖到;非三角形是不符合三角形定义的情况,也需要测试。
相关问题
C++编写一个三角形程序,任意输入三个整数,判断三个整型边长能否构成三角形。如果是三角形,则判断它是一般三角形、等腰三角形或等边三角形,并输出三角形的类型。当输入的不是三个数时需要给出相应错误提示,当输入的不是整数时需要给出相应错误提示,当输入非正数时要给出相应错误提示
下面是一个简单的C++程序示例,可以满足您的需求:
```cpp
#include <iostream>
using namespace std;
int main() {
int a, b, c;
// 输入三个值
cout << "请输入三条边的长度(整数):" << endl;
if (!(cin >> a) || !(cin >> b) || !(cin >> c)) { // 检查是否是非整数输入
cout << "错误:请输入有效的整数值!" << endl;
return 0;
}
// 判断输入是否为正数
if (a <= 0 || b <= 0 || c <= 0){
cout << "错误:所有边长必须大于零!" << endl;
return 0;
}
// 判断三边是否能组成三角形
if(a + b > c && a + c > b && b + c > a){
if(a == b && b == c)
cout << "这是一个等边三角形。" << endl;
else if(a == b || b == c || a == c)
cout << "这是一个等腰三角形。" << endl;
else
cout << "这是一个一般三角形。" << endl;
}else{
cout << "这三条边无法构成一个三角形。" << endl;
}
return 0;
}
```
上述代码实现了以下功能:
1. 提示用户输入并获取三个整数值;
2. 验证这三个值都是有效数字及它们均大于零;
3. 使用条件判断语句检查该三个值是否能够形成三角形;如果成立,则进一步分类。
编写一个三角形程序,任意输入三个整数,判断三个整形边长能否构成三角形,如果是三角形,则判断它是一般三角形、等腰三角形或等边三角形,并输出三角形的类型。 2.画出程序的CFG,计算圈复杂度; 3.设计一组测试用例满足测试基本路径覆盖准则。
好的,我会根据您的要求回答您的问题。以下是您的问题的答案:
1. 三角形程序的代码:
```python
a = int(input("请输入第一个边长:"))
b = int(input("请输入第二个边长:"))
c = int(input("请输入第三个边长:"))
if a + b > c and a + c > b and b + c > a:
if a == b and b == c:
print("这是一个等边三角形")
elif a == b or b == c or a == c:
print("这是一个等腰三角形")
else:
print("这是一个一般三角形")
else:
print("这不是一个三角形")
```
2. 程序的CFG:
```
1
/ \
2 3
|\ |
4 5 6
\ |
7 8
|
9
```
3. 基本路径覆盖测试用例设计:
| 测试用例 | 输入值 | 预期输出 |
| -------- | ------ | -------- |
| 1 | 3, 4, 5 | 一般三角形 |
| 2 | 2, 2, 3 | 等腰三角形 |
| 3 | 1, 1, 1 | 等边三角形 |
| 4 | 1, 2, 3 | 不是三角形 |
| 5 | 0, 0, 0 | 不是三角形 |
阅读全文
相关推荐














