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浏览器

相关文章
相关标签/搜索