个人项目-WC(Java实现)

一、Github项目地址:

https://github.com/kestrelcjx/-WC-Java-

二、PSP表格

PSP2.1Personal Software Process Stages预估耗时(分钟)实际耗时(分钟)
Planning计划3028
Estimate估计这个任务需要多少时间1011
Development开发600480
Analysis需求分析120150
Design Spec生成设计文档3060
Design Review设计复审4055
Coding Standard代码规范2040
Design具体设计6040
Coding具体编码480480
Code Review代码复审3020
Test测试(自我测试,修改代码,提交修改)60120
Reporting报告60120
Test Report测试报告2030
Size Measurement计算工作量1015
Postmortem & Process Improvement Plan事后总结, 并提出过程改进计划12060
合计16901709

三、解题思路

 使用Java语言设计三个模块,分别实现下列功能:

  1. 主类wc,在主类main方法中接受传入参数,并根据参数分类讨论,使用function类中各静态方法实现功能,或调用GUI类打开图形界面;
  2. GUI类,继承JFrame类,实现图形界面程序,通过按钮选择文件并调用function类中各静态方法统计信息;
  3. function类,在类中包含各静态方法,分别实现统计信息功能。
    流程图:
    1753074-20190925200313817-490672290.jpg

四、设计实现

  1. 统计字符数
    通过逐个读取字符,统计字符数。
  2. 统计行数
    通过逐行读取字符串,统计行数。
  3. 统计单词数
    通过逐行读取字符串,再以空格分隔字符串,统计单词数。
  4. 统计空行数
    通过逐行读取字符串,判断是否为空字符串,统计空行。
  5. 统计注释数
    通过逐行读取字符串,判断以“//”开头的行或“/”至“/”的行数量。
  6. 统计代码行数
    总行数减去为注释行或空行的行数。
  7. 递归访问目录所有子文件夹,并记录文件路径
    如果readFiles方法的path参数为文件,记录文件路径;
    如果为文件夹,递归访问文件夹下所有文件和子文件夹。

五、运行测试

 使用“手动测试,手工比较”方式。

  1. 测试空文件
    1753074-20190925213923442-2023318125.jpg

  2. 测试一个字符的文件
    1753074-20190925213928428-1024925238.jpg

  3. 测试一个词的文件
    1753074-20190925213935699-1618743547.jpg

  4. 测试一行的文件
    1753074-20190925213939288-266716208.jpg

  5. 测试一个典型的源文件
    1753074-20190925213946940-1149261352.jpg

  6. 测试GUI
    1753074-20190925214558948-956679864.jpg

  7. 代码覆盖率
    "-c -w -l -a -s C:\Users\Administrator\Desktop\Test*.cpp"命令:
    1753074-20190925214151178-1035005038.jpg

"-x"命令:
1753074-20190925214105586-226794466.jpg

六、项目总结

 由于学习了软件工程课程,了解在项目开发前期应做好需求分析和设计文档,所以仔细阅读了项目要求,并对开发流程有了清晰的思路,因此在整个开发过程中各阶段都比较顺利,这也让我了解了学习软件工程的意义所在。本次项目各功能其实并不难实现,主要将程序分成各模块实现,并协调好各模块之间的联系。WC项目开发,让我学到了软件工程知识在实际项目开发中的具体应用,也复习了Java编程知识。

转载于:https://www.cnblogs.com/Kestrel/p/11572979.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值