WC个人项目
一、项目相关要求
wc.exe 是一个常见的工具,它能统计文本文件的字符数、单词数和行数。这个项目要求写一个命令行程序,模仿已有wc.exe 的功能,并加以扩充,给出某程序设计语言源文件的字符数、单词数和行数。
现在需要实现一个源程序文件的代码统计程序,它能正确统计源程序文件中的字符数、单词数、行数,以及还具备其他扩展功能,并能够快速地处理多个文件。
具体功能要求:
1、程序处理用户需求的模式为:
直接通过用户在图形界面上的相关操作来读取用户的需求。
2、基本功能列表:
返回单个源程序文件/多个源程序文件/文件夹中所有的源程序文件的字符数
返回单个源程序文件/多个源程序文件/文件夹中所有的源程序文件的词数
返回单个源程序文件/多个源程序文件/文件夹中所有的源程序文件的行数
3、扩展功能:
返回单个源程序文件/多个源程序文件/文件夹中所有的源程序文件的有效代码行的数目
返回单个源程序文件/多个源程序文件/文件夹中所有的源程序文件的空行的数目
返回单个源程序文件/多个源程序文件/文件夹中所有的源程序文件的注释行的数目
二、项目开发过程中遇到的困难及解决方法
# 实现图形界面的困难:
由于并没有很经常接触到Java的GUI编程,所以不太熟悉相关的控件编写以及窗口布局。
# 做过的尝试:
借助MyEclipse编译器中的WindowBuilder Editor插件完成了该程序的图形界面。
# 解决:
最后,实现了基础功能以及拓展功能。
# 有所收获:
冰冻三尺,非一日之寒,路漫漫其修远兮,吾将上下而求索。
三、PSP开发耗时
PSP2.1
PSP2.1
Personal Software Process Stages
预估耗时(分钟)
实际耗时(分钟)
Planning
计划
30
40
· Estimate
· 估计这个任务需要多少时间
50
60
Development
开发
800
600
· Analysis
· 需求分析 (包括学习新技术)
100
120
· Design Spec
· 生成设计文档
40
30
· Design Review
· 设计复审 (和同事审核设计文档)
30
30
· Coding Standard
· 代码规范 (为目前的开发制定合适的规范)
30
30
· Design
· 具体设计
80
60
· Coding
· 具体编码
200
180
· Code Review
· 代码复审
40
30
· Test
· 测试(自我测试,修改代码,提交修改)
60
40
Reporting
报告
120
80
· Test Report
· 测试报告
20
20
· Size Measurement
· 计算工作量
10
10
· Postmortem & Process Improvement Plan
· 事后总结, 并提出过程改进计划
30
20
合计
1640
1350
四、程序代码结构
1、entity包中的CodeFileInfo类是源程序文件的实体类。
2、filter包中的SourceFilenameFilter过滤器类的作用是筛选出文件夹内的源程序文件(目前实现了筛选以.c以及.java为后缀的源程序文件)。
3、function包中的Function接口是基本功能及拓展功能的抽象接口,BaseFunction类和ExtendFunction类是具体的实现类,是功能实现的关键类。
4、handle包中的CalculateHandler类是一个控制类,主要是根据用户的需求(计算单个源程序文件/多个源程序文件/文件夹中的所有源程序文件)去调用对应的计算逻辑进行计算。
5、WcMain类是程序功能的主入口(图形界面)。
五、程序功能截图
1、程序图形界面
2、基本功能及拓展功能
计算单个源程序文件
计算多个源程序文件
计算文件夹中的所有源程序文件
六、项目总结
通过本项目的实践,熟悉了开发软件的相关工作流程(分析项目需求、设计项目流程、实现项目功能、进行单元测试、程序功能运行测试、项目总结)。