个人项目-WC-Java
Posted cityrat
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了个人项目-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中接收用户输入的命令,判断相对应的命令,从而决定调用相应的类。
在一开始接触这个项目的时候,我觉得 基础功能 -c -l -w 这功能比较简单,java课程也实现过,通过BufferedReader( )类里面的相关函数对文件进行读取并判断执行相应的操作,实现较简单。GUI图形界面的因为之前也接触过,做起来顺手,搭建出基本面板后调用Basic类和Extend类通过对JTextArea.setText( )函数对内容进行更改显示。我觉得比较难的是-s 的 递归处理目录下符合条件的文件,因为涉及递归、通配符,所以我一开始想得复杂,没有很好的思路去实现,后来有了思路去递归获取目录中符合条件的文件,再去对每个文件进行统计输出,得以实现。
四、运行测试
在cmd中进入WC所在目录,打开程序:
基础功能与扩展功能 -a
扩展功能 -s
文件目录:(其中 Test1中有两个 .txt文件,Test2为空目录)
结果:
图形界面GUI -x
四、个人总结:
在我开始做项目前,我阅读了《构建之法》的前三章,学习了Git和Github,Git是一款很多人都在用的版本控制系统,可惜我没能够运用好Git和Github,没能做好有新功能就commit,但在做项目的过程中我知道了版本控制的重要,在GUI的实现中,我不知道修改了什么参数,导致面板无法显示并卡死,但eclipse并没有报错,我反反复复修改了半小时也没有改变,幸好我有备份文件的习惯,返回了上次最后修改的部分,这个小例子让我明白了版本控制的重要,以后我会多用Git和Github进行项目托管开发。
这次的开发也让我知道了软件工程的流程,前期的需求分析,大概框架的搭建,估计流程与测试的重要性,减低软件后期维护的困难程度,前期所要做的工程不必编码小,也是十分重要的。因为我没有大项目的开发经验,所以这一次的个人项目对我也是有挑战的,以后我会更加努力提高自己的编程能力。
以上是关于个人项目-WC-Java的主要内容,如果未能解决你的问题,请参考以下文章