zoukankan      html  css  js  c++  java
  • 201671030126赵佳平《英文文本统计分析》结对项目报告

    信息表

    项目 内容
    次作业所属课程 软件工程
    作业要求 作业要求内容
    课程学习目标 熟悉软件开发整体流程,提升自身能力
    本次作业在哪个具体方面帮助我们实现目标 第一次体验一个完整的工程

    任务一

    • 博客地址
    • 点评内容:整体博文的结构很好,但是一些图片的布局有一点不好,另外在菜单中要将具体实现的功能体现出来,不然不知道功能是否实现或者不清楚菜单的选择;最后应该要注意博文中的错别字。表格和代码的插入值得学习,使得整体界面更加美观。
    • 点评心得:阅读完这位同学的博文之后,让我意识到我的博文整体还不是很美观,应该更少地使用截图的形式。

    任务二

    • 源码地址
    • 1.需求分析
      (1)实验2要求的功能;
      (2)单词频数可视化柱状图
      (3)统计该文本行数及字符数;
      (4)各种统计功能均提供计时功能,显示程序统计所消耗时间(单位:ms);
      (5)可处理任意用户导入的任意英文文本;
      (6)人机交互界面要求GUI界面(WEB页面、APP页面都可);
      (7)附加分功能:统计文本中除冠词、代词、介词之外的高频词;
      (8)附加分功能:统计前10个两个单词组成的词组频率。
    • 2.软件设计
      项目主要有3个包,2个登陆界面的类(loginFrame.java,loginPane.java),1个主函数Main,3个功能实现类(可视化柱状图类chart.java、统计文本中除冠词、代词、介词之外的高频词类Highword.java、其他要求功能类function.java),2个主运行界面的类(firstFrame.java,firstPanel.java)
    • 3.核心代码
      读入文件并排序
            String path = firstPanel.textField.getText();
    		try {
    			FileInputStream fis = new FileInputStream(path);
    			BufferedReader br = new BufferedReader(new InputStreamReader(fis));
    			String temp="";
    			long startTime=System.currentTimeMillis();
    			startTime1=System.currentTimeMillis();
    			while((temp = br.readLine())!=null)
    			{
    				stmplength1+=temp.length();
    				String[] str = temp.split("([^a-zA-Z])"); //过滤出只含有字母的
    				
    				stmplength++;
    				
    				for(int i=0;i<str.length;i++)
    				{
    					String word = str[i].trim();
    					if(word.length()!=0)    //去除长度为0的行
    						staff.put(word, staff.getOrDefault(word, 0)+1);
    				}
    			}
    			br.close();
    			endTime1=System.currentTimeMillis();
    			
    	        //System.out.println("Total time is:"+ (endTime-startTime) );
    			rank();//按值排序
    			long endTime=System.currentTimeMillis();
    			//System.out.println("文件读入成功!请继续...");
    			JOptionPane.showMessageDialog(null, "文件读入成功! 
     耗时:"+(endTime-startTime)+"ms");//提示登录成功
    		}catch(Exception e) {
    			//System.out.println("文件不存在!!!请重新确认!");
    			JOptionPane.showMessageDialog(null, "文件读入出错!");
    		}
    

    按值排序

    public static void rank()//按值排序
    	{
    		Set<Entry<String,Integer>> mapEntries = staff.entrySet();
    		
    		aList = new ArrayList<Entry<String,Integer>>(mapEntries);
    		
    		Collections.sort(aList, new Comparator<Entry<String,Integer>>() {
    			 
                @Override
                public int compare(Entry<String, Integer> ele1,
                        Entry<String, Integer> ele2) {
     
                    return ele2.getValue().compareTo(ele1.getValue());
                }
            });
     
           /* for(Entry<String,Integer> entry: aList) {
            	System.out.println(entry.getKey() + " : " + entry.getValue());
            } */
    	}
    

    统计文本中除冠词、代词、介词之外的高频词

    for(int i=0;i<k;i++)//10
    				{
    					boolean ok=false;
    					if(flag)
    						textArea.append(function.aList.get(i).getKey()+"	"+function.aList.get(i).getValue()+"
    ");
    					else
    					{
    						for(int j=0;j<function.stop.size();j++)
    						{
    							if(function.aList.get(i).getKey().toLowerCase().equals(function.stop.get(j)))
    							{
    								k++;
    								ok=true;
    								break;
    							}
    						}
    						if(!ok)
    							textArea.append(function.aList.get(i).getKey()+"	"+function.aList.get(i).getValue()+"
    ");
    					}
    				}
    
    • 4.运行程序
      登陆(nwnu,2019)

      读入文件


      主运行界面

      指定单词词频统计及柱状图


      前k个高频词汇统计

      统计文本中除冠词、代词、介词之外的高频词

      输出到文件


      统计行数及字符数

    • 5.结对编程

    • 6.PSP

      |任务内容|计划完成时间(min)|实际完成时间(min)|
      |:--|:--|:--|
      |计划|10|8|
      | 估计这个任务需要多长时间,并规划大致工作步骤|5|6|
      |开发|110|130|
      | 需求分析(包括学习新技术)|8|6|
      |生成设计文档|5|8|
      |设计复审(和同事审核设计文档)|5|4|
      |代码规范(为当前的开发制定合适的规范)|4|3|
      |具体设计|15|10|
      |具体编码|150|200|
      |代码复审|5|6|
      |测试(自我测试、修改代码、提交修改)|15|12|
      |报告|9|5|
      |测试报告|5|3|
      |计算工作量|3|2|
      |事后总结,并提出工程改进计划|5|3|

    • 7.小结感受
      通过此次的结对项目编程,让我感受到了合作的利与弊,诚然,合作编程能提升整个过程的效率,但如果没有好的交流共通,加上对彼此代码风格的不适应,反而会降低团队的效率。

  • 相关阅读:
    XmlTextWriter学习笔记(转载)
    linux shell数据重定向(输入重定向与输出重定向)详细分析
    手机信息查看
    学员信息管理系统
    DOM4j 学习笔记
    Spinner 学习笔记
    java 网络编程学习笔记
    Oracle数据库远程连接方式之:不需要安装客户端软件方法!
    SQL 基础语法(创建表空间、用户、并授予权限、数据的增删改查) (学习笔记)
    北大青鸟第一单元项目 (小说管理系统)
  • 原文地址:https://www.cnblogs.com/qiuwuji/p/10645902.html
Copyright © 2011-2022 走看看