结对编程(第六小组)

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

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

猜你喜欢

转载自www.cnblogs.com/xueyuanaichiyu/p/9285945.html