个人项目-Wc-Java
一、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流,就用文件流和字节数组进行文件路径的输入了。
基本功能解决后就是,扩展功能,先是递归目录下的子文件,然后输出符合指定文件的信息这一功能。这一功能有几个点要解决的:
- 递归读取目录下的子文件
- 找到符合条件的子文件
- 读取文件里面的信息
列出问题后就找解决方法:
- 在之前温习IO流的时候写过一个方法递归调用一个目录下的所有子文件,并输出文件的名字,所以递归这部分相当于解决了
- 找符合条件的文件无非是判断文件类型,先想到的是判断文件名,判断文件名也就是文件的后缀名,所以用endwish()判断递归读出的子文件后缀名是否符合条件就可以了。中间遇到一个问题是如何在输入路径+\\*c或\?c这个给拿去判断,原本的想法是分别把路径和后缀符分开输入,但舍友说这样不符合题目要求,在和舍友讨论过后,用正则表达式分隔成两个字符串分别拿去输入就可以了。
- 加入基本功能中的方法就OK了。
再是返回文件注释行,空行,代码行数目的功能,类似基本功能,对不同类型的行存在什么元素,读取后就使对应的变量加一,元素的判断我也百度了一下,需要用到正则表达式,然后过了一遍,再嵌套使用if语句
最后到高级功能,阅读要求后,要解决的问题:
- 图形界面
- 可对文件进行选择,并得到该文件的路径
- 对文件获取信息
解决方法:
- 图形界面用windowBuilder直接生成
- 用一个JFileChooser按钮对文件进行选择,然后用文件流得到文件路径
- 整合基本功能和扩展功能,调用2获得的文件路径
四、设计实现过程
- 流程图:

2.类的目录结构

3.测试文件

4.功能测试
4.1 -c功能测试

4.2 -w功能

4.3 -l功能

4.4 -s功能

4.5 -a功能

4.6 -x功能

五.总结
通过这次个人项目的练习,发现自生还存在着各种不足
- 对语言的应用程度不熟悉,时不时的翻看之前的代码,查看自己是否语句有错,或是逻辑出错
- 项目刚开始观看的时候没有构建好各种思路,使之后的程序开发出现各种停滞
- 代码的规范(总得来说代码的重复率挺多的,原本想构建方法减少代码的重复率,但怕出错耽误时间而选择不采取措施)
- 针对以上几点,今后还是要抓紧时间把Java这门语言学精,学深,代码的规范性也要加强。
个人项目-Wc-Java的更多相关文章
- 个人项目-WC (java实现)
一.Github地址:https://github.com/734635746/WC 二.PSP表格 PSP2.1 Personal Software Process Stages 预估耗时(分钟) ...
- 个人项目 wc(java实现)
一.Github网址: https://github.com/Clarazhangbw/Wc.exe 二.PSP表 PSP2.1 Personal Software Process Stages 预估 ...
- 个人项目:Java实现WC
Java实现WC Github项目地址:https://github.com/auxshaw/WC 项目要求 wc.exe 是一个常见的工具,它能统计文本文件的字符数.单词数和行数.这个项目要求写一个 ...
- 个人项目wc(Java)
个人项目(Java) 一丶Github地址:https://github.com/SAH2019/S ...
- 个人项目-wc
个人项目-WC (C语言) 一.Github地址:https://github.com/Lin-J-F/WC 二.PSP表格 PSP2.1 Personal Software Process St ...
- [转载]将别人的项目或JAVA文件导入到自己的Eclipse中时,常常会出现JAVA文件的中文注释变成乱码的情况,解决办法
eclipse 代码中文注释乱码 求解决 将别人的项目或JAVA文件导入到自己的Eclipse中时,常常会出现JAVA文件的中文注释变成乱码的情况,主要原因就是别人的IDE编码格式和自己的Eclips ...
- Java web项目引用java项目,类型找不到
Java web项目引用java项目,类型找不到 错误信息: java.lang.ClassNotFoundException: org.codehaus.jackson.map.ObjectMapp ...
- ubuntu下eclipse新建项目没有java project的解决办法
装好了eclipse之后却发现新建项目没有java project的选项,大致搜索了一下,并没有发现很好的解决方案(大都是让你重新安装什么的),于是开始瞎鼓捣,并且找到了一个方案: 在终端切换到roo ...
- Maven项目中java类报错-Cannot resolve symbol
电脑蓝屏了,强制重启之后再打开IDEA里面的项目,所有Java类文件都在报Cannot resolve symbo错误,可以确定所有依赖的包都有引用且jar包没有冲突. 经查询找到这个解决方法: 在I ...
- 【MyEcplise】导入项目报错:Errors running builder 'JavaScript Validator' on project '项目名'. java.lang.ClassCastException
导入项目报错:Errors running builder 'JavaScript Validator' on project '项目名'. java.lang.ClassCastException ...
随机推荐
- Parrot os更新内核及/boot空间清理
升级时发现boot,空间满了,卸载以前的内核,清理空间. 如何升级内核请查看我上篇博客:https://www.cnblogs.com/junsec/p/11453049.html 卸载多余内核,清理 ...
- Netty学习笔记(二) - ChannelPipeline和ChannelHandler
ChannelPipeline 和 ChannelHandler 是 Netty 重要的组件之一,通过这篇文章,重点了解这些组件是如何驱动数据流动和处理的. 一.ChannelHandler 在上一篇 ...
- "锁定文件失败 打不开磁盘或它所依赖的某个快照磁盘。模块启动失败。未能启动虚拟机"--解决方法
今天正在使用kali的时候,电脑突然死机了..强制重启,在进入虚拟机发现报错: "锁定文件失败 打不开磁盘或它所依赖的某个快照磁盘.模块启动失败.未能启动虚拟机." 1.问题起因 ...
- 爱奇艺|B站|优酷|腾讯视频高清无水印视频下载方法(软件工具教程)
导读:经常在大型视频网站平台上看到一些很价值和视频,希望能高清无水印下载到本地学习观看,今天小程序定制开发代码哥DaiMaGe6给大家分享一招免费下载全网高清无水印视频的方法. 高清无水印视频下载工具 ...
- 震惊!Windows Service服务和定时任务框架quartz之间原来是这种关系……
过场CG: 接到公司领导的文件指示,“小熊”需要在6月底去海外执行一个行动代号为[定时任务]的营救计划,这个计划关系到公司某个项目的生死(数据安全漏洞),作战部拟定两个作战方案: 方案一:使用务定 ...
- Java实现 LeetCode 54 螺旋矩阵
54. 螺旋矩阵 给定一个包含 m x n 个元素的矩阵(m 行, n 列),请按照顺时针螺旋顺序,返回矩阵中的所有元素. 示例 1: 输入: [ [ 1, 2, 3 ], [ 4, 5, 6 ], ...
- java实现第七届蓝桥杯搭积木
搭积木 题目描述 小明最近喜欢搭数字积木, 一共有10块积木,每个积木上有一个数字,0~9. 搭积木规则: 每个积木放到其它两个积木的上面,并且一定比下面的两个积木数字小. 最后搭成4层的金字塔形,必 ...
- java实现第八届蓝桥杯数位和
数位和 题目描述 数学家高斯很小的时候就天分过人.一次老师指定的算数题目是:1+2+-+100. 高斯立即做出答案:5050! 这次你的任务是类似的.但并非是把一个个的数字加起来,而是对该数字的每一个 ...
- syslog客户端java实现
//package com.tony.util; import java.io.*; import java.net.*; /** * UDP客户端程序,用于对服务端发送数据,并接收服务端的回应信息. ...
- 倍增法求LCA代码加详细注释
#include <iostream> #include <vector> #include <algorithm> #define MAXN 100 //2^MA ...