一、github地址
二、PSP表格
PSP2.1
Personal Software Process Stages
预估耗时(分钟)
实际耗时(分钟)
Planning
计划
50
40
Estimate
· 估计这个任务需要多少时间
50
40
Development
开发
1160
1300
Analysis
· 需求分析
60
50
Design Spec
· 生成设计文档
80
90
Design Review
· 设计复审
50
70
Coding Standard
· 代码规范
50
30
Design
· 具体设计
80
90
Coding
· 具体编码
700
800
Code Review
· 代码复审
80
90
Test
· 测试(自我测试,修改代码,提交修改)
60
80
Reporting
报告
140
160
Test Report
· 测试报告
60
80
Size Measurement
· 计算工作量
40
30
Postmortem & Process Improvement Plan
· 事后总结, 并提出过程改进计划
40
50
Total
合计
1350
1500
三、解题思路
浏览完项目需求后,自己大概有了个方向,有点像java课设(文本编辑器),也是有统计的东西,还有打开文件。想到这些,自己就决定用java来实现这个WC.exe的功能。
1、基本功能的实现
基本功能主要是实现字符数,单词数和行数的统计,主要是正则表达式的使用和文件的读取,将输入的文件与正则表达式结合,自己主要要去复习之前学习的IO流和正则表达式。
2、扩展功能的实现
空行还有注释行这些同样是可以通过正则表达式来完成,只是可能需要绕一绕比如注释的方式有两种。自己主要是对于递归下的文件这个有些无从下手,自己对file类了解得并不透彻,花了很多时间去了解它的各种方法实例。
3、高级功能的实现
图形化界面主要用JFrame来实现,将界面和主程序连接起来就行。
由上面的想法自己可以决定要写三个类,主程序、功能和界面,然后分别实现测试。先是完成主要框架,设定好命令行的样式,想好自己想要什么样子的效果,做好设计文档,然后分别实现一个一个功能,每个功能进行测试。
四、设计实现过程
整个程序用到的类和方法
五、测试运行
test文件夹有一个文件夹test1和3个.java文件,1.java是有代码的,2.java是只有2个字符的,3.java是空文档
test1文件夹里有一个4.java文件
1、基本功能的实现(-c -w -l)
(1)测试文件为1.java
(2)测试文件为3.java(空文档)
2、扩展功能的实现
(1)-s 的实现,测试文件夹为test
(2)-a 的实现(代码行 / 空行 / 注释行)测试文件为1.java
3、 高级功能的实现
4、使用说明
本程序共有三个类,Frame、Function和main,运行程序时只需运行main程序,之后的操作主要看命令行的提示,输入-e即可退出程序
六、总结
通过本次个人项目的进行,自己深刻意识到自己的不足,很多一些本该掌握的知识因为没有经常出复习而导致自己遗忘掉了,因此自己写这个项目的时候大部分时间花费在了重新学习上。自己之前的学习又不够透彻,导致很多的类和方法自己是不知道的或是没有去用过的,这样子自己的思维就会一直固定在之前的水平,能想到的方法只能通过自己仅有的知识来执行,而不会变通。但在这个过程中自己也收获了很多,虽然写出来的代码不是很完善,但发现自己不足去补回来的这个过程同样是一次新的学习,能学到之前并不清楚的知识,比如PSP表格让我更加了解整个项目的具体的流程等。