(二)白盒测试实例
在教学的过程中发现,很多学生一看到这个需求,都觉得很简单,然后立刻就开始动手写代码了,这并不是一个很好的习惯。如果你的第一直觉也是这样的,不妨耐心看到文章的最后。大部分学生的思路:
1、首先建立一个main函数, main函数第一件事是提示用户输入三角形的三边,然后获取用户的输入(假设用户的输入都是整数的情况),用C语言来写,这一步基本上不是问题(printf和scanf),但是要求用java来写的话,很多学生就马上遇到问题了,java5.0及之前的版本不容易获取用户的输入。
点评:这样的思路做出来的程序只能通过手工方式来测试所有业务逻辑,而且这个程序只能是DOS界面版本了,要是想使用图形化界面来做输入,就得全部写过代码。
2、业务处理流程的思路用流程图表示如下:
http://p.blog.csdn.net/images/p_blog_csdn_net/aidisheng/EntryImages/20080905/%E7%9B%B4%E8%A7%82%E7%9A%84%E8%AE%BE%E8%AE%A1.jpg
3、C语言代码:
<div class="highlighter">
[*]#include<stdio.h>
[*]void main()
[*]{
[*] int a, b, c;
[*] printf("please enter three integer:");
[*] scanf("%d%d%d", &a, &b, &c);
[*] if(0<a && a<200 && 0<b && b<200 && 0<c && c<200)
[*] {
[*] if(a+b>c && a+c>b && c+b>a)
[*] {
[*] if(a==b && b==c && a==c) //这里可以省掉一个判断
[*] {
[*] printf("1是等边三角形");
[*] }
[*] else
[*] {
[*] if(a==b || b==c || a==c)
[*] {
[*] printf("2是等腰三角形");
[*] }
[*] else
[*] {
[*] if(a*a+b*b==c*c || a*a+c*c==b*b || b*b+c*c==a*a)
[*] {
[*] printf("3是直角三角形");
[*] }
[*] else
[*] {
[*] printf("4是一般三角形");
[*] }
[*] }
[*] }
[*] }
[*] else
[*] {
[*] printf("5不能组成三角形");
[*] }
[*] }
[*] else
[*] {
[*] printf("6某些边不满足限制");
[*] }
[*]}
页:
[1]