词频统计工程的准备工作和实际完成情况

一、工程开始之前的初步预估

  虽然以前基本没写过C#,对C#的语法了解甚少,但是基于以前写过一些java的代码已经两门语言间的一些类似性,在工程开始以前我还是做了一个预估和整体规划:

  ①由于个人习惯,先有一个Program类,作为整个工程的主类,通过方法调用完成整个过程。这部分应该不是一个太复杂的工作,预计时间不超过一小时,顺利的话半小时左右就够;

  ②主要工作由一个文件操作类来完成,命名为FileOperate,完成各种文件操作,包括:findallfiles方法——用队列查找出目录文件夹下的所有文件;和findwords方法——处理每个文件里的词频统计;以及output——输出结果。这部分属于主要工作,鉴于对C#的不熟悉,已经对算法的考虑,应该要用4到5小时,或者更长;  

  ③对于要统计的词,需要一个类来构造它们,暂定叫做Word类。类应该要包括三个参数,包括小写的字符串,出现次数,和排序应该最小的出现形式;这部分也不复杂,半小时应该足够。

二、开始之前的资料查找和学习

  因为对于C#的不熟悉,先从图书馆借了一本《C#高级编程》,同时在msdn上查询C#相关的类库和方法,并通过研读网上一些博客的C#的简单程序来尽快熟悉C#。这个过程所花的时间也有好几天,毕竟熟悉以后再着手写代码总比很生疏的看一点书写一点代码感觉好一些。

三、实际完成情况

  ①Program类:如预期的一样,完成情况比较顺利。刚开始对于读入一直不是很明白,主要是对命令行操作的不了解。后来通过网上的资料和同学的指点明白了其中的原理。fileoperate是前面说的主要的一个类,后面介绍。顺便说一下,C#里类似DirectoryInfo这种东西真的是非常方便呐~~

词频统计工程的准备工作和实际完成情况_第1张图片

 

②fileoperate类:完成时间比预期稍短,比较顺利。

用了两个List来存下所有目录和文件的名字。

findallfiles用队列查找并记录所有文件名。

词频统计工程的准备工作和实际完成情况_第2张图片

findwords方法中,用Split来完成分词,效果和效率感觉都还不错,但是应该是有漏掉的但是没有发现的分隔符。也试过正则表达式,效果不错,基本没有遗漏,但是效率似乎有些低。

词频统计工程的准备工作和实际完成情况_第3张图片

 

③word类:有三个参数,string myword,string endword,int number,具体作用也如预期所说。

你可能感兴趣的:(工作)