个人作业1 WordCount
一.github链接 :https://github.com/Adogssky/WordCount
二.PSP表格:
PSP2.1 |
PSP阶段 |
预估耗时 (分钟) |
实际耗时 (分钟) |
Planning |
计划 |
||
· Estimate |
· 估计这个任务需要多少时间 |
795 | 830 |
Development |
开发 |
||
· Analysis |
· 需求分析 (包括学习新技术) |
120 | 120 |
· Design Spec |
· 生成设计文档 |
30 | 30 |
· Design Review |
· 设计复审 (和同事审核设计文档) |
0 | 0 |
· Coding Standard |
· 代码规范 (为目前的开发制定合适的规范) |
15 | 10 |
· Design |
· 具体设计 |
90 | 90 |
· Coding |
· 具体编码 |
180 | 200 |
· Code Review |
· 代码复审 |
60 | 60 |
· Test |
· 测试(自我测试,修改代码,提交修改) |
120 | 140 |
Reporting |
报告 |
||
· Test Report |
· 测试报告 |
60 | 60 |
· Size Measurement |
· 计算工作量 |
60 | 60 |
· Postmortem & Process Improvement Plan |
· 事后总结, 并提出过程改进计划 |
60 | 60 |
合计 |
795 | 830 |
三.解题思路
先思考怎么接收参数,采取args接收参数之后再使用读行来计算行数,读行的长度来计算字符数,将行按分隔符分割之后计算单词数。
四.程序设计
除主函数外分成五个类
分别是
参数的处理类
文件写入类
读行类
读字符类
读单词类
复杂行读取类
五.代码说明
首先是部分全局变量,以及输入参数的初始状态的设置。
这是参数处理部分,从args接收参数之后将初始参数状态改为true。
此为读字符部分,字符数量即为每行长度(不知为何代码在本地push上去之后格式出错,多次push结果不变,也就不了了之。)
这是读行数和单词数部分,单词数即为将行按照分割符号分割之后的数量。
读复杂行部分,将每行string转为char数组后,检测是否为空行,是则空行数加一,否则再判断是否为注释行,是则注释行数加一,否则代码行数加一。
写文件部分
主函数,多参数的分别调用以及写入文件的content构造。
停用表部分完成,采用分别读取停用表文件和原文件再比较来计算停用词,注意要在遇到停用词之后将其置为空,避免重复。
更多代码请看github
六.测试设计
file.c
stoplist.txt
-l file.c
-w file.c
-c file.c
-a file.c
-l -w -c -a file.c
-l -w -c -a file.c -o result2.txt
-w file.c -e stoplist.txt
-w file.c -e stoplist.txt -o result2.txt
七.参考文献
java读取文件的几种方式 http://blog.csdn.net/actionzh/article/details/77587573
java字符串字符转化 http://blog.csdn.net/u014800380/article/details/52994913
java写入文件 https://www.cnblogs.com/XiOrang/p/5652875.html