一、Github项目地址:

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

二、PSP表格

PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟)
Planning 计划 30 28
Estimate 估计这个任务需要多少时间 10 11
Development 开发 600 480
Analysis 需求分析 120 150
Design Spec 生成设计文档 30 60
Design Review 设计复审 40 55
Coding Standard 代码规范 20 40
Design 具体设计 60 40
Coding 具体编码 480 480
Code Review 代码复审 30 20
Test 测试(自我测试,修改代码,提交修改) 60 120
Reporting 报告 60 120
Test Report 测试报告 20 30
Size Measurement 计算工作量 10 15
Postmortem & Process Improvement Plan 事后总结, 并提出过程改进计划 120 60
合计 1690 1709

三、解题思路

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

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

四、设计实现

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

五、运行测试

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

  1. 测试空文件

  2. 测试一个字符的文件

  3. 测试一个词的文件

  4. 测试一行的文件

  5. 测试一个典型的源文件

  6. 测试GUI

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

"-x"命令:

六、项目总结

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

个人项目-WC(Java实现)的更多相关文章

  1. 个人项目-WC (java实现)

    一.Github地址:https://github.com/734635746/WC 二.PSP表格 PSP2.1 Personal Software Process Stages 预估耗时(分钟) ...

  2. 个人项目 wc(java实现)

    一.Github网址: https://github.com/Clarazhangbw/Wc.exe 二.PSP表 PSP2.1 Personal Software Process Stages 预估 ...

  3. 个人项目:Java实现WC

    Java实现WC Github项目地址:https://github.com/auxshaw/WC 项目要求 wc.exe 是一个常见的工具,它能统计文本文件的字符数.单词数和行数.这个项目要求写一个 ...

  4. 个人项目wc(Java)

                                                      个人项目(Java) 一丶Github地址:https://github.com/SAH2019/S ...

  5. 个人项目-wc

    个人项目-WC   (C语言) 一.Github地址:https://github.com/Lin-J-F/WC 二.PSP表格 PSP2.1 Personal Software Process St ...

  6. [转载]将别人的项目或JAVA文件导入到自己的Eclipse中时,常常会出现JAVA文件的中文注释变成乱码的情况,解决办法

    eclipse 代码中文注释乱码 求解决 将别人的项目或JAVA文件导入到自己的Eclipse中时,常常会出现JAVA文件的中文注释变成乱码的情况,主要原因就是别人的IDE编码格式和自己的Eclips ...

  7. Java web项目引用java项目,类型找不到

    Java web项目引用java项目,类型找不到 错误信息: java.lang.ClassNotFoundException: org.codehaus.jackson.map.ObjectMapp ...

  8. ubuntu下eclipse新建项目没有java project的解决办法

    装好了eclipse之后却发现新建项目没有java project的选项,大致搜索了一下,并没有发现很好的解决方案(大都是让你重新安装什么的),于是开始瞎鼓捣,并且找到了一个方案: 在终端切换到roo ...

  9. Maven项目中java类报错-Cannot resolve symbol

    电脑蓝屏了,强制重启之后再打开IDEA里面的项目,所有Java类文件都在报Cannot resolve symbo错误,可以确定所有依赖的包都有引用且jar包没有冲突. 经查询找到这个解决方法: 在I ...

  10. 【MyEcplise】导入项目报错:Errors running builder 'JavaScript Validator' on project '项目名'. java.lang.ClassCastException

    导入项目报错:Errors running builder 'JavaScript Validator' on project '项目名'. java.lang.ClassCastException ...

随机推荐

  1. Premiere Pro cc 2019 下载链接

    [安装环境]:win7/win8/win10 [64位下载] 百度网盘链接:pan.baidu.com/s/1mUDK5-CLafUDXn2Rsl-Mjw   提取码:ecx4

  2. TCP协议的粘包问题(八)

    一.什么是粘包 在socket缓冲区和数据的传递过程介绍中,可以看到数据的接收和发送是无关的,read()/recv() 函数不管数据发送了多少次,都会尽可能多的接收数据.也就是说,read()/re ...

  3. day45 作业

    一.将当前日期按"2017-12-27 11:11 星期三"格式输出 function getdate(){ var d = new Date(); year = d.getFul ...

  4. 多个页面进行爬虫 pycharm

    使用requests , lxml  ,xpath进行爬取并写入了TXT(也可以存入数据库).参考博客:https://blog.csdn.net/yexing_cts/article/details ...

  5. MyEclipse10破解 运行run.bat闪退 亲自试验

    找到MyEclipse安装的自带的jdk(方法是打开MyEclipse,依次window->Preferences->Java->Installed JRES找到默认路径,我的是:自 ...

  6. ASP.NET Core 中的 Main 方法

    ASP.NET Core 中的 Main 方法 在 ASP.NET Core 项目中,我们有一个名为Program.cs的文件.在这个文件中,我们有一个public static void Main( ...

  7. PKUSC2018题解

    PKUSC2018题解 真实排名 分别考虑第\(i\)个人翻倍和不翻倍的情况,组合数算一下即可,务必注意实现细节. 代码 最大前缀和 设\(sum_s\)表示集合\(\sum_{i\in s} a_i ...

  8. [LeetCode] 47. Permutations II 全排列之二

    Given a collection of numbers that might contain duplicates, return all possible unique permutations ...

  9. 作业帮:给定一个整数数组,找出其中两个数相加等于目标值(去重set)

    题目描述 给定一个整数数组,找出其中两个数相加等于目标值 输入 [1,3,5,7,9,11] 10 输出 1,9 3,7 代码: import java.util.HashMap; import ja ...

  10. SpringBoot集成Spring Security(7)——认证流程

    文章目录 一.认证流程 二.多个请求共享认证信息 三.获取用户认证信息 在前面的六章中,介绍了 Spring Security 的基础使用,在继续深入向下的学习前,有必要理解清楚 Spring Sec ...