數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)易文本編輯器_第1頁(yè)
數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)易文本編輯器_第2頁(yè)
數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)易文本編輯器_第3頁(yè)
數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)易文本編輯器_第4頁(yè)
數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)易文本編輯器_第5頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余5頁(yè)可下載查看

下載本文檔

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

文檔簡(jiǎn)介

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

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

3、前插入信息還是向后插入信 息,如果未找到插入點(diǎn),顯示未找到要插入的位置;(6)移動(dòng)文本信息:首先在數(shù)組中查找要移動(dòng)的信息,如果找到該信息,提 示是進(jìn)行列移動(dòng)還是進(jìn)行行移動(dòng),否則提示未找到要移動(dòng)的信息;刪除文本信息:首先在數(shù)組中查找要?jiǎng)h除的信息,如果找到該信息,提 示是否確認(rèn)刪除該信息,通過(guò)確認(rèn)來(lái)刪除信息,如果未找到要?jiǎng)h除的信 息,提示未找到該信息;退出編輯器:顯示感謝使用該軟件并退出。3詳細(xì)設(shè)計(jì)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* 簡(jiǎn)易文本編輯器*1n")printf(&qu

5、ot;tttt一。.清空內(nèi)容-An");printf("tttt- 1 .打開(kāi)文件-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);選項(xiàng)*n")printf("ntttt 輸入選項(xiàng) 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輸入有誤,請(qǐng)重新輸入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(”請(qǐng)輸入您要查找的內(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é)尾沒(méi)有找到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(”請(qǐng)輸入內(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)計(jì):文本一共有d個(gè)字符,%d行,本次輸入了 %d個(gè)字符,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輸入您要?jiǎng)h除的內(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é)束,您要?jiǎng)h除的內(nèi)容不存在n輸入R重新輸入要?jiǎng)h除的內(nèi)容:其他鍵將返回主菜單:”);1=0;fflush(stdin);pdx=getchar();1else(printf(“你要?jiǎng)h除的內(nèi)容在第d行第1列5輸入【A】確定刪除:輸入出】尋找下個(gè)詞:其他鍵將返回主菜單: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ù)找插入點(diǎn)n【B】.在此位置插入n按其他鍵返回菜單n請(qǐng)選擇:”,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. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論