◆编程:实现读取一篇英文文本文件in.txt,统计其中各个单词出现的频率,把统计结果输出到out.txt文件中。

(请发到我的邮箱973273453@qq.com)◆编程:实现读取一篇英文文本文件in.txt,统计其中各个单词出现的频率,把统计结果输出到out.txt文件中。◆实现方... (请发到我的邮箱973273453@qq.com)
◆编程:实现读取一篇英文文本文件in.txt,统计其中各个单词出现的频率,把统计结果输出到out.txt文件中。

◆实现方法:用C或C++编程语言实现,可以采用顺序表、链表、二叉排序树三种结构实现。

◆要求上交的内容:

C或C++源程序文件(多作注释,可直接在VC中运行!)

课程大作业报告(跟实验报告相同格式,实验内容处只需要少量关键代码,写清思路和体会)
展开
 我来答
冉易云ST
推荐于2016-07-12 · TA获得超过535个赞
知道小有建树答主
回答量:397
采纳率:0%
帮助的人:522万
展开全部
思路:
1)用结构体数组存储 “单词”以及“出现次数”
typedef struct FileList
{
char name[20 + 1];//单词名
int num; //单词出现个数
};
2)读取文章内容到buf(buf[1024])数组中,然后对buf数组内容以空格(' ')为分隔符进行分割。这里可用(sccanf()函数实现,或者strtok()函数实现,个人建议用前者),将分割的单词存放在结构体数组中,以及单词个数。
3)至于排序,可用qsort进行排序。
伤倏臀w
2011-11-27 · TA获得超过1115个赞
知道大有可为答主
回答量:864
采纳率:60%
帮助的人:605万
展开全部
#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);

}
追问
这位高手非常感谢,能否用C语言的链表,顺序表,堆栈,或二叉树完成,我再加分!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式