316黄宏亮327腾文本文件单词的检索与计数_第1页
316黄宏亮327腾文本文件单词的检索与计数_第2页
316黄宏亮327腾文本文件单词的检索与计数_第3页
316黄宏亮327腾文本文件单词的检索与计数_第4页
316黄宏亮327腾文本文件单词的检索与计数_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、具体任务安排2软件开发环境2算法设计及流程图3源代码6运行结果9收获及体会10参考文献11一二三四五六七一具体任务安排工作进度表组员分工二软件开发环境Visual C+ 6.0Windows XPWindows 7201235020316 黄宏亮(组长)201235020327腾2012350203041、 设计并编写界面部分代码;2、 算法分析与设计;3、 和队友共同并优化;1、编写代码2、 和队友共同并优化;3、 画算法的程序流程图;1、 编写课程设计和心得体会;2、 画程序流程图3、 测试时间完成工作完成人周四上午完成课程设计的需求分析,画程序流程图黄宏亮、腾、陈健栋周四下午设计并编写程

2、序代码黄宏亮、腾、陈健栋周五上午测试代码并由问题优化代码黄宏亮、腾、陈健栋周五下午编写课程设计和心得体会黄宏亮、腾、陈健栋三算法设计及流程图1、 定义一个串变量、文本文件,输入文件名,打开该文件,循环读入文本行,写入文本文件,关闭该文件。开始While 以#号结束结束关闭文件文件输入结束NY循环读入文本行,写入文件输入文件名,打开该文件定义文本 文件定义一个 串变量2、 逐行扫描文本文件。匹配一个,计数器加 1,直到整个文件扫描结束;然后输出单词的次数。结束开始If 第N 个单词与所给单词相同If N=M结束3、 逐行扫描文本文件。扫描一个单词,单词数加 1,匹配一个,计数器加 1,输出该单词

3、数,行数到底以此,行数加 1,单词数清零,直到整个文件扫描结束;然后输出单词的次数,行号,第几个单词。输出S 及其单词的计数NYS=S+1N=N+1YN扫描第N 个单词给定一个单词定义 N=1,S=0 一个给了M 个单词开始If 第 N 个单词与所给单词相同NIf N=XIf L=YN结束L=L+1YI=0N=1输出I输出LNYN=N+1I=I+1输出NY扫描第L 行第N 个单词输入要检索的单词定义L=1,I=0,N=1L 为行数,I 为次数,N 为第几个单词假设一共X 行,每行 Y 个单词输入文本文件名四 源代码#include #include #include#define MaxStr

4、Size 256 /数组最大界限 256 using namespatd;typedef struct charaxStrSize; /ch 是一个可容纳 256 个字符的字符数组length;/字符串长度 SString;/定义顺序串类型void CreatTextFile()/建立文件SString S;char tmpMaxStrSize; char fname10,yn;z;i=0;FILE *fp;/定义文件类型的指针 pr f(输入要建立的文件名:); scanf(%s,fname); fp=fopen(fname,w);/ yn=n;/输入结束标志初值pr f(请输入文本(以#号

5、结束):n);while(yn!=#)gets(S.ch);/文本输入/gets(S.ch);S.length=strlen(S.ch);/计算长度 if(S.chS.length-1!=#)S.chS.length-1 = ;elseS.chS.length-1 = ;S.chS.length = #;S.chS.length+1 = 0;strcpy(tmp, S.ch); S.ch0= ;S.ch1=0;strcat(S.ch, tmp); S.length=strlen(S.ch);fwrite(&S,S.length,1,fp);/写数据到文件/ S.chS.lengthfpr f(

6、fp,%c,10);/是输入换行yn=S.chS.length-1;fclose(fp);/关闭文件pr f(建立文件结束!n);Parti,j;ition (SString s1,SString s2,k)/对文本的扫描i=k-1;/扫描s1 的下标,因为c 中数组下标是从 0 开始,串中序号相差 1 j=0;/扫描s2 的开始下标while(is1.length & j=s2.length) return i-s2.length;elsereturn -1;/表示s1 中不存在s2,返回-1/表示 s1 中存在s2,返回其起始位置void SubStrCount()/统计单词出现的个数FI

7、LE *fp;/定义一个文件类型的指针 SString S,T;/定义两个串变量char fname10; i=0,j,k,z;pr f(输入文本文件名:);scanf(%s,fname); if(!(fp=fopen(fname,r)/判断文件是否存在pr f(没有该文件哦亲!请重新选择!);return;pr f(输入要统计计数的单词:); cinT.ch;/输入单词 for(z=strlen(T.ch);z!=-1;z-)T.chz+1 = T.chz;z=strlen(T.ch);T.chz= ;T.chz+1=0;T.ch0= ;T.length=strlen(T.ch);while

8、(!feof(fp)/扫描整个文本文件memset(S.ch,0,256); fgets(S.ch,100,fp); / S.length=strlen(S.ch);文本数据k=0; /初始化开始检索位置 while(kS.length-1) /检索整个主串Sj=Partition(S,T,k);/调用串匹配函数if(j0 ) break; else i+;/单词计数器加 1 k=j+T.length;/继续下一字串的检索prf(n 单词%s 在文本文件%s出现%d 次n,T.ch,fname,i);void SubStrInd()/检索单词出现在文本文件中的行号、次数及其位置FILE *fp

9、;SString S,T; /定义两个串变量char fname10;char tmp; i,j,k,l,m,p=0;z;wz20; /存放一行中字串匹配的多个位置 pr f(输入文本文件名:);scanf(%s,fname); if(!(fp=fopen(fname,r)/判断文件是否存在pr f(没有该文件哦亲!请重新选择!);return;pr f(输入要检索的单词:); scanf(%s,T.ch);for(z=strlen(T.ch);z!=-1;z-) T.chz+1 = T.chz;z=strlen(T.ch);T.chz= ;T.chz+1=0;T.ch0= ;T.length

10、=strlen(T.ch); l=0; /行计数器置 0while(!feof(fp) /扫描整个文本文件/fread(&S,sizeof(S),1,fp);/读入一行文本 memset(S.ch,0,256); fgets(S.ch,256,fp); /文本数据 S.length=strlen(S.ch);l+; /行计数器自增 1 k=0;/初始化开始检索位置 i=0; /初始化单词计数器while(kS.length-1) /检索整个主串Sj=Partition(S,T,k); /调用串匹配函数if(j0)p=i;pr f(行号:%d,次数:%d,在该行的位置为:,l-1,i); for

11、(m=1;m=i;m+) pr f(%4d,wzm+1); pr f(n);if(p=0) pr f(亲,没有找到您要的单词哦!);main()void CreatTextFile(),SubStrCount(),SubStrInd(); xz;char s;pr f( n);pr f(pr f(n);n);while(1) pr f(n);pr pr pr pr pr pr prf( * * * * * * * * * * * * * * * * * * * * * * * *n);f(f(f(f(n);n);n);n);f( n);f(请选择(14):);while(scanf(%d,&x

12、z)=0)五 运行结果scanf(%s,&s); break;switch(xz) case 1 : CreatTextFile();break; case 2 : SubStrCount();break; case 3 : SubStrInd();break; case 4 : return 0;default:pr f(亲的选择有错误哦,请重新选择!n);六 收获及体会黄宏亮:两天的课程设计结束了,在这次课程设计中不仅检验了我所学习的知识,也培养了的团队合作。在设计过程中,与同学分工设计,和相互探讨,相互学习。课程设计是专业课程知识综合应用的实践训练,这是从事职业工作前一个必不少的过程,认

13、真的进行课程设计,为以后的工作打下了坚实的基础。在这次课程设计中,选的是“文本文件单词的检索与计数”。虽然是比较简单的设计,但是如果没有团队的合作,一个人也是很耗时间的。经过算法分析与设计,编写程序代码,测试并优化代码,完成了这次的设计内容,虽然也不是一帆风顺,遇到了一些问题,在经过和合作伙伴一起探讨会了很多。后才解决了。总之,在这次的课程设计中收获很大,学腾:两天的课程设计即将结束,这两天的课程设计也使我对数据结构这门课程有了更深的理解,当然令我感悟更深的是“编程”。通过这次的课程设计,我亲身感受到了编程的乐趣,自己的程序运行成功时的那种心情,也让我明白了对于编程,以后我该学什么,该做什么。

14、在这次课程设计过程中,我和组员们通过算法分析与设计编写具体的实验代码,共同讨论并优化,当然,在这其中也遇到了许多小问题,但经过我和组员们共同探讨下,解决了包括“程序”,“找不到数据没有提示”等小问题。在本次课程设计中,我明白了理论与实践应用相结合的重要性,并提高了自己组织数据及编写程序的能力,培养了基本的、良好的程序设计技能以及合作能力,同时,也认识到了自己的不足之处,希望能有更大的进步。:这次课程设计,我有很大收获和体会。小组做的是“文本文件单词的检索与计数”,首先要建立文本文件的实现思路,然后读入一文本行至串变量,串变量写入文件。再做给定单词的计数,检索单词出现在文本文件中的行号、次数及其位置,主控菜单程序的结构,最后经过小组 3 个人的共同努力,终于把这个课程设计完成了。在完成后,遇到了,原来输错

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论