歡迎來到裝配圖網(wǎng)! | 幫助中心 裝配圖網(wǎng)zhuangpeitu.com!
裝配圖網(wǎng)
ImageVerifierCode 換一換
首頁 裝配圖網(wǎng) > 資源分類 > DOC文檔下載  

大數(shù)據(jù)結(jié)構(gòu)簡易文本編輯器

  • 資源ID:83446328       資源大?。?span id="rusa8ee" class="font-tahoma">162.50KB        全文頁數(shù):24頁
  • 資源格式: DOC        下載積分:10積分
快捷下載 游客一鍵下載
會員登錄下載
微信登錄下載
三方登錄下載: 微信開放平臺登錄 支付寶登錄   QQ登錄   微博登錄  
二維碼
微信掃一掃登錄
下載資源需要10積分
郵箱/手機(jī):
溫馨提示:
用戶名和密碼都是您填寫的郵箱或者手機(jī)號,方便查詢和重復(fù)下載(系統(tǒng)自動生成)
支付方式: 支付寶    微信支付   
驗(yàn)證碼:   換一換

 
賬號:
密碼:
驗(yàn)證碼:   換一換
  忘記密碼?
    
友情提示
2、PDF文件下載后,可能會被瀏覽器默認(rèn)打開,此種情況可以點(diǎn)擊瀏覽器菜單,保存網(wǎng)頁到桌面,就可以正常下載了。
3、本站不支持迅雷下載,請使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
4、本站資源下載后的文檔和圖紙-無水印,預(yù)覽文檔經(jīng)過壓縮,下載后原文更清晰。
5、試題試卷類文檔,如果標(biāo)題沒有明確說明有答案則都視為沒有答案,請知曉。

大數(shù)據(jù)結(jié)構(gòu)簡易文本編輯器

word題目:【2】簡易文本編輯器要求:1) 具有圖形菜單界面;2) 查找,替換等長,不等長,插入插串,文本塊的插入、塊移動行塊,列塊移動,刪除3) 可正確存盤、取盤;4) 正確顯示總行數(shù)。1需求分析一個簡易文本編輯器應(yīng)該具有圖形菜單界面,包括查找,替換等長,不等長,插入插串,文本塊的插入、塊移動行塊,列塊移動,刪除文本信息等功能并可正確存盤、取盤,正確顯示總行數(shù)。2概要設(shè)計(jì) 為實(shí)現(xiàn)數(shù)據(jù)的有序存儲,該編輯器應(yīng)該用順序表來存儲輸入的信息。順序表是數(shù)據(jù)結(jié)構(gòu)中線性表的一種,它是用一塊地址連續(xù)的存儲空間依次存儲線性表的元素。其特點(diǎn)為:在順序表上邏輯關(guān)系相鄰的倆個元素在物理位置上也相鄰;在順序表上可以隨即存取表中的元素。在編輯器的主界面中應(yīng)有如下提示信息: 清空以前的文本信息:將用數(shù)組存的數(shù)據(jù)內(nèi)容全部置為0; 顯示當(dāng)前文本信息:遍歷用數(shù)組存入的信息,并輸入到外部顯示器上; 編輯信息:定義一個結(jié)構(gòu)體,并在結(jié)構(gòu)體中定義一個字符型的一維數(shù)組和一個整型變量,這個整型變量用于記錄一維數(shù)組中存入數(shù)據(jù)的個數(shù); 替換文本信息:首先在數(shù)組中查找要被替換的信息,如果找到該信息,提示輸入要替換的信息內(nèi)容,否如此提示未找到要被替換的信息; 插入文本信息:首先在數(shù)組中查找要插入點(diǎn),如果找到該插入點(diǎn),提示輸入插入信息,確認(rèn)插入信息后,提示選擇向前插入信息還是向后插入信息,如果未找到插入點(diǎn),顯示未找到要插入的位置; 移動文本信息:首先在數(shù)組中查找要移動的信息,如果找到該信息,提示是進(jìn)展列移動還是進(jìn)展行移動,否如此提示未找到要移動的信息; 刪除文本信息:首先在數(shù)組中查找要刪除的信息,如果找到該信息,提示是否確認(rèn)刪除該信息,通過確認(rèn)來刪除信息,如果未找到要刪除的信息,提示未找到該信息; 退出編輯器:顯示感謝使用該軟件并退出。3 詳細(xì)設(shè)計(jì)void menu(); void shuru(char text);void bc(char text); void dakai(char text);void dayin(char text);void chazhao(char text,int l);void tihan(char text,int l);int strindex(char text,char t,int i2,int l);void shanchu(char p,int l);void cs(char text);void charu(char text,int l);void tuichu(int status);char textMAX=""/文本編輯域char name20=""/文件保存的位置int status=0;/顯示是否保存過的狀態(tài)int ntext;/文本編輯的位置4用戶使用說明 清空以前的文本信息:將用數(shù)組存的數(shù)據(jù)內(nèi)容全部置為0; 顯示當(dāng)前文本信息:遍歷用數(shù)組存入的信息,并輸入到外部顯示器上; 編輯信息:定義一個結(jié)構(gòu)體,并在結(jié)構(gòu)體中定義一個字符型的一維數(shù)組和一個整型變量,這個整型變量用于記錄一維數(shù)組中存入數(shù)據(jù)的個數(shù); 替換文本信息:首先在數(shù)組中查找要被替換的信息,如果找到該信息,提示輸入要替換的信息內(nèi)容,否如此提示未找到要被替換的信息; 插入文本信息:首先在數(shù)組中查找要插入點(diǎn),如果找到該插入點(diǎn),提示輸入插入信息,確認(rèn)插入信息后,提示選擇向前插入信息還是向后插入信息,如果未找到插入點(diǎn),顯示未找到要插入的位置; 移動文本信息:首先在數(shù)組中查找要移動的信息,如果找到該信息,提示是進(jìn)展列移動還是進(jìn)展行移動,否如此提示未找到要移動的信息; 刪除文本信息:首先在數(shù)組中查找要刪除的信息,如果找到該信息,提示是否確認(rèn)刪除該信息,通過確認(rèn)來刪除信息,如果未找到要刪除的信息,提示未找到該信息; 退出編輯器:顯示感謝使用該軟件并退出。5調(diào)試分析 /測試結(jié)果文本編輯器主界面主界面功能,如圖22所示。圖22 文本編輯器主界面系統(tǒng)功能 輸入文本信息功能,如圖23所示。圖23 輸入界面 查找文本信息,如圖24所示。圖24查到功能界面 顯示文本信息,如圖25。圖25 4刪除操作,如圖2-6圖26 刪除123功能5插入操作 如圖27所示。圖27 在789前插入123界面6替換文本內(nèi)容,如圖28所示。圖28 替換456為abc的內(nèi)容14 / 246心得體會程序的運(yùn)行結(jié)果與理論推導(dǎo)結(jié)果完全吻合,即該算法與程序設(shè)計(jì)滿足課程設(shè)計(jì)要求。該程序的主要優(yōu)點(diǎn)是簡單易懂,不存在理解上的障礙,也很自然地能想到這種解法。通過數(shù)據(jù)結(jié)構(gòu)的課程設(shè)計(jì)使我們對所學(xué)知識有了更好的理解,也增強(qiáng)了大家的動手能力。同時也發(fā)現(xiàn)了自己的很多不足之處,對知識的應(yīng)用能力很是欠缺,應(yīng)用軟件的能力與編程水平與課程要求更是存在很大的差距。7程序#include <stdio.h>#include <stdlib.h>#include <time.h>#include <string.h>#define MAX 10000#define _CRT_SECURE_NO_DEPRECATE/在vs中取消warning的警告void menu(); void shuru(char text);void bc(char text); void dakai(char text);void dayin(char text);void chazhao(char text,int l);void tihan(char text,int l);int strindex(char text,char t,int i2,int l);void shanchu(char p,int l);void cs(char text);void charu(char text,int l);void tuichu(int status);char textMAX=""/文本編輯域char name20=""/文件保存的位置int status=0;/顯示是否保存過的狀態(tài)int ntext;/文本編輯的位置void dakai(char text)system("cls"); FILE *fp;char pd,ch;char name30;int i=0;printf("輸入A:確定打開文件(未保存的數(shù)據(jù)將會丟失) M:返回主菜單");fflush(stdin);pd=getchar();if (pd='A'|pd='a')printf("請輸入要打開文件名字例如c:a.txt");scanf("%s",name);while (fp=fopen(name,"r")=NULL)printf("n打開文件失敗,請重新輸入要打開的文件名:");scanf("%s",name);cs(text);while(!feof(fp)ch=fgetc(fp);texti=ch;i+; texti='0' ntext=i; fclose(fp);printf("n文件讀取成功n文件內(nèi)容為n");dayin(text); if (pd='M'|pd='m')menu(); void bc(char text)system("cls");FILE *fp;char pd;char tmp;int i;printf("n輸入【A】保存;任意鍵返回主菜單不保存n"); fflush(stdin);pd=getchar();if (!(pd='A'|pd='a')menu();else if(name20=NULL)printf("n請輸入保存文件名(例如: c:a.txt):");scanf("%s",name);while (fp=fopen(name,"w+")=NULL)printf("文件不存在,請重新輸入文件名:");scanf("%s",name); printf("nA:確定;B:取消:"); while(scanf("%c",&tmp)!=EOF)if (tmp='A' | tmp='a') for(i=0;i<ntext;i+) fprintf(fp,"%c",texti); fclose(fp);status=1;printf("n文件保存成功n");break;if (tmp='B' | tmp='b')break; void cs(char text)int i;for (i=0;i<ntext;i+)texti='0'ntext=0;status=0; int strindex(char text,char t,int i2,int l) /查找要操作的數(shù)據(jù)的位置(模式匹配)int i1=l,j=0;while (i1<ntext&&j<i2)if (texti1=tj) /繼續(xù)匹配下一個字符j+;i1+;/主串和子串依次匹配下一個字符else /主串、子串指針回溯重新開始下一次匹配i1=i1-j+1; /主串從下一個位置開始匹配j=0;/子串從頭開始匹配if (j>=i2)return(i1-i2); /返回匹配的第一個字符的下標(biāo)elsereturn(-1); /模式匹配不成功void menu()system("cls");time_t timep; time (&timep);printf("%s",ctime(&timep);printf("nnnnnnnnntttWel to use our TXT edition system!n");printf("nnttt 歡迎您使用文本編輯器軟件!n");printf("nnnnnnnnnpress Enter to continue.n");getchar();loop:system("cls");printf("nnnntt*簡易文本編輯器*nn");printf("tttt-0.清空內(nèi)容-n");printf("tttt-1.打開文件-n");if (ntext=0)printf("tttt-2.輸入內(nèi)容-n"); else printf("tttt-2.繼續(xù)輸入-n");printf("tttt-3.查找-n");printf("tttt-4.插入-n");printf("tttt-5.刪除-n");printf("tttt-6.替換-n");printf("tttt-7.顯示內(nèi)容-n");printf("tttt-8.保存-n");printf("tttt-9.退出-n");printf("ntt*選項(xiàng)*n");printf("ntttt輸入選項(xiàng)0-9:");char n;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;case '8': bc(text);break;case '9': tuichu(status);default : break;elseprintf("n輸入有誤,請重新輸入:");fflush(stdin);n=getchar();system("pause");goto loop;void chazhao(char text,int l)system("cls");int i,t,a=-1;char pattern20,bd,pd;printf("原文為:n");dayin(text);printf("請輸入您要查找的內(nèi)容");scanf("%s",pattern);printf("您查找的內(nèi)容是:%sn",pattern);t=strlen(pattern);loop:a=strindex(text,pattern,t,l);if (a!=-1)l=a+t;int hs=1,ls=0;for (i=0;i<=a;i+)ls+;if (texti='n')hs+;ls=0; if (a=-1)printf("查找到結(jié)尾沒有找到n輸入【R】將重頭查找;任意鍵返回主菜單");l=0;fflush(stdin);pd=getchar(); else printf("已經(jīng)找到在第%d行第%d列,輸入【R】繼續(xù)查找下一處;任意鍵返回主菜單",hs,ls);fflush(stdin);bd=getchar(); if (bd='R'|bd='r') goto loop; if (pd='R'|pd='r') l=0;chazhao(text,l);void dayin(char text)system("cls");printf("現(xiàn)在文本的內(nèi)容為:n");printf("%sn",text); int hs=1,i;for (i=0;i<ntext;i+)if (texti='n')hs+; printf("n文本共有%d行n",hs);void shuru(char text)system("cls");printf("請輸入內(nèi)容(輸入完畢輸入并返回主菜單):n");printf("%s",text);char c;int i=ntext,j=ntext;fflush(stdin); while (c=getchar()!='')texti=c;i+;ntext=i;continue;int cout=0,zf=0,h=1,hs=1,zfs=0;for(;cout<ntext;cout+)zf+;if(textcout='n')h+;zf-;if(textcout=' ')zf-;for(cout=j;cout<ntext;cout+)zfs+;if(textcout='n')hs+;zfs-;if(textcout=' ')zfs-;printf("統(tǒng)計(jì):文本一共有%d個字符,%d行,本次輸入了%d個字符,%d行n",zf,h,zfs,hs);void shanchu(char p,int l)int i,a=-1,t2=0;char x20,px,pd,pdx,c;system("cls");printf("%s",p);printf("n輸入【A】執(zhí)行查找刪除內(nèi)容;任意鍵返回主菜單:");fflush(stdin);px=getchar();if (px='a'|px='A')printf("n輸入您要刪除的內(nèi)容,以完畢:");fflush(stdin);while (c=getchar()!='')if (c='')break;elsext2=c;t2+;continue;loop:a=strindex(p,x,t2,l);int hs=1,ls=0;for (i=0;i<=a;i+)ls+;if (pi='n')hs+; ls=0; if (a=-1)printf("已查找完畢,您要刪除的內(nèi)容不存在n輸入【R】重新輸入要刪除的內(nèi)容;其他鍵將返回主菜單:");l=0;fflush(stdin);pdx=getchar(); else printf("你要刪除的內(nèi)容在第%d行第%d列n 輸入【A】確定刪除;輸入【B】尋找下個詞;其他鍵將返回主菜單:",hs,ls);fflush(stdin);pd=getchar();l=t2+a;if (pd='a'|pd='A')for(i=a;i<ntext;i+)pi=pi+t2;ntext=ntext-t2;printf("刪除成功,刪除后的內(nèi)容為:n%sn",text);else if (pd='b'|pd='B')goto loop;if(pdx='r'|pdx='R')shanchu(text,l);void charu(char text,int l) /向文本中插入內(nèi)容system("cls");int i=0,t=0,t2=0,a=-1,b;char cr20="",pd,x500,c,d;printf("n當(dāng)前文本信息為:n");printf("%s",text);printf("n輸入您要在哪個內(nèi)容前插入,以完畢:");fflush(stdin);while (c=getchar()!='') /用一個數(shù)組接收要插入在哪個內(nèi)容之前if (c='')break;elsecrt=c;t+;continue;loop:a=strindex(text,cr,t,l); /查找并返回要插入的位置點(diǎn)int hs=1,ls=0;for (b=0;b<a;b+)ls+;if (textb='n')hs+;ls=0;if (a=-1)printf("n查找到結(jié)尾沒有找到插入點(diǎn),輸入【R】查找其他;按其他鍵返回菜單:n");l=0;fflush(stdin);d=getchar();fflush(stdin);elseprintf("n您要插入的位置是第%d行,第%d列之前n【A】.不是此位置向后繼續(xù)找插入點(diǎn)n【B】.在此位置插入n按其他鍵返回菜單n請選擇:",hs,ls+1);fflush(stdin);pd=getchar(); if (pd='a'|pd='A')l=a+t;goto loop;else if (pd='b'|pd='B')printf("nn輸入您要插入的內(nèi)容,以完畢:");fflush(stdin);while (c=getchar()!='')if (c='')break;elsext2=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",texti);printf("n文本插入成功n");fflush(stdin);getchar();if (d='r'|d='R')l=0;charu(text,l);status=0;void tihan(char p,int l) /內(nèi)容替換int t=0,t1=0,i,a,b;char c,th20,d,d1,bth20;int i2;system("cls");printf("n當(dāng)前文本信息為:n");for (i2=0;i2<=ntext-1;i2+)printf("%c",pi2);printf("n輸入要被替換的內(nèi)容,以完畢:");fflush(stdin);while (c=getchar()!='') /t指替換前內(nèi)容的長度if (c='')break;elsebtht=c;t+;continue;loop:a=strindex(p,bth,t,l); /查找要被替換的內(nèi)容的位置int hs=1,ls=0;for (b=0;b<a;b+)ls+;if (pb='n')hs+;ls=0;if (a=-1)printf("n查找到結(jié)尾沒有找到要被替換的內(nèi)容n輸入【R】查找其他內(nèi)容,按其他鍵返回主菜單鍵n");l=0;d=getchar();fflush(stdin);elseprintf("nn已經(jīng)找到要查找的數(shù)據(jù)在第%d行第%d列n輸入【A】繼續(xù)向后查找一樣內(nèi)容n輸入其他鍵將進(jìn)展替換操作n請選擇:",hs,ls+1);fflush(stdin);l=t+a;char pd;pd=getchar();if (pd!='a'&&pd!='A')printf("n是否要替換該內(nèi)容?nA:替換給內(nèi)容;其他鍵返回主菜單n請選擇:");fflush(stdin);d1=getchar();if (d1='a'|d1='A')printf("n輸入要替換的內(nèi)容,以完畢:");fflush(stdin);while (c=getchar()!='') /t1指替換后的內(nèi)容長度if (c='')break;elsetht1=c;t1+;continue;if (t=t1) /將要被替換的內(nèi)容和替換后的內(nèi)容進(jìn)展長度比擬for (i=0;i<t1;i+)pi+a=thi;elseif (t>t1)for (i=0;i<t1;i+)pi+a=thi;for (i=a+t1;i<ntext;i+)pi=pi+t-t1;ntext=ntext+t1-t;elsefor (i=ntext;i>=a;i-)pi+t1-t=pi;for (i=0;i<t1;i+)pi+a=thi;ntext=ntext+t1-t;printf("替換成功");printf("n當(dāng)前文本信息為:n");for (i2=0;i2<=ntext-1;i2+)printf("%c",pi2);getchar();status=0;elsegoto loop;if(d='r'|d='R')tihan(text,l);void tuichu(int status)char pd;if(status)exit(0);elseprintf("還未保存文件,確定退出?(Q.直接退出;Y.保存后退出");fflush(stdin);pd=getchar();if(!(pd='Q'|pd='q')bc(text);exit(0);int main()menu();return (0);

注意事項(xiàng)

本文(大數(shù)據(jù)結(jié)構(gòu)簡易文本編輯器)為本站會員(仙***)主動上傳,裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對上載內(nèi)容本身不做任何修改或編輯。 若此文所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng)(點(diǎn)擊聯(lián)系客服),我們立即給予刪除!

溫馨提示:如果因?yàn)榫W(wǎng)速或其他原因下載失敗請重新下載,重復(fù)下載不扣分。




關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!