(一).需求分析

—程序可读入任意的英文文本文件,该文件中的英文词数大于等于一个。
—能够读取容纳英文原版《哈利波特》10万词以上的文章。
—.要有指定单词的词频统计功能,即用户可输入从该文本中想要查找词频的一个或任意多个英文单词,运行程序的统计功能可显示对应单词在文本中出现的次数和柱状图;
—高频单词统计功能,即用户共键盘输入高频词输出个数k,运行程序统计功能,可按文本中词频数降序显示前k个单词的词频及单词;
—统计该文本所有单词数量及词频数,并能将单词及词频数按字典顺序输出到文件result.txt

(二)功能设计

基本功能:
—统计文件中单词,并输出到指定文件
—根据题目要求读入文件
— 查询文件中单词出现的次数
—文本中的词频数降序显示前K个单词以及柱状图
扩展功能:
目前没有

(三).设计实现

Figure.java :统计前K个出现的频次最高的单词及词频的柱状图
StatisticalWord.java: 输入一个单词统计单词在文章中出现的个数,如果不在提示不在!
WordList.java :统计文件中单词出现的频数并输出到文件
这三个类和一个Main()函数,用户可以根据不同功能进行选择

(四).测试运行

功能1: 统计单词个数,并把结果存到result.txt中。

功能2:输入一个单词,统计其在文中出现的词数。

没有此单词:

功能3:出入前最高K个词频从多到少并用柱状图(由于图片大小缘故柱状图没有显示明显的差距。)

(五).关键代码

显示柱状图:

System.out.println("请输入要查看的最高词频的个数:");
int k = sc.nextInt();
if(k>0&&k<=ordlist.size())
{
System.out.println("----------词频最高的前"+k+"个单词及其柱状图-----------");

                for (Map.Entry<String, Integer> entry : ordlist) {System.out.printf("单词 "+"%-8s" + "出现" +"%-3d"+"次 ",entry.getKey(),entry.getValue());    //用符号个数来显示模拟柱状图for(int i=entry.getValue();i>0;i--){System.out.print("▏");}System.out.println();//System.out.println(entry.getKey() + ":" + entry.getValue());if(--k==0)break;//k=0,则不再输出后面的词频                  }System.out.println("------------------------------------------------"); }else{System.out.println("输入有误!请重新输入!");}

将输出结果发送到results.txt中:

        try{FileWriter fw= new FileWriter("src\\results.txt");System.out.println("词频统计结果已输出列 result.txt文件·");} catch (IOException e){e.printStackTrace();}

进行排序

 Comparator<Map.Entry<String, Integer>> valcom = new Comparator<Map.Entry<String,Integer>>() {public int compare(Map.Entry<String, Integer> rst1,Map.Entry<String, Integer> rst2) {int sortrst=rst2.getValue()-rst1.getValue();return sortrst;}     };List<Map.Entry<String, Integer>> ordlist = new ArrayList<Map.Entry<String,Integer>>(map.entrySet());Collections.sort(ordlist,valcom);

(六).总结

        通过这次的项目发现,之前学过的JAVA忘的一干二净,本来就基础不好,学到的一点也忘了,所以这次代码编写花费了很多时间,需要通过网上和课本以及同学的帮助下大概的完成了项目,但还是有很多问题,需要我花更多的时间学习。

(七).psp

psp 任务内容 计划共完成需要的时间(min) 实际完成需要的时间(min)
Planning 计划 15 10
Estimate 估计这个任务需要多少时间,并规划大致的工作步骤 5 10
Development 开发 120 150
Analysis 需求分析(包括学习新技术) 30 60
Design Spec 生成设计文档 30 20
Design Review 设计复审(和同学审核设计文档) 15 10
Coding Standard 代码规范化(为目前的开发制定合适的规范) 20 30
Design 具体设计 120 180
Coding 具体编码 180 220
Code Review 代码复审 30 20
Test 测试(自我测试,修改代码,提交修改) 20 15
Reporting 报告 50 35
Test Report 测试报告 20 15
Size Measurement 计算工作量 10 10
Postmortem &Process Improvement plan 事后总结,并提出过程改进计划 15 10

源代码

GitHub

转载于:https://www.cnblogs.com/SLZM18/p/10556731.html

201671030118 词频统计软件项目报告相关推荐

  1. 201671010411+巩定定+词频统计软件项目报告

    课程名 软件工程 实验二 词频统计软件项目报告 词频(TF) 是一个词语出现的次数除以该文件的总词语数. 实验目的 (1)掌握软件项目个人开发流程. (2)掌握Github上发布软件项目的操作方法. ...

  2. 201671010417 金振兴 词频统计软件项目报告

    1.需求分析 按照<构建之法>第2章中2.3所述PSP流程,使用JAVA编程语言,独立完成一个英文文本词频统计的软件开发. .程序可读入任意英文文本文件,该文件中英文词数大于等于1个. . ...

  3. 201671030128+词频统计软件项目报告

    一.需求分析 根据实验二 软件工程个人项目的要求本次软件项目的需求有以下几点: 1.程序可读入任意英文文本文件,该文件中英文词数大于等于1个,程序需要很壮健,能读取容纳英文原版<哈利波特> ...

  4. 201671030125+词频统计软件项目报告

    项目 内容 这个作业属于哪个课程? 2016级计算机科学与工程学院软件工程(西北师范大学) 这个作业的要求在哪里? 实验二 软件工程个人项目 我在这个课程的目标是? 按时完成老师给的任务,复习JAVA ...

  5. 201671030130+词频统计软件项目报告

    (一)需求分析 根据实验二 软件工程个人项目的要求该软件项目的基本功能要求如下: 1.程序可读入任意英文文本文件,该文件中英文词数大于等于1个. 2.程序需要很壮健,能读取容纳英文原版<哈利波特 ...

  6. 201671010433 | 词频统计软件项目报告

    1.需求分析 使用JAVA编程语言,独立完成一个英文文本词频统计的软件开发.软件基本功能要求如下: 1.程序可读入任意英文文本文件,该文件中英文词数大于等于1个. 2.程序需要很壮健,能读取容纳英文原 ...

  7. 实验二 词频统计软件项目报告

    实验要求 实验二 软件工程个人项目 GitHib链接 https://github.com/Z-zt/Count 一.需求分析 通过分析实验二题目要求,得出的用户需求主要为: 程序可读入任意英文文本文 ...

  8. 201671010403 陈倩倩 词频统计软件项目报告

    一.需求分析 一个英文文本词频统计的软件开发,其基本需求有: 1.程序可读入任意英文文本文件,该文件中英文词数大于等于1个. 2.程序需要很壮健,能读取容纳英文原版<哈利波特>10万词以上 ...

  9. 201671010423 词频统计软件项目报告

    需求分析 1.程序可读入任意英文文本文件,该文件中英文词数大于等于1个. 2.程序需要很壮健,能读取容纳英文原版<哈利波特>10万词以上的文章. 基本功能 1.指定单词词频统计功能:用户可 ...

  10. 201671010444 夏向明 词频统计软件项目报告

    该项目实施过程主要包括以下7部分. 一.需求分析 1.程序需要读入至少一个词,可读入任意英文文本. 2.至少可以统计10万词及以上的文本. 3.用户可以同时查询多个单词的统计,并显示出其个数和柱状图. ...

最新文章

  1. 留的住叫做幸福. 流逝的叫做遗憾
  2. ThoughtWorks技术专家详解:企业级区块链原来是这么玩的
  3. 【面试题】CookieSession
  4. python神经网络多元函数_阿里达摩院推荐的最新400集python教程,据说懂中文就能上手...
  5. 2020年最新全国彩礼地图出炉,你那儿娶媳妇儿需要多少彩礼钱呢?数据分析来告诉你...
  6. 服务器双网卡导致的网络故障及解决方案
  7. 祝贺泰山OFFICE CDKEY长度25,吾已成为顶级CDKEY砖家
  8. 谈谈网络通信中的 ACK、NACK 和 REX
  9. 【多校联赛】The Crime-solving Plan of Groundhog
  10. 家庭软路由方案:3865U + ESXi6.7(OpenWRTiKuai) + 花生壳蒲公英P5 + 领势MX5300 + 群辉1621 做到国内国外分流、内网设备流控、内网穿透、异地组网
  11. linux下img文件 windows查看器,Windows server 2016 设置使用照片查看器查看图片
  12. 自定义实现IOC与DI
  13. 什么是ARP?ARP作用和使用场景
  14. 我注册的163邮箱收信地址格式怎么写?邮箱163注册申请后怎么登录?
  15. 关于企业能源管控平台在轧钢行业能源管理中的应用
  16. Excel中FgColorsum函数根据字体颜色求和
  17. Web工程师和设计师必须要知道的 iOS 8的十个变化
  18. php增加sqlserver扩展
  19. Latex 彩色表格
  20. sbt的安装和应用(详细步骤)

热门文章

  1. 地铁票务管理系统_[地铁票务管理论文] 地铁票务系统 场景法
  2. STM32网络通信之DM9000了解
  3. jquery 实现抽奖小程序
  4. 共享计算机无法打开文件,Windows7局域网无法打开共享文件分析
  5. 一文教你如何快速高效画出技术架构图
  6. matlab光学原理仿真应用衍射,光学衍射仿真实验系统
  7. 分库分表中间件Sharding-JDBC详解
  8. Linux服务器密码过期问题怎么办?
  9. 前端数据可视化插件(四)关系图
  10. VS2017 Git操作教程