团队编程作业

第一次团队编程


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未解决,输入输出成文件形式还不行,时间来不及,还在测试,但是运行数据是可以的

posted @ 2019-10-19 11:31  研途yt  阅读(270)  评论(0编辑  收藏  举报