zoukankan      html  css  js  c++  java
  • 201671010445杨爱婷 词频统计软件项目报告

    作业要求:实验二软件个人项目

    需求分析

    1.程序可读入任意英文文本文件,该文件中英文词数大于等于1个。

    2.程序需要很壮健,能读取容纳英文原版《哈利波特》10万词以上的文章。

    3.指定单词词频统计功能:用户可输入从该文本中想要查找词频的一个或任意多个英文单词,运行程序的统计功能可显示对应单词在文本中出现的次数和柱状图。

    4.高频词统计功能:用户从键盘输入高频词输出的个数k,运行程序统计功能,可按文本中词频数降序显示前k个单词的词频及单词。

    5.统计该文本所有单词数量及词频数,并能将单词及词频数按字典顺序输出到文件result.txt

    功能设计:

        - 可读文本文件功能
        - 能统计所有单词基本功能
        - 能指定单词词频功能
        - 能显示出指定单词的柱状图功能
    

    设计实现:

    运用了两个类,其中一个类是基本的功能,主要是采用了map集合的方法,先一步的把所有的键值都可以罗列出来。之后只需要获取map中的键值,在此基础上,逐一实现其余基本功能。第二个类是调用的方法,然后在类一里面调用方法就好啦。

    测试运行:

    测试功能一:

    测试功能三:

    将结果存放在result中:

    较为满意的部分代码:

    if(s==1) {
    		 //1.指定单词词频统计功能
    		System.out.println("请输入你要查找的单词,用逗号隔开");
    		String s1=sc.next();
    		//调用类的方法
    		cipin2 c2=new cipin2();
    		 str=c2.a(map, s1);//S1是查指定的单词,map是前面是已经统计好的
    		cipin s3=new cipin(); 
    		s3.setVisible(true);
    	   }
    
    
    

    功能一较为满意的原因是用到调用类的方法,而且用到的集合是map,将该类中需要被调用的方法设置为静态(static),加了static后,就可以用类名直接调用。然后在调用类中直接通过类名进行访问。调用格式为:类名.方法名(参数表)。

    
    //实参
    else if(s==3) {
    		   //3.统计该文本所有单词数量及词频数,将结果输入到result.txt
    		   //调用类的方法2
    		   cipin2 c2=new cipin2();//声明一个类对象
    		   c2.c(map);
    	   }
    
    //形参的运用
    public String[] a(TreeMap<String,Integer> map,String str) {
    		TreeMap<String,Integer> map1 = new TreeMap<String,Integer>();
    		String[] s2=str.split(",");
    		for (int i = 0; i < s2.length; i++) {
    			for(Entry<String,Integer> entry: map.entrySet()) {					
    			    if(s2[i].equals(entry.getKey())){
    			    	map1.put(entry.getKey(),entry.getValue());
    			    	System.out.println(entry.getKey()+"=="+entry.getValue());
    			    	break;
    			    }
    		   }
    
    
    

    功能三较为满意的是自己浅显地理解了形参和实参。
    形式参数(形参):在方法定义时用于接收外界输入的数据。
    实际参数(实参):调用方法时实际传给方法的数据

    总结:注:因为是跨专业,没有学过Java编程语言,是请教了同学,所以高频词统计功能未能实现,后面会继续努力.因为之前没有进行过程序设计,也没有自己编写过较为复杂的程序,这次算是一个进步。

    PSP流程:

    ||||||||||||||
    |:--|:--|:--|:--|
    |PSP阶段|任务内容|计划共完成需要的时间(min)|实际完成需要的时间(min)|
    |Planning|计划|8|10|
    |Estimate| 估计这个任务需要多少时间,并规划大致工作步骤|8|12|
    |Development|开发|82|265|
    |Analysis|需求分析 (包括学习新技术)|6|30|
    |Design Spec|生成设计文档|5|6|
    |Design Review|设计复审 (和同学审核设计文档)|4|6|
    |Coding Standard|代码规范 (为目前的开发制定合适的规范)|3|5|
    |Design|具体设计|10|25|
    |Coding|具体编码|36|50|
    |Code Review|代码复审|7|10|
    |Test|测试(自我测试,修改代码,提交修改)|13|30|
    |Reporting|报告|9|15|
    |Test Report|测试报告|3|3|
    |Size Measurement|计算工作量|2|3|
    |Postmortem & Process Improvement Plan|事后总结 ,并提出过程改进计划|3|10|

    源代码指路!

  • 相关阅读:
    真正的e时代
    在线手册
    UVA 10616 Divisible Group Sums
    UVA 10721 Bar Codes
    UVA 10205 Stack 'em Up
    UVA 10247 Complete Tree Labeling
    UVA 10081 Tight Words
    UVA 11125 Arrange Some Marbles
    UVA 10128 Queue
    UVA 10912 Simple Minded Hashing
  • 原文地址:https://www.cnblogs.com/yangat/p/10527923.html
Copyright © 2011-2022 走看看