结对作业

1、要求地址

  • 博客要求地址:https://www.cnblogs.com/happyzm/p/9626779.html
  • Fork码云项目地址:https://gitee.com/YeHei/PairProject-Java/tree/master
  • 结对伙伴:余硕铭 博客地址:https://gitee.com/hellolv/PersonalProject-Java

2.PSP表格

PSP2.1个人开发流程预估耗费时间(分钟)实际耗费时间(分钟)
Planning计划3030
· Estimate明确需求和其他相关因素,估计每个阶段的时间成本3050
Development开发550650
· Analysis需求分析 (包括学习新技术)5060
· Design Spec生成设计文档2030
· Design Review设计复审4050
· Coding Standard代码规范1015
· Design具体设计4585
· Coding具体编码100110
· Code Review代码复审3025
· Test测试(自我测试,修改代码,提交修改)60240
Reporting报告3040
·测试报告1515
·计算工作量510
·并提出过程改进计划2015

3.基本思路:

根据题目的要求,首先需要在对已经建好或导入的文档进行读取,这里就需要有文件读取类,对文件中的所有进行读取。

文件读取之后,将相应的字符、单词、行数等进行计数,并在判断是否为单词后,利用Map实现对单词的词频统计,根据题目中要求进行计算。

对统计出来的数据输出。

4.设计实现过程。

代码组织:

1.WordCount类:对字符数、单词数、行数等进行统计。

  • countChar();统计字符数
  • countWords();统计单词数
  • countLine();统计行数
  • WordFre();实现单词词频统计并出现次数从高到低排列

2.FileRead类:导入需要WordCount的文件,进行文件读取等操作

  • FileOutput();文件读取
  • FileInput();文件写入

3.Main类:实现数据的输出和文件路径的输入,并将WordCount类和FileInput类调用,实现功能。:

5、主要函数

  • countChar() : 统计字符数量
public static int countChar(String str) { //统计字符数量 char s; int CharSum=0; for (int i = 0; i < str.length(); i++) { s=str.charAt(i); if (s>=32 && s<=126 || s=='\r' || s=='\n' || s=='\t') { CharSum++; } } return CharSum; }
  • countWords():统计单词数量
    public  int countWords(String[] str) { //统计单词数量String str1=text;int WordsSum=0; String[] words=str1.split("\\s*[^0-9a-zA-Z]"); //调用正则表达式中spilt()方法来切分字段,将字符串中的单词提取出来 for(String s:words) { if(s.matches("[a-zA-Z{4,}[z-zA-Z0-0]*")) { //调用matchs方法来判断这个字符串是否在给定的正则表达式匹配 WordsSum++; } } return WordsSum; } 
  • countLine :统计行数
    public  static int countLine(String[] str) { //统计行数 int LineSum=0; for (int i = 0; i < str.length; i++) { while(str[i]!=null) { if(str[i].trim().length()==0 || str[i].trim().equals("")) { continue; //调用trim()方法将头尾空格去掉,来判断行数 } LineSum++; } } return LineSum; }
  • WordFre :计算全文的单词词频:
    public List<Entry<String, Integer>> WordFre(){WordFre= new HashMap<String, Integer>();String t = text; String[] words = t.split("\\s"); // 将字符串进行分割 for (int i = 0; i < words.length; i++) { if (isWord(words[i])) { // 判断是否为单词,调用isWord函数 words[i] = words[i].trim().toLowerCase();//将大写字母变成小写字母 if (WordFre.get(words[i]) == null) { // 判断之前Map中是否出现过该字符串 WordFre.put(words[i], 1);// 如果为新单词,放入map中作为key值,value设为1 } else WordFre.put(words[i], WordFre.get(words[i]) + 1);//如果出现过的单词则将value值+1 } }
  • 将词频排序用list储存:
List<Map.Entry<String, Integer>> list = new ArrayList<Map.Entry<String, Integer>>(WordFre.entrySet());//用list列表储存键值 list.sort(new Comparator<Map.Entry<String, Integer>>() {//对list排序 @Override public int compare(Entry<String, Integer> o1, Entry<String, Integer> o2) { if (o1.getValue() == o2.getValue()) {//判断词频是否相等 return o1.getKey().compareTo(o2.getKey());//字典序排列 } return o2.getValue() - o1.getValue();//降序排列 } }); return list;

6、结合在构建之法中学习到的相关内容与结对项目的实践经历,描述结对的感受,是否1+1>2?

  • 实验感受:在这次实验中,感觉并有完全实现1+1大于2,由于时间间隔在国庆,所以没有较长时间的在一起讨论项目,对于gui界面没有完善好

转载于:https://www.cnblogs.com/ysm0301/p/9751621.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/277134.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

leetcode(34)在排序数组中查找元素的第一个和最后一个位置

在排序数组中查找元素的第一个和最后一个位置 class Solution {public int[] searchRange(int[] nums, int target) {int len nums.length;int start 0;int end len - 1;int mid 0;int temp 0;while(start<end){mid (startend)/2;if(nums[mid]>target){end mid - …

缩略图不变形

Public Shared Sub MakeSmallImg(ByVal postFile As System.Web.HttpPostedFile, ByVal saveImg As String, ByVal Width As System.Double, ByVal Height As System.Double) Dim originalFilename As String postFile.FileName 生成的高质量图片名称 Dim strGo…

spring boot druid 监控没有sql记录

2019独角兽企业重金招聘Python工程师标准>>> 1 之前配置了 druid的监控 但是 调用查询后 监控没有记录&#xff0c;查了下原因 发现是因为依赖打入错误 <dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-starte…

noip2014联合权值

http://codevs.cn/problem/3728/ 我们要做的是计算距离为2的有序对权值之和及最大值&#xff0c;最大值好弄&#xff0c;但一一枚举是不可行的&#xff0c;因为n<200000&#xff0c;我们可以预处理一下&#xff0c;每次读入边的时候我们把与当前顶点有边相连的所有点的权值中…

11月30在spring mvc中使用Validator框架和文件上传

首先回顾了spring mvc中的表单验证和业务逻辑校验失败后&#xff0c;回到表单页面中显示错误信息的整个内部运行流程。表单校验出错后回到表单注册页面是由默认的SimpleFormController的processFormSubmission方法自动完成的&#xff0c;王涛忘记这一点&#xff0c;他们覆盖了p…

MapReduce其他功能

1&#xff0e; 计数器应用计数器是用来记录job的执行进度和状态的。MapReduce 计数器&#xff08;Counter&#xff09;为我们提供一个窗口&#xff0c;用于观察 MapReduce Job 运行期的各种细节数据。对MapReduce性能调优很有帮助&#xff0c;MapReduce性能优化的评估大部分都是…

用树莓派和PC机搭建多节点私人以太坊网络

发现国内很少有树莓派和电脑组建的私人区块链&#xff0c;所以在自己做实验的过程中记录下来分享给大家,第一次写博客&#xff0c;哈哈 以太坊私有链搭建&#xff08;电脑&#xff0c;树莓派端都适用&#xff09; &#xff08;1&#xff09;新建一个文件夹&#xff0c;例如myc…

CentOS6 YUM安装MariaDB10.3.10

1、先新增加一个MariaDB.repo vi /etc/yum.repos.d/MariaDB.repo[mariadb] name MariaDB baseurl http://mirrors.ustc.edu.cn/mariadb/yum/10.3/centos6-amd64/ gpgkey http://mirrors.ustc.edu.cn/mariadb/yum/RPM-GPG-KEY-MariaDB gpgcheck1 官网地址特别慢&#xff0c;所…

统一配置数据库连接符的方法

统一配置数据库连接符的方法 统一配置数据库的方法一.Web.config(应用方便,安全性差)1.Web.config文件<appSettings><add key"strconn" value"serverlocalhost;databasedlcusmgt;uidsa;pwd"/></appSettings>2.调用文件dim strconn as st…

JIRA的text编辑模式

无意中看到了开发经理描述的一个缺陷&#xff0c;descrption里添加了图片&#xff0c;添加了代码&#xff0c;格式非常规整 尝试了图片是可以插入的&#xff0c;但是代码不知道怎么插入的&#xff0c;于是问了下他&#xff0c;当然非常详细的截图抛过来了&#xff0c;告诉我详细…

FusionInsight LibrA V100R002C80SPC300安装指南

FusionInsight LibrA是企业级的大规模并行处理关系型数据库。FusionInsight LibrA采用MPP(Massive Parallel Processing)架构&#xff0c;支持行存储与列存储&#xff0c;提供PB(Petabyte&#xff0c;2的50次方字节)级别数据量的处理能力。FusionInsight LibrA在核心技术上跟传…

女人跳槽:最重要的是你的独立,你的快乐

工作并非证明女人活着的唯一证据。尤其是眼下这一个工作。或者是因为追求更好&#xff0c;或者是因为放弃更坏。一份工作如同一段感情&#xff0c;你不要它&#xff0c;说明它不够好到留住你。没有婚姻好过坏的婚姻&#xff0c;没有工作好过让你天天流泪的工作。如果实在不满意…

云托管,边缘物理计算托管物理计算,你所需要了解的……

随着业务发展&#xff0c;传统数据中心建设复杂性越来越高&#xff0c;基建的管理、设备的繁杂、人力成本的提升&#xff0c;是否让你的运维成本越来越高&#xff1f;企业生产效率却越来越低&#xff1f; 业务快速发展&#xff0c;设备采购周期冗长&#xff0c;大量采购造成CAP…

闲话WPF之十(Dependency属性 [2] )

在前一个Post中&#xff0c;曾提到将要重点研究Dependency属性的三个方面&#xff1a;变化通知&#xff1b;属性值的继承&#xff1b;支持多个提供对象。下面&#xff0c;我将分别就这三个内容进行简单地说明。【变化通知】 在任何时候&#xff0c;只要Dependency属性的值发生了…

1037 Magic Coupon

题目链接&#xff1a;https://pintia.cn/problem-sets/994805342720868352/problems/994805451374313472 这个题目有毒&#xff0c;开始我的while判断是使用的相乘大于0这种判断方式&#xff0c;但是最后一个案例始终过不了&#xff0c;可能是因为越界了&#xff0c;但是越界的…

利用解构赋值获取后端特定字段数据

很多时候&#xff0c;后端接口传过来的数据并不正好是我们需要的。有些场景下会有很多不需要的字段。 这时如果采用单个赋值的方法赋值数据无疑会比较麻烦。解决的办法就是利用解构赋值。 mounted(){let objs {name:test,sex:nan,caree:kaifa,height:180,country:country};({na…

理解ORACLE数据库字符集

一&#xff0e;引言 ORACLE数据库字符集&#xff0c;即Oracle全球化支持(Globalization Support)&#xff0c;或即国家语言支持&#xff08;NLS&#xff09;其作用是用本国语言和格式来存储、处理和检索数据。利用全球化支持&#xff0c;ORACLE为用户提供自己熟悉的数据库母语环…

软件设计师09-面向对象-用例图

感谢任铄老师滴视频 用例图 1&#xff09;描述一组用例、参与者及它们之间的关系 2&#xff09;用例模型用于需求分析阶段 3&#xff09;关系&#xff08;依赖关系&#xff09;&#xff1a;1&#xff09;包含&#xff08;include&#xff09; 1&#xff09;两个以上用例具有共同…

利用正则表达式截取特定字符中间字符

有如下场景&#xff0c;已知一个长字符串&#xff0c;需要获取指定字符串之间的字符。 // 已知字符串 var str body908888huhuc实测实《hu需要body和《hu之间的字符串。定义正则表达式。 var reg /(?<body).(?《hu)/;上述正则表达式利用了&#xff1a;获取指定字符串之后…

资源的积累

最近整理机器里边的各种文档&#xff0c;进行异地备份&#xff0c;整理后&#xff0c;看了看尺寸&#xff0c;天呀&#xff0c;竟然有855M&#xff0c;主要是各种文档、图片和代码等非2进制的东东。我按照日期整理了一下&#xff0c;最久的大概是在2003年&#xff0c;公司是在2…