zoukankan      html  css  js  c++  java
  • 202103226-1 编程作业

    课程科目 软件工程
    作业要求 202103226-1 编程作业
    作业目标 熟悉Github,完成编程任务
    学号 20188415

    1、Github项目地址

    2、PSP表格

    PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟)
    Planning 计划 30 40
    • Estimate • 估计这个任务需要多少时间 20 30
    Development 开发 410 500
    • Analysis • 需求分析 (包括学习新技术) 70 90
    • Design Spec • 生成设计文档 15 20
    • Design Review • 设计复审 20 25
    • Coding Standard • 代码规范 (为目前的开发制定合适的规范) 10 25
    • Design • 具体设计 50 80
    • Coding • 具体编码 400 350
    • Code Review • 代码复审 20 30
    • Test • 测试(自我测试,修改代码,提交修改) 60 90
    Reporting 报告 45 50
    • Test Repor • 测试报告 10 30
    • Size Measurement • 计算工作量 20 30
    • Postmortem & Process Improvement Plan • 事后总结, 并提出过程改进计划 30 35
    合计 1210 1750

    3、解题思路描述

    由于自己的Java知识学习不到位,所以题目对我来说还是有点难度,我的解题思路是这样的,实现从文件中读入英文文章,统计单词个数,并按值从小到大输出,存储过滤后单词的列表,过滤出只含有字母的词语,存储单词计数信息,key值为单词,value为单词数,进行单词的词频统计,然后按值进行排序,按value的大小进行排序,最后进行输出。

    4、代码规范制定链接

    5、设计与实现过程

    • 读取文件内容,存储过滤后单词的列表,过滤出只含有字母的词语,去除长度为0的行
    public static void main(String[] args) throws Exception {  
        	
        	String number = null;
        	List<String> list1 = new ArrayList<String>();                     
            BufferedReader br = new BufferedReader(new FileReader("E:/oldman.txt"));  
            
    		while((number = br.readLine()) != null){  
                String[] count = number.split("[^a-zA-Z]");              
                for (String word : count) {  
                    if(word.length() != 0) {                                      
                        list1.add(word);  
                    }  
                }  
            }  
    
    • 存储单词计数信息,key值为单词,value为单词数,单词的词频统计
    Map<String, Integer> wordsCount = new TreeMap<String,Integer>();
    
    • 按value的大小进行排序
    for (String li : list1) {  
                if(wordsCount.get(li) != null){  
                    wordsCount.put(li,wordsCount.get(li) + 1);  
                }
                else{  
                    wordsCount.put(li,1);  
                }  
            }       
            SortMap(wordsCount);                                               
        } 
    
    • 按Value的大小进行输出
    public static void SortMap(Map<String,Integer> oldmap){  
              
            ArrayList<Map.Entry<String,Integer>> list = new ArrayList<Map.Entry<String,Integer>>(oldmap.entrySet());  
              
            Collections.sort(list,new Comparator<Map.Entry<String,Integer>>(){  
                @Override  
                public int compare(Entry<String, Integer> o1, Entry<String, Integer> o2) {  
                    return o2.getValue() - o1.getValue();                      
                }  
            });  
              
            for(int i = 0;i<list.size();i++){  
                System.out.println(list.get(i).getKey()+ ": " +list.get(i).getValue());  
            }     
        }    
    

    6、性能改进

    7、单元测试

    8、异常处理说明

    9、心路历程与收获

    做完这次作业发现自己还是有很多不会,对java掌握的还是不是很熟练,接下来还是要加强平时的代码练习,

  • 相关阅读:
    如何在spring框架中解决多数据源的问题
    Spring动态配置多数据源
    SSH配置动态数据源
    Js操作Select大全
    SSH自定义分页标签
    兼容ie[6-9]、火狐、Chrome、opera、maxthon3、360浏览器的js本地图片预览
    Hibernate关联关系配置(一对多、一对一和多对多)
    SSH整合配置二级缓存
    CKEditor实现图片上传
    ckeditor的详细配置
  • 原文地址:https://www.cnblogs.com/Emotional/p/14608660.html
Copyright © 2011-2022 走看看