




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选文档文件检索1需求分析11 建立文本文件 建立文本文件的实现思路 (1) 定义一个串变量 (2) 定义文本文件 (3) 输入文件名,打开该文件 (4) 循环读入文本行,写入文本文件,其过程如下: While(不是文件输入结束) 读入一文本行至串变量; 串变量写入文件; 输入是否结束输入标志; (5) 关闭文件 1.2给定单词的计数 该功能需要用到前一节中设计的模式匹配算法,逐行扫描文本文件。匹配一个,计数器加1,直到整个文件扫描结束;然后输出单词的次数。 1.3 检索单词出现在文本文件中的行号、次数及其位置 1.4 主控菜单程序的结构 (1) 头文件包含 (2) 菜单选择包括: 1、 建立
2、文件 2、 单词计数 3、 单词定位 4、 退出程序 (3)选择14执行相应的操作,其他字符为非法1 共0条评论.2概要设计2.流程图21建立文本文件定义一个串变量 ,定义文本文件, 输入文件名,打开该文件 , 循环读入文本行,写入文本文件, 关闭文件 。建立文本文件的思路过程22给定单词的计数逐行扫描文本文件。匹配一个,计数器加1,直到整个文件扫描结束;然后输出单词的次数。 给定单词计数的过程23检索单词出现在文本文件中的行号、次数及其位置 逐行扫描文本文件。扫描一个单词,单词数加1,匹配一个,计数器加1,输出该单词数,行数到底以此,行数加1,单词数清零,直到整个文件扫描结束;然后输出单词的
3、次数,行号,第几个单词。检索单词的出现在文本文件中的行号,次数以及位置3详细设计主代码#include<stdio.h>#include<string.h>#define MaxStrSize 256 /根据用户需要自己定义大小typedef structchar chMaxStrSize; /ch是一个可容纳256个字符的字符数组int length;SString; /定义顺序串类型int PartPosition(SString s1, SString s2, int k)int i, j;i=k-1; /扫描s1的下标,因为c中数组下标是从0开始,串中序号相差1
4、j=0; /扫描s2的开始下标while (i<s1.length&&j<s2.length)if(s1.chi=s2.chj)i+;j+; /继续使下标移向下一个字符位置elsei=i-j+1;j=0;if(j>=s2.length)return i-s2.length;else return -1; /表示s1中不存在s2,返回-1 /表示s1中不存在s2,返回其起始位置 /函数结束void CreatTextFile()SString S;char fname10, yn;FILE *fp;printf("输入要建立的文件名: ");
5、scanf("%s", fname);fp=fopen(fname,"w");yn='n' /输入结束标志初值while(yn='n'|yn='N')printf("请输入一行文本:");gets(S.ch);gets(S.ch);S.length=strlen(S.ch);fwrite(&S, S.length, 1, fp);fprintf(fp,"%c", 10); /是输入换行printf("结束输入吗?y or n: ");yn=
6、getchar();fclose(fp); /关闭文件printf("建立文件结束!");void SubStrCount()FILE *fp;SString S,T; /定义两个串变量char fname10;int i=0,j,k;printf("输入文本文件名: ");scanf("%s", fname);fp=fopen(fname ,"r");printf("输入要统计技术的单词:");scanf("%s", T.ch);T.length=strlen(T.ch);
7、while(!feof(fp)/扫描整个文件文本/fread(&S.ch,1,sizeof(S),fp); /读入一行文本memset(S.ch,'0', 256);fgets(S.ch,100,fp);S.length=strlen(S.ch);k=0; /初始化开始检索位置while(k<S.length-1) /检索整个主串Sj=PartPosition(S,T,k);if(j<0)break;elsei+; /单词计数器加1k=j+T.length; /继续下一字串的检索printf("n单词%s在文本文件%s中共出现%d次n",
8、 T.ch, fname,i); /统计单词出现个数void SubStrInd()FILE *fp;SString S,T; /定义两个串变量char fname10;int i,j,k,l,m;int wz20;printf("输入文本文件名:");scanf("%s", fname);fp=fopen(fname,"r");printf("输入要检索的单词:");scanf("%s", T.ch);T.length=strlen(T.ch);l=0; while(!feof(fp)/fre
9、ad(&S, sizeof(S), 1, fp);/读入一行文本memset(S.ch,'0', 256);fgets(S.ch,256,fp);S.length=strlen(S.ch);l+;k=0;i=0;while(k<S.length-1)j=PartPosition(S,T,k);if(j<0)break;elsei+;wzi=j;k=j+T.length;if(i>0)printf("行号:%d , 次数:%d, 位置分别为:",l, i);for(m=1;m<=i;m+) printf("%4d&qu
10、ot;, wzm+1); printf("n");int main()void CreatTextFlie(), SubStrInd();int xz;doprintf("*n");printf("*文本文件的检索、字符串的统计及定位*n");printf("*n");printf("* 1.建立文本文件 *n");printf("* 2.单词字符串的计数 *n");printf("* 3.单词字符串的定位 *n");printf("* 4.退出
11、程序 *n");printf("*n");printf(" 请选择(14) n");scanf("%d", &xz);switch(xz)case 1:CreatTextFile(); break;case 2:SubStrCount(); break;case 3:SubStrInd(); break;case 4:return 0;default: printf("选择错误,重新选n");while(1);4调试分析4.1未输入文件前的页面4.2输入文本文件,计数单词出现的次数 4.3检索某单
12、词的行号,出现次数,以及位置5课程总结经过一周的奋斗,这次数据结构的课程设计终于做完了。通过这次设计我们也着实又感受了一次编程的乐趣,从中也学到了不少知识。感受最深的一点是:以前用编程,只是注重如何编写函数能够完成所需要的功能,似乎没有明确的战术,只是凭单纯的意识和简单的语句来堆砌出一段程序。现在编程感觉完全不同了。在编写一个程序之前,先对这个课程设计进行了一下分析,将每个要求都花了一下算法流程图,使得自己的思路更加的清晰了 。 然后进行编程,不断的在电脑上调试程序,终于完成了此次的课程设计。另外,我还体会到深刻理解数据结构的重要性。只有真正理解这样定义数据类型的好处,才能用好这样一种数据结构。了解典型数据结构的性质是非常有用的,它往往是编写程序的关键。通过这次课程设计逐渐提高了自己的程序设计和调试能力,我以前对算法一直很害怕,总是看不明白究竟这程序中间的过程是怎么进行的。在这次实验中我终于克服了这一障碍,一遍遍在心中自己默默
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 浇灌新质生产力
- 《呼吸困难解析》课件
- 山东省地理高考试卷及答案
- 2025共同担保借款合同
- 2025年中国滑触线市场调查研究报告
- 林业火灾扑救设备制造考核试卷
- 畜产品加工工艺改进与优化考核试卷
- 2025年中国高频振筛市场调查研究报告
- 2025年中国铣床专用电磁离合器市场调查研究报告
- 电子专用设备的生产效率优化考核试卷
- 苏霍姆林斯基的教育思想
- 2025年内蒙古自治区中考一模语文试题(原卷版+解析版)
- DBJ50-T-232-2016 建设工程监理工作规程
- 2025年陕西延长石油集团矿业公司招聘笔试参考题库含答案解析
- 加油站的物联网技术应用
- 《跟上兔子》绘本五年级第1季A-Magic-Card教学课件
- 安全文明离校主题班会
- 2025-2030全球稠油行业调研及趋势分析报告
- GB/T 44994-2024声学助听器验配管理
- 银行成立网点可行性报告范文银行网点新增的可行性报告
- 2025年职教高考对口升学 护理类 专业综合模拟卷(2)(四川适用)(原卷版)
评论
0/150
提交评论