結對編程學習總結博文

1.肯定本次實驗結對編程合做夥伴;java

個人小夥伴爲:王志成編程

2.各自運行合做夥伴實驗九編程練習1,結合使用體驗對所運行程序提出完善建議;dom

3.各自運行合做夥伴實驗十編程練習2,結合使用體驗對所運行程序提出完善建議;單元測試

程序互測概述:學習

  我和小夥伴互相測試了對方的實驗九編程練習1程序,小夥伴的程序基本要求都能達到,就是在文件的讀取上面還有些欠缺,可是在後面的共同窗習中他很好的改了過來。實驗十編程練習2中基本功能要求也一樣能實現,只是在除法上面有點缺陷沒有很好地實現實數運算。測試

程序互測心得:ui

  經過本次和小夥伴的程序互測體驗,其好處在於幫助別人發現問題的同時還可反思本身的程序,認識本身的不足。並且頗有效的提高了本身閱讀代碼的能力。編碼

 

4.採用結對編程方式,與學習夥伴合做完成實驗九編程練習1;spa

結對編程代碼設計

  1 package jiedui_bianchen;
  2 
  3 import java.io.BufferedReader;
  4 import java.io.File;
  5 import java.io.FileInputStream;
  6 import java.io.FileNotFoundException;
  7 import java.io.IOException;
  8 import java.io.InputStreamReader;
  9 import java.util.ArrayList;
 10 import java.util.Scanner;
 11 import java.util.Collections;
 12 
 13 public class ID {
 14 
 15     public static People findPeopleByname(String name) {
 16         People flag = null;
 17         for (People people : peoplelist) {
 18             if(people.getName().equals(name)) {
 19                 flag = people;
 20             }
 21         }
 22         return flag;
 23 
 24     }
 25 
 26     public static People findPeopleByid(String id) {
 27         People flag = null;
 28         for (People people : peoplelist) {
 29             if(people.getnumber().equals(id)) {
 30                 flag = people;
 31             }
 32         }
 33         return flag;
 34 
 35     }
 36      
 37     private static ArrayList<People> agenear(int yourage) {
 38         // TODO Auto-generated method stub
 39         int j=0,min=53,d_value=0,k = 0;
 40         ArrayList<People> plist = new ArrayList<People>();
 41         for (int i = 0; i < peoplelist.size(); i++) {
 42             d_value = peoplelist.get(i).getage() > yourage ? 
 43                     peoplelist.get(i).getage() - yourage : yourage - peoplelist.get(i).getage() ;
 44             k = d_value < min ? i : k;
 45             min = d_value < min ? d_value : min;
 46         }
 47         for(People people : peoplelist) {
 48             if(people.getage() == peoplelist.get(k).getage()) {
 49                 plist.add(people);
 50             }
 51         }
 52         return plist;
 53     }
 54 
 55     private static ArrayList<People> peoplelist; 
 56     
 57     public static void main(String[] args) //throws  IOException
 58     {
 59         peoplelist = new ArrayList<People>();
 60         Scanner scanner = new Scanner(System.in);
 61         File file = new File("D:\\身份證號.txt");
 62         try {
 63             FileInputStream files = new FileInputStream(file);
 64             BufferedReader in = new BufferedReader(new InputStreamReader(files));
 65             String temp = null;
 66             while ((temp = in.readLine()) != null) {
 67                 
 68                 String[] information = temp.split("[ ]+");
 69                 People people = new People();
 70                 people.setName(information[0]);
 71                 people.setnumber(information[1]);
 72                 int A = Integer.parseInt(information[3]);
 73                 people.setage(A);
 74                 people.setsex(information[2]);
 75                 for(int j = 4; j<information.length;j++) {
 76                     people.setplace(information[j]);
 77                 }
 78                 peoplelist.add(people);
 79 
 80             }
 81         } catch (FileNotFoundException e) {
 82             System.out.println("文件未找到");
 83             e.printStackTrace();
 84         } catch (IOException e) {
 85             System.out.println("文件讀取錯誤");
 86             e.printStackTrace();
 87         }
 88         boolean isTrue = true;
 89         while (isTrue) {
 90 
 91             System.out.println("******************************************");
 92             System.out.println("   1.按姓名典序輸出人員信息");
 93             System.out.println("   2.查詢最大年齡人員信息");
 94             System.out.println("   3.查詢最小年齡人員信息");
 95             System.out.println("   4.輸入你的年齡,查詢身份證號.txt中年齡與你最近的人");
 96             System.out.println("   5.查詢人員中是否有你的同鄉");
 97             System.out.println("   6.退出");
 98             System.out.println("******************************************");
 99             int nextInt = scanner.nextInt();
100             switch (nextInt) {
101             case 1:
102                 Collections.sort(peoplelist);
103                 System.out.println(peoplelist.toString());
104                 break;
105             case 2:
106                 int max=0;
107                 int j,k1 = 0;
108                 for(int i=1;i<peoplelist.size();i++)
109                 {
110                     j = peoplelist.get(i).getage();
111                    if(j>max)
112                    {
113                        max = j; 
114                        k1 = i;
115                    }
116                   
117                 }  
118                 System.out.println("年齡最大:"+peoplelist.get(k1));
119                 break;
120             case 3:
121                 int min = 100;
122                 int j1,k2 = 0;
123                 for(int i=1;i<peoplelist.size();i++)
124                 {
125                     j1 = peoplelist.get(i).getage();
126                     if(j1<min)
127                     {
128                         min = j1; 
129                         k2 = i;
130                     }
131 
132                  } 
133                 System.out.println("年齡最小:"+peoplelist.get(k2));
134                 break;
135             case 4:
136                 System.out.println("年齡:");
137                 int input_age = scanner.nextInt();
138                 ArrayList<People> plist = new ArrayList<People>();
139                 plist = agenear(input_age);
140                 for(People people : plist) {
141                     System.out.println(people.toString());
142                 }
143                 break;
144             case 5:
145                 System.out.println("請輸入省份");
146                 String find = scanner.next();        
147                 for (int i = 0; i <peoplelist.size(); i++) 
148                 {
149                     String [] place = peoplelist.get(i).getplace().split("\t");
150                     for(String temp : place) {
151                         if(find.equals(temp)) {
152                             System.out.println("你的同鄉是    "+peoplelist.get(i));
153                             break;
154                         }
155                     }
156                     
157                 } 
158                 break;
159             case 6:
160                 isTrue = false;
161                 System.out.println("byebye!");
162                 break;
163             default:
164                 System.out.println("輸入有誤");
165             }
166         }
167     }
168 
169 }

 

結對程序運行功能界面截圖;

 

結對過程描述,提供兩人在討論、細化和編程時的結對照片(非擺拍)。

   本次結對編程實驗,個人小夥伴充當領航員的角色,審閱代碼、對編碼等開發流程的執行,並考慮單元測試的覆蓋程度;是否須要和如何重構;幫助我解決程序中具體的技術問題。在一些基礎語法和技術問題上給了我很大的啓發。我充當駕駛員的角色,主要爲寫設計文檔,進行編碼和單元測試等XP開發流程。本次實驗實際操做都由我來完成,在領航員的帶領下咱們一步步完成了此次實驗。獲得了之前獨自實驗中沒有的益處。好比,代碼編寫風格的不一樣,閱讀方式的不一樣,對知識點理解的不一樣,雖然在過程當中出現了爭論,但最後仍是有了一致的答案。

 

 

 

 

5.採用結對編程方式,與學習夥伴合做完成實驗十編程練習2。

結對編程代碼;

  1 import java.io.File;
  2 import java.io.FileOutputStream;
  3 import java.io.PrintWriter;
  4 import java.math.BigDecimal;
  5 import java.util.Scanner;
  6 
  7 
  8 public class ss {
  9     public static void main(String[] args) {
 10 
 11 
 12         Scanner in = new Scanner(System.in);
 13         Calculator<Integer> sf = new Calculator<Integer>();
 14         File file = new File("wzt.txt");
 15         if(file.exists()) {
 16             System.out.println("文件已存在");
 17         }
 18         PrintWriter output = null;
 19         try {
 20             output = new PrintWriter(new FileOutputStream(file));
 21         } catch (Exception e) {
 22             //e.printStackTrace();
 23         }
 24         int sum = 0;
 25         
 26         System.out.println("計算結果保留兩位小數");
 27         for (int i = 1; i < 11; i++) {
 28             int a = (int) Math.round(Math.random() * 100);
 29                 int b = (int) Math.round(Math.random() * 100);
 30                 int s = (int) Math.round(Math.random() * 3);
 31 
 32             
 33            switch(s)
 34            {
 35            case 1:
 36                System.out.println(i+": "+a+"/"+b+"=");
 37                Number c = in.nextDouble();
 38                output.println(a+"/"+b+"="+c);
 39                Number g = sf.division(a, b);
 40                BigDecimal division = new BigDecimal(g.doubleValue());
 41                g = division.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
 42                if (c.equals(g)) {
 43                    sum += 10;
 44                    System.out.println("恭喜答案正確");
 45                }
 46                else {
 47                    System.out.println("抱歉,答案錯誤");
 48                }
 49             
 50                break;
 51             
 52            case 2:
 53                System.out.println(i+": "+a+"*"+b+"=");
 54                Number c1 = in.nextDouble();
 55                output.println(a+"*"+b+"="+c1);
 56                Number g1 = sf.mulitiplication(a, b);
 57                BigDecimal mul = new BigDecimal(g1.doubleValue());
 58                g1 = mul.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
 59                if (c1.equals(g1) ){
 60                    sum += 10;
 61                    System.out.println("恭喜答案正確");
 62                }
 63                else {
 64                    System.out.println("抱歉,答案錯誤");
 65                }
 66                break;
 67            case 3:
 68                System.out.println(i+": "+a+"+"+b+"=");
 69                Number c2 = in.nextDouble();
 70                output.println(a+"+"+b+"="+c2);
 71                Number g2 =sf.addition(a, b);
 72                BigDecimal add = new BigDecimal(g2.doubleValue());
 73                g2 = add.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
 74                if (c2.equals(g2)) {
 75                    sum += 10;
 76                    System.out.println("恭喜答案正確");
 77                }
 78                else {
 79                    System.out.println("抱歉,答案錯誤");
 80                }
 81                
 82                break ;
 83            case 4:
 84                System.out.println(i+": "+a+"-"+b+"=");
 85                Number c3 = in.nextDouble();
 86                output.println(a+"-"+b+"="+c3);
 87                Number g3 = sf.subtraction(a, b);
 88                BigDecimal sub = new BigDecimal(g3.doubleValue());
 89                g3 = sub.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
 90                if (c3.equals(g3)) {
 91                    sum += 10;
 92                    System.out.println("恭喜答案正確");
 93                }
 94                else {
 95                    System.out.println("抱歉,答案錯誤");
 96                }
 97                break ;
 98 
 99                } 
100     
101           }
102         System.out.println("成績"+sum);
103         output.println("成績:"+sum);
104         output.close();
105         in.close();
106          
107     }
108 }

 

結對程序運行功能界面截圖;

 

結對過程描述,提供兩人在討論、細化和編程時的結對照片(非擺拍)。

  本次結對編程實驗,咱們互換了角色,由我充當領航員的角色,進行審閱代碼、對編碼等開發流程的執行,並考慮單元測試的覆蓋程度;是否須要和如何重構;在編寫代碼時幫助個人小夥伴改正一些因爲疏忽形成的代碼的一些錯誤。肯定代碼的主題思惟和風格,個人小夥伴充當駕駛員的角色,主要爲寫設計文檔,進行編碼和單元測試等XP開發流程。本次實驗實際操做都由個人小夥伴來完成,在咱們的的共同努力下咱們一步步完成了此次實驗。獲得了之前獨自實驗中沒有的益處。此次實驗中,我收穫了意想不到的益處,在駕駛員編程的同時由於我不用編寫代碼,我能夠有大量時間更有效地整理咱們的思惟邏輯,思考更多更優的編程方式。這都是在平時本身獨自編程時沒有的。

 

相關文章
相關標籤/搜索