第二周个人作业WordCount

一、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 ttys001
MrniudeMacBook-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 ttys001
MrniudeMacBook-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 ttys001
MrniudeMacBook-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 ttys001
MrniudeMacBook-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 ttys001
MrniudeMacBook-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 ttys001
MrniudeMacBook-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没有及时实现,但由于时间原因,必须今晚提交博客,所以会在后期抓

原文地址:https://www.cnblogs.com/liutzh1105/p/8611414.html

时间: 2024-11-08 01:16:06

第二周个人作业WordCount的相关文章

软件测试第二周个人作业--wordcount

1.Github项目地址:https://github.com/SSS-SY/wordcount 2.PSP2.1表格 PSP2.1 PSP阶段 预估耗时 (分钟) 实际耗时 (分钟) Planning 计划 20 15 · Estimate · 估计这个任务需要多少时间 30 15 Development 开发 360 605 · Analysis · 需求分析 (包括学习新技术) 60 80 · Design Spec · 生成设计文档 0 5 · Design Review · 设计复审

软件测试第二周个人作业WordCount程序实现

GitHub地址:https://github.com/Guchencc/WordCount 一.PSP表格 PSP2.1 PSP阶段 预估耗时 (分钟) 实际耗时 (分钟) Planning 计划 · Estimate · 估计这个任务需要多少时间 300 440 Development 开发 · Analysis · 需求分析 (包括学习新技术) 20 30 · Design Spec · 生成设计文档 10 10 · Design Review · 设计复审 (和同事审核设计文档) 10

第二周个人作业

1.GitHub地址:https://github.com/YJG1997/wc 2.psp表格 PSP2.1表格 PSP2.1 PSP阶段 预估耗时 (分钟) 实际耗时 (分钟) Planning 计划  60  50 · Estimate · 估计这个任务需要多少时间  30  20 Development 开发  60  90 · Analysis · 需求分析 (包括学习新技术)  30  40 · Design Spec · 生成设计文档  30  20 · Design Review

现代软件工程第二周的作业

现有的命名方式有多少种?请举例说明 一.匈牙利命名法: 广泛应用于象 Microsoft Windows 这样的环境中. Windows 编程中用到的变量(还包括宏)的命名规则匈牙利命名法,这种命名技术是由一 位能干的 Microsoft 程序员查尔斯· 西蒙尼(Charles Simonyi) 提出的. 匈牙利命名法通过在变量名前面加上相应的小写字母的符号标识作为前缀, 标识出变量的作用域, 类型等.这些符号可以多个同时使用,顺序是先 m_(成员变量),再指针,再简单数据类型, 再其他.例如:

【周末作业】2015.7.15 第二周 css作业及答案

[作业题] 一.问答题 1. CSS选择器以及引入方式哪几种,CSS选择器有哪些以及它们的优先级 2. 行内元素和块级元素的区别,分别举出6个行内元素和块级元素,块级元素的特点是什么 3. 改变元素外边距是什么属性,改变元素内边距是什么属性 4. 如何让一个div在页面中居中 5. 如何隐藏一个div 6. CSS的注释是什么 7. 怎样定义li列表项目符号为实心矩形 8. margin:5px 2px; 表示什么 9. CSS产生浏览器兼容性问题的原因是什么,举出三个处理浏览器兼容性问题的例子

马哥Linux培训第二周课程作业

1.   Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示. #    文件及目录列表查看:ls #    文件内容查看:cat, tac #    修改文件时间戳或创建新文件:touch #    文件编辑: vi, nano 文件管理:cp, mv, rm, (mkdir, rmdir:创建.删除目录) (1)     .复制命令:cp 格式: cp[OPTION]... [-T] SOURCE DEST cp[OPTION]... SOURCE... DIRECTOR

16级第二周寒假作业J题

Favorite Donut TimeLimit: 1500/1000 MS (Java/Others)  MemoryLimit: 131072/131072 K (Java/Others) 64-bit integer IO format:%I64d Problem Description 露露爱吃甜食.她最喜欢的食物是环形甜甜圈.每天她从同一个面包店买一个环形甜甜圈.环形甜甜圈由n个部分组成.每个部分具有其自身的糖度,甜度可以由从a到z(从低到高)的字母表示,并且环形甜甜圈可以以一个第i个

Coursera machine learning 第二周 编程作业 Linear Regression

必做: [*] warmUpExercise.m - Simple example function in Octave/MATLAB[*] plotData.m - Function to display the dataset[*] computeCost.m - Function to compute the cost of linear regression[*] gradientDescent.m - Function to run gradient descent 1.warmUpE

第二周的作业第二题_张东明

描述:每人自己建立一个HelloWorld项目,练习使用git的add/commit/push/pull/fetch/clone等基本命令.比较项目的新旧版本的差别. 1.  创建一个Git仓库——在现有目录初始化库 创建一个helloWorld文件夹,在该文件夹右键直接打开Git Bash,输入git init命令,创建完成库. 2.  检查文件状态 由于我以前使用过git,所以不用设置用户名和邮箱,对于新的电脑需要在此设置用户名和邮箱. 3.  使用clone命令 把远程库中的项目克隆到本地