◆编程:实现读取一篇英文文本文件in.txt,统计其中各个单词出现的频率,把统计结果输出到out.txt文件中。
(请发到我的邮箱973273453@qq.com)◆编程:实现读取一篇英文文本文件in.txt,统计其中各个单词出现的频率,把统计结果输出到out.txt文件中。◆实现方...
(请发到我的邮箱973273453@qq.com)
◆编程:实现读取一篇英文文本文件in.txt,统计其中各个单词出现的频率,把统计结果输出到out.txt文件中。
◆实现方法:用C或C++编程语言实现,可以采用顺序表、链表、二叉排序树三种结构实现。
◆要求上交的内容:
C或C++源程序文件(多作注释,可直接在VC中运行!)
课程大作业报告(跟实验报告相同格式,实验内容处只需要少量关键代码,写清思路和体会) 展开
◆编程:实现读取一篇英文文本文件in.txt,统计其中各个单词出现的频率,把统计结果输出到out.txt文件中。
◆实现方法:用C或C++编程语言实现,可以采用顺序表、链表、二叉排序树三种结构实现。
◆要求上交的内容:
C或C++源程序文件(多作注释,可直接在VC中运行!)
课程大作业报告(跟实验报告相同格式,实验内容处只需要少量关键代码,写清思路和体会) 展开
2个回答
展开全部
思路:
1)用结构体数组存储 “单词”以及“出现次数”
typedef struct FileList
{
char name[20 + 1];//单词名
int num; //单词出现个数
};
2)读取文章内容到buf(buf[1024])数组中,然后对buf数组内容以空格(' ')为分隔符进行分割。这里可用(sccanf()函数实现,或者strtok()函数实现,个人建议用前者),将分割的单词存放在结构体数组中,以及单词个数。
3)至于排序,可用qsort进行排序。
1)用结构体数组存储 “单词”以及“出现次数”
typedef struct FileList
{
char name[20 + 1];//单词名
int num; //单词出现个数
};
2)读取文章内容到buf(buf[1024])数组中,然后对buf数组内容以空格(' ')为分隔符进行分割。这里可用(sccanf()函数实现,或者strtok()函数实现,个人建议用前者),将分割的单词存放在结构体数组中,以及单词个数。
3)至于排序,可用qsort进行排序。
展开全部
#include<iostream>
#include<fstream>
#include<string>
using namespace std;
class danci
{
public:
string name;
int num;
danci(){num=0;name="";};
};
void readfile(danci*&inchar,int &counter)
{
ifstream infile("in.txt");
if(!infile) {cout<<"cannot open!"<<endl;return;}
while(infile)
{
string temp;
infile>>temp;
int i=0;
for( ;i<counter;i++)
{
if(temp==inchar[i].name) { inchar[i].num++;break;}
}
if(i==counter&&inchar[i].name!=temp)
{
inchar[counter].name=temp;
inchar[counter].num++;
counter++;
}
};
infile.close();
}
void outfile(danci*inchar,int counter)
{
ofstream outfile("out.txt");
for(int i=0;i<counter;i++)
outfile<<"单词"<<inchar[i].name<<endl<<"出现次数"<<inchar[i].num<<endl;
}
void main()
{
danci*inchar=new danci[1000];
int counter=0;
readfile(inchar,counter);
outfile(inchar,counter);
}
#include<fstream>
#include<string>
using namespace std;
class danci
{
public:
string name;
int num;
danci(){num=0;name="";};
};
void readfile(danci*&inchar,int &counter)
{
ifstream infile("in.txt");
if(!infile) {cout<<"cannot open!"<<endl;return;}
while(infile)
{
string temp;
infile>>temp;
int i=0;
for( ;i<counter;i++)
{
if(temp==inchar[i].name) { inchar[i].num++;break;}
}
if(i==counter&&inchar[i].name!=temp)
{
inchar[counter].name=temp;
inchar[counter].num++;
counter++;
}
};
infile.close();
}
void outfile(danci*inchar,int counter)
{
ofstream outfile("out.txt");
for(int i=0;i<counter;i++)
outfile<<"单词"<<inchar[i].name<<endl<<"出现次数"<<inchar[i].num<<endl;
}
void main()
{
danci*inchar=new danci[1000];
int counter=0;
readfile(inchar,counter);
outfile(inchar,counter);
}
追问
这位高手非常感谢,能否用C语言的链表,顺序表,堆栈,或二叉树完成,我再加分!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询