`
liyiye
  • 浏览: 425095 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

(五)白盒测试实例--编码

阅读更多

1、Triangle.h

  1. /*
  2.  * Copyright (c) 2008, 胡添发(hutianfa@163.com)
  3.  * 
  4.  * 三角形类型判断
  5.  *
  6.  */
  7. #include<stdio.h>
  8. #include<String.h>
  9. /*
  10.  * 判断一个整数是否在(0, 200)区间内
  11.  * 返回值:true-否; false-是
  12. */
  13. bool isOutOfRange(int i);
  14. /*
  15.  * 判断三条边是否合法(即:判断三条边都在合法的范围内)
  16.  * 返回值:true-是; false-否
  17. */
  18. bool isLegal(int a, int b, int c);
  19. /*
  20.  * 判断两条边之和是否大于第三边
  21.  * 返回值:true-是; false-否
  22. */
  23. bool isSumBiger(int a, int b, int c);
  24. /*
  25.  * 判断三条边是否能够组成三角形
  26.  * 返回值:true-是; false-否
  27. */
  28. bool isTriangle(int a, int b, int c);
  29. /*
  30.  * 判断两条边是否相等
  31.  * 返回值:true-是; false-否
  32. */
  33. bool isEquals(int a, int b);
  34. /*
  35.  * 求三角形有几条边相等
  36.  * 返回值:相等边的数量
  37. */
  38. int howManyEquals(int a, int b, int c);
  39. /*
  40.  * 判断是否满足两边平方之和是否等于第三边的平方
  41.  *
  42.  */
  43. bool isPowerSumEquals(int a, int b, int c);
  44. /*
  45.  * 判断第一个数是否比第二个数大
  46.  */
  47. bool isGreaterThan(int a, int b);
  48. /*
  49.  * 判断是否是直角三角形
  50.  *
  51.  */
  52. bool isRightRriangle(int a, int b, int c);
  53. /*
  54.  * 判断三角形的类型,返回值:
  55.  * 1、不能组成三角形
  56.  * 2、等边三角形
  57.  * 3、等腰三角形
  58.  * 4、直角三角形
  59.  * 5、一般三角形
  60.  * 6、某些边不满足限制
  61.  */
  62. int triangleType(int a, int b, int c);

2、Triangle.cpp

  1. /*
  2.  * Copyright (c) 2008, 胡添发(hutianfa@163.com)
  3.  * 
  4.  * 三角形类型判断
  5.  * 
  6.  */
  7. #include<stdio.h>
  8. #include<String.h>
  9. /*
  10.  * 判断一个整数是否在(0, 200)区间内
  11.  * 返回值:true-否; false-是
  12. */
  13. bool isOutOfRange(int i)
  14. {
  15.     if(0<i && i<200)
  16.     {
  17.         return false;
  18.     }
  19.     else
  20.     {
  21.         return true;
  22.     }
  23. };
  24. /*
  25.  * 判断三条边是否合法(即:判断三条边都在合法的范围内)
  26.  * 返回值:true-是; false-否
  27. */
  28. bool isLegal(int a, int b, int c)
  29. {
  30.     if(isOutOfRange(a) || isOutOfRange(b) || isOutOfRange(c))
  31.     {
  32.         return false;       
  33.     }
  34.     return true;
  35. }
  36. /*
  37.  * 判断两条边之和是否大于第三边
  38.  * 返回值:true-是; false-否
  39. */
  40. bool isSumBiger(int a, int b, int c)
  41. {
  42.     if(a+b > c)
  43.     {
  44.         return true;
  45.     }
  46.     return false;
  47. }
  48. /*
  49.  * 判断三条边是否能够组成三角形
  50.  * 返回值:true-是; false-否
  51. */
  52. bool isTriangle(int a, int b, int c)
  53. {
  54.     if(isSumBiger(a, b, c) && isSumBiger(a, c, b) && isSumBiger(b, c, a))
  55.     {
  56.         return true;
  57.     }
  58.     return false;
  59. }
  60. /*
  61.  * 判断两条边是否相等
  62.  * 返回值:true-是; false-否
  63. */
  64. bool isEquals(int a, int b)
  65. {
  66.     if(a==b)
  67.     {
  68.         return true;
  69.     }
  70.     return false;
  71. }
  72. /*
  73.  * 求三角形有几条边相等
  74.  * 返回值:相等边的数量 
  75.  * 1:没有边相等 2:只有两条边相等 3:三条边相等
  76.  * 
  77. */
  78. int howManyEquals(int a, int b, int c)
  79. {
  80.     int count = 1;
  81.     if(isEquals(a,b))
  82.     {
  83.         count++;
  84.     }
  85.     if(isEquals(b,c))
  86.     {
  87.         count++;
  88.     }
  89.     if(isEquals(a,c))
  90.     {
  91.         count++;
  92.     }
  93.     if(count > 3)  //如果三条边都相等,则count多加了一次
  94.     {
  95.         count = 3;
  96.     }
  97.     return count;
  98. }
  99. /*
  100.  * 判断是否满足两边平方之和是否等于第三边的平方
  101.  *
  102.  */
  103. bool isPowerSumEquals(int a, int b, int c)
  104. {
  105.     if(a*a + b*b == c*c)
  106.     {
  107.         return true;
  108.     }
  109.     return false;
  110. }
  111. /*
  112.  * 判断第一个数是否比第二个数大
  113.  */
  114. bool isGreaterThan(int a, int b)
  115. {
  116.     if(a>b)
  117.     {
  118.         return true;
  119.     }
  120.     return false;
  121. }
  122. /*
  123.  * 判断是否是直角三角形
  124.  *
  125.  */
  126. bool isRightRriangle(int a, int b, int c)
  127. {
  128.     int max = 0;
  129.     if(isGreaterThan(a, b))
  130.     {
  131.         max = a;
  132.         a = b;
  133.         b = max;
  134.     }
  135.     if(isGreaterThan(b, c))
  136.     {
  137.         max = b;
  138.         b = c;
  139.         c = max;
  140.     }
  141.     return isPowerSumEquals(a, b, c);
  142. }
  143. /*
  144.  * 判断三角形的类型,返回值:
  145.  * 1、不能组成三角形
  146.  * 2、等边三角形
  147.  * 3、等腰三角形
  148.  * 4、直角三角形
  149.  * 5、一般三角形
  150.  * 6、某些边不满足限制
  151.  */
  152. int triangleType(int a, int b, int c)
  153. {
  154.     int type=0;
  155.     if(isLegal(a, b, c))
  156.     {
  157.         if(isTriangle(a, b, c))
  158.         {
  159.             int num = howManyEquals(a, b, c);
  160.             if(3==num)
  161.             {
  162.                 type=2;
  163.             }
  164.             else if(2==num)
  165.             {
  166.                 type=3;
  167.             }
  168.             else if(isRightRriangle(a, b, c))
  169.             {
  170.                 type=4;
  171.             }
  172.             else
  173.             {
  174.                 type=5;
  175.             }
  176.         }
  177.         else
  178.         {
  179.             type=1; 
  180.         }
  181.     }
  182.     else
  183.     {
  184.         type=6;
  185.     }
  186.     return type;
  187. }

 

分享到:
评论

相关推荐

    白盒测试实例之十——集成测试的概念[1]

    白盒测试实例之十——集成测试的概念[1]软件测试一、桩模块和驱动模块(以C语言为例):很多人对桩模块和驱动模块的概念会搞不清楚,下面先介绍这两个概念:模块结构实例图:假设现在项目组把任务分给了7个人,每个人...

    软件测试过程中的黑盒与白盒测试.pptx

    **白盒测试实例** 设计测试用例时,根据代码逻辑覆盖所有可能的分支和路径。例如,在一个登录模块中,不仅要测试正确的用户名和密码情况,还要测试空字符串、错误密码等异常情况。 **白盒测试总结** 白盒测试通过...

    软件测试实例(好像是具体的测试)

    - 白盒测试:基于代码结构的测试,关注程序逻辑路径。 - 黑盒测试:不考虑内部结构,只关注输入、输出和功能是否符合需求。 - 灰盒测试:结合白盒和黑盒测试,既考虑内部结构也关注功能行为。 5. **测试策略**:...

    [软件测试].赵瑞莲.文字版

    ### 五、白盒测试 - **程序控制流图**:介绍如何通过图形化的方式表示程序的控制流程。 - **逻辑覆盖**:描述不同级别的逻辑覆盖程度,如语句覆盖、判定覆盖等。 - **路径分析**: - **程序路径表示**:展示如何...

    软件测试工具的选择-功能测试和性能测试

    - **优势**:面向C和C++语言,自动化测试类、函数或组件,无需手动创建测试实例或驱动程序,确保代码的健壮性、可靠性和可维护性。 4. **CodeWizard** - **功能**:C/C++代码静态分析工具,运用超过500种编码规范...

    软件测试从这里开始

    - 包括安全测试实例、安全性测试方式等。 #### 6.4 容量测试 - 测试软件在大负载下的表现。 #### 6.5 安装、卸载测试 - 检查软件安装和卸载过程中的问题。 #### 6.6 兼容性测试 - 确保软件可以在不同的环境中正常...

    软件测试员培训入门资料

    - **测试案例(用例)**:用于验证软件是否满足特定需求的具体测试实例,通常包含输入数据、预期结果及执行步骤等信息。 - **黑盒测试**:一种基于软件功能的测试方法,测试人员仅关注输入和输出之间的关系,不考虑...

    软件测试入门

    - **5.1.1 白盒测试:**又称结构测试或透明盒测试,侧重于测试软件内部结构和工作过程。 - **静态测试:**无需运行程序即可进行的测试,如代码审查。 - **动态测试:**需要运行程序才能进行的测试,如路径覆盖。 -...

    软件测试培训讲义

    - 确定合适的测试方法和技术,如黑盒测试、白盒测试、灰盒测试等。 - 制定测试计划,包括测试范围、测试资源、测试时间表等。 #### 二、测试方法学 - **传统生命周期**:需求分析 → 设计 → 编码 → 测试 → ...

Global site tag (gtag.js) - Google Analytics