201671030116宋菲菲 词频统计软件项目报告
项目要求
源码地址
一、需求分析
尝试按照《构建之法》第2章中2.3所述PSP流程,使用JAVA编程语言,独立完成一个英文文本词频统计的软件开发。软件基本功能要求如下:
- 程序可读入任意英文文本文件,该文件中英文词数大于等于1个。
- 程序需要很壮健,能读取容纳英文原版《哈利波特》10万词以上的文章。
- 指定单词词频统计功能:用户可输入从该文本中想要查找词频的一个或任意多个英文单词,运行程序的统计功能可显示对应单词在文本中出现的次数和柱状图。
- 高频词统计功能:用户从键盘输入高频词输出的个数k,运行程序统计功能,可按文本中词频数降序显示前k个单词的词频及单词。
- 统计该文本所有单词数量及词频数,并能将单词及词频数按字典顺序输出到文件result.txt。
二、功能设计
- 读取文件text.txt,能容纳10万单词以上。
- 统计词频,可以分解输入字符串并统计输入一个或多个单词的词频。
- 统计高频词,用户输入高频词个数n,程序返回n个高频词以及每个单词的词频。
- 将text.txt文本中的单词及其词频按照字典顺序输出到文件result.txt文件中。
三、设计实现
项目主要包含两个类,一个是主函数Main,一个是统计单词的类SortResult。
- 主函数Main中实现图形用户界面,实现各个功能。输入框3个,分别是原文本文件的文件名(采用相对路径),想要查找的一个或多个单词,想要查找的N高频词及其词频数。两个按钮,分别是“确定”和“取消”。由于两个查找在同一个面板,防止出现冲突,若两个输入框均有输入,则实现第一个输入框的功能。点击确定后,直接将字典顺序输出到result.txt文本中,并且实现相应功能。
- SortResult中将文本中的每个单词按照字典顺序将单词及词频数输出到result.txt文本文件中。
四、测试运行
读入text.txt文件,输入要查找的一个或多个词语,以空格为分割符,返回各个单词的词频及柱状图:
输入想要查找的高频单词个数n,输出前n个高频词及其频数:
若同时输入了查找单词和查找高频单词个数,只执行查找单词功能:
result.txt
五、部分代码
输出柱状图:
int i;String print = "";//记录输入单词及词频String print2 = "\n";//记录柱状图for(i=0; i<input.length; i++) {for(Entry<String, Integer> entry : wordsStatistics.entrySet()) { if(input[i].equals(entry.getKey())){map.put(entry.getKey(), entry.getValue());print2+=entry.getKey()+":\n";for(int j=0;j<entry.getValue()/100;j++)print2+="*";//柱状图以“*”显示print2+="\n";print += entry.getKey() + ":" + entry.getValue()+" "; break;}} }JOptionPane.showConfirmDialog(null, print+print2,"结果",JOptionPane.DEFAULT_OPTION);
输出高频词:
if(admin.isEmpty() && !num.isEmpty()) //若输入单词栏为空且输入高频词个数不为空{int n=Integer.parseInt(num);//将读到的字符串转化为整型String print = "";ArrayList<Map.Entry<String,Integer>> resultlist = new ArrayList<Map.Entry<String,Integer>>(wordsStatistics.entrySet());//结果存入 resultlistCollections.sort(resultlist,new Comparator<Map.Entry<String,Integer>>(){ @Override public int compare(Entry<String, Integer> w1, Entry<String, Integer> w2) { return w2.getValue() - w1.getValue(); //以降序的形式存入} }); for(int i = 0; i<n; i++){ print += resultlist.get(i).getKey()+ ": " +resultlist.get(i).getValue()+" ";}JOptionPane.showConfirmDialog(null, print,"结果",JOptionPane.DEFAULT_OPTION);}
六、总结
- 本次项目为单人项目,通过实践,大致了解了软件项目个人开发流程。从需求分析到设计实现再到测试运行,此次项目实验让我体验了每一个步骤的具体实现。
- 学会了在Github上发布软件项目的操作方法。
- 项目完成后还有许多地方不足,比如柱状图没有用图形的样式表现出来。
- 本次项目完成时的模块划分能力有所欠缺,只有两个模块,功能实现Main和字典输出到文本,多数功能都在Main中直接编码调用。
七、PSP
实际完成时间(min) | 计划完成时间(min) | 任务内容 | PSP2.1 |
---|---|---|---|
28 | 20 | 计划 | Planning |
28 | 20 | 估计这个任务需要多少时间,并规划大致工作步骤 | Estimate |
1020 | 674 | 开发 | Development |
30 | 20 | 需求分析(包括学习新技术) | Analysis |
35 | 20 | 设计 | Design |
22 | 10 | 设计复审 | Design Review |
5 | 4 | 代码规范 | Coding Standard |
58 | 60 | 具体设计 | Design |
720 | 480 | 具体编码 | Coding |
120 | 60 | 代码复审 | Code Review |
30 | 20 | 测试 | test |
65 | 60 | 报告 | Reporting |
30 | 30 | 测试报告 | Test Report |
20 | 20 | 计算工作量 | Size Measurement |
15 | 10 | 事后总结,病提出过程改进计划 | Postmortem & Process Improvement Plan |
通过总结,发现本次项目的计划时间与实际完成时间出入比较大,尤其在具体编码方面,体现了我的动手编写代码能力不足,需要加强,也是因为设计的时候没有细化,不够完善,导致编写代码时不顺利。在今后的学习中,希望可以加强我的项目具体设计能力及编程能力。
转载于:https://www.cnblogs.com/SongFeiF/p/10556475.html
201671030116宋菲菲 词频统计软件项目报告相关推荐
- 201671010411+巩定定+词频统计软件项目报告
课程名 软件工程 实验二 词频统计软件项目报告 词频(TF) 是一个词语出现的次数除以该文件的总词语数. 实验目的 (1)掌握软件项目个人开发流程. (2)掌握Github上发布软件项目的操作方法. ...
- 201671010417 金振兴 词频统计软件项目报告
1.需求分析 按照<构建之法>第2章中2.3所述PSP流程,使用JAVA编程语言,独立完成一个英文文本词频统计的软件开发. .程序可读入任意英文文本文件,该文件中英文词数大于等于1个. . ...
- 201671030128+词频统计软件项目报告
一.需求分析 根据实验二 软件工程个人项目的要求本次软件项目的需求有以下几点: 1.程序可读入任意英文文本文件,该文件中英文词数大于等于1个,程序需要很壮健,能读取容纳英文原版<哈利波特> ...
- 201671030125+词频统计软件项目报告
项目 内容 这个作业属于哪个课程? 2016级计算机科学与工程学院软件工程(西北师范大学) 这个作业的要求在哪里? 实验二 软件工程个人项目 我在这个课程的目标是? 按时完成老师给的任务,复习JAVA ...
- 201671030130+词频统计软件项目报告
(一)需求分析 根据实验二 软件工程个人项目的要求该软件项目的基本功能要求如下: 1.程序可读入任意英文文本文件,该文件中英文词数大于等于1个. 2.程序需要很壮健,能读取容纳英文原版<哈利波特 ...
- 201671010433 | 词频统计软件项目报告
1.需求分析 使用JAVA编程语言,独立完成一个英文文本词频统计的软件开发.软件基本功能要求如下: 1.程序可读入任意英文文本文件,该文件中英文词数大于等于1个. 2.程序需要很壮健,能读取容纳英文原 ...
- 实验二 词频统计软件项目报告
实验要求 实验二 软件工程个人项目 GitHib链接 https://github.com/Z-zt/Count 一.需求分析 通过分析实验二题目要求,得出的用户需求主要为: 程序可读入任意英文文本文 ...
- 201671010403 陈倩倩 词频统计软件项目报告
一.需求分析 一个英文文本词频统计的软件开发,其基本需求有: 1.程序可读入任意英文文本文件,该文件中英文词数大于等于1个. 2.程序需要很壮健,能读取容纳英文原版<哈利波特>10万词以上 ...
- 201671010423 词频统计软件项目报告
需求分析 1.程序可读入任意英文文本文件,该文件中英文词数大于等于1个. 2.程序需要很壮健,能读取容纳英文原版<哈利波特>10万词以上的文章. 基本功能 1.指定单词词频统计功能:用户可 ...
- 201671010444 夏向明 词频统计软件项目报告
该项目实施过程主要包括以下7部分. 一.需求分析 1.程序需要读入至少一个词,可读入任意英文文本. 2.至少可以统计10万词及以上的文本. 3.用户可以同时查询多个单词的统计,并显示出其个数和柱状图. ...
最新文章
- java.lang.RuntimeException: can not run elasticsearch as root
- 信号与系统——微分方程与差分方程——编辑中
- War-Driving(战争驾驶***)
- 蛋糕是叫胚子还是坯子_教你做巧克力淋面蛋糕,掌握这个配比,好看又好吃,10分钟做一个...
- SRS 启动正常,拉流没画面,看SRS日志报错 srs is already running
- SpringMvc01 第一个Springmvc应用
- short s=1;s=s+1有问题吗?short s=1;s+=1;有问题吗?
- wptx64能卸载吗_电脑可以卸载bonjour软件吗?详细介绍bonjour软件
- 数据之路 - Python爬虫 - BeautifulSoup库
- Senparc.Weixin.MP SDK 微信公众平台开发教程(二):成为开发者
- 77GHz毫米波雷达快速chirp信号技术(二):测速原理
- python批量发送邮件_EDM营销算法:python自动批量发邮件
- 视频直播涉及的上行带宽问题~~
- 反垃圾邮件企业邮箱设置(TXT记录)
- java 文件服务器搭建_NFS文件共享服务器的搭建
- 延边大学计算机考研专业课考什么,延边大学2021小学教育经验贴
- 国土防线2计算机内存不足,国土防线2革命配置要求高吗?PC配置要求介绍
- Creator 开发微信小游戏-好友排行榜
- openjdk1.8的下载与安装
- 20200307 NOI Online T2 冒泡排序(逆序对)