一、Github项目地址:

https://github.com/Heiofungfming/xiaoming01

二、PSP表格

PSP2.1

任务内容

计划完成需要的时间(min)

实际完成需要的时间(min)

Planning

计划

  45 

40

Estimate

估计这个任务需要多少时间,并规划大致工作步骤

45

40

Development

开发

880

800

Analysis

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

60

90

Design Spec

生成设计文档

30

-

Design Review

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

10

-

Coding Standard

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

40

40

Design

具体设计

60

80

Coding

具体编码

400

510

Code Review

代码复审

30

30

est

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

250

200

Reporting

报告

450

180

Test Report

测试报告

300

370

Size Measurement

计算工作量

30

-

Postmortem & Process

Improvement Plan

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

60

80

Summary

合计

2690

  2460

 

三、解题思路描述

 

刚拿到题目的时候,题目要求是要求是写一个命令行程序,初步的想法是在cmd命令行里调用所写的程序,然后便回想了一下,好像之前刚开始学Java的时候,就是用cmd命令行进行调用程序的,便用eclipse写了程序运行开头部分的功能部分进行打印,发现并不能用cmd调用程序,后来百度了一下,才发现需要把代码刚开始的包去掉才可以调用。

解决这个问题之后便开始逐一实现各个功能,先是基本功能,这三个功能在大二学Java的时候写文本编译器的时候实现过(运用字符的输入输出流实现的),所以就翻之前的代码找到了,再略微更改一下直接拿来用了。功能有了,但运行这个功能还缺一个可手动输入的文件路径(原本的文件路径是敲代码直接固定好的),刚好这段时间在重新Java,刚好温习到IO流,就用文件流和字节数组进行文件路径的输入了。

基本功能解决后就是,扩展功能,先是递归目录下的子文件,然后输出符合指定文件的信息这一功能。这一功能有几个点要解决的:

  1. 递归读取目录下的子文件
  2. 找到符合条件的子文件
  3. 读取文件里面的信息

列出问题后就找解决方法:

  1. 在之前温习IO流的时候写过一个方法递归调用一个目录下的所有子文件,并输出文件的名字,所以递归这部分相当于解决了
  2. 找符合条件的文件无非是判断文件类型,先想到的是判断文件名,判断文件名也就是文件的后缀名,所以用endwish()判断递归读出的子文件后缀名是否符合条件就可以了。中间遇到一个问题是如何在输入路径+\\*c或\?c这个给拿去判断,原本的想法是分别把路径和后缀符分开输入,但舍友说这样不符合题目要求,在和舍友讨论过后,用正则表达式分隔成两个字符串分别拿去输入就可以了。
  3. 加入基本功能中的方法就OK了。

再是返回文件注释行,空行,代码行数目的功能,类似基本功能,对不同类型的行存在什么元素,读取后就使对应的变量加一,元素的判断我也百度了一下,需要用到正则表达式,然后过了一遍,再嵌套使用if语句

最后到高级功能,阅读要求后,要解决的问题:

  1. 图形界面
  2. 可对文件进行选择,并得到该文件的路径
  3. 对文件获取信息

解决方法:

  1. 图形界面用windowBuilder直接生成
  2. 用一个JFileChooser按钮对文件进行选择,然后用文件流得到文件路径
  3. 整合基本功能和扩展功能,调用2获得的文件路径

四、设计实现过程

  1. 流程图:

 

2.类的目录结构

3.测试文件

4.功能测试

4.1 -c功能测试

4.2 -w功能

4.3  -l功能

4.4 -s功能

4.5 -a功能

4.6 -x功能

五.总结

通过这次个人项目的练习,发现自生还存在着各种不足

  1. 对语言的应用程度不熟悉,时不时的翻看之前的代码,查看自己是否语句有错,或是逻辑出错
  2. 项目刚开始观看的时候没有构建好各种思路,使之后的程序开发出现各种停滞
  3. 代码的规范(总得来说代码的重复率挺多的,原本想构建方法减少代码的重复率,但怕出错耽误时间而选择不采取措施)
  4. 针对以上几点,今后还是要抓紧时间把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. Redis详解(十二)------ 缓存穿透、缓存击穿、缓存雪崩

    本篇博客我们来介绍Redis使用过程中需要注意的三种问题:缓存穿透.缓存击穿.缓存雪崩. 1.缓存穿透 一.概念 缓存穿透:缓存和数据库中都没有的数据,可用户还是源源不断的发起请求,导致每次请求都会到 ...

  2. Nginx 笔记(四)nginx 原理与优化参数配置 与 nginx 搭建高可用集群

    个人博客网:https://wushaopei.github.io/    (你想要这里多有) 一.nginx 原理与优化参数配置 ​ ​ master-workers 的机制的好处 首先,对于每个 ...

  3. JAVASE(十四) 集合: 数组和集合、Collection、Iterator、List、Set、Map

    个人博客网:https://wushaopei.github.io/    (你想要这里多有) 1.数组和集合 1.1 内存中对数据进行存储和管理的“容器”:数组,集合 1.2 数组存储的特点和缺点 ...

  4. Java实现 蓝桥杯VIP 算法训练 最大质因数(暴力)

    试题 算法训练 最大质因数 问题描述 给出N个数字,求出有最大的最大质因数的那个数 输入格式 第一行:一个整数N. 接下来的N行,每行一个整数A_i,表示给出的那N个数字. 输出格式 第一行:一个整数 ...

  5. Java实现 蓝桥杯VIP 算法提高 棋盘多项式

      算法提高 棋盘多项式   时间限制:1.0s   内存限制:256.0MB 棋盘多项式 问题描述 八皇后问题是在棋盘上放皇后,互相不攻击,求方案.变换一下棋子,还可以有八车问题,八马问题,八兵问题 ...

  6. java实现硬币方案

    标题:硬币方案 有50枚硬币,可能包括4种类型:1元,5角,1角,5分. 已知总价值为20元.求各种硬币的数量. 比如:2,34,6,8 就是一种答案. 而 2,33,15,0 是另一个可能的答案,显 ...

  7. java实现第七届蓝桥杯打靶

    打靶 题目描述 小明参加X星球的打靶比赛. 比赛使用电子感应计分系统.其中有一局,小明得了96分. 这局小明共打了6发子弹,没有脱靶. 但望远镜看过去,只有3个弹孔. 显然,有些子弹准确地穿过了前边的 ...

  8. java实现第七届蓝桥杯碱基

    碱基 题目描述 生物学家正在对n个物种进行研究. 其中第i个物种的DNA序列为s[i],其中的第j个碱基为s[i][j],碱基一定是A.T.G.C之一. 生物学家想找到这些生物中一部分生物的一些共性, ...

  9. Linux 日志管理简介

    查看日志rsyslogd是否启动和自启动 ps aux | grep rsyslogd 查看自启动(CentOS 7使用,CentOS 6可以使用chkconfig命令) systemctl list ...

  10. Linux 系统定时任务

    crond服务管理与访问控制 启动 service crond restart 开机自启动 chkconfig crond on 用户的crontab设置 crontab [选项],其中 -e :编辑 ...