个人项目-WC-Java

一、GitHub地址https://github.com/NuotaSuo/WC-JAVA

WC项目相关要求:

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

相关功能:

基本功能:

   -c 统计文件字符数

   -w 统计文件词数 

   -l 统计文件行数

扩展功能:

   -s 递归处理目录下符合条件得文件

   -a 返回文件代码行 / 空行 / 注释行

   支持各种文件的通配符(*,?)

高级功能

  基本的Windows GUI 程序操作

二、PSP表

 

PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟)
Planning 计划 30 40
· Estimate · 估计这个任务需要多少时间 30       40
Development 开发 1155 1290
· Analysis · 需求分析  60 55
· Design Spec · 生成设计文档 40 45
· Design Review · 设计复审  40 30
· Coding Standard · 代码规范 25 25
· Design · 具体设计 50 40
· Coding · 具体编码 850  980
· Code Review · 代码复审 40 40
· Test · 测试(自我测试,修改代码,提交修改) 50 75
Reporting 报告 120 155
· Test Report · 测试报告 60 75
· Size Measurement · 计算工作量 20 30
· Postmortem & Process Improvement Plan · 事后总结, 并提出过程改进计划 40 60
合计   1305 1485

三、解题思路

  程序设计有五个类,WC类为主类,它们的调用关系:

个人项目-WC-Java_第1张图片

   在主类WC中接收用户输入的命令,判断相对应的命令,从而决定调用相应的类。

  在一开始接触这个项目的时候,我觉得 基础功能 -c -l -w 这功能比较简单,java课程也实现过,通过BufferedReader( )类里面的相关函数对文件进行读取并判断执行相应的操作,实现较简单。GUI图形界面的因为之前也接触过,做起来顺手,搭建出基本面板后调用Basic类和Extend类通过对JTextArea.setText( )函数对内容进行更改显示。我觉得比较难的是-s 的 递归处理目录下符合条件的文件,因为涉及递归、通配符,所以我一开始想得复杂,没有很好的思路去实现,后来有了思路去递归获取目录中符合条件的文件,再去对每个文件进行统计输出,得以实现。

四、运行测试

  在cmd中进入WC所在目录,打开程序:

个人项目-WC-Java_第2张图片

 

 

 基础功能与扩展功能 -a

个人项目-WC-Java_第3张图片

 

 

 扩展功能 -s

  文件目录:个人项目-WC-Java_第4张图片(其中 Test1中有两个 .txt文件,Test2为空目录)

 

 

结果:

个人项目-WC-Java_第5张图片

 

 

 图形界面GUI  -x

个人项目-WC-Java_第6张图片

 

个人项目-WC-Java_第7张图片

 

 

 四、个人总结:

  在我开始做项目前,我阅读了《构建之法》的前三章,学习了Git和Github,Git是一款很多人都在用的版本控制系统,可惜我没能够运用好Git和Github,没能做好有新功能就commit,但在做项目的过程中我知道了版本控制的重要,在GUI的实现中,我不知道修改了什么参数,导致面板无法显示并卡死,但eclipse并没有报错,我反反复复修改了半小时也没有改变,幸好我有备份文件的习惯,返回了上次最后修改的部分,这个小例子让我明白了版本控制的重要,以后我会多用Git和Github进行项目托管开发。

  这次的开发也让我知道了软件工程的流程,前期的需求分析,大概框架的搭建,估计流程与测试的重要性,减低软件后期维护的困难程度,前期所要做的工程不必编码小,也是十分重要的。因为我没有大项目的开发经验,所以这一次的个人项目对我也是有挑战的,以后我会更加努力提高自己的编程能力。

 

 

 

 

你可能感兴趣的:(个人项目-WC-Java)