结对编程对象:张忠玉
对方博客地址:http://www.cnblogs.com/handsonboy/
双方贡献比例:1:1
结对照片:
结对题目:输入一定个数的数字,对其排序后输出最大值。
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++){ 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 有了更加深刻的认识和理解。她是一个思想活跃的同伴,与她一起编程非常轻松愉快。
。