WC个人项目

一、Github地址:https://github.com/Jarrett-L/wc(已实现所有列出功能)

二、PSP表格:

PSP2.1 Personal Software Process Stages 预估耗时(分钟)  实际耗时(分钟)

Planning

 计划  30  30
  • Estimate
  •  估计这个任务需要多少时间
 30  30
 Development

 开发

1170  1095
  •  Analysis
  •  需求分析
 100  100
  •  Design Spec
  •  生成设计文档
 30  40
  •  Design Review
  •  设计复审
 40  40
  •  Coding Standard
  •  代码规范
 30  35
  •  Design
  •  具体设计
 100  110
  •  Coding
  •  具体编码
 720  660
  •  Code Review
  •  代码复审
 30  30
  •  Test
  •  测试(自我测试,修改代码,提交修改)
 120  90
 Reporting  报告  120  115
  •  Test Report
  •  测试报告
 30  40
  •  Size Measurement
  •  计算工作量
 30  30
  •  Postmortem&Process Improvement Plan
  •  事后总结,并提出过程改进计划
 60  45
 合计    1320 1240

三、解题思路

①查阅《构建之法》,学习个人软件开发流程是如何建成的,以及单元测试模块应该如何去做得更加完善。

②先做一个类似于UI界面的主程序类,然后调用方法类中的方法来实现wc.exe。

③对于wc.exe的基本功能,主要设计IO流中的相关类与方法,其中用readLIne()方法所获得的每一个行的字符串形式的不同处理即是处理基本功能的关键。特别的是,对于计算词数的方法,每一个词的通用格式使用正则表达式来进行匹配。

④计算空行,代码行,注释行:行中只有这三种属性,即必为三者之一,其中注释行有特殊标志,可用contains()方法来进行判断,而空白行通过trim()方法后的长度为0,这三种特征构成了解本功能的关键。

⑤递归功能:获得文件路径后,用file.listFiles()方法将所有文件包装成一个数组,用于循环遍历,对于通配符的处理,新建match()方法对于遇到*或?时,将字符串截成两端进行匹配。对于找到匹配的文件后,调用方法类的方法进行查询输出。

⑥图形化界面:新建一个window类,选择相关命令时new该类,同时调用其中方法创建JFame以及一个JButton,一个textArea,其中JButton中添加一个监听器,选择后调用JFileChooser()类获取文件,同时调用上面写好的方法,把结果在textArea中输出。

四、设计实现过程。

WC个人项目

 

WC个人项目

 

 

 

go

五、测试运行。

WC个人项目

 

 WC个人项目

 

 WC个人项目WC个人项目

 

 

WC个人项目

六、个人总结

①处理正则表达式的能力还欠缺,使用不够熟练。

②看了构建之法后对项目的创建框架有了新的认识,更加了解了分工以及团队合作的重要性。

上一篇:个人项目:WC(Node.js+Web端实现)


下一篇:docker无法启动:Unit docker.service has failed