码迷,mamicode.com
首页 > 其他好文 > 详细

结对编程--fault,error,failure

时间:2016-04-18 19:03:43      阅读:245      评论:0      收藏:0      [点我收藏+]

标签:

结对编程对象:张忠玉

结对照片:

技术分享

结对题目:输入一定个数的数字,对其排序后输出最大值。

 
技术分享
 1 package com.jkxy.zy.selectsort;
 2 
 3 import java.util.Scanner;
 4 
 5 /**
 6  * 
 7  * 构造程序,分别是:
 8         •不能触发Fault。
 9         •触发Fault,但是不能触发Error。
10         •触发Error,但是不能产生Failure。*/
11 public class Selectsort {
12 
13     public static void main(String[] args) {
14         Scanner input=new Scanner(System.in);
15         System.out.println("请输入你需要输入的数字个数:");
16         int n=input.nextInt();
17         int[] array = new int[n];
18         System.out.println("请输入你需要的数:");
19         for(int i=0;i<n;i++){
20             array[i]=input.nextInt();        
21         }
22         if(array.length>1){
23             selectsort(array);
24         }
25        System.out.println("这些数字中的最大值为:"+array[n-1]);
26     }
27     
28     public static void selectsort(int[] array){
29         int min, index, temp;
30         for(int i = 1; i < array.length - 1; i++){  // N - 1 趟
31             min = i;
32             //查找选择最小元素值的下标索引值
33             for(index = i + 1; index < array.length; index++){
34                 if(array[min] > array[index])
35                     min = index;
36             }
37             //交换
38             if(min != i){
39                 temp = array[min];
40                 array[min] = array[i];
41                 array[i] = temp;
42             }
43         }
44     }
45 }

存在fault的代码段:

 

public static void selectsort(int[] array){
           int min, index, temp;
//排序时下标未从0开始,造成fault
for(int i = 1; i < array.length - 1; i++){ min = i; for(index = i + 1; index < array.length; index++){ if(array[min] > array[index]) min = index; } if(min != i){ temp = array[min]; array[min] = array[i]; array[i] = temp; } } }

•不能触发Fault

测试用例: 输入1,4

技术分享

由于存在      if(array.length>1){selectsort(array);}  分之语句,不会进入fault代码段

•触发Fault,但是不能触发Error

  测试用例: 输入5,1 3 7 4 5

技术分享

输入的数字排序为  1,3,4,5,7;输出最大值为7.  已经进入错误程序段,但是由于第一个数即是他们中最小的,所以排序未出错误。

•触发Error,但是不能产生Failure

 测试用例: 输入5,1 3 7 4 5

技术分享

输入的数字排序为  5,1,3,6,8;输出最大值为8.  已经进入错误程序段,排序出现错误,但是由于后面的数存在大于第一个数的数字,所以输出最大值时依旧是正确的。

结对编程--fault,error,failure

标签:

原文地址:http://www.cnblogs.com/yxj63/p/5405414.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!