关键词:
该项目实施过程主要包括以下7部分。
一.需求分析
1.程序需要读入至少一个词,可读入任意英文文本。
2.至少可以统计10万词及以上的文本。
3.用户可以同时查询多个单词的统计,并显示出其个数和柱状图。
4.用户可以筛选单词频数大于n的单词,进行降序显示其单词及其频数。
5.统计文本所以单词及其词频,并在文本文件中按字典序进行显示。
二.功能设计
1.基本功能:对输入的大于等于一个单词的英文,
实现其一个或多个单词的单词和词频统计并以柱状图的形式显示出来,
可以对多个单词进行条件查询并对其按降序或字典序进行显示。
2.扩展功能:对输入的英文文本,筛选出包含某个单词的句子。
(在英语单词的学习过程中,最好是结合真题去学习。那么就可以把历年真题进行扫描录入,然后筛选包含某个单词的句子。)
三.设计实现
1.模块划分及其功能:
扑获内容:把文件或网页中的文本抓取出来,对其进行分割后用于统计。
统计词频:对相应的词通过for循环进行词频统计。
绘制柱状图:对统计来的数据做出直观表达。
按字典序排序:把统计来的数据按字典序排序,并显示词及其频数。
输出为文本:统计结果输出为文本文件。
2.模块之间的关系:捕获内容模块从源文件中捕获数据,对其进行分割后用于词频统计模块 的数据源,绘制柱状图模块把统计的来的数据直观展示,字典序排序模块对统计的单词按字典序排列显示。各模块之间相互依赖,前者为后者提供源数据。
3.重要的函数(必要时画出流程图):
4.函数之间的关系:
前者给后者提供源数据,模块与模块之间相互依赖互相区别。
四.测试运行(附截图)
1.显示单词词频和柱状图
2.输出前K个高频词
五.代码片段精选(用代码控件显示)
1.文件读入并统计词频
// 读取要处理的文件 BufferedReader b = new BufferedReader(new FileReader("src/HarryPotter.txt")); //<单词:词频> Map<String, Integer> map = new TreeMap<String, Integer>(); String value= b.readLine(); while (value!= null) //处理标点符号 String[] words = value.split("[【】、.。,"!--;:?‘\\] ]"); for (int i = 0; i < words.length; i++) //将大写字母转换为小写字母 String key = words[i].toLowerCase(); if (key.length() > 0) if (!map.containsKey(key)) map.put(key, 1); else int k = map.get(key)+1;// 如果不是第一次出现,就把k值++ map.put(key, k); value = b.readLine();
2.按词频或字母排序
Set<Entry<String,Integer>> m= map.entrySet();
LinkedList<Entry<String, Integer>> List = new LinkedList<Entry<String,Integer>>(m);
//按值排序
if(a==2)
Collections.sort(List, new Comparator<Entry<String,Integer>>()
public int compare(Entry<String, Integer> a, Entry<String, Integer> b)
return b.getValue().compareTo(a.getValue());
);
//按键排序
else if(a==3)
Collections.sort(List, new Comparator<Entry<String,Integer>>()
public int compare(Entry<String, Integer> a, Entry<String, Integer> b)
return a.getKey().compareTo(b.getKey());
);
//排序后存入Map中
for(Entry<String,Integer> entry: List)
Map.put(entry.getKey(), entry.getValue());
3.向文件写入单词词频
File file = new File("result.txt");
//向文件写入
FileWriter f = new FileWriter(file.getAbsoluteFile());
for(Entry<String,Integer> w: Map.entrySet())
f.write(w.getKey() + "/" + w.getValue()+" ");
f.close();
System.out.println("结束!");
六.总结(如何实现模块化原则)
1.按功能用函数实现了模块化。
2.最开始读数据打算用数组,后面发现处理起来有点麻烦,就选择了目前这种方式。
3.柱状图绘制时,把统计和绘制放在了一起。
七.展示PSP
PSP2.1 | 任务内容 | 计划共完成需要的时间(min) | 实际完成需要的时间(min) |
---|---|---|---|
Planning | 计划 | 30 | 42 |
Estimate | 估计这个任务需要多少时间,并规划大致工作步骤 | 30 | 42 |
Development | 开发 | 700 | 1088 |
Analysis | 需求分析 (包括学习新技术) | 120 | 150 |
Design Spec | 生成设计文档 | 50 | 50 |
Design Review | 设计复审 (和同事审核设计文档) | 20 | 15 |
Coding Standard | 代码规范 (为目前的开发制定合适的规范) | 30 | 30 |
Design | 具体设计 | 120 | 60 |
Coding | 具体编码 | 240 | 600 |
Code Review | 代码复审 | 60 | 80 |
Test | 测试(自我测试,修改代码,提交修改) | 60 | 120 |
Reporting | 报告 | 55 | 100 |
Test Report | 测试报告 | 20 | 32 |
Size Measurement | 计算工作量 | 10 | 10 |
Postmortem & Process Improvement Plan | 事后总结 ,并提出过程改进计划 | 25 | 60 |
总结:大部分环节都有超时现象,只要原因是因为自己对开发过程的不熟悉,对使用语言没有系统的学习过。
201671010454词频统计软件项目报告(代码片段)
...容纳英文原版《哈利波特》10万词以上的文章。指定单词词频统计功能:用户可输入从该文本中想要查找词频的一个或任意多个英文单词,运行程序的统计功能可显示对应单词在文本中出现的次数和柱状图。高频词统计功能:用... 查看详情
201671030113词频统计软件项目报告
...能设计1.读取文件article.txt,能容纳10万单词以上。2.统计词频,可以分解输入字符串并统计输入一个或多个单词的词频。3.将article.txt文本中的单词及其词频按照字典顺序输出到文件result.txt文件中。三、设计实现1.main主函数2.词频... 查看详情
201671030126词频统计软件项目报告
一.需求分析????1.可读入文件????2.指定词汇数的统计????3.高频词汇的统计及其柱状图????4.所有词汇数的统计并字典排序输出到另一文件二.设计实现????设计一个Word类来表示词汇的值以及出现的次数;一个myfile类写所有的函数:????b... 查看详情
201671010431+词频统计软件项目报告
....3所述PSP流程,使用JAVA编程语言,独立完成一个英文文本词频统计的软件开发。软件基本功能要求如下:1.程序可读入任意英文文本文件,该文件中英文词数大于等于1个。2.程序需要很壮健,能读取容纳英文原版《哈利波特》10... 查看详情
201671010406词频统计软件项目报告(代码片段)
...容纳英文原版《哈利波特》10万词以上的文章。指定单词词频统计功能:用户可输入从该文本中想要查找词频的一个或任意多个英文单词,运行程序的统计功能可显示对应单词在文本中出现的次数和柱状图。高频词统计功能:用... 查看详情
201671010421麻存滔词频统计软件项目报告(代码片段)
...纳英文原版《哈利波特》10万词以上的文章。2.指定单词词频统计功能:用户可输入从该文本中想要查找词频的一个或任意多个英文单词,运行程序的统计功能可显示对应单词在文本中出现的次数和柱状图。3.高频词统计功能:用... 查看详情
201671010457朱石景词频统计软件项目报告(代码片段)
...行可视化输出。二、功能设计基本功能:1、实现单词的词频统计2、进行高频词汇统计3、进行单词数量查找拓展功能:条形图显示功能三、环境需求测试机环境:windows环境matlab版本:MATLABR2015b四、设计实现该设计实现过程是用MA... 查看详情
201671010402词频统计软件项目报告(代码片段)
需求分析可以使用Java编程语言,独立完成一个英文文本词频统计的软件开发。程序可读入任意英文文本文件,该文件中英文词数大于等于1个。程序需要很壮健,能读取容纳英文原版《哈利波特》10万词以上的文章。测试环境此... 查看详情
201671010432词频统计软件项目报告(代码片段)
...简单的代码实现,可以自动读入英文文本文件,具有单词词频统计的功能,3.设计实现定义一个主函数,用HashMap存放这样一个映射关系,用正则表达式来过滤字符串中的所有标点符号,使用StringTokenizer来分词,遍历HashMap,输出结... 查看详情
201671010423词频统计软件项目报告(代码片段)
...版《哈利波特》10万词以上的文章。基本功能1.指定单词词频统计功能:用户可输入从该文本中想要查找词频的一个或任意多个英文单词,运行程序的统计功能可显示对应单词在文本中出现的次数和柱状图。2.高频词统计功能:用... 查看详情
201671010415+词频统计软件项目报告
...中,有很多有关英语学习的软件,但是对于一篇文章进行词频统计的软件还是比较少的。为了方便老师和学生在上课时能够快速统计出一片文章中出现的单词的频率,能让老师和学生更明确地了解学习的任务,也能让课堂气氛更... 查看详情
201671010441徐浩杰词频统计软件项目报告
....3所述PSP流程,使用JAVA编程语言,独立完成一个英文文本词频统计的软件开发。软件基本功能要求如下:•程序可读入任意英文文本文件,该文件中英文词数大于等于1个。•程序需要很壮健,能读取容纳英文原版《哈利波... 查看详情
201671010439-词频统计软件项目报告
...纳英文原版《哈利波特》10万词以上的文章。3.指定单词词频统计功能:用户可输入从该文本中想要查找词频的一个或任意多个英文单词,运行程序的统计功能可显示对应单词在文本中出现的次数和柱状图。4.高频词统计功能:用... 查看详情
201671010410冯婷秀词频统计软件项目报告
...纳英文原版《哈利波特》10万词以上的文章。3.指定单词词频统计功能:用户可输入从该文本中想要查找词频的一个或任意多个英文单词,运行程序的统计功能可显示对应单词在文本中出现的次数和柱状图。4.高频词统计功能:用... 查看详情
软件工程个人作业词频统计(代码片段)
---恢复内容开始--- 软件工程个人作业——单词频率统计曾子轩Schoolofinformation,USTC一、项目介绍与分析(作业要求:http://www.cnblogs.com/denghp83/p/8627840.html) 项目介绍: 1. 统计文件的字符数 2. 统计... 查看详情
现代软件工程第一次作业——词频统计(代码片段)
目录 1.1基本功能 1.2设计实现 1.3代码结构 1.4测试运行 1.5性能分析 1.6项目总结 1.7PSP展示 1.1基本功能 1. 统计文件的字符数(只需要统计Ascii码,汉字不用考虑,换行符不用考虑,‘\0‘不用考... 查看详情
201671010416焦少梅实验二词频统计项目
....3所述PSP流程,使用JAVA编程语言,独立完成一个英文文本词频统计的软件开发程序可读入任意英文文本文件,该文件中英文词数大于等于1个。程序需要很壮健,能读取容纳英文原版《哈利波特》10万词以上的文章。指定单词词频... 查看详情
软件工程第二次作业词频统计
1.项目名称:词频统计2.代码地址:https://coding.net/u/songyuu/p/python_wf/git3.代码如下:1importos2importre3importcollections4#print(os.getcwd())#显示wf.py路径5#print(os.listdir())#显示目录下的文件6file_name=input("wf")7ifnotos.path 查看详情