文本编辑和串查找统计系统.DOC

上传人:国*** 文档编号:786630 上传时间:2018-11-01 格式:DOC 页数:13 大小:317.50KB
下载 相关 举报
文本编辑和串查找统计系统.DOC_第1页
第1页 / 共13页
文本编辑和串查找统计系统.DOC_第2页
第2页 / 共13页
文本编辑和串查找统计系统.DOC_第3页
第3页 / 共13页
文本编辑和串查找统计系统.DOC_第4页
第4页 / 共13页
文本编辑和串查找统计系统.DOC_第5页
第5页 / 共13页
点击查看更多>>
资源描述

1、文本编辑和串查找统计系统为了能实现更加简便地对输入文本文件进行保存和再编辑,则需要一个具备整体统计、查询、删除等多功能的文本编辑器来完成此项工作。 文本编辑器是一种简单易用的文本编辑统计的系统,为大家提供了一个功能齐全且实用的平台。本题目,是为了让人和文本在交流上实现更好、更多的互动,让编辑器可以更如愿的为人类提供所需求的内容与信息资料和服务。它是用作编写统计普通文字符号的一个用户软件系统,在编辑文本文件中为用户提供查找字符串或者根据条件删除字符串等多项操作。- 2 -二、总体设计图表框架展示文本内容保存显示所输入的文本内容统计文本内容各项数据指定字符串的查询指定字符串的删除文字框架解析该系统

2、是一个文本编辑与串查统计功能结合的程序应用,其中包括六大主要功能:文本内容输入:通过使用普通的传统键盘,进行各类字符与符号的输入,其中包括可以对文字、字母、数字、空格和其它标点符号等输入过程;文本内容保存:这是一项简单便捷的保存方式,属于一个静态存储;按条件显示所输入的文本内容:通过条件语句的控制,让输入后的文本内容限制在每行不超过 80 个字符,进行一系列的文本显示; 统计文本内容中的各项数据:统计功能是具备多项数据的总体统计,能清晰的将文本中各类字符的出现个数展示出来,分五行显示,包括有“全部字母数“(再可分类为大小写字母) 、 “数字个数” 、 “空格个数” 、 “标点符号个数” 、 “

3、文章总字数” ,将文章的内容统计的一目了然,为用户减去了大量的繁琐工作,进而轻松的进行各项任务;对文本中指定字符串进行查询,并显示结果:这个功能是属于一项具体方向的查询并统计的操作,首先输入一个用户指定的字符串,然后通过系统程文本内容输入界面显示各项功能- 3 -序内部进行两个长短字符串中子字符逐个比较,同时也不断判断条件是否符合,最后将该字符串和在文章中出现的总次数一并分行输出到界面上来,让用户清晰了解到查询的结果;对文本中指定字符串进行删除,并显示结果:该项则也首先需要用户进行指定需删除字符串输入的,然后再将两个长短字符串进行多层条件的逐步对比,确认长字符串中出现的内容有完全相同时则先进行

4、后指针前移将该部分做删除操作,然后再回到条件判断继续比较以下的文章内容,利用同样道理的过程逐个将符合的内容删除,直到长字符串终止则结束,最后再将删除指定内容后的文本内容输出到界面上来,让用户观察是否符合要求了,如果还需操作则继续选择功能。三、详细设计程序中包含有结构体定义、多个子函数和一个主函数,通过一个主函数,使用 switch()语句的内容输入,判断后则分别进行对各个子函数的连接调用。(1)结构体定义:在结构体里面申请一个足够容量的数组空间,提供给下面使用,定义新类型为 sqlist。(2)文本插入函数:sqlist *insert(sqlist *L),包含指向 sqlist 类型变量的

5、指针 L,函数返回是指向 sqlist 类型变量的指针。使用 malloc 函数向系统动态申请分配指定 size 个字节的内存空间,分配成功后则返回指向被分配内存的指针,再将其指针赋给指针变量 L,该过程的执行语句为如此格式 L=(sqlist*) malloc(sizeof(sqlist),接着将指针变量指向 data,使用 gets()对 data 数据的写入,之后就将 L 的指针内容赋给一个第三变量指针 q,然后返回,过程中则是静态存储了一篇文本内容以供编辑,完成插入过程。(3)文本显示函数:void output(sqlist *r),此函数是通过双层条件控制输出内容的,首先判断之前插

6、入的内容是否为空,如果不为空则进行下一步的条件控制,使用 data+i 来获得数据内容的进度,从而利用条件 i 除以60 求余是否为零(i%60=0)来分配每行的输出控制,意思就是当输出的内容达到 60 个字符的时候则进行一次换行。(4)文本数据总体统计:void tongji(sqlist *p),定义多个整形变量,有 all、word、number、blank、fuhao 等 int 型变量。再定义一个字符型变量 C,用于存放指针*(p-data+i)的内容,为程序统计过程中的字符比较和判断提供方便。统计开始的时候,就用等式 all=all+1 来不断存储总字符数量,接着使用语句 if(c

7、=a统计总字符的数目:all=all+1;判断 C 的字符是否在 a-z 和 A-Z 的范围内Word=word+1;累加字母的数量值判断字符是否是在 a-z 的范围内Word1=word1+1;累加小写字母的数量值判断 C 是否在”0”-“9”的范围内Number=number+1;累加数字的数量值21348开始- 5 -判断 C 的 ASCII 值是否为 32(空格的值)2Blank=blank+1;累加空格的数量值5判断 C 的 ASCII 值是否在一些基本标点符号的 ASCII 值范围内Fuhao=fuhao+1;累加标点符号的数量值67- 6 -i=i+1;控制 data 数组里面的

8、字符后移345 678分行输出统计出来的各项数据,字母、数字、空格、标点符号等的数目量1结束(5)文本内容串查:void search(sqlist *p),其中定义一个新数组str2300用来存放需要查询的字符串,然后利用两个指针变量(分别指向两个数组数据)进行指针逐步后移不断比较的方式实现判断,对比查询的内容是否在源数据里面找到,如果找到一次则累加一个数值 sum,然后继续将指向str2 的指针指回到首地址,接着进行下面再次比较,直到 data 的内容出现结束字符为止。判断完后,再对 sum 的结果输出。(6)文本指定内容删除:函数是 void delet(sqlist *s),依然新定义

9、一个数组 t300存放指定的字符串,分别用指针指向后使用 for(i=0; *(s-data+i)!=0;i+)和 for(k=0; tk!=0;k+)双层循环,不断比较和判- 7 -断对应的节点数据是否符合,当判断到所指定的字符结束后,进行一次指针复制(即删除操作),然后再回到后面的判断,直到 data 的数据出现结束为止,最后再输出删除字符串后的文本内容。(7)清屏函数:void clear() system(“cls“); ,其主要目的是当屏幕显示的内容过多是,供用户随时调用来清除部分数据,再回到功能提示界面。(8)界面控制函数:void menu(),主要是通过大量的 printf()

10、语句来实现对系统程序功能提示界面的显示,让用户更好的理解到该程序的各项功能。(9)主函数:void main(),先是定义部分指针变量和其他变量,再直接调用界面控制函数 menu(),接着就使用 switch()语句判断性的调用各个子函数,从而实现各项子函数的功能。四、程序源代码清单#include #include #include #include #define INITSIZE 1000typedef struct stringing char dataINITSIZE; sqlist; sqlist *insert(sqlist *L) /*插入文章*/sqlist * q;int

11、i=0;L=(sqlist*)malloc(sizeof(sqlist);printf(“n请【输入】文章内容:n“);L-datai=getchar();gets(L-data);q=L;return q;void output(sqlist *r) /*文本内容显示*/printf(“n显示存储的文本内容为:n“);int i=0;char c;while(*(r-data+i)!=0)- 8 -c=*(r-data+i);if(i%50=0) printf(“n“);printf(“%c“,c); else printf(“%c“,c);i+;printf(“nnnn“);void to

12、ngji(sqlist *p) /*文本内容总体统计*/ int i=0;int all=0,word=0,word1=0,word2=0,number=0,blank=0,fuhao=0;char c;while(*(p-data+i)!=0)c=*(p-data+i);all=all+1;if(c=aprintf(“nn请输入所要【查询】的字符段:n“);scanf(“%s“,str2);p1=p;p2=str2;temp2=p1-data;while (*temp2!=0)temp=temp2;if(*temp=*p2)while(*temp=*p2) p2+;if(*p2=0)sum=

13、sum+1;p2=str2;temp2+;printf(“字符段 %s n在文章中出现的次数: %dnnn“,p2,sum); void delet(sqlist *s) /*删除操作*/ int i,k;int flag=0;char t300;printf(“n原文本内容为:n%s“,s-data);printf(“nn请输入你要【删除】的字段: n“);scanf(“%s“,t);printf(“n“);for(i=0; *(s-data+i)!=0;i+)for(k=0; tk!=0;k+) if(*(s-data+i+k)=tk) - 10 -flag=1;elseflag=0; b

14、reak;if(flag)strcpy(s-data+i,s-data+i+k);-i;if(!flag) continue;printf(“删除指定字符段后的内容:n“); printf(“%snn“,s-data);void clear() /*清屏函数*/ system(“cls“); void menu() /*界面显示*/printf(“*n“);printf(“* *n“);printf(“*请【输入】一段文本内容(包含:字母.数字.符号等)-1n“);printf(“*你输入的【文本内容】是 -2n“);printf(“*【统计】文本中的数据 -3n“);printf(“*请输入所需要【查询】的字符串 -4n“);printf(“*请输入所需要【删除】的字符串 -5n“);printf(“*【清除本页】显示的内容 -6n“);printf(“*【退出】文本编辑器 -0n“);printf(“* *n“);printf(“*n“); void main() /*主函数部分*/sqlist *begin=NULL;sqlist *h=NULL;int s=2;while(s!=0)menu();printf(“功能选择(请参照上面说明): .“);scanf(“%d“,switch(s)

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 重点行业资料库 > 1

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。