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文件有问题,另外就是在这样的环境下开发一个项目,我感觉到了前所未有的感觉,难以描述,感觉是美好的又有点小挣扎(可能是因为不习惯),不过总体来说好处的很大的,在以后的学习过程中,我也要养成多写博客,取长补短,将自己的不足慢慢弥补。