问题 问答题

输入三个整数a、b、c分别作为三边的边长构成三角形。通过程序判定是否构成三角形以及所构成的三角形的类型,分别输出“非三角形”、“一般三角形”、“等腰三角形”或“等边三角形”。用等价类划分方法为该程序设计测试用例。

答案

参考答案:分析题目中给出和隐含的对输入条件的要求:
①整数,②三个数,③非零数,④正数,⑤两边之和大于第三边,⑥等腰,⑦等边。
如果a、b、c满足条件①~④,则输出下列4种情况之一:
(1)如果不满足条件⑤,则程序输出为“非三角形”。
(2)如果三条边相等即满足条件⑦,则程序输出为“等边三角形”。
(3)如果只有两条边相等,即满足条件⑥,则程序输出为“等腰三角形”。
(4)如果三条边都不相等,则程序输出为“一般三角形”。
列出等价类表并编号,结果如表1所示。

表1 等价类表
输入条件 有效等价类 无效等价类
是否是三角形的三条边 A>0 (1) A≤0 (7)
B>0 (2) B≤0 (8)
C>0 (3) C≤0 (9)
A+B>C (4) A+B≤C (10)
A+C>B (5) A+C≤B (11)
B+C>A (6) B+C≤A (12)
是否是等腰三角形 A=B (13) A≠B AND A≠B AND B≠C (16)
B=C (14)
C=A (15)
是否是等边三角形 A=B AND A=C AND B=C (17) A≠B (18)
A≠B (19)
A≠B (20)
  根据等价类设计等价类测试用例如表2所示。
表2 等价类测试用例表
符号 [ABC] 覆盖等价类 输出
1 [3、4、5] (1)、(2)、(3)、(4)、(5)、 (6) 一般三角形
2 [0、1、2] (7) 不能构成三角形
3 [1、0、2] (8)
4 [1、2、0] (9)
5 [1、2、3] (10)
6 [1、3、2] (11)
7 [3、1、2] (12)
8 [3、3、4] (1)、(2)、(3)、(4)、(5)、 (6)、(13) 等腰三角形
9 [3、4、4] (1)、(2)、(3)、(4)、(5)、 (6)、(14)
10 [3、4、3] (1)、(2)、(3)、(4)、(5)、 (6)、(15)
11 [3、4、5] (1)、(2)、(3)、(4)、(5)、 (6)、(16) 非等腰三角形
12 [3、3、3] (1)、(2)、(3)、(4)、(5)、 (6)、(17) 等边三角形
13 [3、4、4] (1)、(2)、(3)、(4)、(5)、 (6)、(18) 非等边三角形
14 [3、4、3] (1)、(2)、(3)、(4)、(5)、 (6)、(19)
15 [3、3、4] (1)、(2)、(3)、(4)、(5)、 (6)、(20)

填空题
填空题