实话说,USTC中EE方向的本科培养方案里,专业的程序设计课程并不多,加之自己懒惰成性,原来一直没有机会好好体会编程之美,遗憾多年。
上周开始的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 |