201671010426 孫錦喆《英文文本統計分析》結對項目報告

項目 2016級計算機科學與工程學院軟件工程(西北師範大學)
這個做業的要求在哪裏 實驗二 軟件工程我的項目
課程學習目標 嘗試按照《構建之法》第2章中2.3所述PSP流程,使用JAVA編程語言,獨立完成一個英文文本詞頻統計的軟件開發。
本次做業在哪一個具體方面幫助咱們實現目標 (1)掌握軟件項目我的開發流程。(2)掌握Github上發佈軟件項目的操做方法。

點評信息

點評博客: 201671010449 楊天超 實驗二英文詞頻統計設計步驟
Github連接地址: https://github.com/369BRabc/simple-
點評內容: 通讀全文後,感受報告層次清晰,語言嚴謹,對於開發當中對於用戶的需求作了很深層次的分析,對於設計實現步驟分明,總結當中可以指明在開發過程當中所遇到的問題和自身的不足。惟一瑕疵就是文章排版當中存在一點問題,但願繼續努力,加油!
點評心得: 在本身的博客中還有着不少問題,在經過瀏覽他的博客時,一部分問題獲得解決,對於Java的瞭解也進一步加深。

一、序言

在上一次的做業中,咱們提到了使用Java語言去編寫詞頻統計的系統開發,在每一步的開發過程當中咱們遇到了一系列問題,有一些耽誤了咱們開發的進度,另外一些則致使咱們對邏輯產生誤解,下面咱們會結合實驗四的實驗要求將問題一一提出並加以解決。html

二、結對項目過程

兩兩結對後對對方實驗二的博客進行了分析和評論,並對實驗四的任務要求作了分析,在實驗二的基礎上咱們還須要添加如下幾點功能:
(1)各類統計功能均提供計時功能,顯示程序統計所消耗時間(單位:ms);
(2)人機交互界面要求GUI界面(WEB頁面、APP頁面均可);
(3)附加分功能:統計文本中除冠詞、代詞、介詞以外的高頻詞;
(4)附加分功能:統計前10個兩個單詞組成的詞組頻率。

java

三、軟件優化過程

核心代碼展現git

public static void main(String[] args) throws Exception {  
        try{
            File file =new File("e:\\test.txt");
            if(file.exists()){
                FileReader fr = new FileReader(file);
                LineNumberReader lnr = new LineNumberReader(fr);
                int linenumber = 0;
                int zifu = 0;
                    while (lnr.readLine() != null){
                    linenumber++;
                    java.util.Scanner sc=new java.util.Scanner(file);
                    String str=sc.next();
                    zifu = zifu + str.length();
                    }
                    System.out.println("行數 : " + linenumber);
                    System.out.println("字符:"+ zifu);
                    lnr.close();
            }else{
                 System.out.println("File does not exists!");
            }
        }catch(IOException e){
            e.printStackTrace();
        }

Map<String, Integer> wordsCount = new TreeMap<String,Integer>();  //存儲單詞計數信息,key值爲單詞,value爲單詞數       
          
        //單詞的詞頻統計  
        for (String li : lists) {  
            if(wordsCount.get(li) != null){  
                wordsCount.put(li,wordsCount.get(li) + 1);  
            }else{  
                wordsCount.put(li,1);  
            }  
  
        }  
          
        SortMap(wordsCount);    //按值進行排序  
      
    }  
      
    //按value的大小進行排序  
    public static void SortMap(Map<String,Integer> oldmap){  
          
        ArrayList<Map.Entry<String,Integer>> list = new ArrayList<Map.Entry<String,Integer>>(oldmap.entrySet());  
          
        Collections.sort(list,new Comparator<Map.Entry<String,Integer>>(){  
            @Override  
            public int compare(Entry<String, Integer> o1, Entry<String, Integer> o2) {  
                return o2.getValue() - o1.getValue();  //降序  
            }  
        });

四、PSP

PSP2.1 任務內容 計劃共完成須要的時間(min) 實際完成須要的時間(min)
Planning 計劃 15 40
Estimate 估計這個任務須要多少 時間,並規劃大體工做步驟 15 40
Development 開發 40 60
Analysis 需求分析 (包括學習新技術) 10 10
Design Spec 生成設計文檔 15 10
Design Review 設計複審 (和同窗審覈設計文檔) 3 5
Coding Standard 代碼規範 (爲目前的開發制定合適的規範) 3 3
Design 具體設計 20 25
Coding 具體編碼 30 60
Code Review 代碼複審 15 20
Test 測試(自我測試,修改代碼,提交修改) 25 20
Reporting 報告 25 30
Test Report 測試報告 10 15
Size Measurement 計算工做量 5 5
Postmortem & Process Improvement Plan 過後總結 ,並提出過程改進計劃 10 10

在實驗二的過程當中:
(1)計劃階段的不一樣意,在計劃階段咱們本來打算花15分鐘計劃處出一個大體的流程,但由於意見的不統一和自身技術的缺陷而致使花了40分鐘。
(2)開發階段,是讓我意識到本身的短板的時期,由於對代碼的不熟悉,以及對於總體構造的不完美,致使花了大量的時間編寫代碼。
(3)需求分析是已知的,但須要整理轉換爲咱們所須要的步驟要求。github

五、在GitHub的實際操做過程當中所遇到的問題和一些建議

(1)全英文界面對於英語基礎低的同窗去正確使用有着不小的困難,建議使用Chrome瀏覽器進行網頁翻譯。
(2)文件沒法上傳的問題:
http://www.javashuo.com/article/p-puyjwjbp-n.htmlweb

六、實驗四的完成進度

任務一已經完成,已進行結對,博客互評,對於博文內容,優缺點,博文結構作了詳細的分析。從GitHub中克隆了對方源碼到本地進行閱讀分析,從而彌補自我編寫代碼的不足。
任務二柱狀圖沒有實現,還須要再進一步的學習。已能夠統計文本的字符數以及行數,能夠導入任意英文文本。使用HTML製做web交互界面。在本次任務中,咱們實現了實驗中的互相學習,對於咱們基礎薄弱的同窗有了很大的提高。編程

七、Github代碼分享

個人Github瀏覽器

相關文章
相關標籤/搜索