文本统计工具

Github项目地址

https://github.com/zzidun-pavo/WordCounter

(目前施工中)

预计耗费的时间&实际耗费的时间

PSP Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟)
Planning 计划 10 13
· Estimate · 估计这个任务需要多少时间 10 13
Development 开发
· Analysis · 需求分析 (包括学习新技术) 30 20
· Design Spec · 生成设计文档 30
· Design Review · 设计复审 (和同事审核设计文档) 30
· Coding Standard · 代码规范 (为目前的开发制定合适的规范) 30
· Design · 具体设计 50
· Coding · 具体编码 200
· Code Review · 代码复审 100
· Test · 测试(自我测试,修改代码,提交修改) 60
Reporting 报告
· Test Report · 测试报告 40
· Size Measurement · 计算工作量 20
· Postmortem & Process Improvement Plan · 事后总结, 并提出过程改进计划 30
合计

解题思路

wc.exe 是一个常见的工具,它能统计文本文件的字符数、单词数和行数。这个项目要求写一个命令行程序,模仿已有wc.exe 的功能,并加以扩充,给出某程序设计语言源文件的字符数、单词数和行数。

实现一个统计程序,它能正确统计程序文件中的字符数、单词数、行数,以及还具备其他扩展功能,并能够快速地处理多个文件。
具体功能要求:

实现一个统计程序,它能正确统计程序文件中的字符数、单词数、行数,以及还具备其他扩展功能,并能够快速地处理多个文件。

空行:本行全部是空格或格式控制字符,如果包括代码,则只有不超过一个可显示的字符,例如“{”。

代码行:本行包括多于一个字符的代码。

注释行:本行不是代码行,并且本行包括注释。一个有趣的例子是有些程序员会在单字符后面加注释:

程序处理用户需求的模式为:

wc.exe [parameter] [file_name]
功能列表 功能
-c 返回文件的字符数
-w 返回文件的词的数目
-l 返回文件的行数
-s 递归处理目录下符合条件的文件
-a 返回更复杂的数据(代码行 / 空行 / 注释行)
-x 这个参数单独使用。如果命令行有这个参数,则程序会显示图形界面,用户可以通过界面选取单个文件,程序就会显示文件的字符数、行数等全部统计信息。

统计字符数和行数的操作,可以使用readLine()之类的行数来实现,非常简单.

统计单词数的操作,比较麻烦.

扫描二维码关注公众号,回复: 9992809 查看本文章

首先需要考虑什么样的文本算"一个单词",我这样定义:

  • 一个变量名(如a,b,c等)
  • 一个操作数,运算符不算(如a=b+c含有三个单词)
  • 一个函数名(如main,printf等)
  • 一个修饰词(如void,static等)
  • 一个关键字(如if,else,return等)

显然,不会有横跨多行的一个单词,所以我决定每次读取一行,编写一个函数,用来判断一些标志的能隔开两个单词的符号(如空格,括号,运算符),以判断到底有多少个单词.

图形界面则使用qt.

递归查找,分析注释等等功能暂时先搁置.

设计实现过程

代码说明

测试运行

项目小结

记录自己的学习进度条(每周追加)

第N周 新增代码(行) 累计代码(行) 本周学习耗时(小时) 累计学习耗时(小时) 重要成长
1 0 0 2 2 学习了git的用法
2(目前) 170 170 2 4

猜你喜欢

转载自www.cnblogs.com/zzidun-pavo/p/12531211.html