一、地址链接

  1作业地址https://edu.cnblogs.com/campus/nenu/2016CS/homework/2110

  2、git仓库地址https://git.coding.net/kefei101/wf.git 


 二、需求分析

  通过对题目要求的分析,我共看到了以下需求:

  !判断输入格式,共有6种输入格式,分别进入4种不同的处理方法,得到不同的排序输出。其中(3)(4)可算作一种,(5)(6)可算作一种。

    (1)wf -c 文件名        进入直接读取txt方法,并顺序输出词频;

    (2)wf -f 文件路径      进入读取文件夹的方法,再读取按照字典排序最靠前的txt文件,并按照字典排序输出单词词频;

    (3)wf -c 文件名 -n 数量      进入直接读取txt方法,并按照词频和字典排序输出;

      (4)wf -n 数量 -c 文件名      进入直接读取txt方法,并按照词频和字典排序输出;

      (5)wf -f 文件路径 -n 数量    进入读取文件夹的方法,再读取按照字典排序最靠前的txt文件,并按照词频和字典排序输出;

    (6)wf -n 数量 -f 文件路径    进入读取文件夹的方法,再读取按照字典排序最靠前的txt文件,并按照词频和字典排序输出.


三、功能设计

  1、根据用户输入的参数格式,读取指向的文件或文件路径,统计得到txt文本文件的单词词频结果。

  2、此处实现附加功能:在小程序中,可以任意输入多次,永久判断;输入格式中的首位单词 wf 即是保存该小程序的文件夹名,若将其放入不同的文件夹,只需将 wf 变为文件夹名即可。

  注:为了避免中文乱码问题,我将注释及程序提示都改成英文显示。


 四、设计实现

  我共设计6个类,如图:

软件工程 week 02

  Test类:主类,负责接收输入格式的参数启动程序;

  Jagger类:负责根据输入格式的参数不同,分别进入不同的处理方法;

  ReadTxt类:负责读取txt文本文件,以及读取文件路径;

  SortMap类:负责根据需求的跟能不同,进入不同的排序方法;

  Compare类:实现Comparator接口,实现功能(3)--(6)的排序方式(先按照词频排序,再按照字典排序);

  MyMap类:是SortMap类中功能三所需要用到的类,用自定义Map类实现list与Map转换的简单性。

  5个类的相互关系为:

  软件工程 week 02

  比较重要的函数有:

    Jagger类 :JaggerFormat():判断输入格式,主要是逻辑

    ReadTxt类:txtToString():读取txt文件,一行一行读取处理

             directoryToTxt():读取文件路径,选择按字典排序最靠前的txt文件,进而调用txtToString()读取txt文件内容

    SortMap类:orderPrint():顺序输出txt文件单词词频

          sortMap(Map map):按字典顺序输出txt文件单词词频

          sortMap(Map map,int num):先按词频排序,再按字典顺序排序

    Compare类: compare():实现Comparator接口,重写Compare方法,指定排序方法

  函数间的逻辑关系:JaggerFormat()----[directoryToTxt()]----txtToString()----orderPrint()/sortMap(Map map)/[sortMap(Map map,int num)----compare()]


五、测试运行

  1、输入正确的格式,即可运行功能一二三

 软件工程 week 02

 软件工程 week 02

  软件工程 week 02

  2、测试测试txt

 软件工程 week 02


 六、重要代码展示

   1、主方法main()测试:

 1 import java.io.IOException;
 2 import java.util.*;
 3 
 4 /**
 5  * Class main
 6  * Author: houst
 7  * Date: 2018/9/17
 8  * Time: 15:50
 9  */
10 public class Test {
11 
12     /**
13      * Main Method
14      * @param args args
15      * @throws IOException
16      */
17     public static void main(String args[]) throws IOException {
18 
19         while (true) {
20             Scanner scanner = new Scanner(System.in);
21             String  order= scanner.nextLine();//Input format
22             //Judging the input format,entering different processing methods.
23             Jagger jagger = new Jagger();
24             jagger.JaggerFormat(order);
25 
26         }
27 
28     }
29 
30 }
Test

相关文章:

  • 2022-01-24
  • 2021-08-17
猜你喜欢
  • 2022-01-01
  • 2021-05-26
  • 2022-01-29
  • 2022-02-20
  • 2021-12-05
  • 2021-12-05
相关资源
相似解决方案