zoukankan      html  css  js  c++  java
  • 团队编程作业

    第一次团队编程


    GitHub地址:https://github.com/AllanIverson/wordCount


    分工与设计

    在进行一番讨论后,我们讨论了需要制定的几个功能,以及相应的分工
    具体分工情况如下:

    姓名 工作
    吴雅虹 输入函数
    周丽榕 统计单词数
    柯禧帆 统计词频
    林斌祥 词组单词有效性测试
    刘英杰 统计字符数
    李承泽 单词比较,大小写转换
    叶琦熠 单词排序
    张昊 主函数,输出函数

    数据经过输入函数的处理以后,进入统计单词数,词频,字符数以及有效性的判断,然后进行单词的比较排序,最后按照相应的顺序输出


    代码部分

    输入函数

    主要思路为将文件中数据按行分割至一个字符串数组中,每一行为一个字符串作为一个数组元素,直至文件结尾结束,主要实现过程如下:

    #include<iostream>
    #include<fstream> 
    #include<string.h>
    using namespace std;
    string str[50];
    void input()
    {
        int i=0;
        while(!cin.eof())//文件未结束
        {	
            getline(cin,str[i]);//将数据分割成行,存入字符串数组中(包含空格)
    	i++; 
        }	
    }
    

    统计单词

    主要思路就是将字符串数组中的每个字符串进行单词个数统计,再用循环语句累加;对于每个字符串现将他们以空格分割,在对单一的字符串进行判别看是否符合单词格式,符合加一,主要实现过程如下:

    #include<iostream>
    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    #include<ctype.h>
    using namespace std;
    int word_num(string str[],int n)
    {
        int count; 
    	for(int i=0;i<n;i++)
    	{
    	    int num=0;
    		string s=str[i];int j=0;
    		char ch[5000];
    		strcpy(ch,s.c_str());
    		char *temp=strtok(ch," ");//将整行字符串以空格进行分割 
    		//分割字符串并计算分割块所含单词个数 
    		while(temp)
    		{
    		    int flag=0;
    			if(strlen(temp)>=4)
    			{
    				for(int l=0;l<strlen(temp);l++)
    				{
    					if(l<=4&&(isalpha(temp[l])==0))
    					{
    					flag=0;break;
    					}
    					else{
    						if(isalpha(temp[l])!=0||(temp[l]>=48&&temp[l]<=57))flag++;
    						else 
    						{
    							if(flag>=4) num+=1;
    							flag=0;
    						}
    					}
    					
    				}
    				if(flag>=4) num+=1;
    			}
    			temp=strtok(NULL," ");	
    		}
    		//计算整个text的单词个数 
    		count+=num;
    	}
    	return count; 
    }
    

    提交日志截图


    运行截图

    我们的wordcount还有一点点bug未解决,输入输出成文件形式还不行,时间来不及,还在测试,但是运行数据是可以的

  • 相关阅读:
    bzoj 1497: [NOI2006]最大获利
    bzoj 2733: [HNOI2012]永无乡
    [CF911G]Mass Change Queries
    [CF911F]Tree Destruction
    [CF911E]Stack Sorting
    [CF911D]Inversion Counting
    [CF911C]Three Garlands
    [CF911B]Two Cakes
    [CF911A]Nearest Minimums
    [POJ1201]Intervals
  • 原文地址:https://www.cnblogs.com/yantu/p/11703184.html
Copyright © 2011-2022 走看看