项目 内容
这个作业属于哪个课程 任课教师博客主页链接
这个作业的要求在哪里 作业链接地址
课程学习目标 (1)掌握软件项目个人开发流程。(2)掌握Github上发布软件项目的操作方法。
本次作业在哪个具体方面帮助我们实现目标 第一次体验个人项目

需求分析:

尝试按照《构建之法》第2章中2.3所述PSP流程,使用JAVA编程语言,独立完成一个英文文本词频统计的软件开发。软件基本功能要求如下:
1.程序可读入任意英文文本文件,该文件中英文词数大于等于1个。
2.程序需要很壮健,能读取容纳英文原版《哈利波特》10万词以上的文章。
3.指定单词词频统计功能:用户可输入从该文本中想要查找词频的一个或任意多个英文单词,运行程序的统计功能可显示对应单词在文本中出现的次数和柱状图。
4.高频词统计功能:用户从键盘输入高频词输出的个数k,运行程序统计功能,可按文本中词频数降序显示前k个单词的词频及单词。
5.统计该文本所有单词数量及词频数,并能将单词及词频数按字典顺序输出到文件result.txt。

功能设计:

1、读文本功能——读入文本数据
2、用户输入功能——输入用户想要查询的单词以及想要查询高频单词的个数
3、排序功能——降序排序和按字典顺序排序
4、词频统计功能——显示输入单词在文本中出现的次数和柱状图以及降序显示前k个单词的词频及单词
5、写文件功能——将输出数据存入文件中

设计实现:

具体设计如下:
-main.java 控制整个程序
<1、实现对文本文件中数据的读入
<2、对各项功能进行选择,并调用wordcount.java中相应的函数实现各项功能
-wordcount.java 包括四个功能函数:
<1、显示词频和柱状图——输入从该文本中想要查找词频的一个或任意多个英文单词,显示对应单词在文本中出现的次数和柱状图。
<2、输出高频词——按文本中词频数降序显示前k个单词的词频及单词。
<3、排序——降序排序和按字典顺序排序
<4、写文件——将文本中所有单词数量及词频数按字典顺序输出到文件result.txt中

关键代码:

// 词频统计界面System.out.println("***************英文文本词频统计软件****************");        System.out.println("请选择你需要实现的功能序号:");System.out.println("1、读取文本");System.out.println("2、显示所要查询的单词词频");System.out.println("3、输出词频最高的前k个单词");System.out.println("4、统计该文本所有单词数量及词频数,并将单词及词频数按字典顺序输出到文件result.txt");System.out.println("0、退出");System.out.println("*****************************************************");  ```
//输出前k个高频词void HighWord(Map<String, Integer> map) {  sort(map,2);//先利用上一个方法sort()来对统计好的单词按单词出现的频数排序,然后再进行前k个单词的选取System.out.println("请输入查看单词个数:");int k = in.nextInt();for(Entry<String,Integer> y : Map.entrySet()) {  System.out.println("单词——"+y.getKey() + " 出现" + y.getValue()+"次");  k--;if(k<=0)    break;} }
//将结果存入文件中result.txtvoid output(Map<String, Integer> map)throws IOException { sort(map,3);File file = new File("result.txt");//创建一个新的文件FileWriter f = new FileWriter(file.getAbsoluteFile());//调用了getAbsoluteFile()方法for(Entry<String,Integer> y: Map.entrySet()) {f.write(y.getKey() + ":" + y.getValue()+"     ");}f.close();//关闭文件System.out.println("成功写入result文件中!");

测试运行:

程序的运行截图如下:


result.txt中部分结果如下图:

总结:设计的程序如何实现软件设计的“模块化”原则

   在本次词频统计软件项目中创建了两个类:Main类控制整个程序,读入文本文件中的数据,显示所要选择的执行菜单并调用wordcount类中的各个函数。wordcount类中包含四个函数:histogram函数s实现显示词频和柱状图的功能、HighWord函数显示输出高频词得功能、sort函数实现降序排序和按字典顺序排序的功能、output函数是将结果输出到文件result.txt中,各个部分分别实现各自的功能,并相互联系实现整个软件项目。

项目开发过程中,构建PSP表如下:

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

在本次软件项目开发过程中,在需求分析以及具体代码编辑阶段计划时间与实际完成时间误差较大,主要还是因为编程不过关,对Java程序的编写掌握的并不是很好;在刚开始时,并没有对需求进行充分的分析,导致功能实现不全面,如只实现了统计对应单词出现的次数,但并不能用柱状图显示;所以,在以后的学习过程中我应该注意仔细进行相关项目的需求分析,并应具备一定的编程能力,才能更好地完成项目。

源码在Github的仓库主页链接地址

转载于:https://www.cnblogs.com/yanyanH/p/10556839.html

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

  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. 概率论中高斯分布(正态分布)介绍及C++11中std::normal_distribution的使用
  2. 饼图大小调整_Excel做的双层饼图,太漂亮了
  3. 数据结构与算法 / 冒泡排序最坏情况下的时间复杂度解析
  4. 转 结构体中字节对齐问题(转载)
  5. java空类型方法无参_类的无参方法
  6. 弱水三千 之 统计独立性、统计相关性辨析
  7. java学习(143):file方法类实现
  8. python制作各种条形图
  9. 放大器非线性失真研究装置设计报告_活动 | 机电学子在2020年TI杯全国大学生电子设计竞赛中再创佳绩...
  10. zabbix使用IT services 了解服务器SLA整体情况
  11. POI2001 Gold mine(二叉排序树 黑书经典)
  12. 【Hadoop Summit Tokyo 2016】中型组织的数据基础设施架构:收集、存储和分析的技巧...
  13. cacti 安装部署
  14. 贝莱德砸10亿美元买下指数定制公司,释放什么信号?
  15. 增值税发票税控开票软件数据接口规范
  16. SAP接口编程 之 JCo3.0系列:JCoDestination
  17. matlab分析间断点,用MATLAB绘制有间断点的物理函数图形的方法
  18. Android判断手机号码是否是正确的手机号码
  19. PP实施经验分享(9)——SAP中Day’s supplyReceipt day’s supply及相关报表(可当物料短缺报表使用)
  20. 华为matepad切换电脑模式_华为MatePad Pro关于PC模式常用操作指南

热门文章

  1. 零成本建立医学数据库之实践
  2. 摸索Detours 1:使用Vs2019 编译Detours
  3. 计算机科学与技术专业导论论文,浅谈计算机科学与技术专业论文
  4. ksu7对讲机调频软件_对讲机写频教程通用版:写频软件的正确操作流程
  5. 01 - 树莓派简介以及烧录系统
  6. JavaScript 原生js实现自定义消息提示框
  7. android怎么防8门神器,八门神器(GameKiller)怎么用?安卓版使用教程
  8. 业务系统需要不同浏览器打开解决方式
  9. Krytox VPF1525 VPF1514 VPF1506 XP Chemours DuPont
  10. 从Intel 80386讲讲操作系统的内存管理机制