Chinaunix首页 | 论坛 | 博客
  • 博客访问: 20053018
  • 博文数量: 679
  • 博客积分: 10495
  • 博客等级: 上将
  • 技术积分: 9308
  • 用 户 组: 普通用户
  • 注册时间: 2006-07-18 10:51
文章分类

全部博文(679)

文章存档

2012年(5)

2011年(38)

2010年(86)

2009年(145)

2008年(170)

2007年(165)

2006年(89)

分类: 项目管理

2009-09-21 17:35:58

自测

2009-09-21

磁针石:xurongzhong#gmail.com

博客:oychw.cublog.cn



    一个程序功能如下:

    从一个输入框内读取3个整数,对应三角形的三个边,程序判断是普通三角形,等腰或者等边三角形。

软件评测师对此题按等价类划分的分析:

我们可以设三角形的3条边分别为A,B,C。如果它们能够构成三角形的3条边,必须满足:

nA>0,B>0,C>0,且A+B>C,B+C>A,A+C>B。

n如果是等腰的,还要判断A=B,或B=C,或A=C。

n如果是等边的,则需判断是否A=B,且B=C,且A=C。

输入条件

有效等价类

无效等价类

是否三角形的三条边

(A>0),     (1)

(B>0),     (2)

(C>0),     (3)

(A+B>C),   (4)

(B+C>A),   (5)

(A+C>B),   (6)

(A≤0),      (7)

(B≤0),      (8)

(C≤0),      (9)

(A+B≤C),    (10)

(B+C≤A),    (11)

(A+C≤B),    (12)

是否等腰角形

(A=B),     (13)

(B=C),     (14)

(C=A),     (15)

(A≠B)and(B≠C)and(C≠A)     (16)

是否等边三角形

(A=B)and(B=C)and(C=A)

              (17)

(A≠B),      (18)

(B≠C),      (19)

(C≠A),      (20)

 

 

序号

【A,B,C】

覆盖等价类

输出

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),(14),(18)

非等边三角形

14

【3,4,3】

(1),(2),(3),(4),(5),(6),(15),(19)

15

【3,3,4】

(1),(2),(3),(4),(5),(6),(13),(20)

    另外还要考虑负数,(0,0,0),带小数点、特殊字符、只输入2个数等情况。

该题目更复杂的版本,留待以后研究。

    在三角形计算中,要求三角型的三个边长:A、B 和C。当三边不可能构成三角形时提示错误,可构成三角形时计算三角形周长。若是等腰三角形打印“等腰三角形”,若是等边三角形,则提示“等边三角形”。画出程序流程图、控制流程图、计算圈复杂度V(g),找出基本测试路径。

阅读(3335) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~