wc.exe 是一个常见的工具,它能统计文本文件的字符数、单词数和行数。这个项目实现了一个命令行程序,模仿已有wc.exe 的功能,实力所限只完成了基础功能,给出某程序设计语言源文件的字符数、单词数和行数。
基本功能列表:
- wc.exe -c file.c //返回文件 file.c 的字符数
- wc.exe -w file.c //返回文件 file.c 的词的数目
- wc.exe -l file.c //返回文件 file.c 的行数
PSP2.1表格
PSP2.1 |
Personal Software Process Stages |
预估耗时(分钟) |
实际耗时(分钟) |
Planning |
计划 |
10 |
15 |
Estimate |
估计这个任务需要多少时间 |
10 |
10 |
Development |
开发 |
355 |
520 |
Analysis |
需求分析 (包括学习新技术) |
200 |
300 |
Design Spec |
生成设计文档 |
10 |
15 |
Design Review |
设计复审 (和同事审核设计文档) |
10 |
20 |
Coding Standard |
代码规范 (为目前的开发制定合适的规范) |
10 |
10 |
Design |
具体设计 |
20 |
30 |
Coding |
具体编码 |
60 |
90 |
Code Review |
代码复审 |
15 |
10 |
Test |
测试(自我测试,修改代码,提交修改) |
30 |
25 |
Reporting |
报告 |
20 |
20 |
Test Report |
测试报告 |
10 |
10 |
Size Measurement |
计算工作量 |
10 |
10 |
Postmortem&Process Improvement Plan |
事后总结, 并提出过程改进计划 |
30 |
45 |
合计 |
|
445 |
610 |
拿到题目的时候很懵,对编程语言都不是熟悉,Java的话面向对象的特性使得他便于操作,所以最后选择了用Java来写,但是Java的API我又不熟悉,所以大部分的时候都是在尝试各个API的用法,好多要注意的点都是慢慢摸索出来的。
思路:使用input得到目标文件的路径,若输入错误路径则抛出错误,然后再传进FileReader类里面,用BufferedReader创建一个对象,定义一个string存放.readline,把文件的内容逐行放进去一个字符串里面,再对该字符串逐个字符检查,遇到空格就词数+1,每使用一次readline就行数+1,每行的字符数就是String.length - 字符数 + 1,如图:
实验截图:
test1:empty
test2:a char
test3:a word
test4:a sentence
test5:a java source
总结:这次工程让我学到了很多东西:对于Java的熟悉程度,软件工程开发的流程,这是我第一次系统的做出一个工程,期间碰到好多问题,一开始引用readline每一行第一个字符都会消失,找了好久才知道每次read过后指针都会指向下一个(就是第二个)字符,所以才读不出来第一个字符,经过这次练习之后,我对软件开发的流程有了个初步的认识,以后一定要做好准备工作再动手,不然过程中就会手忙脚乱。