第三次作业(WC扩展)

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

WordCount作业思路

使用c语言编写wc扩展功能,并进行相关测试

程序设计实现过程

代码说明

1.统计空行

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

2.统计注释行

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

3.递归遍历文件

int FileSearch(const char *dir)
{
    long handle;
    struct _finddata_t fileinfo;
    char dirNew[500];
    strcpy(dirNew, dir);
    strcat(dirNew,"\\*.*");
if ((handle = _findfirst(dirNew, &fileinfo)) == -1L)
{
    printf("Failed to findfrist file");
    return -1;
}
    while (_findnext(handle,&fileinfo)==0)
    {
        if (fileinfo.attrib & _A_SUBDIR)
        {
            if (strcmp(fileinfo.name, ".") == 0 || strcmp(fileinfo.name, "..") == 0)
                continue;
            strcpy(dirNew, dir);
            strcat(dirNew, "\\");
            strcat(dirNew, fileinfo.name);
            FileSearch(dirNew);
        }
        else
        {

            if (++i < Max&&strstr(fileinfo.name,".c"))//将路径入栈
            {
                strcpy(data[i].path , dir);
                strcat(data[i].path, "\\");
                strcat(data[i].path, fileinfo.name);
                strcpy(data[i].filename_matched,fileinfo.name);
                data[i].size = fileinfo.size;
            }
        }
    }
    _findclose(handle);
}

4.对遍历符合条件的文件进行相关操作

void op_s(Data data[],char*filename_result)
{
    int totalC=0;
    int totalW=0;
    int totalL=0;
    printf("ok");
    while (i > -1)
    {
            printf("okin");
        totalC=countC(data[i].path);
        output(filename_result,data[i].filename_matched,"字符数",totalC);
        totalW=countW(data[i].path);
        output(filename_result,data[i].filename_matched,"单词数",totalC);
        totalL=countL(data[i].path);
        output(filename_result,data[i].filename_matched,"总行数",totalC);
    i--;
    }
}

测试用例

1.

2.第三次作业(WC扩展)_第1张图片

3.第三次作业(WC扩展)_第2张图片

测试效果

第三次作业(WC扩展)_第3张图片

总结

通过本次结对编程,暴露出自己很多问题,比如代码格式、命名不规范给结对编程的过程带来很多麻烦,同时此次也是自己首次体验结对编程,对这种模式有了更多的了解。

参考文献

https://blog.csdn.net/gang9881/article/details/78504407
https://www.cnblogs.com/collectionne/p/6815924.html

你可能感兴趣的:(第三次作业(WC扩展))