Github地址:https://github.com/ztz1998/wc/tree/master

项目相关要求

实现一个统计程序,它能正确统计程序文件中的字符数、单词数、行数,以及还具备其他扩展功能,并能够快速地处理多个文件。
具体功能要求:

基本功能列表:

wc.exe -c   file.c     //返回文件 file.c 的字符数(实现)

wc.exe -w  file.c    //返回文件 file.c 的词的数目 (实现)

wc.exe -l    file.c      //返回文件 file.c 的行数(实现)

扩展功能:
wc.exe   -s   递归处理目录下符合条件的文件。(未实现)
wc.exe   -a   返回更复杂的数据(代码行 / 空行 / 注释行)。(未实现)

PSP2.1表格

PSP2.1

Personal Software Process Stages

预估耗时(分钟)

实际耗时(分钟)

Planning

计划

 30  40

· Estimate

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

 30  40

Development

开发

 300  500

· Analysis

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

 60  100

· Design Spec

· 生成设计文档

 20  0

· Design Review

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

30  60

· Coding Standard

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

 10  20

· Design

· 具体设计

 30  40

· Coding

· 具体编码

 30 50 

· Code Review

· 代码复审

 0  0

· Test

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

 30  30

Reporting

报告

 120  150

· Test Report

· 测试报告

10  20

· Size Measurement

· 计算工作量

 20 20

· Postmortem & Process Improvement Plan

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

 10  10

合计

   730  1080

解题思路

大二时学java时候,最后一个作业的第一步就是读取文件,也在网上搜索了WordCounter代码,两项结合,思路就基本出来了。结合开发语言写出实现函数所用的方法,通过网上查阅资料开始编写代码,修改代码。

设计

代码分为两个,一个是菜单(主代码,启动程序),一个是运算(逻辑函数代码),通过对应的命令来控制功能,最后输出。

变量:chars, words, lines.   基本功能的表示。

方法:calculate                               基本功能的实现方法。

switch(arr[0])                    对功能进行分类并打印输出结果。

代码

菜单(主代码,启动程序)

package my10;

import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Scanner;

public class Main {
public static void main(String[] args) {
while (true){
System.out.println("$$$$$$$$$$$$$$$$$$$");
System.out.println("1: 字符数、词数、行数");
System.out.println(" 输入命令:");
Scanner input=new Scanner(System.in);
String m=input.nextLine();
String arr[]=m.split("\\s");

try{
switch(arr[0]){
case"1":Counter.counter(); break;
}
}
catch (FileNotFoundException e) {
System.out.println("\n找不到文件");
}
catch (Exception e) {
e.printStackTrace();
}
}
}
}

运算(逻辑函数代码)

package my10;

import java.io.*;
import java.util.Scanner;

public class Counter {
public static void counter( ) throws Exception {
Scanner input = new Scanner(System.in);
System.out.println(" 输入路径:");
String path = input.next();
File file = new File(path);
FileReader reader = new FileReader(file);

int countChar = 0;
int countword = 0;
int countline = 0;
InputStreamReader isr = new InputStreamReader(new FileInputStream(path));
BufferedReader br = new BufferedReader(isr);
while(br.read()!=-1)
{
String s = br.readLine();
countChar += s.length();
countword += s.split(" ").length;
countline++;
}
System.out.println("字符数 "+countChar);
System.out.println("词数"+countword );
System.out.println("行数 "+countline);
}
}

运行结果

遇到的困难及解决方法

1.对java不太熟悉,需要查找资料,并且最后做出来的功能也只有基础功能。

2.起初用switch(arr[0]),出现报错

Cannot switch on a value of type String for source level below 1.7.
Only convertible int values or enum constants are permitted

百度后才知道只有1.7以上才支持String,而我则是1.6

3.代码打完后运行时出现 Could not find the main class,不清楚什么原因,百度后也没解决,最后换了一个编译器才成功

总结

开学的第一个作业,不算很难,但任然做的很辛苦,还得上网查找,找同学帮助,暴露了对java的不熟悉,希望能再慢慢学习,进步。

也是第一次写博客。

java实现wc.exe的更多相关文章

  1. 小白のjava实现wc.exe功能

    GitHub地址 项目完成情况 基本功能列表(已实现) wc.exe -c file.c     //返回文件 file.c 的字符数 wc.exe -w file.c    //返回文件 file. ...

  2. 软工作业No.1。Java实现WC.exe

    网址:https://github.com/a249970271/WC WC 项目要求 wc.exe 是一个常见的工具,它能统计文本文件的字符数.单词数和行数.这个项目要求写一个命令行程序,模仿已有w ...

  3. JAVA实现WC.exe功能

    项目要求 实现一个统计程序,它能正确统计程序文件中的字符数.单词数.行数,以及还具备其他扩展功能,并能够快速地处理多个文件. 具体功能要求: 程序处理用户需求的模式为: wc.exe [paramet ...

  4. Java 实现 WC.exe

    Github:https://github.com/YJOED/Code/tree/master/WC/src 一.题目:实现一个统计程序,它能正确统计程序文件中的字符数.单词数.行数,以及还具备其他 ...

  5. 软件工程:Java实现WC.exe基本功能

    项目相关要求 GitHub地址:https://github.com/3216004716/WC 实现一个统计程序,它能正确统计程序文件中的字符数.单词数.行数,以及还具备其他扩展功能,并能够快速地处 ...

  6. 软工作业1—java实现wc.exe

    github项目地址 https://github.com/liyizhu/wc.exe WC 项目要求 基本功能列表: wc.exe -c file.c     //返回文件 file.c 的字符数 ...

  7. 软件工程实践一 —— java之wc.exe

    SoftwareEngineering-wc github项目地址:https://github.com/CuiLam/SoftwareEngineering-wc   项目相关要求 实现一个统计程序 ...

  8. 软工作业1:wc.exe项目开发(java)

    Github地址:https://github.com/Zzhaomin/learngit 项目相关要求 : wc.exe 是一个常见的工具,它能统计文本文件的字符数.单词数和行数.这个项目要求写一个 ...

  9. WC.exe(Java实现)

    一.GitHub项目地址:https://github.com/nullcjm/mypage 二.项目相关要求: wc.exe 是一个常见的工具,它能统计文本文件的字符数.单词数和行数.这个项目要求写 ...

随机推荐

  1. mysql表理解

    4.1 索引组织表 1.在innodb存储引擎中,每张表都有个主键,如果在创建表时没有显式地定义主键,则innodb存储引擎会按如下方式选择或创建主键: ①:首先判断表中是否有非空的唯一索引,如果有, ...

  2. mysql 2pc理解

  3. HTML5代码段

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  4. 【c# 数据库】 多表链接

    1.inner join string sql = "select * from studentsinfo inner join teacher on teacher.姓名 = studen ...

  5. Find out where to contain the smartforms

    Go to table E071 and give smarforms name and it will give the transport req for that. Run SE03, choo ...

  6. Spring常用注解总结(3)

    @Configuration 表示该类为"配置类",可替换xml配置文件.与@Component不同的是,@Configuration会生成CGLIB代理class. @Targe ...

  7. Kubernetes 1.3.1 快速单机部署

    Kubernetes发展到今天, 在官网上已经有非常多的成熟部署方案, 但是由于墙的原因, 最简单的MiniKube都无法进行, 参考了以下两篇文章后, 终于安装成功. k8s-1.13版本测试环境搭 ...

  8. .Net 配置的简陋解决方案

    公司是做CS产品的, 最近分配给我一个活, 要求:     1. 公司程序启动时, 检测是否有配置文件, 没有的话则按默认值创建一个     2. 配置文件要加密, 不能让客户随便看到里面的参数   ...

  9. python 字符串 转 bit, bitarray 异或加密

    Python中异或加密要将str 转为 bitarray, 提示: int类型和纯数字的字符串也可以异或处理, 可能更方便 from bitarray import bitarray def str2 ...

  10. Chapter_4_JAVA作业

    一.类的封装,继承与多态 1.课前预习 1.1 举列现实生活中的封装,以及简述在程序中什么是属性的封装? 1.1.1 将东西捆绑在一起,如集成芯片:高压电线等等 1.1.2 封装就是将属性私有化,提供 ...