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]: 文件或目录名,可以处理一般通配符。(实现)
  •   高级功能:
    •   -x 参数。这个参数单独使用。如果命令行有这个参数,则程序会显示图形界面,用户可以通过界面选取单个文件,程序就会显示文件的字符数、行数等全部统计信息。(实现)
      需求举例:
      wc.exe -s -a *.c(文件遍历没指定,一个文档遍历到天黑)
      返回当前目录及子目录中所有*.c 文件的代码行数、空行数、注释行数。

 


 

遇到的困难及解决方法

  • 困难描述:各种bug
  • 做过哪些尝试:百度
  • 是否解决:基本解决
  • 有何收获:灵活使用搜索工具

 

关键代码or设计说明

详细代码参见github,注释挺详细的了    = =

 

设计思路和流程:计划是先完成基本功能,然后就可以设计图形化界面,至于遍历文档和详细行信息有时间再去做。

图形化界面是单独做出来的,可以直接独立于代码运行,其他的模块是 3个基本运算,1个详细运算,1个行详细信息计算,一个输出函数,其他的细节再在主函数里面补充。  

 

测试运行

三个基本功能

 

 

实现详细行数信息

实现文档遍历

 实现图形化界面

 

 

PSP

PSP2.1Personal 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

总结

知识的积累是十分重要的,这个项目有许多我从前没接触过的知识点,导致学习花费了许多时间。