作者:禅城花市C077 | 来源:互联网 | 2023-09-18 08:59
写程序:2014323:00pm-5:00pm,7:00-10:30pm由于电脑出现问题和断网的原因,知道现在才传上自己博客。代码的内容主要用的是文件的读取和排序功能,由于时间
写程序:2014/3/2 3:00pm-5:00pm , 7:00-10:30pm
由于电脑出现问题和断网的原因,知道现在才传上自己博客。
代码的内容主要用的是文件的读取和排序功能,由于时间比较仓促,必定有许多漏洞,请大家批评指正。
以下是相应程序具体函数实现的功能:
1 //1.读取文件,查找相应的单词
2
3 if((fp=fopen("case1.in","r"))==NULL )
4 //打开文件
5 {
6 cout<<”can not open the file!”;
7 return 1;
8 } //打开不了
9 while((ch=fgetc(fp))!=EOF)
10 {
11 if((ch>=‘A‘&&ch<=‘Z‘)||(ch>=‘a‘&&ch<=‘z‘)||ch==‘-‘||ch==‘\‘‘) //遇到 字母, ‘-‘ , 缩写号 ‘ 时
12 { if(flag==1) //判断flag直到遇到单词 i自增使指向下一个数组
13 i++;
14 if(ch>=‘A‘&&ch<=‘Z‘) //大写换小写
15 {
16 ch=ch+32;
17 }
18 s[i][j]=ch;
19 j++;
20 flag=0; //单词未结束flag为0
21 }
22 else
23 {
24 j=0;
25 flag=1; //遇到不是单词,标记为1
26 }
27 }
28 strcpy(s2[0],s[0]); //将s[0]复制到s2[0]中
29 for (m=1;m<=i;m++) //从s[1]开始 直到 s[i]
30 {
31 for(n=0;n//将s[m]跟他前面的比较.看看是否重复
32 {
33 if(strcmp(s[m],s[n])==0)
34 {
35 word=1;//重复 word标记为1
36 }
37
38 }
39 if(word==0) //不重复,将s[m]复制到s2[k]中
40 {
41 strcpy(s2[k],s[m]);
42 k++;
43 }
44 word=0;//比较完后将word重置
45 }
46 for(m=0;m)
47 {
48 for(n=0;n<=i;n++)
49 {
50 if(strcmp(s2[m],s[n])==0)
51 //s2[m]中的单词是不重复的.用s[n]里面的单词逐个对比.遇到相同count[m]自+1;
52 count[m]=count[m]+1;
53 }
54 }
55
56
57 //2.对高频单词进行排序
58
59 cout<<”出现频率最高的10个词依次是:”<<endl;
60 for(m=0;m<=k&&m<10;m++) //单词数小于10个或k(k<10时)个执行循环
61 {
62 max=0;//重置max
63 for(n=1;n<=i;n++)
64 {
65 if(count[max]==count[n]) //若单词出现次数相同 .按字典顺序排
66 {
67 if(strcmp(s2[max],s2[n])>0)
68 max=n;
69 }
70 if(count[max]<count[n])
71 max=n;
72 }
73 cout<endl;
74 count[max]=0;//将输出过的单词出现次数清0;
75
76 }
运行结果:
第一次软件工程作业 编程实现英文文章中出现频率最高的10各个词。,布布扣,bubuko.com