• 个人项目作业


    GitHub地址:https://github.com/vfc1/WC

    WC 项目要求

    wc.exe 是一个常见的工具,它能统计文本文件的字符数、单词数和行数。这个项目要求写一个命令行程序,模仿已有wc.exe 的功能,并加以扩充,给出某程序设计语言源文件的字符数、单词数和行数。

    实现一个统计程序,它能正确统计程序文件中的字符数、单词数、行数,以及还具备其他扩展功能,并能够快速地处理多个文件。
    具体功能要求:
    程序处理用户需求的模式为:

    wc.exe [parameter] [file_name]

    基本功能列表:

    wc.exe -c file.c     //返回文件 file.c 的字符数

    wc.exe -w file.c    //返回文件 file.c 的词的数目  

    wc.exe -l file.c      //返回文件 file.c 的行数


    扩展功能:
        -s   递归处理目录下符合条件的文件。
        -a   返回更复杂的数据(代码行 / 空行 / 注释行)。

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

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

    注释行:本行不是代码行,并且本行包括注释。一个有趣的例子是有些程序员会在单字符后面加注释:

        } //注释
    在这种情况下,这一行属于注释行。

    [file_name]: 文件或目录名,可以处理一般通配符。

    1.PSP表格:

    PSP2.1

    Personal Software Process Stages

    预估耗时(分钟)

    实际耗时(分钟)

    Planning

    计划

    20

    30

    · Estimate

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

    10

    15

    Development

    开发

    600

    700

    · Analysis

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

    15

    25

    · Design Spec

    · 生成设计文档

    20

    40

    · Design Review

    · 设计复审 (和同事审核设计文档)

    35

    30

    · Coding Standard

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

    10

    10

    · Design

    · 具体设计

    30

    20

    · Coding

    · 具体编码

    400

    500

    · Code Review

    · 代码复审

    30

    25

    · Test

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

    60

    50

    Reporting

    报告

    30

    45

    · Test Report

    · 测试报告

    10

    20

    · Size Measurement

    · 计算工作量

    10

    15

    · Postmortem & Process Improvement Plan

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

    10

    20

     

    合计

    660

     

    即刚开始拿到题目后,如何思考,如何找资料的心路历程。

    2.思路

        虽然这个程序相对比较简单,开发的时候仍然需要一步一步来,分成一个功能一个功能进行开发

    基本功能

    支持 -c
    支持 -w
    支持 -l

    扩展功能


    支持 -s 参数
    支持 -a 参数
    支持各种文件的通配符(*,?)

    3.过程:这是一个比较简单的程序,考虑到代码量不多,比较简单,因此写成一个类,每个功能写成该类的方法,开发的时候主要需要的知识为java对文件的读取,还有对字符串的搜索查找,于是去复习了一下java的知识,并新学习了正则表达式,打算用正则表达式来完成计数。

    4.代码说明:

    用户输入参数后,根据所选择的功能,调用对应功能的方法

     

     

                           

    Count方法的作用是运用正则表达式,对字符串进行计数,因为-w和-c功能的方法差不多,就通过传递不同的正则表达式来改变该方法的功能,实现代码复用。

     

    Linecount方法实现的是-l的功能,运用readline方法,每次读一行,读多少次计数多少行

     

                                     

    Complex方法通过判断一行一的类别并计数

      

    通过递归方法,每次判断是文件目录下为文件还是文件夹,文件夹则继续递归,为文件则输出其信息

     

    该方法为工具方法,判断是否为文件夹

     

    5. 测试运行

     

     

     

    6.总结:要动手做,在有一定的思路后就要开始写程序,而不能想着等所有细节都想好了才开始做,这样会花费太多的时间,这次也让我意识到自己的语言基础还不够扎实,对知识的掌握还不够牢固和全面,所以接下来我将会更加深入的学习java

  • 相关阅读:
    java日常问题和技巧1(BigDecimal与int相互转换、判断某元素是否在数组中、求两个List并集、int[]转Integer[])
    窗口小部件基础编写V1.0----没有Service
    使用MyBatis遇到的问题及解决方法(一)(持续更新)
    java工具类集合(一)
    idea部分操作(一)----持续更新
    单向链表(篇九)
    结构体(篇八)
    指针与字符串(篇七)
    数组字符串(篇六)
    循环与函数(篇五)
  • 原文地址:https://www.cnblogs.com/hzhz00/p/12501060.html
Copyright © 2020-2023  润新知