完成一段程序,要求用c++实现这样的功能。输入三个整数a,b,c,分别作为三角形的三条边(输入范围是1-100),现通过程序判断三条边构成三角形的类型为: a)一般三角形 b)等边三角形 c)等腰三角形 d)不构成三角形 e)直角三角形,判定结果均打印输出。1.黑盒测试方法: (1)等价类划分法: (2)边界值分析法:
时间: 2023-11-27 15:54:28 浏览: 110
以下是针对该问题的C++程序实现,使用了等价类划分法和边界值分析法。
```c++
#include <iostream>
using namespace std;
int main() {
int a, b, c;
cout << "请输入三角形的三条边(输入范围是1-100):" << endl;
cin >> a >> b >> c;
if (a <= 0 || b <= 0 || c <= 0 || a > 100 || b > 100 || c > 100) {
cout << "不构成三角形" << endl;
return 0;
}
if (a + b <= c || a + c <= b || b + c <= a) {
cout << "不构成三角形" << endl;
return 0;
}
if (a == b && b == c) {
cout << "等边三角形" << endl;
} else if (a == b || b == c || a == c) {
if (a * a + b * b == c * c || a * a + c * c == b * b || b * b + c * c == a * a) {
cout << "等腰直角三角形" << endl;
} else {
cout << "等腰三角形" << endl;
}
} else if (a * a + b * b == c * c || a * a + c * c == b * b || b * b + c * c == a * a) {
cout << "直角三角形" << endl;
} else {
cout << "一般三角形" << endl;
}
return 0;
}
```
黑盒测试:
1. 等价类划分法:
- 输入三个正整数,构成一般三角形。
- 输入三个相等的正整数,构成等边三角形。
- 输入两个相等的正整数和一个不同的正整数,构成等腰三角形。
- 输入三个正整数,其中一个是另外两个正整数的和,不构成三角形。
- 输入三个正整数,其中一个是另外两个正整数的差,不构成三角形。
2. 边界值分析法:
- 输入三个正整数,最小值为1,构成一般三角形。
- 输入三个正整数,最大值为100,构成一般三角形。
- 输入三个正整数,其中一个是1,不构成三角形。
- 输入三个正整数,其中一个是100,构成一般三角形。
阅读全文