1. 程式人生 > >第三次作業——Wordcount結對程式設計

第三次作業——Wordcount結對程式設計

結對程式設計作業

合作者:201631083106,201631063412

作業連結:https://gitee.com/monkeyjb/WordCount/blob/master/src/WordCount.java

程式碼規範

本次程式碼使用Java編寫,經過網上查閱各個公司程式碼規範後決定規範參考阿里巴巴公司 java 規範,通過對其規範的閱讀後,認為該規範比較合適,故拿來使用。

阿里巴巴Java程式碼規範官方網站:https://github.com/alibaba/p3c

作業內容

本次作業的主要目的是對上次Wordcount作業的功能進行拓展,並對各項功能實行測試,運用課上學習的單元測試,程式碼互審,靜態程式碼審查等技術,對程式碼進行較全面的測試。


1.程式碼互審 

通過對彼此程式碼的檢查後發現其中有部分程式碼規範不同,並對程式碼做了縮排等修改,並制定了相對屬於兩個人的程式碼規範。

經過修改後的程式碼如下:

public static void main(String[] args) {
        String fileName;
        String outFile=null;
        for(int i=0;i<args.length;i++){    
        switch (args[i]) {
        case "-c":
            fileName
=args[i+1]; getCharCount(fileName); System.out.println(fileName+",字元數:"+getCharCount(fileName)); break; case "-w": fileName=args[i+1]; getWordCount(fileName); System.out.println(fileName+",單詞數:"+getWordCount(fileName));
break; case "-l": fileName=args[i+1]; getLineCount(fileName); System.out.println(fileName+",行數:"+getLineCount(fileName)); break; case "-o": outFile=args[i+1]; writeToFile("test.txt", outFile); System.out.println("寫入成功!"); break; } } } //獲取字元數量的方法 public static int getCharCount(String fileName){ int count=0; String line; try{ BufferedReader bf=new BufferedReader(new FileReader(fileName)); while((line=bf.readLine())!=null){ count+=line.length(); } bf.close(); }catch (Exception e) { e.printStackTrace(); } return count; } //獲取單詞數量的方法、 public static int getWordCount(String fileName){ int count=0; String line; try{ BufferedReader bf=new BufferedReader(new FileReader(fileName)); while((line=bf.readLine())!=null){ String[] strings=line.trim().split(" |,"); count+=strings.length; } bf.close(); }catch (Exception e) { e.printStackTrace(); } return count; } //獲取總行數的方法 public static int getLineCount(String fileName){ int count=0; String line; try{ BufferedReader bf=new BufferedReader(new FileReader(fileName)); while((line=bf.readLine())!=null){ count++; } bf.close(); }catch (Exception e) { e.printStackTrace(); } return count; } //將結果寫入檔案的方法 public static void writeToFile(String fileName,String outFile){ try{ BufferedWriter bw=new BufferedWriter(new FileWriter(outFile)); bw.write(fileName+",字元數:"+getCharCount(fileName)); bw.write("\r\n"); bw.write(fileName+",單詞數:"+getWordCount(fileName)); bw.write("\r\n"); bw.write(fileName+",行數:"+getLineCount(fileName)); bw.close(); }catch (Exception e) { e.printStackTrace(); } }

2.系統測試

輸入

 

 

輸出

 

 總結:通過這次結對程式設計讓我們知道了,兩個人敲程式碼的好處多多,開始可能不夠默契,漏洞百出,但隨著兩人合作的時間變久,程式碼的質量有著顯著的提高,一個人發現不了的問題,另一個人不一定發現不了,一個人解決不了的問題另一個人可能一眼便知,在結對程式設計過程中,重要的是兩人需要有一份自己的規約,並且在程式設計時一同去遵守,這樣才能做出高質量的軟體。