实话说,USTCEE方向的本科培养方案里,专业的程序设计课程并不多,加之自己懒惰成性,原来一直没有机会好好体会编程之美,遗憾多年。

上周开始的ASE课程,感觉是一种全新的学习模式吧,和在学校里真的有着不一样的体会。Individual Project 逐渐完成了,这里回忆一下自己的整个过程。希望总结经验,以后少走弯路。

里程碑

用控制台程序实现一个目录下两种模式的字符频率统计

结构设计图

结构说明

类名

class Program

class FileOperate

class StringOperate

类型

属性

string openPath:目录路径

StringBuilder strContent

接受要处理的字符串和处理后的字符串

 

ArrayList myFileListName

目录下的所有文件的文件名

char[] delimiterList

记录分隔符数组

 

string savePath:保存文件名

string[] wordArray:得到分隔符分隔后的word

 

StringBuilder fileContent

目录下所有文件的内容

wordDictionary 按照规定创建字典

成员方法

main()

调用类方法

构造函数,重构传递参数

FileOperate(string dir, string saveName)

构造函数,重构传递参数

StringOperate(StringBuilder fileContent)

 

void ReadData()

读出目录下文件到 fileContent

void WordSplit(string model)

按规定模式进行字符分隔

 

void WriteData()

fileContent的内容读入到 savePath

void CreateDictionary()

创建word字典,进行频度统计,并输出到 strContent

 

 

 

时间

人物

工作

11.3

VS2008创建Myapp0.1版,所有代码挤在一个主函数文件中,实现功能就是读出文件到字符串中,分隔字符串成字符串数组,然后再拼合字符串数据成字符串,输出到目标文件中。

11.5

考虑到vs2008的程序到vs2010还得重新转,故而重新写了一篇,并把类拓展为了一个FileOperate类用于文件操作,包含ReadData()方法和WriteData()方法,一个StringOperate类用于对字符串的各种操作,包含WordSplit(string model)CreateDictionary()方法,定义了两个类之间的调用关系。simple模式初步完成。

11.6

添加extended模式,修改WordSplit(string model)方法中extended模式的处理。

11.7

发现CreateDictionary()方法下的bug,排序结果同一频度的单词未能按字典顺序输出,解决方案,先让其关于字符做一次排序,在关于频度做一次排序;另可考虑建立SortedDictionary字典,即可只进行一次关键字排序操作。

11.7

完善ReadData()方法的读取功能,原来为了测试方便,只读入了一个.txt文件。拓展后,可判断若可读,直接读入到fileContent中,若是目录,则遍历读取内部所有可读文件到fileContent中。

11.9

把类中不安全的字段通过属性方式安全调用。

11.9

使用VSTS效能分析工具进行性能分析,改进代码。

11.10

summary

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

posted on 2010-11-27 21:31  CodingCrazy 小组  阅读(246)  评论(0编辑  收藏  举报