一、GitHub地址
https://github.com/JasonLiu1105/WordCount
二、PSP表格
PSP2.1 | PSP阶段 | 预估耗时 (分钟) | 实际耗时 (分钟) |
Planning | 计划 | 20 | 20 |
· Estimate | · 估计这个任务需要多少时间 | 2days | 3days |
Development | 开发 | 1day | 1day |
· Analysis | · 需求分析 (包括学习新技术) | 240 | 240 |
· Design Spec | · 生成设计文档 | 20 | 20 |
· Design Review | · 设计复审 (和同事审核设计文档) | -- | -- |
· Coding Standard | · 代码规范 (为目前的开发制定合适的规范) | -- | -- |
· Design | · 具体设计 | 60 | 60 |
· Coding | · 具体编码 | 1 | 2 |
· Code Review | · 代码复审 | 180 | 180 |
· Test | · 测试(自我测试,修改代码,提交修改) | 120 | 120 |
Reporting | 报告 | 30 | 60 |
· Test Report | · 测试报告 | 60 | 120 |
· Size Measurement | · 计算工作量 | 30 | 20 |
· Postmortem & Process Improvement Plan | · 事后总结, 并提出过程改进计划 | 30 | 60 |
| 合计 | 2days | 3days |
三、解题思路
1.拿到题目以后,先选择一个合适的语言进行编写
2.根据题目中所给的基本功能,先着手将基本功能实现,再进行相应的扩展功能
3.对于程序中可能会用到的java的知识点,要提前进行了解
4.上网查找跟题目要求功能有相似的java 程序,很好的了解明白后,再根据题目进行开发
四、程序设计实现过程
本程序使用了一个类WordCountX,然后将各种相关方法写入(在代码开发的过程中发现只写到一个类里会让代码过于复杂,当后期对程序进行修改的时候比较费力)。通过主函数中调用各方法实现要求功能
五、代码说明
主函数
public class WordCountX { public static void main(String[] args){ // String inPath = "/Users/jason/Desktop/1.txt"; //文件名 String outPath="result.txt"; //输出文件名,默认为result.txt int line=0; int num=0; int letter=0; int space=0; int word=0; boolean c = false; boolean w = false; boolean l = false; boolean o = false; boolean a = false; boolean e = false; boolean s =false; String inPath=null; String stopPath=null;
/**
* 统计数字数
* @param str* @return*/public static int countNumber(String str)
/**
* 统计字母数
* @param str* @return*/public static int countLetter(String str)
/**
* 统计汉字数
* @param str* @return*/public static int countChinese(String str)
/**
*统计不同类别行数
*@return int[]//代码,空白,注释* @param*/public static long[] coutDiff(String line)
/**
* 统计空格数* @param str* @return*/public static int countSpace(String str)
/**
*包含stopLists*@param*@return int*/
static int countStopWords( BufferedReader thefile,String txt)
/**
*输出到文件
*@param str,path*@return*/public static void printToFile(String filepath,String str)
六、测试设计过程
1、未能写出测试脚本,而是在Terminal进行测试,共产生如下10个测试用例。
在终端中进行测试
(注意:每次进行“-c或-w或-l的操作时所有结果都会输出在终端里,只是在result.test里分别显示”)
Last login: Tue Mar 20 16:03:01 on ttys001MrniudeMacBook-Pro:~ jason$ java -jar /Users/jason/Documents/GitHub/WordCount/out/artifacts/WordCountX_jar2/WordCountX.jar /Users/jason/Desktop/1.txt -c -w -l
/Users/jason/Desktop/1.txt, 行数:49/Users/jason/Desktop/1.txt, 字符数:2004/Users/jason/Desktop/1.txt, 单词数:9
Last login: Tue Mar 20 16:03:01 on ttys001MrniudeMacBook-Pro:~ jason$ java -jar /Users/jason/Documents/GitHub/WordCount/out/artifacts/WordCountX_jar2/WordCountX.jar /Users/jason/Desktop/1.txt -c -w
Last login: Tue Mar 20 16:03:01 on ttys001MrniudeMacBook-Pro:~ jason$ java -jar /Users/jason/Documents/GitHub/WordCount/out/artifacts/WordCountX_jar2/WordCountX.jar /Users/jason/Desktop/1.txt -w -l
Last login: Tue Mar 20 16:03:01 on ttys001MrniudeMacBook-Pro:~ jason$ java -jar /Users/jason/Documents/GitHub/WordCount/out/artifacts/WordCountX_jar2/WordCountX.jar /Users/jason/Desktop/1.txt -w -l数字数:282
Last login: Tue Mar 20 16:03:01 on ttys001MrniudeMacBook-Pro:~ jason$ java -jar /Users/jason/Documents/GitHub/WordCount/out/artifacts/WordCountX_jar2/WordCountX.jar /Users/jason/Desktop/1.txt -c -l数字数:282
MrniudeMacBook-Pro:~ jason$ java -jar /Users/jason/Documents/GitHub/WordCount/out/artifacts/WordCountX_jar2/WordCountX.jar /Users/jason/Desktop/1.txt -c
/Users/jason/Desktop/1.txt, 字符数:2004
MrniudeMacBook-Pro:~ jason$ java -jar /Users/jason/Documents/GitHub/WordCount/out/artifacts/WordCountX_jar2/WordCountX.jar /Users/jason/Desktop/1.txt -w
/Users/jason/Desktop/1.txt, 单词数:9
MrniudeMacBook-Pro:~ jason$ java -jar /Users/jason/Documents/GitHub/WordCount/out/artifacts/WordCountX_jar2/WordCountX.jar /Users/jason/Desktop/1.txt -l
/Users/jason/Desktop/1.txt, 行数:49
Last login: Tue Mar 20 16:54:05 on ttys001MrniudeMacBook-Pro:~ jason$ java -jar /Users/jason/IdeaProjects/WordCountX/out/artifacts/WordCountX_jar2/WordCountX.jar -c -l -a -w -o /Users/jason/Desktop/21.txt /Users/jason/Desktop/1.txt
/Users/jason/Desktop/1.txt, 代码/空白/注释:48/1/0
MrniudeMacBook-Pro:~ jason$ java -jar /Users/jason/Documents/GitHub/WordCount/out/artifacts/WordCountX_jar2/WordCountX.jar /Users/jason/Desktop/1.txt -e stopList.txt // 停用词表,统计文件单词总数时,不统计该表中的单词
七、参考文献链接
http://blog.csdn.net/u013177799/article/details/76062976
https://www.cnblogs.com/wangcp-2014/p/5851986.html
http://blog.csdn.net/u010137431/article/details/46823293
https://stackoverflow.com/questions/4330936/how-can-i-convert-a-jar-to-an-exe
八、作业改进
还有唯一的附加功能-s没有及时实现,但由于时间原因,必须今晚提交博客,所以会在后期抓