1.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]: 文件或目录名,可以处理一般通配符。

高级功能:

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

需求举例:

wc.exe -s -a *.c

返回当前目录及子目录中所有*.c 文件的代码行数、空行数、注释行数。

2.本项目地址:https://github.com/xiaohuozhi13/WC

3.PSP

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

Planning

计划

40

50

· Estimate

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

30

45

Development

开发

60

50

· Analysis

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

300

450

· Design Spec

· 生成设计文档

30

50

· Design Review

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

30

40

· Coding Standard

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

10

15

· Design

· 具体设计

60

50

· Coding

· 具体编码

220

360

· Code Review

· 代码复审

30

40

· Test

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

100

210

Reporting

报告

80

120

· Test Report

· 测试报告

60

70

· Size Measurement

· 计算工作量

30

40

· Postmortem & Process Improvement Plan

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

20

100

合计

1100

1690

4.遇到的困难及解决方法

对于个人项目WC,自己本身基础差了些,在项目开始前花了很长一部分时间去复习java的相关基础。在项目设计过程中,我通过在网上查阅类似的项目类型,以及向同学请教,先第一步搞懂了大概的项目流程,在程序进行过程中,学习了正则表达式,以及学习了I/O接口里面的bufferreader来读取文件,还学习了String类等。

5.设计说明

首先通过I/O流读取文件

(1)、字符数的统计:

思路:通过BufferedReader读入,通过String赋值,用一个readline按行读取,最后字符串的长度就是字符的数量。

(2)、行数统计:

思路:通过BufferedReader读入,用一个readline按行读取。

(3)、词数统计

思路:通过BufferedReader读入,将按行读入的内容通过Striing赋值给l,分割,通过正则表达式得到单词数

(4)程序实现

思路:通过File.exists访问文件,用switch实现几个功能的选择。

测试结果:

6.总结

程序只实现了基础功能,拓展功能和高级功能都未能实现,通过此次程序的编写,我对java有了更深刻的学习,相比于之前,对String,I/O接口,正则表达式等java典型常用的知识点有了一个更为详细的学习。

java个人介绍代码_个人项目WC(Java)相关推荐

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

    二.PSP表格 PSP2.1Personal Software Process Stages预估耗时(分钟)实际耗时(分钟) Planning 计划 30 30 · Estimate · 估计这个任务 ...

  2. java简单记事本代码_简单记事本的java程序代码

    展开全部 天啊, 冖_Na0 为什么会有62616964757a686964616fe4b893e5b19e31333262343038我编的记事本代码呢???呵呵--你肯定是"请教&quo ...

  3. java里用set写自我介绍代码_【优质】java程序员自我介绍-优秀word范文 (8页)

    本文部分内容来自网络整理,本司不为其真实性负责,如有异议或侵权请及时联系,本司将立即删除! == 本文为word格式,下载后可方便编辑和修改! == java程序员自我介绍 第1篇第2篇第3篇第4篇第 ...

  4. java测试性能代码_关于性能:Java代码内部的基准测试

    我最近一直在研究基准测试,我一直对记录程序数据等感兴趣.我想知道我们是否可以在程序中有效地实现自己的内存使用代码和实现自己的时间消耗代码.我知道如何检查代码运行所需的时间: public static ...

  5. 简单java小程序代码_求简单的JAVA小程序的源代码

    展开全部 <Java就业培训教程>P34源码 程序清单:Promote.java class Promote { public static void main(String args[] ...

  6. java猜生日代码_生日日数 (Java代码)

    解题思路: 注意事项:别忘了导包 import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Ca ...

  7. java 编写台球代码_台球碰撞 (Java代码)

    解题思路: 注意事项: 参考代码:import java.util.Scanner; public class C1075 { public static void main(String[] arg ...

  8. java必背代码_新人福利,Java编程中必须要死记硬背的几十个代码

    原标题:新人福利,Java编程中必须要死记硬背的几十个代码 自己总结,没有先后顺序,希望对大家有用 向文件末尾添加内容 字符串有整型的相互转换 转字符串到日期 java.util.Date = jav ...

  9. java多选代码_[一天一点java web]复选框全选代码

    My JSP 'checkbox.jsp' starting page //通过java script来实现 checkbox 全选复选框 function selectAll(){ //定义个变量 ...

最新文章

  1. 算法(4)数据结构:堆
  2. HTML5与jQuery实现渐变绚丽网页图片效果
  3. Spring mvc ContextLoaderListener 原理解析
  4. linux boot procedure
  5. 从零写一个编译器(二):语法分析之前置知识
  6. flash 异常修复:QQ 的 flash 图标显示异常?QQ 秀、表情加载异常?一招解决
  7. 学习Spring Boot:(二十一)使用 EhCache 实现数据缓存
  8. 国产自主可控的形式化验证代码自动生成工具ModelCoder可替代Matlab/Sumlink
  9. jQuery Mobile基础 学习笔记
  10. Python3入门(三)——Python基础语法
  11. 代码质量度量标准_Google研发度量改进实践
  12. EMNLP 2019 丨微软亚洲研究院精选论文解读
  13. 矩阵计算 动手学深度学习 pytorch
  14. 龙芯3A4000处理器简介
  15. java毕业设计——基于java+J2ME的五子棋网络对战游戏设计与实现(毕业论文+程序源码)——五子棋网络对战游戏
  16. 消防应急照明和疏散指示系统在综合大楼(楼宇建筑)的研究与应用
  17. 编码的奥秘:从算盘到芯片
  18. 我学习CRC32、CRC16、CRC原理和算法的总结(与WINRAR结果一致)
  19. vscode用tensorboard报错 We failed to start a TensorBoard session due to the following error: Command fa
  20. SpringBoot集成阿里云支付

热门文章

  1. Mac下安装配置Python2和Python3并相互切换使用
  2. Beanstalkd工作队列
  3. OpenCASCADE:绘制演示脚本
  4. wxWidgets:wxMiniFrame类用法
  5. boost::typeindex::runtime_cast相关的测试程序
  6. boost::mpl::equal_to相关的测试程序
  7. boost::iostreams::grep_filter用法的测试程序
  8. boost::make_biconnected_planar用法的测试程序
  9. GDCM:打印dicom文件的LookupTable的测试程序
  10. core::demangled_name的测试程序