數(shù)據(jù)結構課程設計-簡易文本編輯器.doc

上傳人:good****022 文檔編號:116538346 上傳時間:2022-07-05 格式:DOC 頁數(shù):20 大?。?41.50KB
收藏 版權申訴 舉報 下載
數(shù)據(jù)結構課程設計-簡易文本編輯器.doc_第1頁
第1頁 / 共20頁
數(shù)據(jù)結構課程設計-簡易文本編輯器.doc_第2頁
第2頁 / 共20頁
數(shù)據(jù)結構課程設計-簡易文本編輯器.doc_第3頁
第3頁 / 共20頁

下載文檔到電腦,查找使用更方便

20 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《數(shù)據(jù)結構課程設計-簡易文本編輯器.doc》由會員分享,可在線閱讀,更多相關《數(shù)據(jù)結構課程設計-簡易文本編輯器.doc(20頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、安徽省巢湖學院計算機與信息工程學院課程設計報告課程名稱 數(shù)據(jù)結構 課題名稱 簡單文本編輯器 專業(yè) 計算機科學與技術 班級 10計本2班 學號 10012108 姓名 聯(lián)系方式 指導教師 20 11 年 12 月 30 日1需求分析一個簡易文本編輯器應該具有圖形菜單界面,包括查找,替換(等長,不等長),插入(插串,文本塊的插入)、塊移動(行塊,列塊移動),刪除文本信息等功能并可正確存盤、取盤,正確顯示總行數(shù)。2概要設計 為實現(xiàn)數(shù)據(jù)的有序存儲,該編輯器應該用順序表來存儲輸入的信息。順序表是數(shù)據(jù)結構中線性表的一種,它是用一塊地址連續(xù)的存儲空間依次存儲線性表的元素。其特點為:在順序表上邏輯關系相鄰的倆

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

3、到插入點,顯示未找到要插入的位置; 移動文本信息:首先在數(shù)組中查找要移動的信息,如果找到該信息,提示是進行列移動還是進行行移動,否則提示未找到要移動的信息; 刪除文本信息:首先在數(shù)組中查找要刪除的信息,如果找到該信息,提示是否確認刪除該信息,通過確認來刪除信息,如果未找到要刪除的信息,提示未找到該信息; 退出編輯器:顯示感謝使用該軟件并退出。文本編輯器的運行流程圖,如圖21所示。 圖21文本編輯器流程圖3詳細設計 #include #include #include #include #include #define MAXSIZE 100int ntext; /全局變量int b=0;typ

4、edef struct char srMAXSIZE; int hang; int lie;shuru ;int strindex(shuru m,char t,int i2,int l) /查找要操作的數(shù)據(jù)的位置(模式匹配) int i4=l,j=0; while (i4ntext&j=i2) return(i4-i2); /返回匹配的第一個字符的下標 else return(-1); /模式匹配不成功void charu(shuru &k,int l) /向文本中插入內容 system(cls); int i,t=0,t2=0,a=-1; char cr20,pd,x500,c,d; in

5、t i2; printf(n當前文本信息為:n); for (i2=0;i2=ntext-1;i2+) printf(%c,k.sri2); printf(n輸入您要在哪個內容前插入,以結束:); fflush(stdin); while (c=getchar()!=) /用一個數(shù)組接收要插入在哪個內容之前 if (c=) break; else crt=c; t+; continue; a=strindex(k,cr,t,l); /查找并返回要插入的位置點 if (a!=-1) l=a+t; int hs=1,ls=0; for (b=0;ba;b+) ls+; if (k.srb=n) h

6、s+; ls=0; if (a=-1) printf(n查找到結尾沒有找到插入點nR:重新查找點n雙擊回車鍵返回菜單:n); l=0; fflush(stdin); d=getchar(); fflush(stdin); else int i2; printf(n當前文本信息為:n); for (i2=0;i2=a;i-) k.sri+t2=k.sri; for (i=0;it2;i+) k.sri+a=xi; ntext=ntext+t2; printf(n當前文本信息為:n); for (i2=0;i2=ntext-1;i2+) printf(%c,k.sri2); printf(插入成功

7、n); fflush(stdin); getchar(); if (d=r|d=R|pd=r|pd=R) l=0; charu(k,l); FILE *fp; int b11; fprintf(fp,The contents isn); for (b11=0;b11=ntext-1;b11+) fprintf(fp,%c,k.srb11); fclose(fp);void tihan(shuru &r,int l) /內容替換 int t=0,t1=0,i,a; char c,th20,d,d1,bth20; int i2; printf(n當前文本信息為:n); for (i2=0;i2=n

8、text-1;i2+) printf(%c,r.sri2); printf(n輸入要被替換的內容,以結束:); fflush(stdin); while (c=getchar()!=) /t指替換前內容的長度 if (c=) break; else btht=c; t+; continue; a=strindex(r,bth,t,l); /查找要被替換的內容的位置 if (a!=-1) l=a+t; int hs=1,ls=0; for (b=0;ba;b+) ls+; if (r.srb=n) hs+; ls=0; if (a=-1) printf(n查找到結尾沒有找到要被替換的內容n繼續(xù)查

9、找請按R,雙擊回車鍵退出n); l=0; /printf(n%d,a); /printf(n%d,i1); /printf(n%d,ntext); fflush(stdin); d=getchar(); fflush(stdin); else printf(nn已經(jīng)找到要查找的數(shù)據(jù):ntt在第%d行,第%d列nR:繼續(xù)向后查找相同內容nA:進一步進行替換操作n請選擇:,hs,ls+1); /printf(n%d,a); /printf(n%d,i1); /printf(n%d,ntext); fflush(stdin); d=getchar(); if (d!=r&d!=R) printf(n

10、是否要替換該內容?nA:替換給內容n雙擊回車鍵:返回主菜單n請選擇:); fflush(stdin); d1=getchar(); if (d1=a|d1=A) printf(n輸入要替換的內容,以結束:); fflush(stdin); while (c=getchar()!=) /t1指替換后的內容長度 if (c=) break; else tht1=c; t1+; continue; if (t=t1) /將要被替換的內容和替換后的內容進行長度比較 for (i=0;it1) for (i=0;it1;i+) r.sri+a=thi; for (i=a+t1;i=a;i-) r.sri

11、+t1-t=r.sri; for (i=0;it1;i+) r.sri+a=thi; ntext=ntext+t1-t; printf(替換成功); printf(n當前文本信息為:n); for (i2=0;i2=ntext-1;i2+) printf(%c,r.sri2); getchar(); if (d=R|d=r) tihan(r,l); FILE *fp; int b11; fprintf(fp,The contents isn); for (b11=0;b11=ntext-1;b11+) fprintf(fp,%c,r.srb11); fclose(fp);int main()

12、shuru t; char n,i=0,p=a; int a3=0; printf(nnnnnnnnntttWelcom to use our TXT edition system!n); printf(nnttt 歡迎您使用文本編輯器軟件!n); printf(nnnnnnnnnpress Enter to continue.n); getchar();L1: system(cls); printf(nn The Function Of TXT Edition List n ); printf(n *n * *); printf(n * 0-clear all contents list *

13、n * *); printf(n * 1-Display all contents list *n * *); printf(n * 2-Input contents list *n * *); printf(n * 3-Lookfor contents list *n * *); printf(n * 4-replace contents list *n * *); printf(n * 5-insert contents list *n * *); printf(n * 6-move contents list *n * *); printf(n * 7-delete contents l

14、ist *n * *); printf(n * 8-exit contents list *n * *); printf(n *n); if (i=0) printf(ninput the number before function of you want to select:); else printf(ninput error! please select again); printf(nninput the number before function of you want to select:); fflush(stdin); scanf(%c,&n); switch (n) ca

15、se 0: system(cls); cs(t); i=0; getchar(); goto L1; break; case 1: system(cls); xs(t); i=0; getchar(); goto L1; break; case 2: system(cls); b+; if (b=1) ntext=0; Input(t); i=0; getchar(); goto L1; break; case 3: system(cls); chazhao(t,a3); i=0; getchar(); goto L1; break; case 4: system(cls); tihan(t,

16、a3); i=0; getchar(); goto L1; break; case 5: charu(t,a3); i=0; getchar(); goto L1; break; case 6: system(cls); kuaiyidong(t); i=0; getchar(); goto L1; break; case 7: system(cls); shanchu(t,a3,p); i=0; getchar(); goto L1; break; case 8: system(cls); printf(nnnnnnnnntttThanks to use our program!nnnnnn

17、nn); break; if (n!=0&n!=1&n!=2&n!=3&n!=4&n!=5&n!=6&n!=7&n!=8) i=1; goto L1; 4調試分析 5用戶手冊 清空以前的文本信息:將用數(shù)組存的數(shù)據(jù)內容全部置為0; 顯示當前文本信息:遍歷用數(shù)組存入的信息,并輸入到外部顯示器上; 編輯信息:定義一個結構體,并在結構體中定義一個字符型的一維數(shù)組和一個整型變量,這個整型變量用于記錄一維數(shù)組中存入數(shù)據(jù)的個數(shù); 替換文本信息:首先在數(shù)組中查找要被替換的信息,如果找到該信息,提示輸入要替換的信息內容,否則提示未找到要被替換的信息; 插入文本信息:首先在數(shù)組中查找要插入點,如果找到該插入點,提

18、示輸入插入信息,確認插入信息后,提示選擇向前插入信息還是向后插入信息,如果未找到插入點,顯示未找到要插入的位置; 移動文本信息:首先在數(shù)組中查找要移動的信息,如果找到該信息,提示是進行列移動還是進行行移動,否則提示未找到要移動的信息; 刪除文本信息:首先在數(shù)組中查找要刪除的信息,如果找到該信息,提示是否確認刪除該信息,通過確認來刪除信息,如果未找到要刪除的信息,提示未找到該信息; 退出編輯器:顯示感謝使用該軟件并退出。6測試結果文本編輯器主界面主界面功能,如圖22所示。圖22 文本編輯器主界面系統(tǒng)功能 輸入文本信息功能,如圖23所示。圖23 輸入界面 查找文本信息,如圖24所示。圖24查到功能

19、界面 移動文本信息(列移動),如圖25,圖26所示。圖25 列移動功能圖26 列移動功能 移動文本信息(行移動),如圖27所示。圖27 行移動界面 顯示文本內容,如圖28所示。圖28 進行行移動后顯示的內容7附錄1文件base含有自定義的MyArc類,Graph類,MyQueues類。2文件SmallestTree.cpp為本設計項目的主測試文件,含有main,kruskal算法函數(shù)和其他相關函數(shù).8心得體會程序的運行結果與理論推導結果完全吻合,即該算法與程序設計滿足課程設計要求。該程序的主要優(yōu)點是簡單易懂,不存在理解上的障礙,也很自然地能想到這種解法。通過數(shù)據(jù)結構的課程設計使我們對所學知識有了更好的理解,也增強了大家的動手能力。同時也發(fā)現(xiàn)了自己的很多不足之處,對知識的應用能力很是欠缺,應用軟件的能力及編程水平與課程要求更是存在很大的差距。9參考文獻1 嚴蔚敏,吳偉民數(shù)據(jù)結構(C語言版)M 北京:清華大學出版社,20092 錢能C+程序設計教程(第二版)M 北京:清華大學出版社,20053譚浩強C程序設計(第二版)M 北京:清華大學出版社,200520

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

相關資源

更多
正為您匹配相似的精品文檔
關于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

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

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


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