软件工程–Java语言实现_软件工程:java实现wordcount基本功能

一:项目相关要求

程序处理用户需求的模式为:wc  [parameter]  [file_name]

二:项目功能完成情况

基本功能:

wc  -c    统计文件的字符数(完成)

wc  -w   统计文件词的数目(完成)

wc  -l     统计文件的行数 (完成)

扩展功能:

wc  -s    递归处理目录下符合条件的文件(已完成)

wc  -a    返回更复杂的数据:代码行 / 空行 / 注释行(已完成)

说明:

空行:本行全部是空格或格式控制字符,如果包括代码,则只有不超过一个可显示的字符,例如“{”。

代码行:本行包括多于一个字符的代码。

注释行:本行不是代码行,并且本行包括注释。一个有趣的例子是有些程序员会在单字符后面加注释:} //注释,在这种情况下,这一行属于注释行。

高级功能:

wc -x [parameter]   这个参数单独使用。如果命令行有这个参数,则程序会显示图形界面,用户可以通过界面选取单个文件,程序就会显示文件的字符数、行数等全部统计信息。(未完成)

三:设计思路

获取输入命令行参数,利用正则表达式校验输入命令行是否符合格式

如果输入命令符合格式要求则利用split(” “)按照空格将命令拆开并存储于数组

获取命令数组的最后一个元素,即为待统计的文件名或目录

若输入为文件则直接进行统计,若输入为目录则通过递归处理目录下的文件

输入参数[-c] [-w] [-l] [-a] 初始值设为false,一旦输入将值置为true以此选择性地显示

根据不同的命令对数据进行相应的处理

字符数:获取每行的字符数,逐行叠加

词的数目:获取每行除去空格的字符数,逐行叠加

行数:利用readline()不为 null,逐行叠加

空行:利用正则表达式统计只含”{“或 “}”或 “n”的行数

注释行:统计除去”//”、”{//”、”/*”开头、”*/”结尾、”/* 单行注释 */”、”/*多行注释*/”

代码行:总行数除去代码行和空行即可得

四:设计思路

测试结果:

E:testselestest2.txt

七:PSP时间统计

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

Planning

计划

30

80

· Estimate

· 估计这个任务需要多少时间

200

300

Development

开发

180

210

· Analysis

· 需求分析 (包括学习新技术)

20

30

· Design Spec

· 生成设计文档

10

15

· Design Review

10

10

· Coding Standard

· 代码规范 (为目前的开发制定合适的规范)

15

15

· Design

· 具体设计

30

45

· Coding

· 具体编码

160

190

· Code Review

· 代码复审

20

20

· Test

· 测试(自我测试,修改代码,提交修改)

20

20

Reporting

60

80

· Test Report

· 测试 告

10

10

· Size Measurement

· 计算工作量

10

10

· Postmortem & Process Improvement Plan

· 事后总结, 并提出过程改进计划

20

20

合计

795

1055

八:项目总结

关于wordcount,首先,一开始的构思是先读取文件,一段时间没有使用java,对io流的相关内容不是很熟悉,成功将文件存进ArrayList中后我没有考虑到Array List变量之间的赋值问题,直接用=去赋值,发现取出的数据出错,经过上 搜索了解了关于ArrayList对象之间赋值该注意的问题,收获不少。其次,对输入指令格式的验证问题,由于之前没有接触过正则表达式,在正则表达式的相关内容上花费了挺多时间。最后,关于项目编程还是要多实践,本次课程设计一开始都是停留在想的阶段,一直没怎么实践,结果发现过去了挺长时间仍旧没有进度。经过这次课程设计,温习了java的相关内容,同时又发现了许多新的问题,在解决问题的过程受益匪浅。

文章知识点与官方知识档案匹配,可进一步学习相关知识Java技能树首页概览92563 人正在系统学习中 相关资源:蓝梦软件BestRecoveryForOracle碎片级数据恢复软件-Oracle工具类…

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年1月14日
下一篇 2021年1月14日

相关推荐