结对编程对象:叶小娟
对方博客地址:http://www.cnblogs.com/yxj63/
双方贡献比例: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 不是很认识和理解。后来经过一起讨论。我们统一了意见,完成了结对编程。我的小伙伴叶小娟同学非常的棒,是一个结对的好搭档。
