zoukankan      html  css  js  c++  java
  • 结对编程(第六小组)

    1.github地址:

    https://github.com/417739347/PairProject2018

    2.PSP表格:

    3.解题思路描述:

    (1)首先需要将指定的文件中的内容读取出来,我们采用的是FILE指针的方法。
    (2)然后就是按照需求,基本上是每个要求定义了一个函数来满足相应要求。
    (3)比较麻烦的是单词的判断,我们分了三种情况讨论:前一个字符是分隔符,当前的为分隔符时,不做处理;前一个字符是分隔符,当前为数字时,继续往后读,直到再次读到分隔符,则跳出;前一个字符是分隔符,当前为字母时,记录连续的字母个数,当个数大于等于4时,就认为找到一个单词并且将其记录到string中,为记录频率准备。

    4.设计实现过程:定义了

    int countChar(FILE *inFile);//统计字符个数
    int countWord(FILE *file);//统计单词个数
    int countLine(FILE *file);//统计行数
    
    三个函数来实现行数,字符个数,单词个数的识别。目前还没有写成一个类。
    

    采用FILE指针来读取文件,当对指针一次操作完成后,使用rewind()函数将指针回到文件的开头。

    5.记录在改进程序性能上所花费的时间,描述你改进的思路,并展示一张性能分析图(由VS 2017的性能分析工具自动生成),并展示你程序中消耗最大的函数。

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

    int countWord(FILE *file)//统计单词个数
    {
    int res = 0;
    int cur = 0;
    bool flag = true;
    
    char c;
    char last = ' ';
    while (last!=EOF) {
    	c = fgetc(file);
    	if (isDigit(c) && isBreak(last)) {//分隔符+数字
    
    		while (true) {
    			c = fgetc(file);
    			if (c== EOF || isBreak(c)) {
    				break;
    			}
    				
    		}
    	}
    	else {
    		if (isBreak(c) && isBreak(last)) {//分隔符+分隔符
    		}
    		else
    			if(isLetter(c) && isBreak(last)) {//分隔符+字母
    				cur = 1;
    				flag = true;
    				while (true) {
    					c = fgetc(file);
    					if (flag && isLetter(c) && cur < 4) //连续的字母。cur++
    						cur++;
    					else
    						if (flag && cur == 4) { //连续四个字母,则为单词,res++
    							flag = false;
    							res++;
    						}
    						else
    							if (flag && !isLetter(c))
    								flag = false;
    
    					if (c==EOF || isBreak(c))
    						break;
    				}
    			}
    		}
    	last = c; //last记录前一个字符的值
    }
    return res;
    }
    

    运行结果:

    7.结合在构建之法中学习到的相关内容与结对项目的实践经历,撰写解决项目的心路历程与收获。

    通过今天一天的学习,和下午的结对编程训练,让我们体会到了合作的重要性,两人协作构建,编写,测试代码;让软件开发的效率高了很多。写之前先将代码的架构讨论清楚,需要哪些函数,方法,需要定义哪些变量等,这样在写代码的时候思路就会很清晰。一人写,一人看,很容易就检差出了一些笔误,逻辑漏洞等问题,大大提高了代码的正确性和稳定性。

  • 相关阅读:
    【技巧总结】公开漏洞学习
    【 Keepalived 】Nginx or Http 主-主模式
    【 Keepalived 】Nginx or Http 主-备模式
    【 转 】Keepalived工作原理
    【 总结 】crontab 使用脚本及直接获取HTTP状态码
    【 总结 】linux中test命令详解
    【 总结 】Tcp Keepalive 和 HTTP Keepalive 详解
    【 Linux 】I/O工作模型及Web服务器原理
    【 Ngnix 】配置路径转发至后端Apache多台虚拟主机
    【 Linux】脚本导入格式
  • 原文地址:https://www.cnblogs.com/xueyuanaichiyu/p/9285945.html
Copyright © 2011-2022 走看看