个人项目
一、GitHub项目地址:https://github.com/Panlake/WordCount
二、PSP表格:
| PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
| Planning | 计划 | 40 | 50 |
| Estimate | 估计这个任务需要多少时间 | 30 | 40 |
| Development | 开发 | 600 | 840 |
| Analysis | 需求分析 (包括学习新技术) | 300 | 150 |
| Design Spec | 生成设计文档 | 30 | 30 |
| Design Review | 设计复审 (和同事审核设计文档) | 30 | 30 |
| Coding Standard | 代码规范 (为目前的开发制定合适的规范) | 15 | 10 |
| Design | 具体设计 | 60 | 60 |
| Coding | 具体编码 | 240 | 300 |
| Code Review | 代码复审 | 30 | 30 |
| Test | 测试(自我测试,修改代码,提交修改) | 60 | 90 |
| Reporting | 报告 | 90 | 90 |
| Test Report | 测试报告 | 60 | 45 |
| Size Measurement | 计算工作量 | 15 | 15 |
| Postmortem & Process Improvement Plan | 事后总结, 并提出过程改进计划 | 15 | 10 |
| Summary | 合计 | 1615 | 1790 |
三、解题思路描述
浏览完项目需求后,发现有一些功能可以参考以前做过的Java课设,但是有一些功能例如单词数统计功能,刚开始并没有一个特别清晰的思路,通过查阅资料之后发现可以使用正则表达式去完成这些功能,所以在做项目的过程中花了点时间学习一下正则表达式。除此之外,为了完成项目的需要,还去学习了String类的一些方法。
四、设计实践过程
- 功能模块介绍:
CharCount类实现“-c”功能——统计指定文件的字符数;
WordCount类实现“-w”功能——统计指定文件的单词数;
LineCount类实现“-l”功能——统计指定文件的行数;
SpecialLineCount类实现“-a”功能——统计指定文件的代码行数、空行数以及注释行数;
FileHandler类实现“-s”功能——递归处理指定目录下符合条件的文件;
GUI类实现“-x”功能——图形界面;
- 流程图:

- 代码说明:
WC类:获取命令和文件路径,并根据获取到的命令调用相关的函数。


CharCount类:

WordCount类:

LineCount类:

SpecialLineCount类:

FileHandler类:


GUI类:
图形界面的基本构建详细代码略,下图分别为为界面的“打开文件”和“统计字符数”按钮的对应活动的设置。


- 测试结果:
测试所用的文件如下,分别为:
空文件
只有一个字符的文件
只有一个词的文件
只有一行的文件
一个典型的源文件

“TypicalFile.c"的详细内容:

“-c”测试结果:

“-w”测试结果:

“-l”测试结果:

“-s”和“-a”的测试结果:

“-x”的测试结果:


- 代码覆盖率:


浙公网安备 33010602011771号