WC计数程序小结

一、在文章开头给出Github项目地址:https://github.com/ppp-203/wc

二、解题思路

我的设计思路如下表

分块

实现

字符数

找到可显示字符

单词数

识别单词字符(2个及以上)

或者a和I

行数

 

识别换行符

导入文件内容(读取)

BufferedReader实现

处理目录下符合条件的文件

确定递归条件:当前file是目录

空行

找出包括不超过可显示字符的行

注释行

找到包含注释语句标识且不是代码句的行

代码行

找出包含超过两个可显示字符的代码语句

main(主函数,调用测试)

 创建对象及测试

 

三、设计实现过程

1、使用语言:JAVA

2、前半段设计时间:

  我尝试用if-else语句,但是设计过程中发现,有出现很多种的情况,使用if-else很容易遗漏并且代码冗杂,所以我最后放弃这个方法

3、后半段设计时间:

  我在网上寻找方法,我发现了另一种可行性很高的方法——利用正则表达式。我学习了正则表达式以及Pattern类、Matcher类的用法,最终利用这三个知识点实现了各种情况的识别及计数

 

四、代码说明

基本功能实现:

WC计数程序小结

WC计数程序小结

 WC计数程序小结

 WC计数程序小结

 

扩展功能实现:

WC计数程序小结

 WC计数程序小结

WC计数程序小结

 WC计数程序小结

 WC计数程序小结

 

辅助接口实现:

WC计数程序小结

 

 测试:

WC计数程序小结

 WC计数程序小结 

 

五、测试运行

测试用例如图:

WC计数程序小结

 WC计数程序小结

测试结果如下:输入格式wc.exe [parament] [file_name]

WC计数程序小结

 WC计数程序小结

 

基本功能和扩展功能的单元测试覆盖率:

WC计数程序小结 WC计数程序小结 WC计数程序小结

 

 

六、预计时间及花费时间

PSP2.1

Personal Software Process Stages

预估耗时(分钟)

实际耗时(分钟)

Planning

计划

 

 

· Estimate

· 估计这个任务需要多少时间

 1230

 1400

Development

开发

 

 

· Analysis

· 需求分析 (包括学习新技术)

 120

 分析:40

学习:200

· Design Spec

· 生成设计文档

 40

 30

· Design Review

· 设计复审 (和同事审核设计文档)

 40

 20

· Coding Standard

· 代码规范 (为目前的开发制定合适的规范)

 40

 10

· Design

· 具体设计

 60

 60

· Coding

· 具体编码

 360

 300+240

· Code Review

· 代码复审

 60

 80

· Test

· 测试(自我测试,修改代码,提交修改)

 240

 150+120

Reporting

报告

 

 

· Test Report

· 测试报告

 180

120

· Size Measurement

· 计算工作量

 30

 10

· Postmortem & Process Improvement Plan

· 事后总结, 并提出过程改进计划

 30

 20

合计

 

 1210

 1400

 

七、项目小结

1、提前了解实现项目的相关方法(尽量多种),以便对比选择。这样可以省下很多时间,避免时间浪费

2、本次个人项目,我学会了如何做单元测试、回归测试,测试对于bug的发现很有用。

3、这次做个人项目和往常的普通编程作业给我的体验很不一样。我需要学会用插件、Github、做测试等等,而不仅仅只是普通编写代码实现功能。

4、对于我所写的程序,虽然经过这几天的调试修改,已经完善许多,但有些地方还是存在漏洞,只能满足比较常见的C语言文件,对于特殊情况的测试,还有存在很多的不足。

上一篇:个人项目 wc(C语言)


下一篇:Linux查看目录下文件的个数