Fork me on GitHub

201671030102陈飞 词频统计软件项目报告

我的GitHub仓库

链接

1需求分析

根据实验二 软件工程个人项目分析

    1、程序可读入文本文件,且文本文件大小不定,文件路径为相对路径
    2、指定单词词频统计功能,可多个输入并且输出柱状图
    3、统计该文本所有单词数量及词频数,并能将单词及词频数按字典顺序输出到文件result.txt。
    4、可按文本中词频数降序显示前k个单词的词频及单词
    5、使用java开发,且jdk环境为jdk8u161,jre环境为jre8u161

2功能设计

·基本功能:
    1、指定单词词频统计功能
    2、高频词统计功能
    3、统计该文本所有单词数量及词频数
·拓展功能:
       无

3设计实现

开发所使用类:

1、main类

        主程序(包括所有函数)

2、word类

           单词类,存储单词和出现次数

核心函数

    1、lass SortByWord implements Comparator 按字典排序
    2、public static void sr()输入词汇统计
    3、public static void pxs()高频词汇统计

测试运行

开始执行

部分功能展示

result.txt部分内容展示

代码展示:

1、文件录入和词汇分割

try {
			if(file.exists()) {
			file.createNewFile();
			}
			Scanner fl=new Scanner(file);
			while(fl.hasNext())
			{	
				word=fl.nextLine();
				words=word.split("\"|,|!|\\?|“|”|\\.|…|`|\\(|\\)|-|—|‘|’|&|\\'|:|;|\n|\\,| ");
				for(int i=0;i<words.length;i++)
				{
					add(words[i]);
					sumnu++;
				}

2、统计该文本所有单词数量及词频数并输出到文件result.txt

Collections.sort(sum, new  SortByWord());
		File file=new File("result.txt");
		try {
			if(file.exists()) {
				file.createNewFile();
				}
			FileWriter fop = new FileWriter(file.getAbsoluteFile());
			for(Word s : sum )
			{
				fop.write(s.getWord()+":"+s.getNumber()+"\n");
			}
			fop.close();
		}catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		System.out.println("写入结束");

总结

   根据分析所得到的要求。操作的对象为单词,创建单词类并给予我们所需要使用的属性。主类、设计到文件的处理及其所有函数的统一调配。根据所需功能创建不同的函数,以次来实现不同模块的划分。

psp2.1展示:

PSP2.1 计划共完成需要的时间(min) 实际完成需要的时间(min)
Planning 10 5
Estimate 5 1
Development 225 181
Analysis 30 10
Design Spec 20 10
Design Review 0 0
Coding Standard 30 5
Design 10 5
Coding 60 100
Code Review 10 5
Test 20 30
Reporting 10 5
Test Report 0 0
Size Measurement 0 0
Postmortem & Process Improvement Plan 20 5
posted @ 2019-03-19 00:04  飞-F  阅读(242)  评论(6编辑  收藏  举报