白盒测试实例--2学生的答案

来源:互联网 发布:淘宝页头背景图尺寸 编辑:程序博客网 时间:2024/05/16 15:37

原创文章,版权归 胡添发(hutianfa@163.com)所有,转载请注明出处:
http://blog.csdn.net/aidisheng/archive/2008/09/02/2868712.aspx

 

在教学的过程中发现,很多学生一看到这个需求,都觉得很简单,然后立刻就开始动手写代码了,这并不是一个很好的习惯。如果你的第一直觉也是这样的,不妨耐心看到文章的最后。

大部分学生的思路:

1、首先建立一个main函数, main函数第一件事是提示用户输入三角形的三边,然后获取用户的输入(假设用户的输入都是整数的情况),用C语言来写,这一步基本上不是问题(printf和scanf),但是要求用java来写的话,很多学生就马上遇到问题了,java5.0及之前的版本不容易获取用户的输入。 

点评:这样的思路做出来的程序只能通过手工方式来测试所有业务逻辑,而且这个程序只能是DOS界面版本了,要是想使用图形化界面来做输入,就得全部写过代码。

2、业务处理流程的思路用流程图表示如下:

 

 

3、C语言代码:

  1. #include<stdio.h>
  2. void main()
  3. {
  4.     int a, b, c;
  5.     printf("please enter three integer:");
  6.     scanf("%d%d%d", &a, &b, &c);
  7.     if(0<a && a<200 && 0<b && b<200 && 0<c && c<200)
  8.     {
  9.         if(a+b>c && a+c>b && c+b>a)
  10.         {
  11.             if(a==b && b==c && a==c)   //这里可以省掉一个判断
  12.             {
  13.                 printf("1是等边三角形");
  14.             }
  15.             else
  16.             {
  17.                 if(a==b || b==c || a==c)
  18.                 {
  19.                     printf("2是等腰三角形");
  20.                 }
  21.                 else
  22.                 {
  23.                     if(a*a+b*b==c*c || a*a+c*c==b*b || b*b+c*c==a*a)
  24.                     {
  25.                         printf("3是直角三角形");
  26.                     }
  27.                     else
  28.                     {
  29.                         printf("4是一般三角形");
  30.                     }
  31.                 }
  32.             }
  33.         }
  34.         else
  35.         {
  36.             printf("5不能组成三角形");
  37.         }
  38.     }
  39.     else
  40.     {
  41.         printf("6某些边不满足限制");
  42.     }
  43. }

点评:这样的思路做出来的程序只能通过手工方式来测试所有业务逻辑,而且这个程序只能是DOS界面版本了,要是想使用web或图形化界面来做输入,就得全部写过代码。

原创粉丝点击