2.一个三角形判定的程序要求输入3个整数a,b,c,分别作为三角形的3条边,通过程序判断3条边构成三角形的类型为等边三角形、等腰三角形、一般三角形或者不构成三角形。请用等价分类法再结合边值分析以及猜错法设计出该程序的所有测试用例。
时间: 2023-12-04 22:00:14 浏览: 104
根据等价分类法,我们可以将三角形的类型分为以下几类:等边三角形、等腰三角形、一般三角形和不构成三角形。
1. 等边三角形:三条边的长度都相等。
- 测试用例1: a = b = c = 10,预期结果是等边三角形。
2. 等腰三角形:两条边的长度相等,第三条边不等。
- 测试用例2: a = b = 5, c = 6,预期结果是等腰三角形。
- 测试用例3: a = 5, b = c = 8,预期结果是等腰三角形。
3. 一般三角形:三条边的长度都不相等。
- 测试用例4: a = 3, b = 4, c = 5,预期结果是一般三角形。
- 测试用例5: a = 7, b = 9, c = 12,预期结果是一般三角形。
4. 不构成三角形:两条边的和小于第三条边的长度。
- 测试用例6: a = 1, b = 2, c = 5,预期结果是不构成三角形。
- 测试用例7: a = 5, b = 10, c = 20,预期结果是不构成三角形。
除了满足各类三角形类型的测试用例外,还需要考虑边界值和异常情况。
5. 边界值测试:
- 测试用例8: a = b = 1, c = 2,预期结果是不构成三角形。
- 测试用例9: a = b = 1000, c = 2000,预期结果是不构成三角形。
6. 异常情况测试:
- 测试用例10: a = -1, b = 2, c = 3,预期结果是不构成三角形,输入的边长度不能为负数。
通过以上的测试用例,我们可以确保程序在各种情况下能够正确判断三角形的类型。
相关问题
1.设有 三角形问题的需求规格描述如下:输入三个正整数 a、b、c,分别作为三角形的三条边,通过程序判断三条边是否能构成三角形?如果能构成三角形,判断直角三角形的类型(直角三角形、非直角三角形、非三角形)。 请用基于判定表的方法设计测试用例。
好的,根据上述需求规格,我们可以列出如下的判定表:
| 用例编号 | 输入数据 | 预期输出 |
| -------- | -------- | -------- |
| 1 | a=3, b=4, c=5 | 直角三角形 |
| 2 | a=5, b=12, c=13 | 直角三角形 |
| 3 | a=6, b=8, c=10 | 直角三角形 |
| 4 | a=1, b=2, c=3 | 非三角形 |
| 5 | a=5, b=5, c=10 | 非三角形 |
| 6 | a=3, b=4, c=7 | 非三角形 |
| 7 | a=6, b=6, c=6 | 非直角三角形 |
| 8 | a=4, b=7, c=10 | 非直角三角形 |
| 9 | a=2, b=2, c=3 | 非直角三角形 |
其中,用例编号表示每个测试用例的唯一标识;输入数据包括三个正整数 a、b、c;预期输出则根据输入数据计算出的三角形类型。
需要注意的是,这里只列出了涉及到的常规测试用例,还需要考虑边界测试用例和异常情况的测试用例。
完成一段程序,要求用java实现这样的功能。输入三个整数a,b,c,分别作为三角形的三条边(输入范围是1-100),现通过程序判断三条边构成三角形的类型为: a)一般三角形 b)等边三角形 c)等腰三角形 d)不构成三角形 直角三角形,判定结果均打印输出
以下是用Java实现的程序:
```
import java.util.Scanner;
public class TriangleType {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入三角形的三条边a、b、c:");
int a = scanner.nextInt();
int b = scanner.nextInt();
int c = scanner.nextInt();
if (a + b <= c || a + c <= b || b + c <= a) {
System.out.println("不能构成三角形");
} else if (a == b && b == c) {
System.out.println("等边三角形");
} 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) {
System.out.println("直角等腰三角形");
} else {
System.out.println("等腰三角形");
}
} else if (a*a + b*b == c*c || a*a + c*c == b*b || b*b + c*c == a*a) {
System.out.println("直角三角形");
} else {
System.out.println("一般三角形");
}
}
}
```
程序首先读入三角形的三条边a、b、c,然后判断它们能否构成三角形。如果不能构成三角形,则输出“不能构成三角形”。如果能构成三角形,则继续判断三角形的类型。
如果三边相等,则是等边三角形;如果有两边相等,则是等腰三角形;如果没有边相等,但是满足勾股定理,即a*a + b*b = c*c或a*a + c*c = b*b或b*b + c*c = a*a,则是直角三角形;否则是一般三角形。
根据判断结果输出相应的类型。