编程作业

这个作业属于哪个课程 https://edu.cnblogs.com/campus/zswxy/computer-science-class2-2018/
这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/computer-science-class2-2018/homework/11878
这个作业的目标 学会使用Gitee
作业正文 github初始用,编码规范
其他参考文献 Java开发实战经典

码云地址:https://gitee.com/tzmad/project-c

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

解题思路:
定义四个类来实现:(charsNum)统计文件的字符数,(wordsNum)统计文件的单词总数,(linesNum)统计文件的有效行数,( wordsMap)统计文件中各单词的出现次数。
用split()方法来分割单词,并通过正则表达式将内容分成单词数组并检验单词的合法性,调用map函数来实现单词频率的计算。

代码规范的链接:https://gitee.com/tzmad/project-java/blob/master/20188446/codestyle.md

定义charsnum,wordsnum,linesnum,wordsmap四个类来分别实现题目要求的四个功能块。
private int charsNum;/字符数/
private int wordsNum;/单词总数/
private int linesNum;/有效行数/
private Map<String, Integer> wordsMap;/存放单词与次数/

统计频率最高的10个单词数:用for语句判断是否已经有10个频率最高的单词,没有就加1。
for(Map.Entry<String, Integer> map : topWords){/统计频率最高的10个单词/
if (top < 10){
writer.write(map.getKey() + ": " + map.getValue() + " ");
top++;
}

统计单词总数:使用split来分割字符串,用正则表达式来判断单词是否符合题目要求。
public void countWordsNum(){/统计单词总数/
wordsNum = 0;
wordsMap = new HashMap<String,Integer>();
String word;
Integer num;
String[] words = content.split("[^a-zA-Z0-9]+");
for (int i = 0; i < words.length; i++){
if (words[i].matches("[a-zA-Z]{4,}[a-zA-Z0-9]*")) {
wordsNum++;
word = words[i].toLowerCase();
if (wordsMap.containsKey(word)){
num = wordsMap.get(word);
num++;
wordsMap.put(word, num);
}
else {
wordsMap.put(word, 1);
}
}
}
}
代码测试截图:



心路历程与收获:
这次作业让我学会了如何使用码云的一些功能,养成了如何去写一个工程的习惯,复习了以前学习的Java的知识点,还知道了map函数的使用方法,也知道了遇到难题如何去请教别人以及怎样解决这个难题的,其次还知道了完成一个项目是需要很多人团结协作的,而不是一个人单打独斗逞英雄的时候,一起交流能够更快的完成制定的目标。

原文地址:https://www.cnblogs.com/tzmad/p/14606967.html