版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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<stdafx.h>#include<stdio.h>#include<string.h>#define MaxStrSize 256 /根据用户需要自己定义大小typedef struct char chMaxStrSize; /ch是一个可容纳256个字符的字符数组 &
4、#160; int length; SString;/定义顺序串类型int PartPosition (SString s1,SString s2,int k) int i,j; i=k-1; /扫描s1的下标,因为c中数组下标是从0开始,串中序号相差1 j=0;/扫描s2的开始下标 while(i<s1.length && j<s2.length)
5、160; if(s1.chi=s2.chj) i+;j+; /继续使下标移向下一个字符位置 else i=i-j+1; j=0;
6、 if (j>=s2.length) return i-s2.length; else return -1;/表示s1中不存在s2,返回-1 /表示s1中存在s2,返回其起始位置 /函数结束 void CreatTextFile()
7、 SString S; char fname10,yn; FILE *fp; printf("输入要建立的文件名:");
8、160; scanf("%s",fname); fp=fopen(fname,"w"); yn='n'/输入结束标志初值 while(yn='n'|yn=
9、39;N') printf("请输入一行文本:");gets(S.ch);gets(S.ch);
10、0; S.length=strlen(S.ch);
11、; fwrite(&S,S.length,1,fp); fprintf(fp,"%c",10);/是输入换行
12、0; printf("结束输入吗?y or n :");yn=getchar(); fclose(fp);/关闭文件
13、60; printf("建立文件结束!"); void SubStrCount() FILE *fp;
14、60; SString S,T;/定义两个串变量 char fname10; int i=0,j,k; printf("输入文本文件名:");
15、60; scanf("%s",fname); fp=fopen(fname,"r"); printf("输入要统计计数的单词:");
16、 scanf(“%s”,T.ch); T.length=strlen(T.ch); while(!feof(fp) /扫描整个文本文件
17、; / fread(&S.ch,1,sizeof(S),fp);/读入一行文本 memset(S.ch,'0',256); fgets(S.ch,100,fp); S.length=strlen(S.ch);
18、60; k=0; /初始化开始检索位置 while(k<S.length-1) /检索整个主串S
19、; j=PartPosition(S,T,k);/调用串匹配函数
20、60; if(j<0 ) break; else
21、160; i+;/单词计数器加1
22、160; k=j+T.length;/继续下一字串的检索 &
23、#160; printf("n单词%s在文本文件%s中共出现%d次n",T.ch,fname,i); /统计单词出现的个数void SubStrInd()
24、 FILE *fp; SString S,T; /定义两个串变量 char fname10; int i,j,k,l,m; int
25、wz20; /存放一行中字串匹配的多个位置 printf("输入文本文件名:"); scanf("%s",fname); fp=fopen(fname,"r");
26、60; printf("输入要检索的单词:"); scanf("%s",T.ch); T.length=strlen(T.ch); l=0; /行计数器置0
27、0; while(!feof(fp) /扫描整个文本文件 /fread(&S,sizeof(S),1,fp); /读入一行文本 memset(S.ch,'0',256); fget
28、s(S.ch,256,fp); S.length=strlen(S.ch); l+; /行计数器自增1 k=0;/初始化开始检索位置 i=0; /初始化单词计数器 while(k&
29、lt;S.length-1) /检索整个主串S j=PartPosition(S,T,k); /调用串匹配函数
30、0; if(j<0) break; else
31、0; i+;/单词计数器加1 wzi=j;/记录匹配单词位置
32、 k=j+T.length;/继续下一字串检索 if(i>0)
33、 printf("行号:%d,次数:%d,位置分别为:",l,i); for(m=1;m<=i;m+) printf("%4d",wz
34、m+1); printf("n"); /检索单词出现在文本文件中的行号、次数及其位置 int main() void C
35、reatTextFile(),SubStrCount(),SubStrInd(); int xz; do printf("* * * * * * * * * * * * * * * * * * * * * * * * *n");
36、0; printf("*文本文件的检索、字串的统计及定位 *n"); printf("* * * * * * * * * * * * * * * * * * * * * * * * *n&
37、quot;); printf("* 1. 建立文本文件 *n"); printf("*
38、60; 2. 单词字串的计数 *n"); printf("* 3. 单词字串的定位
39、 *n"); printf("* 4. 退出整个程序
40、60; *n"); printf("* * * * * * * * * * * * * * * * * * * * * * * * n");
41、 printf(" 请选择(1-4) ");
42、; scanf("%d",&xz); switch(xz)
43、; case 1 : CreatTextFile();break; case 2 : SubStrCount();break;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024安徽中小学教师招聘考试真题及答案
- 20XX华东师大博博士研究生试题修改版
- 中小学信息技术教师招聘考试全真试题含参考答案
- 工会劳动法律法规知识竞赛试题库范文
- 2025年四川成都中考生物试题及答案
- 下半年中学教师资格证(教育知识与能力)真题及答案
- 2025年森林消防员(中级)考试真题解析模拟题库
- 创文知识竞赛试题A4
- 国家公务员考试申论热点:信用建设
- 合浦事业单位笔试真题及答案2024
- 胸腹部创伤的现场急救
- 2026年高考政治总复习清单-第三单元 全面依法治国
- 铁路选址管理办法
- 疼痛管理中的个性化护理方案
- 辅导员思想政治教育课件
- 四川省建设工程施工现场安全资料管理标准
- 全国博士后流动站一览表
- 【郑州】2025年河南郑州工业安全职业学院招聘工作人员44人笔试历年典型考题及考点剖析附带答案详解
- 直播带货公司消防演练实施规定
- 儿童抑郁症的早期症状与干预
- 输尿管结石病例分析
评论
0/150
提交评论