




已阅读5页,还剩9页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
.文件检索1需求分析11 建立文本文件 建立文本文件的实现思路 (1) 定义一个串变量 (2) 定义文本文件 (3) 输入文件名,打开该文件 (4) 循环读入文本行,写入文本文件,其过程如下: While(不是文件输入结束) 读入一文本行至串变量; 串变量写入文件; 输入是否结束输入标志; (5) 关闭文件 1.2给定单词的计数 该功能需要用到前一节中设计的模式匹配算法,逐行扫描文本文件。匹配一个,计数器加1,直到整个文件扫描结束;然后输出单词的次数。 1.3 检索单词出现在文本文件中的行号、次数及其位置 1.4 主控菜单程序的结构 (1) 头文件包含 (2) 菜单选择包括: 1、 建立文件 2、 单词计数 3、 单词定位 4、 退出程序 (3)选择14执行相应的操作,其他字符为非法1 共0条评论.2概要设计2.流程图21建立文本文件定义一个串变量 ,定义文本文件, 输入文件名,打开该文件 , 循环读入文本行,写入文本文件, 关闭文件 。建立文本文件的思路过程22给定单词的计数逐行扫描文本文件。匹配一个,计数器加1,直到整个文件扫描结束;然后输出单词的次数。 给定单词计数的过程23检索单词出现在文本文件中的行号、次数及其位置 逐行扫描文本文件。扫描一个单词,单词数加1,匹配一个,计数器加1,输出该单词数,行数到底以此,行数加1,单词数清零,直到整个文件扫描结束;然后输出单词的次数,行号,第几个单词。检索单词的出现在文本文件中的行号,次数以及位置3详细设计主代码#include#include#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开始,串中序号相差1j=0; /扫描s2的开始下标while (is1.length&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(输入要建立的文件名: );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=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);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(kS.length-1) /检索整个主串Sj=PartPosition(S,T,k);if(j0)break;elsei+; /单词计数器加1k=j+T.length; /继续下一字串的检索printf(n单词%s在文本文件%s中共出现%d次n, 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)/fread(&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(kS.length-1)j=PartPosition(S,T,k);if(j0)printf(行号:%d , 次数:%d, 位置分别为:,l, i);for(m=1;m=i;m+) printf(%4d, 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.退出程序 *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检索某单词的行号,出现次数,以及位置5课程总结经过一周的奋斗,这次数据结构的课程设计终于做完了。通过这次设计我们也着实又感受了一次编程的乐趣,从中也学到了不少知识。感受最深的一点是:以前用编程,只是注重如何编写函数能够完成所需要的功能,似乎没有明确的战术,只是凭单纯的意识和简单的语句来堆砌出一段程序。现在编程感觉完全不同了。在编写一个程序之前,先对这个课程设计进行了一下分析,将每个要求都花了一下算法流程图,使得自己的思路更加的清晰了 。 然后进行编程,不断的在电脑上调试程序,终于完成了此次的课程设计。另外,我还体会到深刻理解数据结构的重要性。只有真正理解这样定义数据类型的好处,才能用好这样一种数据结构。了解典型数据结构的性质是非常有用的,它往往是编写程序的关键。通过这次课程设计逐渐提高了自己的程序设计和调试能力,我以前对算法一直很害怕,总是看不明白究竟这程序中间的过程是怎么进行的。在这次实验中我终于克服了这一障碍,一遍遍在心中自己默默的走,终于弄明白了,真的是功夫不负有心人啊! 这次试验也让我看
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 靖边三中实验考试题及答案
- 医师资格考试技能考试题目及答案
- 宁夏银川十五中2026届九年级英语第一学期期末统考试题含解析
- 安诚安全培训平台官方课件
- 2026届鞍山市重点中学化学九上期末复习检测试题含解析
- 湖州渔船安全培训课件
- 读书月成果汇报
- 离婚时财产分割及共同债务分担协议范本
- 湖南网络安全培训服务课件
- 高净值离婚协议范本:全面资产重组及子女教育规划
- 隔爆水棚替换自动隔爆装置方案及安全技术措施
- 2#横洞进正洞挑顶方案
- 智能变电站设备巡视
- UPS基础知识及竞争分析课件
- 2021《改革开放史》课件全文
- 塑料厂安全风险分级管控清单
- 心脏射频消融术护理常规ppt
- 建筑工程经济与管理完整版课件全套ppt教程(最新)
- 新教材教科版五年级上册科学全册课时练(课后作业设计)
- 锐捷兵法-售前学员版课件
- SLZ 552-2012 用水指标评价导则
评论
0/150
提交评论