结对编程

1.码云地址:

https://gitee.com/wangqiwen/SoftwareEngineering.git

结对小伙伴的学号:201621123043

博客地址:https://www.cnblogs.com/wengmq/p/9751142.html

码云地址:https://gitee.com/wengmingqiang/PersonalProject-C

2.PSP表格

PSP2.1 个人开发流程 预估耗费时间(分钟) 实际耗费时间(分钟)
Planning 计划 30 35
· Estimate 明确需求和其他相关因素,估计每个阶段的时间成本 20 15
· Development 开发 240 250
· Analysis 需求分析 (包括学习新技术) 30 25
· Design Spec 生成设计文档 15 20
· Design Review 设计复审 10 15
· Coding Standard 代码规范 10
· Design 具体设计 50 80
· Coding 具体编码 100 120
· Code Review 代码复审 40 20
· Test 测试 (自我测试,修改代码,提交修改) 150
Reporting 报告 80 90
· 测试报告 30 30
· 计算工作量 20 20
· 并提出过程改进计划 30 40

3.解题思路描述:

我主要的任务是将代码中的各个功能增加。
词组统计:能统计文件夹中指定长度的词组的词频
输入查找词频,就是只有词频为n的单词(不确定自己是不是审题错误,不过错误的话修改起来也很容易)

自定义输出:能输出用户指定的前n多的单词与其数量(前n种单词)

结果:

则将输出信息输出到文件 output.txt中。

输入不同数值:
词频为4数量为6

数量为10

词频为10 数量为1(不存在长度为10的连续字符所以值为0)

4.设计过程

1、在原来的代码上加一些东西。定义一个choice的变量,然后输入的词频为choice。再此进行函数操作,具体在代码部分说明。
对于定义输出的n种单词只要在输出时设置一个i 每次i+1知道等于n为止就可以。

5.代码说明,展示出项目关键代码,并解释思路与注释说明。

结果图片:

对于词频的判断与输出。
判断:

 public static Map<String, Integer> getWordFreq(String text,int choice) // 统计单词词频(单词:以4个英文字母开头,跟上字母数字符号,单词以分隔符分割,不区分大小写。)
   {
	   HashMap<String, Integer> wordFreq = new HashMap<String, Integer>();
	 
	 String content = text.replace('\r', ' ');
	 content = text.replace('\b', ' ');
	 content = text.replace('\n', ' ');
	 
	String words []= content.split(" ");
	 for(int i= 0; i<words.length;i++)
	 {
		 if (words[i].length()==choice){
		 int j = 0;
		 for(  j =0;j<choice;j++)
		 { 
			 char c =words[i].charAt(j);
			 if(!((c>='A'&& c<='Z')||(c>='a'&& c<='z')))
				 break;
		 }
		
		 if(j==choice)
		 {
			 words[i] = words[i].trim().toLowerCase();  // 将字符串转化为小写
             if (wordFreq.get(words[i]) == null) 
                 { // 判断之前Map中是否出现过该字符串
                     wordFreq.put(words[i], 1);
                 } 
             else
                 wordFreq.put(words[i], wordFreq.get(words[i]) + 1); 
		 }}
	 }
     return wordFreq;
 }}

输出:

   Map<String, Integer> wordFreq = deal.getWordFreq(content,choice);
	   /*遍历map*/
	   for (Map.Entry<String, Integer> entry : wordFreq.entrySet()){
           if(i<num){ 
	  	String key = entry.getKey();
        Integer value = entry.getValue();
        System.out.println("单词:" + key + ", 数量:" + value);
        i=i+1;
        byte[] temp=new byte[80];
        temp=key.getBytes();
        fos.write(temp);//将单词输入文件2.txt
        }

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

我觉得总体来说1+1一定是大于2的,因为两个人可以互相监督,互相协作,碰到的问题也有人可以聊,不会一个人做到一半就想着看别人的代码,另外,两个人对于分工以及各个人的工作都能有效率上的提高,每个人有各个的分工,可以减轻单个人的代码负担。

posted @ 2018-10-08 19:38  鸡肉味嘎嘣脆  阅读(125)  评论(1编辑  收藏  举报