WC 扩展

WordCount 扩展

===========

注:

(1) 合作者:201631062216,201631062316
(2) 代码Gitee地址:https://gitee.com/ruanpeng2625/test/tree/master/WordCount
(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的结对扩展,体会到合作能让项目更好的完成,以及审查他人代码的经验。

posted @ 2018-10-21 22:50  那位大人  阅读(103)  评论(0编辑  收藏  举报