结对作业

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,一经查实,立即删除!

相关文章

spring boot druid 监控没有sql记录

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

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

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

FusionInsight LibrA V100R002C80SPC300安装指南

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

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

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

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

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

手把手教你可复用的SSO组件设计(设计篇)

周末陪女朋友去了&#xff0c;没写&#xff0c;告罪&#xff0c;上班后急忙补上。 这里说到了可复用得设计&#xff0c;所谓可复用就是指的&#xff0c;引入Dll&#xff0c;改改配置就能使用&#xff0c;而不是打开源代码东改改西改改再来调试调试最后OK。我们这里尽量提高抽象…

Anaconda+vscode+pytorch环境搭建

1、安装Anaconda Anaconda指的是一个开源的Python发行版本&#xff0c;其包含了conda、Python等180多个科学包及其依赖项。在官网上下载https://www.anaconda.com/distribution/&#xff0c;因为服务器在国外会很慢&#xff0c;建议从清华镜像https://mirrors.tuna.tsinghua.ed…

git learn

$ git config --global user.name "Your Name" $ git config --global user.email "emailexample.com"因为Git是分布式版本控制系统&#xff0c;所以&#xff0c;每个机器都必须自报家门&#xff1a;你的名字和Email地址。你也许会担心&#xff0c;如果有人…

AngularJS的学习--$on、$emit和$broadcast的使用

来源&#xff1a;http://www.cnblogs.com/CraryPrimitiveMan/p/3679552.html AngularJS中的作用域有一个非常有层次和嵌套分明的结构。其中它们都有一个主要的$rootScope(也就说对应的Angular应用或者ng-app)&#xff0c;然后其他所有的作用域部分都是继承自这个$rootScope的&a…

17、【 商品管理模块开发】——后台商品图片的springmvc和富文本上传以及ftp文件服务器的开发...

1、FTP文件服务器的搭建&#xff1a; 软件下载&#xff1a;ftpserver&#xff1b; image.png浏览器访问&#xff1a;ftp://127.0.0.1/image.png点击任意一个文件&#xff0c;就可以看到我们图片啦&#xff0c;前提是前面指定的目录里面有图片文件~ image.png2、接口编写&#x…

我们常说……

从过完元旦到现在&#xff0c;乖乖在公司办公的时间很少&#xff0c;好多时候都是在外地&#xff0c;或者是在路上、车上。有n多次&#xff0c;乖乖一天至少坐6个小时的车&#xff0c;回到家里都是带着一身的疲惫&#xff0c;虽然他并不表现出来&#xff0c;但是因为长时间坐车…

那些油管上高质量的学习编程的频道 之一

国内确实有很多不错的学习编程的网站或者个人博客&#xff0c;但是对于初学者&#xff0c;往往更希望获得那种引导性的教学&#xff1a;即一步一步的教你跟着操作的教学。这种教学最好的方式当然就是视频了。毕竟在Apple Podcast上超火爆的斯坦福教授iOS开发的课程也是这种形式…

SQL Server 2005 Express附加(Attach)的数据库为“只读”的解决方法

我的操作系统为Windows 2003 Server , 文件系统NTFS, 在SQL Server 2005 Express 上附加(Attach)从另外一台电脑Copy过来的数据库后&#xff0c;数据库为“只读”。如下图&#xff1a; 解决办法&#xff1a; 打开 SQL Server Configuration Manager, 打开SQL Server SQLEXPRESS…

[导入]blog年终小结

1. 2006-11-30 注册了本域名thws.cn&#xff0c;喜欢的thw.com被注册了&#xff0c;只好退而就其次了&#xff1b;2. 12-20在alexa上登陆站点&#xff0c;综合排名从起初490多万上升到现在的590327,下期566,880&#xff1b;3. 2007-1-11适逢google PR更新&#xff0c;PR值从0变…

Maven学习笔记(2) --mvn archetype:create 说明

前面一篇相对比较简单。 看完前面的内容我们会来到实战部分&#xff0c;也就是创建一个简单的项目 1 mvn archetype:create -DgroupIdorg.sonatype.mavenbook.ch03 \ 2 -DartifactIdsimple \ 3 -DpackageNameorg.sonatype.mavenbook 于是我们得到了步入Maven领域的第一份打击 真…

单点登录(sso)入门

单点登录的英文名叫做Single Sign On&#xff0c;简称SSO。 在以前&#xff0c;一般我们就单系统&#xff0c;所有的功能都在同一个系统上。 后来&#xff0c;我们为了合理利用资源和降低耦合性&#xff0c;于是把单系统拆分成多个子系统。 比如阿里系的淘宝和天猫&#xff0c;…

Cocopods的升级错误解决

2019独角兽企业重金招聘Python工程师标准>>> 写在前面&#xff1a; 这篇笔记的由来&#xff0c;是因为在这个周五下班后想起了之前 GitHub 上一个关于 iOS Charts 的 demo 仍处于未完待续的状态。便想着完成了它&#xff0c;遂打开了该工程&#xff0c;开始用 pod 更…

XML 命名空间以及它们如何影响 XPath 和 XSLT (Extreme XML)

Dare Obasanjo Microsoft Corporation 2002 年 5 月 20 日 本文是有望长期发表的系列文章的第一篇&#xff0c;这些文章专门阐释由 Microsoft 支持的 W3C XML 技术的更微妙的内容。尽管 XML 的核心仍相当简单&#xff0c;但是围绕它的技术已经变得日益复杂&#xff0c;而且其中…

走马观花:Visual Studio Code Name Orcas Mar07CTP /体验DLINQ

不知道什么叫“Orcas”&#xff1f;简单说应该就是下一版本的Visual Studio 吧。现在atlas&#xff0c;LINQ&#xff0c;WF之类东西&#xff0c;对于VS2005是单独安装的&#xff0c;Orcas应该是全内置吧。还有很多功能的增强&#xff0c;可以参考英文说明。闲话不说&#xff0c…

[导入]C#实现Des加密和解密

文章来源:http://blog.csdn.net/21aspnet/archive/2007/03/24/1540018.aspx 转载于:https://www.cnblogs.com/zhaoxiaoyang2/archive/2007/03/25/816385.html