wordcount
GITHUB
https://github.com/06linxi/wordcount
项目相关要求
wc.exe 是一个常见的工具,它能统计文本文件的字符数、单词数和行数。
- 具体功能要求:
程序处理用户需求的模式为:wc.exe [parameter] [file_name]
- 基本功能列表:
wc.exe -c file.c
//返回文件 file.c 的字符数(实现)wc.exe -w file.c
//返回文件 file.c 的词的数目(实现)wc.exe -l file.c
//返回文件 file.c 的行数(实现) -
拓展功能:
- -s 递归处理目录下符合条件的文件。(基本实现)
- -a 返回更复杂的数据(代码行 / 空行 / 注释行)。(基本实现)
- 空行:本行全部是空格或格式控制字符,如果包括代码,则
只有不超过一个可显示的字符,例如“{”。 - 代码行:本行包括多于一个字符的代码。
- 注释行:本行不是代码行,并且本行包括注释。一个有趣的例子是有些程序员会在单字符后面加注释:
} //注释
在这种情况下,这一行属于注释行。(这种情况没有处理) - [file_name]: 文件或目录名,可以处理一般通配符。(实现)
- -s 递归处理目录下符合条件的文件。(基本实现)
- 高级功能:
- -x 参数。这个参数单独使用。如果命令行有这个参数,则程序会显示图形界面,用户可以通过界面选取单个文件,程序就会显示文件的字符数、行数等全部统计信息。(实现)
需求举例:wc.exe -s -a *.c(文件遍历没指定,一个文档遍历到天黑)
返回当前目录及子目录中所有*.c 文件的代码行数、空行数、注释行数。
- -x 参数。这个参数单独使用。如果命令行有这个参数,则程序会显示图形界面,用户可以通过界面选取单个文件,程序就会显示文件的字符数、行数等全部统计信息。(实现)
遇到的困难及解决方法
- 困难描述:各种bug
- 做过哪些尝试:百度
- 是否解决:基本解决
- 有何收获:灵活使用搜索工具
关键代码or设计说明
详细代码参见github,注释挺详细的了 = =
设计思路和流程:计划是先完成基本功能,然后就可以设计图形化界面,至于遍历文档和详细行信息有时间再去做。
图形化界面是单独做出来的,可以直接独立于代码运行,其他的模块是 3个基本运算,1个详细运算,1个行详细信息计算,一个输出函数,其他的细节再在主函数里面补充。
测试运行
三个基本功能
实现详细行数信息
实现文档遍历
实现图形化界面
PSP
PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
---|---|---|---|
Planning | 计划 | 10 | 10 |
· Estimate | · 估计这个任务需要多少时间 | 10 | 10 |
Development | 开发 | 540 | 1080 |
· Analysis | · 需求分析 (包括学习新技术) | 60 | 600 |
· Design Spec | · 生成设计文档 | 30 | 30 |
· Design Review | · 设计复审 (和同事审核设计文档) | 30 | 30 |
· Coding Standard | · 代码规范 (为目前的开发制定合适的规范) | 30 | 30 |
· Design | · 具体设计 | 30 | 30 |
· Coding | · 具体编码 | 300 | 300 |
· Code Review | · 代码复审 | 30 | 30 |
· Test | · 测试(自我测试,修改代码,提交修改) | 30 | 30 |
Reporting | 报告 | 60 | 60 |
· Test Report | · 测试报告 | 40 | 40 |
· Size Measurement | · 计算工作量 | 10 | 10 |
· Postmortem & Process Improvement Plan | · 事后总结, 并提出过程改进计划 | 10 | 10 |
合计 | 610 | 1150 |
总结
知识的积累是十分重要的,这个项目有许多我从前没接触过的知识点,导致学习花费了许多时间。