实验二文学小助手

实验二文学小助手

ID:32380854

大小:63.50 KB

页数:8页

时间:2019-02-04

实验二文学小助手_第1页
实验二文学小助手_第2页
实验二文学小助手_第3页
实验二文学小助手_第4页
实验二文学小助手_第5页
资源描述:

《实验二文学小助手》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、实验报告三题目:文学研究助手班级:计算机科学与技术(非师)姓名:王志钢学号:20081121614指导教师:孟繁军完成日期:2010.6.25文学研究助手实验报告一.需求分析1.文学研究人员需要统计某篇英文小说中某些形容词的出现次数和位置。试写一个实现这一目标的文字统计系统,称为“文学研究助手”。二.概要设计(1):子函数设计1.voidget_next(SStringT,intnext[])  //求next值2.intIndex(SStringS,SStringT,intpos)//KMP算法3.voidfind(ch

2、arname[],SStringkeys)//查找函数(2):主函数调用设计intmain()主函数(3):结构体设计#defineMAXSTRLEN255        //最大串长typedefcharSString[MAXSTRLEN+1];  //串的定长顺序存储表示intnext[MAXSTRLEN];           //KMP算法中用到的next三.详细设计英文小说存于一个文本文件中。待统计的词汇集合要一次输入完毕,即统计工作必须在程序的一次运行之后就会全部完成。程序的输出结果是每个词出现次数和出现位置所

3、在行的行号,格式自行设计。匹配时采用KMP算法。主函数设计:intmain(){charname[50];//存储输入的小说路径字符串SStringwords[10];//定义字符串数组,用于存储输入的关键字intn,i;printf("Pleaseinputthenameofthenovel:");scanf("%s",name);printf("Howmanywordsdoyouwanttofind?(n<10)");scanf("%d",&n);printf("Pleaseinputthewordsyouwa

4、nttofind:");for(i=0;i

5、

6、T[k]==T[j])

7、{++j;++k;if(T[j]!=T[k])next[j]=k;elsenext[j]=next[k];}elsek=next[k];}}2.//KMP算法intIndex(SStringS,SStringT,intpos)//KMP算法{inti=pos,j=1;while(i<=S[0]&&j<=T[0]){if(j==0

8、

9、S[i]==T[j]){++i;++j;}elsej=next[j];}if(j>T[0])return(i-T[0]);elsereturn0;}3.//求串长intlenth(SString

10、str)//求串长{inti=1;while(str[i])i++;return(i-1);}4.//查找函数voidfind(charname[],SStringkeys)//查找函数,该函数是整个程序的重要部分,对于输入的每一个{//要查找的关键字,从小说文件中逐行读取字符串查找SStringtext;//存放从小说文件读取的一行字符串inti=1,j=0,k;//i用于存放行号,j用于存放列号,k用于输出格式的控制FILE*fp;if(!(fp=(fopen(name,"r"))))//打开小说文件{printf("

11、Openfileerror!");exit(0);}keys[0]=lenth(keys);//求关键字的长度get_next(keys,next);//求模式串(关键字)每一个字符对应的next值printf("%s",&keys[1]);//打印关键字while(!feof(fp))//如果还没到小说文件末尾{k=0;fgets(&text[1],MAXSTRLEN,fp);//从小说文件中读取一行字符串,存入text串中text[0]=lenth(text);//求读入的串的长度j=Index(text,ke

12、ys,j+1);//调用KMP算法,统计关键字在该行出现的位置,若匹配不成功则返回0if(j!=0){printf("row=%d,col=%d",i,j);k++;}//若匹配成功则打印行号和列号while(j!=0)//若该行找到了关键字,则继续寻找看是否还能匹配成功{j=Index(text,ke

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。