github项目:
https://github.com/243476710/WorkCount.git
WordCount需求说明
WordCount的需求可以概括为:对程序设计语言源文件统计字符数、单词数、行数,统计结果以指定格式输出到默认文件中,以及其他扩展功能,并能够快速地处理多个文件。
可执行程序命名为:wc.exe,该程序处理用户需求的模式为:
wc.exe [parameter] [input_file_name]
存储统计结果的文件默认为result.txt,放在与wc.exe相同的目录下。
-基本功能
wc.exe -c file.c //返回文件 file.c 的字符数wc.exe -w file.c //返回文件 file.c 的单词总数wc.exe -l file.c //返回文件 file.c 的总行数wc.exe -o outputFile.txt //将结果输出到指定文件outputFile.txt
注意:
空格,水平制表符,换行符,均算字符。
由空格或逗号分割开的都视为单词,且不做单词的有效性校验,例如:thi#,that视为用逗号隔开的2个单词。
-c, -w, -l参数可以共用同一个输入文件,形如:wc.exe –w –c file.c 。
-o 必须与文件名同时使用,且输出文件必须紧跟在-o参数后面,不允许单独使用-o参数。
举例
wc.exe -s -a *.c
返回当前目录及子目录中所有.c 文件的代码行数、空行数、注释行数。
wc.exe -s -a –c -w *.c–e stop.txt –o output.txt
返回当前目录及子目录中所有.c 文件的字符数、单词总数、代码行数、空行数、注释行数,并将结果保存在output.txt中,且统计单词时忽略stop.txt中的单词。
输出结果的格式
输出结果格式形如:
[文件名], [统计标志]: [总数]
举例如下:
wc.exe –c file.c,则输出结果保存在result.txt中
file.c, 字符数: 50 |
wc.exe –w file.c,则输出结果保存在result.txt中
file.c, 单词数: 30 |
wc.exe –l file.c,则输出结果保存在result.txt中
file.c, 行数: 10 |
如果同时涉及多项统计,如同时需要统计字符、单词和行数,则按照字符-->单词-->行数-->代码行数/空行数/注释行的顺序,依次分行显示。显示顺序与输入参数的次序无关。例如:
wc.exe –l –c file.c,则统计file.c中的字符数和行数,输出结果保存在result.txt中
file.c, 字符数: 50 file.c, 行数: 10 |
例如:
wc.exe -s -a –c -w *.c–e stop.txt –o –output.txt
输出结果保存在output.txt中,内容格式为:
file1.c, 字符数: 50 file1.c, 单词数: 30 file1.c, 代码行/空行/注释行: 5/2/3 file2.c, 字符数: 40 file2.c, 单词数: 26 file2.c, 代码行/空行/注释行: 6/2/1 |
PSP表格:
PSP2.1 | PSP阶段 | 预估耗时(分钟) | 实际耗时(分钟) |
Planning | 计划 | 40 | 30 |
Estimate | 估计这个任务需要多少时间 | 40 | 30 |
Development | 开发 | 300 | 400 |
Analysis | 需求分析(包括学习新技术) | 60 | 100 |
Design Spec | 生成设计文档 | 30 | 0 |
Design Review | 设计复审(和同事审核设计文档) | 30 | 0 |
Coding Standard | 代码规范(为目前的开发指定合适的规范) | 30 | 0 |
Design | 具体设计 | 60 | 40 |
Coding | 具体编码 | 120 | 100 |
Code Review | 代码复审 | 60 | 50 |
Test | 测试(自我测试,修改代码,提交修改) | 80 | 150 |
Reporing | 报告 | 80 | 100 |
Test Report | 测试报告 | 30 | 20 |
Size Measurement | 计算工作量 | 20 | 20 |
Postmortem&Process Improvement Plan | 事后总结,并提出过程改进计划 | 30 | 60 |
合计 | 1010 | 1400 |
设计原理:
在源代码中通过split方法将用户的输入分为两部分,一是指令,二是文件路径,用readline方法读取行数,再读取每行的字数相加得到总字数,然后读取数据,拼接多行为一行,用空格代替标点,再切割空格得到词的数目。
部分截图:
1.文件目录
2.目标文件
3.运行效果
4.生成的outpu,txt文件
5.部分代码:
总结:
这次的项目总的来说比较简单,但是却和以前的随意编程大不一样,因为是要在这样的一个共享的博客上面发表,就要比以往更加的正式与规范,这也是软件开发人员所必须具备的能力之一,在完成此次项目的过程中我还学习到了不少以前不知道的东西,比如说将java文件打包为Jar和exe文件,但是虽然文件是打包出来了,却仍然执行不了exe文件,错误的原因应该是jre文件有问题,另外就是在这样的环境下开发一个项目,我感觉到了前所未有的感觉,难以描述,感觉是美好的又有点小挣扎(可能是因为不习惯),不过总体来说好处的很大的,在以后的学习过程中,我也要养成多写博客,取长补短,将自己的不足慢慢弥补。