加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

个人项目-WC-Java

发布时间:2020-12-15 07:34:54 所属栏目:Java 来源:网络整理
导读:一、GitHub地址 : https://github.com/NuotaSuo/WC-JAVA WC项目相关要求: wc.exe 是一个常见的工具,它能统计文本文件的字符数、单词数和行数。这个项目要求写一个命令行程序,模仿已有wc.exe 的功能,并加以扩充,给出某程序设计语言源文件的字符数、单词

一、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进行项目托管开发。

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读