(2016春) 作业4:结对编程—词频统计

作业4:结对项目—— 词频统计

0. 时间/计分

  • 总分40 分
  • 提交分2 阶段:
    • 第一阶段提交[必做1],截止时间 2016-03-22,24点;
    • 第二阶段提交[必做2]、[选做1]、[选做2],截止时间2016-03-29,24点。
    • PS: 必做题 每个阶段必须提交;选做题不做强制要求。

1. 目标

  • 代码复审练习
  • 结对练习
  • 编写单元测试

2. 要求


  • [必做 1] 基于作业3的结果,读取一个较小的文本文件A_Tale_of_Two_Cities.txt,统计该文件中的单词的频率,并将统计结果输出到当前目录下的 Result1.txt 文件。 (第一阶段初稿完成该要求)
    • 命令行格式: 提示符> Myapp.exe -f filename.txt > Result.txt (PS:C++ 程序,Java 程序输出方式类似) filename.txt 为前面下载的文件名。PS: 命令行格式的程序编写参考

    • 解释:

      • 选项 -f 表示后面跟文件名
      • 输出格式规定(参考作业3中的示例):
        • 首先按照频率由高到低排序
        • 频率一样的词, 按照字典顺序排序
    • 此外, 读取一个较大的文本文件Gone_with_the_wind.txt实验对比程序执行效率,做如下改进,比较改进前后程序执行时间。PS: 请看一位同学做的效能分析示例

原先程序中循环部分如下:


for (int i = 0; i < infoIds.size(); i++)        
{     
   Entry<String, Integer> id = infoIds.get(i);  
   System.out.println(id.getKey()+":"+id.getValue());  
} 

改进后程序如下:


len= infoIds.size();             // 先计算
for (int i = 0; i < len; i++)        
{     
       Entry<String, Integer> id = infoIds.get(i);  
       System.out.println(id.getKey()+":"+id.getValue());  
}


  • [必做 2] 读取小文本文件A_Tale_of_Two_Cities.txt 或者 大文本文件Gone_with_the_wind.txt,统计某一指定单词在该文本文件中出现的频率。
    • 命令行格式: 提示符> Myapp.exe -f filename.txt -w word (PS:C++ 程序,Java 程序输出方式类似)
    • 解释:
      • 选项 -f 表示打开某一文件(filename.txt)
      • 选项 -w 表示统计其后单词(word)在打开的文件(filename.txt)中的频率。

  • [选做 1] 对于在指定目录下(递归)的所有的文本文件(例如扩展名为:"txt", "cpp", "h", "cs", "java"等),计算每个单词的出现频率,并将结果输出到一个文本文件

    • 命令行格式: 提示符> Myapp.exe -d directory-name > result.txt (PS:C++ 程序,Java 程序输出方式类似)
    • 解释:
      • 选项 -d 表示后面跟目录(path)
  • [选做 2] 写至少10个单元测试,确保程序结果正确(例如,对于空目录应该输出空)


3. 提交

  • 特别要求:
    • 博客开头描述: 结对的对象( 1. 博客地址 ,2. 编写系统的Github 链接, 3.双方的贡献比例, 4. 结对编程照片(证据))
    • 博客总结部分,写出你在结对编程过程是不是遇到困难,双方沟通怎么沟通的?你的心得、收获等。
  • 其它要求 同作业3

4. 定义

  • 同作业3 要求

posted on 2016-03-17 22:29  小林觉  阅读(491)  评论(0编辑  收藏  举报

导航