数据结构简易文本编辑器_第1页
数据结构简易文本编辑器_第2页
数据结构简易文本编辑器_第3页
数据结构简易文本编辑器_第4页
数据结构简易文本编辑器_第5页
免费预览已结束,剩余5页可下载查看

下载本文档

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

文档简介

1、数据结构简易文本编辑器集团标准化58QG8Q8-GNQHGN#【2】.简易文本编辑器要求:1)具有图形菜单界面;2)查找,替换(等长,不等长),插入(插串,文本块的插入)、块移动(行块,列块移动),删除3)可正确存盘、取盘;4)正确显示总行数。1需求分析一个简易文本编辑器应该具有图形菜单界面,包括查找,替换(等长,不 等长),插入(插串,文本块的插入)、块移动(行块,列块移动),删除文 本信息等功能并可正确存盘、取盘,正确显示总行数。2概要设计为实现数据的有序存储,该编辑器应该用顺序表来存储输入的信息。顺序 表是数据结构中线性表的一种,它是用一块地址连续的存储空间依次存储线性 表的元素。其特点

2、为:在顺序表上逻辑关系相邻的俩个元素在物理位置上也相 邻;在顺序表上可以随即存取表中的元素。在编辑器的主界面中应有如下提示 信息:清空以前的文本信息:将用数组存的数据内容全部置为0:显示当前文本信息:遍历用数组存入的信息,并输入到外部显示器上;编辑信息:定义一个结构体,并在结构体中定义一个字符型的一维数组 和一个整型变量,这个整型变量用于记录一维数组中存入数据的个数:(4)替换文本信息:首先在数组中查找要被替换的信息,如果找到该信息, 提示输入要替换的信息内容,否则提示未找到要被替换的信息;插入文本信息:首先在数组中查找要插入点,如果找到该插入点,提示 输入插入信息,确认插入信息后,提示选择向

3、前插入信息还是向后插入信 息,如果未找到插入点,显示未找到要插入的位置;(6)移动文本信息:首先在数组中查找要移动的信息,如果找到该信息,提 示是进行列移动还是进行行移动,否则提示未找到要移动的信息;删除文本信息:首先在数组中查找要删除的信息,如果找到该信息,提 示是否确认删除该信息,通过确认来删除信息,如果未找到要删除的信 息,提示未找到该信息;退出编辑器:显示感谢使用该软件并退出。3详细设计void menu();void shuru(char text);void bc(char text);void dakai(char text);void dayin(char text);void

4、 chazhao(char text jnt 1);void tihan(char text,int 1);int strindex(char text,char i2jnt 1);void shanchu(char p Jnt 1);void cs(char text);void charu(char textJnt 1);void tuichu(int status);char textMAX=""An");getchar();loop:system(nclsH);printf("nnnntt* 简易文本编辑器*1n")printf(&qu

5、ot;tttt一。.清空内容-An");printf("tttt- 1 .打开文件-An”);if (ntext=0)printf("tttt-2 .输入内容-An)else printf("tttt一一2.继续输入-An");)printf(Htttt-3 .查找nH);printf(Htttt4 .插入nM);printf(ntttt-5 ,删除nn);printf(Htttt.一6 .替换nH);printf(ntttt7.显示内容-An");printf("tttt-8 .保存nM);*printf(ntttt-9

6、.退出nH);选项*n")printf("ntttt 输入选项 0-9 : ”);char n;fflush(stdin);n=getchar();if(n>='0'&&n<='9')(switch (n)(case 'O': cs(text);break;case T: dakai(text);break;case 2: shuru(text):break;case 3: chazhao(text,0);break;case 4: charu(text, 1 );break;case 5: sha

7、nchu(text,O);break;case tihan(text,O);break;case 7: dayin(text);break;case 8: bc(text);break;case 99 tuichu(status);default : break;)else(printf("n输入有误,请重新输入fflush(stdin);n=getchar();)system(MpauseH);goto loop;)void chazhao(char text jnt 1)system(HclsH);intchar pattern20,bd,pd;printf("原文为:

8、nH);dayin(text);printf(”请输入您要查找的内容)scanf(M%s,pattern);printf("您查找的内容是:sn",pattern);t=strlen(pattern);loop:a=strindex(text,pattern4j);if(a!=-l)(l=a+t;)int hs=l ,ls=0;for (i=0;i<=a;i+)(ls+;if (texti='n')(hs+;ls=0;)if(a=-l)(printf("查找到结尾没有找到n输入【R】将重头查找;任意键返回主菜单”);1=0;fflush(st

9、din);pd=getchar();)else(printf("已经找到在第d行第d列,输入【R】继续查找下一处;任意键返回主菜单”,hs,ls);fflush(stdin);bd=getchar();if (bd= Rllbd= rr) goto loop;if (pd=Rllpd= rr)l=0;chazhao(text J);)void dayin(char text)(system(MclsH);printf(”现在文本的内容为:n'');printf(M%sii,text);int hs=l,i;for (i=O;i<ntext;i+)(if(text

10、i='n')hs+;)1printf("n 文本共有4 行n”,hs);)void shuru(char text)(system(ncIsH);printf(”请输入内容(输入。结束输入并返回主菜单)printf(M%s,text);char c;int i=ntextj=ntext;fflush(stdin);while (c=getchar()!=* *)(texti=c;i+;ntext=i;continue;)int cout=0,zf=05h= 1 ,hs= 1 ,zfs=O;for(;cout<ntext;cout+)(zf+;if(textcou

11、t=rn,)h+;zf-; if(textcout= *)for(cout=j ;cout<ntext;cout+)(zfs+;if(textcout=,n,)hs+;zfs;)if(textcout= *) zfs")printf("统计:文本一共有d个字符,%d行,本次输入了 %d个字符,d 行n",zf,h,zfs,hs);)void shanchu(char p,int 1)(int i,a=-l,t2=0;char x20,px,pd,pdx,c;system(“cls");printf("%s",p);printf(

12、”n输入【A】执行查找删除内容;任意键返回主菜单:”);fflush(stdin);px=getchar();if (px=,a,llpx=,A,)(printf(”n输入您要删除的内容,以结束:”);fflush(stdin);while (c=getchar()!=* *)(if(c='') (break;1 else (xU2=c;t2+; continue;)1loop:a=strindex(p,x,t2J);int hs=l,ls=O;for (i=0;i<=a;i+)ls+;if(Pi='!r)(hs+; ls=O;)if(a=-l)(printf(&

13、quot;已查找结束,您要删除的内容不存在n输入R重新输入要删除的内容:其他键将返回主菜单:”);1=0;fflush(stdin);pdx=getchar();1else(printf(“你要删除的内容在第d行第1列5输入【A】确定删除:输入出】寻找下个词:其他键将返回主菜单:hs,ls);fflush(stdin);pd=getchar();l=t2+a;if (pd='a'llpd='A')for(i=a;i<ntext;i+)pi=pi+t2;)ntext=ntext-t2;printf(”删除成功,删除后的内容为:n%sn”,text);)els

14、e if (pd= bllpd= Bv) goto loop;)if(pdx=fllpdx=,R,)shanchu(textJ);void charu(char text,int 1)是此位置向后继续找插入点n【B】.在此位置插入n按其他键返回菜单n请选择:”,hs,ls+l);fflush(stdin);pd=getchar();if (pd= allpd=,A,)(l=a+t;goto loop;)else if (pd='b'llpd=B)(printf(”nn输入您要插入的内容,以结束:”);fflush(stdin);while (c=getchar()!=* *)(if(c='')( break;) elsexR2=c;t2+; continue;)for (i=ntext;i>=a;i")(texti+t2=texti;)for (i=0;i<t2;i+)texti+a=xi;)ntext=ntext+t2;printf("n当前文本信息为:n");for (i=0;i<=ntext-1 ;i+) printf("c”

温馨提示

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

评论

0/150

提交评论