數(shù)據(jù)結(jié)構(gòu)簡易文本編輯器_第1頁
數(shù)據(jù)結(jié)構(gòu)簡易文本編輯器_第2頁
數(shù)據(jù)結(jié)構(gòu)簡易文本編輯器_第3頁
數(shù)據(jù)結(jié)構(gòu)簡易文本編輯器_第4頁
數(shù)據(jù)結(jié)構(gòu)簡易文本編輯器_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、數(shù)據(jù)結(jié)構(gòu)簡易文本編輯器集團(tuán)標(biāo)準(zhǔn)化58QG8Q8-GNQHGN#【2】.簡易文本編輯器要求:1)具有圖形菜單界面;2)查找,替換(等長,不等長),插入(插串,文本塊的插入)、塊移動(行塊,列塊移動),刪除3)可正確存盤、取盤;4)正確顯示總行數(shù)。1需求分析一個簡易文本編輯器應(yīng)該具有圖形菜單界面,包括查找,替換(等長,不 等長),插入(插串,文本塊的插入)、塊移動(行塊,列塊移動),刪除文 本信息等功能并可正確存盤、取盤,正確顯示總行數(shù)。2概要設(shè)計為實現(xiàn)數(shù)據(jù)的有序存儲,該編輯器應(yīng)該用順序表來存儲輸入的信息。順序 表是數(shù)據(jù)結(jié)構(gòu)中線性表的一種,它是用一塊地址連續(xù)的存儲空間依次存儲線性 表的元素。其特點

2、為:在順序表上邏輯關(guān)系相鄰的倆個元素在物理位置上也相 鄰;在順序表上可以隨即存取表中的元素。在編輯器的主界面中應(yīng)有如下提示 信息:清空以前的文本信息:將用數(shù)組存的數(shù)據(jù)內(nèi)容全部置為0:顯示當(dāng)前文本信息:遍歷用數(shù)組存入的信息,并輸入到外部顯示器上;編輯信息:定義一個結(jié)構(gòu)體,并在結(jié)構(gòu)體中定義一個字符型的一維數(shù)組 和一個整型變量,這個整型變量用于記錄一維數(shù)組中存入數(shù)據(jù)的個數(shù):(4)替換文本信息:首先在數(shù)組中查找要被替換的信息,如果找到該信息, 提示輸入要替換的信息內(nèi)容,否則提示未找到要被替換的信息;插入文本信息:首先在數(shù)組中查找要插入點,如果找到該插入點,提示 輸入插入信息,確認(rèn)插入信息后,提示選擇向

3、前插入信息還是向后插入信 息,如果未找到插入點,顯示未找到要插入的位置;(6)移動文本信息:首先在數(shù)組中查找要移動的信息,如果找到該信息,提 示是進(jìn)行列移動還是進(jìn)行行移動,否則提示未找到要移動的信息;刪除文本信息:首先在數(shù)組中查找要刪除的信息,如果找到該信息,提 示是否確認(rèn)刪除該信息,通過確認(rèn)來刪除信息,如果未找到要刪除的信 息,提示未找到該信息;退出編輯器:顯示感謝使用該軟件并退出。3詳細(xì)設(shè)計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一。.清空內(nèi)容-An");printf("tttt- 1 .打開文件-An”);if (ntext=0)printf("tttt-2 .輸入內(nèi)容-An)else printf("tttt一一2.繼續(xù)輸入-An");)printf(Htttt-3 .查找nH);printf(Htttt4 .插入nM);printf(ntttt-5 ,刪除nn);printf(Htttt.一6 .替換nH);printf(ntttt7.顯示內(nèi)容-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(”請輸入您要查找的內(nèi)容)scanf(M%s,pattern);printf("您查找的內(nèi)容是: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("查找到結(jié)尾沒有找到n輸入【R】將重頭查找;任意鍵返回主菜單”);1=0;fflush(st

9、din);pd=getchar();)else(printf("已經(jīng)找到在第d行第d列,輸入【R】繼續(xù)查找下一處;任意鍵返回主菜單”,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(”現(xiàn)在文本的內(nèi)容為: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(”請輸入內(nèi)容(輸入。結(jié)束輸入并返回主菜單)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("統(tǒng)計:文本一共有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】執(zhí)行查找刪除內(nèi)容;任意鍵返回主菜單:”);fflush(stdin);px=getchar();if (px=,a,llpx=,A,)(printf(”n輸入您要刪除的內(nèi)容,以結(jié)束:”);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;已查找結(jié)束,您要刪除的內(nèi)容不存在n輸入R重新輸入要刪除的內(nèi)容:其他鍵將返回主菜單:”);1=0;fflush(stdin);pdx=getchar();1else(printf(“你要刪除的內(nèi)容在第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èi)容為:n%sn”,text);)els

14、e if (pd= bllpd= Bv) goto loop;)if(pdx=fllpdx=,R,)shanchu(textJ);void charu(char text,int 1)是此位置向后繼續(xù)找插入點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輸入您要插入的內(nèi)容,以結(jié)束:”);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當(dāng)前文本信息為:n");for (i=0;i<=ntext-1 ;i+) printf("c”

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論