个人空间项目java代码,个人项目-WC(java实现)

本文详述了一次Java软件开发项目,包括需求分析、设计、开发、测试等阶段。项目涉及文本统计、文件递归查找、可视化界面及命令行交互功能。通过模块化设计和代码规范,实现了程序的健壮性和用户友好性。测试覆盖多种输入情况,确保程序功能的完整性和稳定性。此次实践让作者体会到规范化编程的重要性。
摘要由CSDN通过智能技术生成

二、PSP表格

PSP2.1

Personal Software Process Stages

预估耗时(分钟)

实际耗时(分钟)

Planning

计划

30

30

Estimate

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

30

30

Development

开发

880

960

Analysis

需求分析

50

40

Design Spec

生成设计文档

40

40

Design Review

设计复审

40

50

Coding Standard

代码规范

30

30

Design

具体设计

30

40

Coding

具体编码

600

650

Code Review

代码复审

40

40

Test

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

50

70

Reporting

报告

120

140

Test Report

测试报告

60

70

Size Measurement

计算工作量

20

30

Postmortem & Process Improvement Plan

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

40

40

Total

合计

1030

1130

三、解题思路

1、分析题目,并进行需求分析:这个软件可以分成三个模块,第一个模块是各种非递归的功能,第二个模块是文件的通配符和递归查找,第三个模块是可视化界面,并且包含着各种功能,除此之外,这个程序还要求和用户进行交互,即需要从命令行读入用户输入的指令(参数和文件路径)。分析完各个模块,就可以进行分析得到各个模块和模块内不同功能的联系。

2、各种非递归功能(即文本统计功能):实现字符,单词,行数,空行,注释行,代码行的统计功能,使用字符流进行IO操作,每次读入一行,并对读入的行数进行相应的统计,直到读入的返回值为null,而且对IO错误进行捕捉,并提示用户相关信息,让用户修改输入。

3、文件的递归查找和通配符:支持通配符,获得用户输入信息,如果输入是一个文件夹,则获取该文件夹下的所有文件路径列表,进行递归查找,为了避免得到一些无法读取的文件(如.exe文件),对部分文件进行了过滤,如果输入是查询某类型的或者是某名称的文件,则先拆分输入的文件路径,得到文件所在目录和文件名,然后把文件名中的通配符替换成正则表达式,并作为匹配条件,使用正则表达式来对目录下的文件进行匹配,同样是使用递归查找的方法,最终得到一个文件名集合,同时,为了防止递归过深导致程序卡死,这里还对递归深度进行了限制,提供更好的用户交互体验。

4、可视化界面:该功能是让用户通过图形界面进行交互,让用户手动选择文件,返回所有统计信息,这里采用JFrame容器。

5、命令行交互:该功能通过Scanner来实现,然后通过正则表达式和文件判断类来对输入进行检测,查看是否有非法输入。

6、模块的整合:编写main函数,理清各个模块内和模块间的调用关系,同时要考虑如何应对各种非法输入,增强程序的健壮性。

四、设计过程

代码主要分成主类,文本统计模块,文件处理模块,界面模块四个部分,下面是简要的关系:

1d21de50dd5adfb6743ecc8b7ff9f19e.png

五、测试运行

1、空文件

98dfe66abd15f17cddcfdcf950928ccf.png

2、只有一个字符的文件

f9ec35fea7b3108d753ae07c301828e4.png

3、只有一个单词的文件

39513942ea3d8c7ce7804c58003c956f.png

4、标准的java源文件

ad5ef8d84f63093a144732063070f031.png 

e21ac6b93fd1fd6224ebdf346932a969.png

5、多目录嵌套文件

2f6a6cea7b505dab876205c6834c9040.png 

9c7e6b330c97034dc45b5816e3580258.png 

fafed88db952803d23a2e1b7c37bc08e.png

6、通配符测试

965169ee2e98594b5ecfd738480a5671.png  

58291745be598f9117486f90151cc0d8.png

7、可视化界面

e841f97f4c2b4daf47fb1b040f0a1ccb.png 

e4bc1513e3c62b72390be6489606e4c4.png

b3fdc8eac0035919a7f4e9cf30129feb.png

8、各种输入错误的处理(并非全部)

d5e66cf272446e387d39e6d6a46aaa16.png

有上图可见,该程序基本实现了项目的需求,并且具有一定的健壮性,抵御众多不正确的输入。

六、项目小结

本次项目使用了java进行开发,第一次遵循一定的代码开发规范来做项目,比起以往自己做的课设之类的练习,所花的时间比以前更长,但是考虑到的东西确实比以往更多,各个模块的联系变得更加清晰,做好需求分析确实能让项目的目标更加明确,而不是写着写着代码才突然想到要加多几个功能进去,哪个地方有问题导致整个类甚至程序要重写。通过这次练习,我体验到了软件的需求分析,设计,开发,测试的过程,总体来说,我确实收获了很多东西,以后还需要样成这种规范化编程的习惯。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值