程序可读入任意英文文本文件,该文件中英文词数大于等于1个。html
程序须要很壮健,能读取容纳英文原版《哈利波特》10万词以上的文章。java
指定单词词频统计功能:用户可输入从该文本中想要查找词频的一个或任意多个英文单词,运行程序的统计功能可显示对应单词在文本中出现的次数和柱状图。git
高频词统计功能:用户从键盘输入高频词输出的个数k,运行程序统计功能,可按文本中词频数降序显示前k个单词的词频及单词。github
统计该文本全部单词数量及词频数,并能将单词及词频数按字典顺序输出到文件result.txt。编程
读取功能:能够读取并存储任意英文文本。模块化
单词词频统计功能:用户可输入从该文本中想要查找词频的一个或任意多个英文单词,运行程序的统计功能可显示对应单词在文本中出现的次数和柱状图。函数
高频词统计功能:用户从键盘输入高频词输出的个数k,运行程序统计功能,可按文本中词频数降序显示前k个单词的词频及单词。学习
输出功能:统计该文本全部单词数量及词频数,并能将单词及词频数按字典顺序输出到文件result.txt。测试
扩展功能: 无编码
程序包含两个类,分别是主函数类MAIN类和存储类SAVE类
MAIN类:
public static void main主函数、
public static void select菜单界面函数、
public static void out输出函数、
public static void sort排序函数、
public static void highsta高频词输出函数等等
界面以及高频词
指定高频词次数及柱状图
保存至result.txt文件
按字典保存的单词
public static void sc(String e,int max) { double num=0; int bz=0; if(e.length()!=0) { for(SAVE s : sum1) { if(s.getWord().equals(e)) { System.out.printf("%-12s-%,5d|",e,s.getNumber()); num=(double)(s.getNumber())/max*80; for(int i=0;i<num;i++) System.out.print("★"); System.out.println(); bz=1; } } if(bz==0)System.out.printf("%-12s-%,5d|数据未找到\n",e,0); } }
public static void highsta() { System.out.println("请输入要查看的单词数"); Scanner sc=new Scanner(System.in); int x=sc.nextInt(); for(SAVE s : sum1) { System.out.println(s.getWord()+":"+s.getNumber()); x--; if(x==0)break; } }
首先在作完需求分析等部分的内容开始编程时就出现了不少困难,首先是java编程的不熟悉,在编程的过程当中花了不少时间至关于从新学习了java的简单实现,其次是本次实验模块化的划分,有一个主函数main函数统领全局,其下有菜单界面显示的函数、对文本排序的函数、统计单词次数的函数、输出字典到文件result的函数等等。每一个函数在main函数下被调用。
PSP | 任务内容 | 计划共完成须要的时间(min) | 实际完成须要的时间(min) |
---|---|---|---|
Planning | 计划 | 15 | 20 |
Development | 开发 | 180 | 200 |
Analysis | 需求分析(包括学习新技术) | 15 | 20 |
Design Spec | 生成设计文档 | 5 | 5 |
Design Review | 设计复审 | 5 | 5 |
Coding Standard | 代码规范(为目前的开发制定合适的规范) | 20 | 10 |
Design | 具体设计 | 30 | 45 |
Coding | 具体编码 | 120 | 150 |
Code Review | 代码复审 | 10 | 15 |
Test | 测试(自我测试,修改代码,提交修改) | 5 | 5 |
Reporting | 报告 | 5 | 5 |
Test Report | 测试报告 | 5 | 5 |
Size Measurement | 计算工做量 | 0 | 0 |
Postmortem & Process Improvement Plan | 过后总结,并提出过程改进计划 | 10 | 20 |