WC 扩展

#WordCount 扩展

注:

(1) 合作者:201631062216,201631062316
(2) 代码Gitee地址:
(3) 本次作业地址:https://edu.cnblogs.com/campus/xnsy/2018softwaretest2398/homework/2187

代码互审情况

由于在最初的时候我们就是一起用的是基础C语言写的,在部分函数上是基本一致的。在互相比对审查后,可以很容易修改合并互相的代码
然后,我们一起对扩展功能进行编写。

扩展功能

要求实现功能:
 wc.exe -s            //递归处理目录下符合条件的文件

 wc.exe -a file.c     //返回更复杂的数据(代码行 / 空行 / 注释行)

 wc.exe -e stopList.txt  // 停用词表,统计文件单词总数时,不统计该表中的单词

 [file_name]: 文件或目录名,可以处理一般通配符。

代码为:

注释行

int count_noteL(char*filename_counted)
{
    FILE*fp=fopen(filename_counted,"r");
    char buffer[100];
    int i=0;
    char c=0;
    char cl=0;
    int bufferLen;
    int noteL=0;
    int isLastNote=0;
    while(fgets(buffer,100,fp)!=NULL)
    {
        bufferLen=strlen(buffer);
        for(i=0;i<bufferLen;i++)
        {
            c=buffer[i];
            if(c=='/')
            {
                if(isLastNote==1)
                {
                    noteL++;
                }
                isLastNote=1;
            }
        }
        isLastNote=0;
    }
    fclose(fp);
    printf("%s, 注释行: %d\n",filename_counted,noteL);
    return noteL;
}

空行

int count_blankL(char*filename_counted)
{
    FILE*fp=fopen(filename_counted,"r");
    char buffer[100];
    int i=0;
    char c=0;
    char cl=0;
    int bufferLen;
    int charNum=0;
    int blankL=0;
    while(fgets(buffer,100,fp)!=NULL)
    {
        bufferLen=strlen(buffer);
        for(i=0;i<bufferLen;i++)
        {
            c=buffer[i];
            if(c!=' '&&c!='\t'&&c!='\n'&&c!='\r')
            {
                charNum++;
                cl=c;
            }
        }
        if(charNum==0)
        {
            blankL++;
        }
        if(charNum==1&&(cl=='{'||cl=='}'))
        {
            blankL++;
        }
    }
    fclose(fp);
    printf("%s, 空行数: %d\n",filename_counted,blankL);
    return blankL;
}

单元测试和运行效果




总结

通过本次对wordcount的结对扩展,体会到合作能让项目更好的完成,以及审查他人代码的经验。

猜你喜欢

转载自www.cnblogs.com/sunlong1233/p/9827507.html
wc