數(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è)
已閱讀5頁(yè),還剩39頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)易文本編輯器TPMKstandardizationoffice【TPMKstandardizationoffice【TPMK5AB-TPMK08-TPMK2C-TPMK18】數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)易文本編輯器全文共44頁(yè),當(dāng)前為第1頁(yè)。數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)易文本編輯器數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)易文本編輯器全文共44頁(yè),當(dāng)前為第1頁(yè)。題目:【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)為:在順序表上邏輯關(guān)系相鄰的倆個(gè)元素在物理位置上也相鄰;在順序表上可以隨即存取表中的元素。在編輯器的主界面中應(yīng)有如下提示信息:數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)易文本編輯器全文共44頁(yè),當(dāng)前為第2頁(yè)。=1\*GB2⑴清空以前的文本信息:將用數(shù)組存的數(shù)據(jù)內(nèi)容全部置為0;數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)易文本編輯器全文共44頁(yè),當(dāng)前為第2頁(yè)。=2\*GB2⑵顯示當(dāng)前文本信息:遍歷用數(shù)組存入的信息,并輸入到外部顯示器上;=3\*GB2⑶編輯信息:定義一個(gè)結(jié)構(gòu)體,并在結(jié)構(gòu)體中定義一個(gè)字符型的一維數(shù)組和一個(gè)整型變量,這個(gè)整型變量用于記錄一維數(shù)組中存入數(shù)據(jù)的個(gè)數(shù);=4\*GB2⑷替換文本信息:首先在數(shù)組中查找要被替換的信息,如果找到該信息,提示輸入要替換的信息內(nèi)容,否則提示未找到要被替換的信息;=5\*GB2⑸插入文本信息:首先在數(shù)組中查找要插入點(diǎn),如果找到該插入點(diǎn),提示輸入插入信息,確認(rèn)插入信息后,提示選擇向前插入信息還是向后插入信息,如果未找到插入點(diǎn),顯示未找到要插入的位置;=6\*GB2⑹移動(dòng)文本信息:首先在數(shù)組中查找要移動(dòng)的信息,如果找到該信息,提示是進(jìn)行列移動(dòng)還是進(jìn)行行移動(dòng),否則提示未找到要移動(dòng)的信息;=7\*GB2⑺刪除文本信息:首先在數(shù)組中查找要?jiǎng)h除的信息,如果找到該信息,提示是否確認(rèn)刪除該信息,通過(guò)確認(rèn)來(lái)刪除信息,如果未找到要?jiǎng)h除的信息,提示未找到該信息;=8\*GB2⑻退出編輯器:顯示感謝使用該軟件并退出。3詳細(xì)設(shè)計(jì)voidmenu();voidshuru(chartext[]);數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)易文本編輯器全文共44頁(yè),當(dāng)前為第3頁(yè)。voidbc(chartext[]);數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)易文本編輯器全文共44頁(yè),當(dāng)前為第3頁(yè)。voiddakai(chartext[]);voiddayin(chartext[]);voidchazhao(chartext[],intl);voidtihan(chartext[],intl);intstrindex(chartext[],chart[],inti2,intl);voidshanchu(charp[],intl);voidcs(chartext[]);voidcharu(chartext[],intl);voidtuichu(intstatus);chartext[MAX]=""; //文本編輯域charname[20]=""; //文件保存的位置intstatus=0; //顯示是否保存過(guò)的狀態(tài)intntext; //文本編輯的位置 4用戶使用說(shuō)明=1\*GB2⑴清空以前的文本信息:將用數(shù)組存的數(shù)據(jù)內(nèi)容全部置為0;數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)易文本編輯器全文共44頁(yè),當(dāng)前為第4頁(yè)。=2\*GB2⑵顯示當(dāng)前文本信息:遍歷用數(shù)組存入的信息,并輸入到外部顯示器上;數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)易文本編輯器全文共44頁(yè),當(dāng)前為第4頁(yè)。=3\*GB2⑶編輯信息:定義一個(gè)結(jié)構(gòu)體,并在結(jié)構(gòu)體中定義一個(gè)字符型的一維數(shù)組和一個(gè)整型變量,這個(gè)整型變量用于記錄一維數(shù)組中存入數(shù)據(jù)的個(gè)數(shù);=4\*GB2⑷替換文本信息:首先在數(shù)組中查找要被替換的信息,如果找到該信息,提示輸入要替換的信息內(nèi)容,否則提示未找到要被替換的信息;=5\*GB2⑸插入文本信息:首先在數(shù)組中查找要插入點(diǎn),如果找到該插入點(diǎn),提示輸入插入信息,確認(rèn)插入信息后,提示選擇向前插入信息還是向后插入信息,如果未找到插入點(diǎn),顯示未找到要插入的位置;=6\*GB2⑹移動(dòng)文本信息:首先在數(shù)組中查找要移動(dòng)的信息,如果找到該信息,提示是進(jìn)行列移動(dòng)還是進(jìn)行行移動(dòng),否則提示未找到要移動(dòng)的信息;=7\*GB2⑺刪除文本信息:首先在數(shù)組中查找要?jiǎng)h除的信息,如果找到該信息,提示是否確認(rèn)刪除該信息,通過(guò)確認(rèn)來(lái)刪除信息,如果未找到要?jiǎng)h除的信息,提示未找到該信息;=8\*GB2⑻退出編輯器:顯示感謝使用該軟件并退出。5調(diào)試分析/測(cè)試結(jié)果文本編輯器主界面主界面功能,如圖2—2所示。數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)易文本編輯器全文共44頁(yè),當(dāng)前為第5頁(yè)。圖2—2文本編輯器主界面數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)易文本編輯器全文共44頁(yè),當(dāng)前為第5頁(yè)。系統(tǒng)功能=1\*GB2⑴輸入文本信息功能,如圖2—3所示。圖2—3輸入界面=2\*GB2⑵查找文本信息,如圖2—4所示。圖2—4查到功能界面=3\*GB2⑶顯示文本信息,如圖2—5。圖2—5{4}刪除操作,如圖2--6圖2—6(刪除123)功能{5}插入操作如圖2—7所示。圖2—7(在789前插入123)界面{6}替換文本內(nèi)容,如圖2—8所示。數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)易文本編輯器全文共44頁(yè),當(dāng)前為第6頁(yè)。圖2—8(替換456為abc)的內(nèi)容數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)易文本編輯器全文共44頁(yè),當(dāng)前為第6頁(yè)。6心得體會(huì)程序的運(yùn)行結(jié)果與理論推導(dǎo)結(jié)果完全吻合,即該算法與程序設(shè)計(jì)滿足課程設(shè)計(jì)要求。該程序的主要優(yōu)點(diǎn)是簡(jiǎn)單易懂,不存在理解上的障礙,也很自然地能想到這種解法。通過(guò)數(shù)據(jù)結(jié)構(gòu)的課程設(shè)計(jì)使我們對(duì)所學(xué)知識(shí)有了更好的理解,也增強(qiáng)了大家的動(dòng)手能力。同時(shí)也發(fā)現(xiàn)了自己的很多不足之處,對(duì)知識(shí)的應(yīng)用能力很是欠缺,應(yīng)用軟件的能力及編程水平與課程要求更是存在很大的差距。7程序#include<stdio.h>#include<stdlib.h>#include<time.h>#include<string.h>#defineMAX10000#define_CRT_SECURE_NO_DEPRECATE //在vs中取消warning的警告voidmenu();voidshuru(chartext[]);數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)易文本編輯器全文共44頁(yè),當(dāng)前為第7頁(yè)。voidbc(chartext[]);數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)易文本編輯器全文共44頁(yè),當(dāng)前為第7頁(yè)。voiddakai(chartext[]);voiddayin(chartext[]);voidchazhao(chartext[],intl);voidtihan(chartext[],intl);intstrindex(chartext[],chart[],inti2,intl);voidshanchu(charp[],intl);voidcs(chartext[]);voidcharu(chartext[],intl);voidtuichu(intstatus);chartext[MAX]=""; //文本編輯域charname[20]=""; //文件保存的位置intstatus=0; //顯示是否保存過(guò)的狀態(tài)intntext; //文本編輯的位置 voiddakai(chartext[]){數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)易文本編輯器全文共44頁(yè),當(dāng)前為第8頁(yè)。 system("cls");數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)易文本編輯器全文共44頁(yè),當(dāng)前為第8頁(yè)。 FILE*fp; charpd,ch; charname[30]; inti=0; printf("輸入A:確定打開(kāi)文件(未保存的數(shù)據(jù)將會(huì)丟失)M:返回主菜單"); fflush(stdin); pd=getchar(); if(pd=='A'||pd=='a') { printf("請(qǐng)輸入要打開(kāi)文件名字(例如c:\\a.txt)"); scanf("%s",name); while((fp=fopen(name,"r"))==NULL) { printf("\n打開(kāi)文件失敗,請(qǐng)重新輸入要打開(kāi)的文件名:");數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)易文本編輯器全文共44頁(yè),當(dāng)前為第9頁(yè)。 scanf("%s",name);數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)易文本編輯器全文共44頁(yè),當(dāng)前為第9頁(yè)。 } cs(text); while(!feof(fp)) { ch=fgetc(fp); text[i]=ch; i++; } text[i]='\0'; ntext=i; fclose(fp); printf("\n文件讀取成功\n文件內(nèi)容為\n"); dayin(text); } if(pd=='M'||pd=='m')數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)易文本編輯器全文共44頁(yè),當(dāng)前為第10頁(yè)。 menu();數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)易文本編輯器全文共44頁(yè),當(dāng)前為第10頁(yè)。}voidbc(chartext[]){ system("cls"); FILE*fp; charpd; chartmp; inti; printf("\n輸入【A】保存;任意鍵返回主菜單不保存\n"); fflush(stdin); pd=getchar(); if(!(pd=='A'||pd=='a')) { menu(); }數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)易文本編輯器全文共44頁(yè),當(dāng)前為第11頁(yè)。 else數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)易文本編輯器全文共44頁(yè),當(dāng)前為第11頁(yè)。 { if(name[20]==NULL) { printf("\n請(qǐng)輸入保存文件名(例如:c:\\a.txt):"); scanf("%s",name); } while((fp=fopen(name,"w+"))==NULL) { printf("文件不存在,請(qǐng)重新輸入文件名:"); scanf("%s",name); } printf("\nA:確定;B:取消:"); while(scanf("%c",&tmp)!=EOF) { if(tmp=='A'||tmp=='a')數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)易文本編輯器全文共44頁(yè),當(dāng)前為第12頁(yè)。 {數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)易文本編輯器全文共44頁(yè),當(dāng)前為第12頁(yè)。 for(i=0;i<ntext;i++) fprintf(fp,"%c",text[i]); fclose(fp); status=1; printf("\n文件保存成功\n"); break; } if(tmp=='B'||tmp=='b') { break; } } }}voidcs(chartext[])數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)易文本編輯器全文共44頁(yè),當(dāng)前為第13頁(yè)。{數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)易文本編輯器全文共44頁(yè),當(dāng)前為第13頁(yè)。 inti; for(i=0;i<ntext;i++) { text[i]='\0'; } ntext=0; status=0;}intstrindex(chartext[],chart[],inti2,intl)//查找要操作的數(shù)據(jù)的位置(模式匹配){ inti1=l,j=0; while(i1<ntext&&j<i2) { if(text[i1]==t[j]) //繼續(xù)匹配下一個(gè)字符 {數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)易文本編輯器全文共44頁(yè),當(dāng)前為第14頁(yè)。 j++;數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)易文本編輯器全文共44頁(yè),當(dāng)前為第14頁(yè)。 i1++; //主串和子串依次匹配下一個(gè)字符 } else //主串、子串指針回溯重新開(kāi)始下一次匹配 { i1=i1-j+1; //主串從下一個(gè)位置開(kāi)始匹配 j=0; //子串從頭開(kāi)始匹配 } } if(j>=i2) { return(i1-i2); } //返回匹配的第一個(gè)字符的下標(biāo) else數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)易文本編輯器全文共44頁(yè),當(dāng)前為第15頁(yè)。 return(-1); //模式匹配不成功數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)易文本編輯器全文共44頁(yè),當(dāng)前為第15頁(yè)。}voidmenu(){ system("cls"); time_ttimep; time(&timep); printf("%s",ctime(&timep)); printf("\n\n\n\n\n\n\n\n\n\t\t\tWelcomtouseourTXTeditionsystem!\n"); printf("\n\n\t\t\t歡迎您使用文本編輯器軟件!\n"); printf("\n\n\n\n\n\n\n\n\npressEntertocontinue...\n"); getchar();loop: system("cls"); printf("\n\n\n\n\t\t******************簡(jiǎn)易文本編輯器*****************\n\n");數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)易文本編輯器全文共44頁(yè),當(dāng)前為第16頁(yè)。 printf("\t\t\t\t----0.清空內(nèi)容--\n");數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)易文本編輯器全文共44頁(yè),當(dāng)前為第16頁(yè)。 printf("\t\t\t\t----1.打開(kāi)文件--\n"); if(ntext==0){ printf("\t\t\t\t----2.輸入內(nèi)容--\n"); } else{ printf("\t\t\t\t----2.繼續(xù)輸入--\n"); } printf("\t\t\t\t----3.查找------\n"); printf("\t\t\t\t----4.插入------\n"); printf("\t\t\t\t----5.刪除------\n"); printf("\t\t\t\t----6.替換------\n"); printf("\t\t\t\t----7.顯示內(nèi)容--\n"); printf("\t\t\t\t----8.保存------\n"); printf("\t\t\t\t----9.退出------\n"); printf("\n\t\t*********************選項(xiàng)************************\n");數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)易文本編輯器全文共44頁(yè),當(dāng)前為第17頁(yè)。 printf("\n\t\t\t\t輸入選項(xiàng)0-9:"); 數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)易文本編輯器全文共44頁(yè),當(dāng)前為第17頁(yè)。 charn; fflush(stdin); n=getchar(); if(n>='0'&&n<='9') { switch(n) { case'0':cs(text);break; case'1':dakai(text);break; case'2':shuru(text);break; case'3':chazhao(text,0);break; case'4':charu(text,1);break; case'5':shanchu(text,0);break; case'6':tihan(text,0);break; case'7':dayin(text);break;數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)易文本編輯器全文共44頁(yè),當(dāng)前為第18頁(yè)。 case'8':bc(text);break; 數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)易文本編輯器全文共44頁(yè),當(dāng)前為第18頁(yè)。 case'9':tuichu(status); default:break; } } else { printf("\n輸入有誤,請(qǐng)重新輸入:"); fflush(stdin); n=getchar(); } system("pause"); gotoloop;}voidchazhao(chartext[],intl){數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)易文本編輯器全文共44頁(yè),當(dāng)前為第19頁(yè)。 system("cls");數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)易文本編輯器全文共44頁(yè),當(dāng)前為第19頁(yè)。 inti,t,a=-1; charpattern[20],bd,pd; printf("原文為:\n"); dayin(text); printf("請(qǐng)輸入您要查找的內(nèi)容"); scanf("%s",pattern); printf("您查找的內(nèi)容是:%s\n",pattern); t=strlen(pattern);loop: a=strindex(text,pattern,t,l); if(a!=-1) { l=a+t; } inths=1,ls=0;數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)易文本編輯器全文共44頁(yè),當(dāng)前為第20頁(yè)。 for(i=0;i<=a;i++)數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)易文本編輯器全文共44頁(yè),當(dāng)前為第20頁(yè)。 { ls++; if(text[i]=='\n') { hs++;ls=0; } } if(a==-1) { printf("查找到結(jié)尾沒(méi)有找到\n輸入【R】將重頭查找;任意鍵返回主菜單"); l=0; fflush(stdin); pd=getchar(); } else數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)易文本編輯器全文共44頁(yè),當(dāng)前為第21頁(yè)。 {數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)易文本編輯器全文共44頁(yè),當(dāng)前為第21頁(yè)。 printf("已經(jīng)找到在第%d行第%d列,輸入【R】繼續(xù)查找下一處;任意鍵返回主菜單",hs,ls); fflush(stdin); bd=getchar(); if(bd=='R'||bd=='r') gotoloop; } if(pd=='R'||pd=='r') {l=0;chazhao(text,l);}}voiddayin(chartext[]){ system("cls"); printf("現(xiàn)在文本的內(nèi)容為:\n"); printf("%s\n",text); inths=1,i;數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)易文本編輯器全文共44頁(yè),當(dāng)前為第22頁(yè)。 for(i=0;i<ntext;i++)數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)易文本編輯器全文共44頁(yè),當(dāng)前為第22頁(yè)。 { if(text[i]=='\n') { hs++; } } printf("\n文本共有%d行\(zhòng)n",hs);}voidshuru(chartext[]){ system("cls"); printf("請(qǐng)輸入內(nèi)容(輸入@結(jié)束輸入并返回主菜單):\n"); printf("%s",text); charc; inti=ntext,j=ntext;數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)易文本編輯器全文共44頁(yè),當(dāng)前為第23頁(yè)。 fflush(stdin);數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)易文本編輯器全文共44頁(yè),當(dāng)前為第23頁(yè)。 while((c=getchar())!='@') { text[i]=c; i++; ntext=i; continue; } intcout=0,zf=0,h=1,hs=1,zfs=0; for(;cout<ntext;cout++) { zf++; if(text[cout]=='\n') {h++;zf--;} if(text[cout]=='') zf--;數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)易文本編輯器全文共44頁(yè),當(dāng)前為第24頁(yè)。 }數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)易文本編輯器全文共44頁(yè),當(dāng)前為第24頁(yè)。 for(cout=j;cout<ntext;cout++) { zfs++; if(text[cout]=='\n') {hs++;zfs--;} if(text[cout]=='') zfs--; } printf("統(tǒng)計(jì):文本一共有%d個(gè)字符,%d行,本次輸入了%d個(gè)字符,%d行\(zhòng)n",zf,h,zfs,hs);}voidshanchu(charp[],intl){ inti,a=-1,t2=0; charx[20],px,pd,pdx,c; system("cls");數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)易文本編輯器全文共44頁(yè),當(dāng)前為第25頁(yè)。 printf("%s",p);數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)易文本編輯器全文共44頁(yè),當(dāng)前為第25頁(yè)。 printf("\n輸入【A】執(zhí)行查找刪除內(nèi)容;任意鍵返回主菜單:"); fflush(stdin); px=getchar(); if(px=='a'||px=='A') { printf("\n輸入您要?jiǎng)h除的內(nèi)容,以@結(jié)束:"); fflush(stdin); while((c=getchar())!='@') { if(c=='@') { break; } else {數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)易文本編輯器全文共44頁(yè),當(dāng)前為第26頁(yè)。 x[t2]=c;數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)易文本編輯器全文共44頁(yè),當(dāng)前為第26頁(yè)。 t2++; continue; } }loop: a=strindex(p,x,t2,l); inths=1,ls=0; for(i=0;i<=a;i++) { ls++; if(p[i]=='\n') { hs++;ls=0; } }數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)易文本編輯器全文共44頁(yè),當(dāng)前為第27頁(yè)。 if(a==-1)數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)易文本編輯器全文共44頁(yè),當(dāng)前為第27頁(yè)。 { printf("已查找結(jié)束,您要?jiǎng)h除的內(nèi)容不存在\n輸入【R】重新輸入要?jiǎng)h除的內(nèi)容;其他鍵將返回主菜單:"); l=0; fflush(stdin); pdx=getchar(); } else { printf("你要?jiǎng)h除的內(nèi)容在第%d行第%d列\(zhòng)n輸入【A】確定刪除;輸入【B】尋找下個(gè)詞;其他鍵將返回主菜單:",hs,ls); fflush(stdin); pd=getchar(); l=t2+a; if(pd=='a'||pd=='A') {數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)易文本編輯器全文共44頁(yè),當(dāng)前為第28頁(yè)。 for(i=a;i<ntext;i++)數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)易文本編輯器全文共44頁(yè),當(dāng)前為第28頁(yè)。 { p[i]=p[i+t2]; } ntext=ntext-t2; printf("刪除成功,刪除后的內(nèi)容為:\n%s\n",text); } elseif(pd=='b'||pd=='B') gotoloop; } if(pdx=='r'||pdx=='R') shanchu(text,l); }}voidcharu(chartext[],intl)//向文本中插入內(nèi)容{數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)易文本編輯器全文共44頁(yè),當(dāng)前為第29頁(yè)。 system("cls");數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)易文本編輯器全文共44頁(yè),當(dāng)前為第29頁(yè)。 inti=0,t=0,t2=0,a=-1,b; charcr[20]="",pd,x[500],c,d; printf("\n當(dāng)前文本信息為:\n"); printf("%s",text); printf("\n輸入您要在哪個(gè)內(nèi)容前插入,以@結(jié)束:"); fflush(stdin); while((c=getchar())!='@')//用一個(gè)數(shù)組接收要插入在哪個(gè)內(nèi)容之前 { if(c=='@') { break; } else { cr[t]=c;數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)易文本編輯器全文共44頁(yè),當(dāng)前為第30頁(yè)。 t++;數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)易文本編輯器全文共44頁(yè),當(dāng)前為第30頁(yè)。 continue; } }loop: a=strindex(text,cr,t,l);//查找并返回要插入的位置點(diǎn) inths=1,ls=0; for(b=0;b<a;b++) { ls++; if(text[b]=='\n') { hs++; ls=0; } }數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)易文本編輯器全文共44頁(yè),當(dāng)前為第31頁(yè)。 if(a==-1)數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)易文本編輯器全文共44頁(yè),當(dāng)前為第31頁(yè)。 { printf("\n查找到結(jié)尾沒(méi)有找到插入點(diǎn),輸入【R】查找其他;按其他鍵返回菜單:\n"); l=0; fflush(stdin); d=getchar(); fflush(stdin); } else { printf("\n您要插入的位置是第%d行,第%d列之前\n【A】.不是此位置向后繼續(xù)找插入點(diǎn)\n【B】.在此位置插入\n按其他鍵返回菜單\n請(qǐng)選擇:",hs,ls+1); fflush(stdin); pd=getchar(); if(pd=='a'||pd=='A')數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)易文本編輯器全文共44頁(yè),當(dāng)前為第32頁(yè)。 {數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)易文本編輯器全文共44頁(yè),當(dāng)前為第32頁(yè)。 l=a+t; gotoloop; } elseif(pd=='b'||pd=='B') { printf("\n\n輸入您要插入的內(nèi)容,以@結(jié)束:"); fflush(stdin); while((c=getchar())!='@') { if(c=='@') { break; } else {數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)易文本編輯器全文共44頁(yè),當(dāng)前為第33頁(yè)。 x[t2]=c;數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)易文本編輯器全文共44頁(yè),當(dāng)前為第33頁(yè)。 t2++; continue; } } for(i=ntext;i>=a;i--) { text[i+t2]=text[i]; } for(i=0;i<t2;i++) { text[i+a]=x[i]; } ntext=ntext+t2; printf("\n當(dāng)前文本信息為:\n"); for(i=0;i<=ntext-1;i++)數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)易文本編輯器全文共44頁(yè),當(dāng)前為第34頁(yè)。 printf("%c",text[i]);數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)易文本編輯器全文共44頁(yè),當(dāng)前為第34頁(yè)。 printf("\n文本插入成功\n"); fflush(stdin); getchar(); } } if(d=='r'||d=='R') { l=0; charu(text,l); } status=0;}voidtihan(charp[],intl)//內(nèi)容替換{ intt=0,t1=0,i,a,b;數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)易文本編輯器全文共44頁(yè),當(dāng)前為第35頁(yè)。 charc,th[20],d,d1,bth[20];數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)易文本編輯器全文共44頁(yè),當(dāng)前為第35頁(yè)。 inti2; system("cls"); printf("\n當(dāng)前文本信息為:\n"); for(i2=0;i2<=ntext-1;i2++) printf("%c",p[i2]); printf("\n輸入要被替換的內(nèi)容,以@結(jié)束:"); fflush(stdin); while((c=getchar())!='@')//t指替換前內(nèi)容的長(zhǎng)度 { if(c=='@') { break; } else {數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)易文本編輯器全文共44頁(yè),當(dāng)前為第36頁(yè)。 bth[t]=c;數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)易文本編輯器全文共44頁(yè),當(dāng)前為第36頁(yè)。 t++; continue; } }loop: a=strindex(p,bth,t,l);//查找要被替換的內(nèi)容的位置 inths=1,ls=0; for(b=0;b<a;b++) { ls++; if(p[b]=='\n') { hs++; ls=0; }數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)易文本編輯器全文共44頁(yè),當(dāng)前為第37頁(yè)。 }數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)易文本編輯器全文共44頁(yè),當(dāng)前為第37頁(yè)。 if(a==-1) { printf("\n查找到結(jié)尾沒(méi)有找到要被替換的內(nèi)容\n輸入【R】查找其他內(nèi)容,按其他鍵返回主菜單鍵\n"); l=0; d=getchar(); fflush(stdin); } else { printf("\n\n已經(jīng)找到要查找的數(shù)據(jù)在第%d行第%d列\(zhòng)n輸入【A】繼續(xù)向后查找相同內(nèi)容\n輸入其他鍵將進(jìn)行替換操作\n請(qǐng)選擇:",hs,ls+1); fflush(stdin); l=t+a; charpd;數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)易文本編輯器全文共44頁(yè),當(dāng)前為第38頁(yè)。 pd=getchar();數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)易文本編輯器全文共44頁(yè),當(dāng)前為第38頁(yè)。 if(pd!='a'&&pd!='A') { printf("\n是否要替換該內(nèi)容?\nA:替換給內(nèi)容;其他鍵返回主菜單\n請(qǐng)選擇:"); fflush(stdin

溫馨提示

  • 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)論