实话说,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 |