gitee地址:

https://gitee.com/yzpdegit/test

问题描述:

计算一个文件中所包含的单词数,字符个数,行数

需求分析:

WordCount的需求可以概括为:对程序设计语言源文件统计字符数、单词数、行数,统计结果以指定格式输出到默认文件中,以及其他扩展功能,并能够快速地处理多个文件。

可执行程序命名为:wc.exe,该程序处理用户需求的模式为:

wc.exe [parameter] [input_file_name]

存储统计结果的文件默认为result.txt,放在与wc.exe相同的目录下。

解题思路:

首先选取的语言是用Java来进行开发的,读取文件需要用到java中的io流,通过创建通道来读取文件中的数据然后当作字符串来进行处理,通道建立好以后利用循环,当read()每

次读取一行循环一次,直到读取完毕,计算字符的个数即为直接计算字符串的长度,计算单词的个数则可以利用匹配模式,将字符串切割,当遇到逗号和空格时,将他们截断,

然后两者相加再减一就行,最后行数就判断循环了多少次就行。

psp表格:

PSP2.1

PSP阶段

预估耗时

(分钟)

实际耗时

(分钟)

Planning

计划

10

15

· Estimate

· 估计这个任务需要多少时间

20*60

10*60

Development

开发

60

84

· Analysis

· 需求分析 (包括学习新技术)

30

30

· Design Spec

· 生成设计文档

30

20

· Design Review

· 设计复审 (和同事审核设计文档)

10

10

· Coding Standard

· 代码规范 (为目前的开发制定合适的规范)

30

30

· Design

· 具体设计

50

40

· Coding

· 具体编码

20

20

· Code Review

· 代码复审

10

10

· Test

· 测试(自我测试,修改代码,提交修改)

60

50

Reporting

报告

40

60

· Test Report

· 测试报告

30

30

· Size Measurement

· 计算工作量

10

10

· Postmortem & Process Improvement Plan

· 事后总结, 并提出过程改进计划

25

25

合计

415

424

代码展示:

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Scanner;

这段代码里面的表示需要的导入的包后面要用到的包都在这里去找

public class Main {

    public static void main(String[] args)throws IOException {
int word=0;
int character=0;
int length=0;
Scanner in=new Scanner(System.in);
System.out.println("输入文件路劲:");
String path=in.next();
InputStreamReader input=new InputStreamReader(new FileInputStream(path));
BufferedReader br=new BufferedReader(input);
while(br.read()!=-1)
{
String s=br.readLine();
word+=s.split(",").length-1+s.split(" ").length;
character+=s.length()+s.split(" ").length-1;
length++;
}
input.close();

在这里面输入要读取的文件,创建通道链接文件,将内容读取出来,然后利用循环遍历完文件,边遍历变计算

File result=new File("output.txt");
result.createNewFile();
BufferedWriter bd=new BufferedWriter(new FileWriter(result));
bd.write(path+",单词数:"+word);bd.newLine();
bd.write(path+",字符数:"+character);bd.newLine();
bd.write(path+",行数数:"+length);bd.newLine();
bd.flush();
bd.close();

将结果输入到output.txt文件里

测试用例 :

测试结果:

心得体会:

第一次写博客感觉还不错,对于博客的编写有了很大的认识,其次,在这次的开发中用到了gitee来对项目进行管理,让我对项目的整合方面有了很大的

提升 ,再开发的过程中我发现和以往的开发有很大的区别,首先,以前都注重于敲代码,这次的中心却放到了分析规划上面,但是本次的开发也有很大

的不足,对于测试用例的分析还不是很到位,下次希望能好一点。

最新文章

  1. linux centos 6.5下安装nodejs
  2. hadoop:将WordCount打包成独立运行的jar包
  3. 树莓派利用PuTTY进行远程登录
  4. hdu 4007 暴力or线段树 ***
  5. UVA-11297 Census(线段树套线段树)
  6. NopCommerce 开源商城下载配置安装
  7. FDTD扩展到所有频率
  8. 第二个Sprint冲刺第三天
  9. mysql 字段操作
  10. 中文乱码 jsp正常后台接收异常
  11. PHP AOP
  12. 完美让IE兼容input placeholder属性的jquery实现
  13. Light OJ 1030 - Discovering Gold
  14. 判断浏览器是否支持html5和css3属性
  15. 剑指Offer——网易笔试题+知识点总结
  16. html/css的学习之路(1)
  17. 线程池工厂方法newFixedThreadPool()和newCachedThreadPool()
  18. 【python】安装pymongo时出错
  19. Delphi中Unicode转中文
  20. POJ 2509

热门文章

  1. Android-Universal-Image-Loader 的使用说明
  2. zoj_3657,12年长春站c题,模拟
  3. blog_html
  4. System Databases in SQL Server
  5. nyoj--42--一笔画问题(并查集)
  6. Dictionary as a set of counters
  7. POJ 2110 二分+暴搜
  8. mac terminal终端怎么退出python命令行
  9. ES6学习笔记(十六)async函数
  10. 在angular4.X里使用mCustomScrollbar滚动条插件