數(shù)據(jù)結(jié)構(gòu)課程設(shè)計報告—文本編輯器(共27頁)

上傳人:n85ho7****4h85bh 文檔編號:46403735 上傳時間:2021-12-13 格式:DOC 頁數(shù):27 大?。?37.50KB
收藏 版權(quán)申訴 舉報 下載
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計報告—文本編輯器(共27頁)_第1頁
第1頁 / 共27頁
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計報告—文本編輯器(共27頁)_第2頁
第2頁 / 共27頁
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計報告—文本編輯器(共27頁)_第3頁
第3頁 / 共27頁

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

20 積分

下載資源

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

資源描述:

《數(shù)據(jù)結(jié)構(gòu)課程設(shè)計報告—文本編輯器(共27頁)》由會員分享,可在線閱讀,更多相關(guān)《數(shù)據(jù)結(jié)構(gòu)課程設(shè)計報告—文本編輯器(共27頁)(27頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、精選優(yōu)質(zhì)文檔-傾情為你奉上學(xué)號2014-2015學(xué)年 第一學(xué)期數(shù)據(jù)結(jié)構(gòu)課程設(shè)計報告題目:基于順序結(jié)構(gòu)的文本編輯器的設(shè)計專業(yè):計算機科學(xué)與技術(shù)班級:姓名:學(xué)號:指導(dǎo)教師:成績:目錄1課程設(shè)計內(nèi)容.11.1 設(shè)計內(nèi)容.11.2 設(shè)計任務(wù).11.3 具體要求.12 概要設(shè)計.12.1 系統(tǒng)的功能簡介.12.2 各個模塊之間的主要關(guān)系.23 設(shè)計過程及代碼分析.24 設(shè)計結(jié)果與分析.155 源程序.166 總結(jié).247 致謝.248 參考文獻.25專心-專注-專業(yè)1 課程設(shè)計內(nèi)容 1.1 設(shè)計內(nèi)容 文本編輯器主要根據(jù)課程設(shè)計要求進行設(shè)計的,本次課程設(shè)計的內(nèi)容及要求是設(shè)計一個文本編輯器,能實現(xiàn)文本內(nèi)容輸

2、入、顯示、統(tǒng)計、處理、保存和退出文本編輯器等基本功能,主界面具有圖形菜單界面、輸入文本、打開文件、顯示當前文本內(nèi)容、進入文本內(nèi)容統(tǒng)計菜單、進入文本內(nèi)容處理菜單、保存、退出文本編輯器。 其中文本內(nèi)容統(tǒng)計菜單包含大小寫字母、數(shù)字、標點符號、空格、所有字符的統(tǒng)計;文本內(nèi)容處理菜單包含查找、刪除文章中的字符或者字符串,向文章中插入字符或者字符串,從文章中復(fù)制字符或者字符串,修改行內(nèi)容,替換字符或者字符串。 1.2 設(shè)計任務(wù) 主要利用C語言的文件操作能力設(shè)計一個簡單的文本編輯器,對于文本編輯器來說,數(shù)據(jù)結(jié)構(gòu)相對簡單,使用一個有較大長度的順序表即可,在程序中可采用一維數(shù)組來實現(xiàn)。使用數(shù)組表示的順序表來存儲

3、文本具有簡潔、訪問方便、輸出方便等特點。 1.3 具體要求 明確課程設(shè)計的目的,能根據(jù)課程設(shè)計的要求,查閱相關(guān)文獻,為完成設(shè)計準備必要的知識; 提高學(xué)生用數(shù)據(jù)結(jié)構(gòu)進行程序設(shè)計的能力,重點提高用C語言進行文件操作和繪圖應(yīng)用的編程技術(shù)水平;初步了解軟件開發(fā)的一般方法和步驟; 提高撰寫技術(shù)文檔的能力。2 概要設(shè)計 2.1 系統(tǒng)的功能簡介 該系統(tǒng)的主要功能是實現(xiàn)文本內(nèi)容輸入、顯示、統(tǒng)計、處理、保存。首先,輸入文本內(nèi)容并保存;選擇打開文件,打開剛才保存的文件;選擇顯示當前文章內(nèi)容,可以預(yù)覽文件內(nèi)容;進入文章內(nèi)容統(tǒng)計菜單,可以對文章中大寫字母、小寫字母、數(shù)字、標點符號、空格、所有字數(shù)的統(tǒng)計;進入文章內(nèi)容處

4、理菜單,查找、刪除文章中的字符或者字符串,向文章中插入字符或者字符串,從文章中復(fù)制字符或者字符串,修改行內(nèi)容,替換字符或者字符串。 2.2各個模塊之間的主要關(guān)系 該程序的功能主要是文本編輯,定義的操作方法是整個程序的核心,各個模塊之間的關(guān)系是相互聯(lián)系的。首先,需操作者輸入文本內(nèi)容,打開剛才編輯的文本文件,可以先預(yù)覽文件內(nèi)容,然后進入文章內(nèi)容統(tǒng)計菜單,可以對文章中大寫字母、小寫字母、數(shù)字、標點符號、空格、所有字數(shù)的統(tǒng)計;進入文章內(nèi)容處理菜單,查找、刪除文章中的字符或者字符串,向文章中插入字符或者字符串,從文章中復(fù)制字符或者字符串,修改行內(nèi)容,替換字符或者字符串。 只有在上步做出選擇后,后面的程序

5、才會接著執(zhí)行,這便表明它們之間存在著緊密的聯(lián)系,缺少任何一個模塊都將導(dǎo)致程序無法繼續(xù)執(zhí)行。要求各個模塊之間上下相連,具有緊密相扣的關(guān)系。3 設(shè)計過程及代碼分析 (1)主函數(shù)流程圖及運行界面 主函數(shù)流程圖(見圖3(1)-A)main( )定義變量:Status s=1; int i;for(i=0;i0) StrAssign(Tn,str); n+; if(nMAX_LEN) printf(文件太大n); return; 圖3(3)-Avoid List()定義變量:int i; for(i=0;in-1;i+) printf(%d: ,i+1); StrPrint(Ti+1); getchar

6、(); 圖3(3)-B 運行界面(見圖3(3)-C、D)圖3(3)-C圖3(3)-D(4) 進入文章內(nèi)容統(tǒng)計菜單流程圖及運行界面 進入文章內(nèi)容統(tǒng)計菜單流程圖(見圖3(4)-A)void CountWord()定義變量:int WORD=0,word=0,space=0,num=0,punct=0,sum=0; int i,j; char ch; for(i=0;in;i+) for(j=0;j=A)&(ch=a)&(ch=0)&(ch=9)num+;else if(ch= )space+;圖3(4)-A運行界面(見圖3(4)-BH)主界面:圖3(4)-B統(tǒng)計文章中大寫字母的個數(shù):圖3(4)-C

7、統(tǒng)計文章中小寫字母的個數(shù):圖3(4)-D統(tǒng)計文章中數(shù)字的個數(shù):圖3(4)-E統(tǒng)計文章中標點符號的個數(shù):圖3(4)-F統(tǒng)計文章中空格的個數(shù):圖3(4)-G統(tǒng)計文章中所有字數(shù):圖3(4)-H(5)進入文章內(nèi)容處理菜單流程圖及運行界面 進入文章內(nèi)容處理菜單流程圖(見圖3(5)-A)void Dispose()定義變量:int t=0;switch(t) case 1:Search();break;case 2:Delete();break;case 3:Insert();break;case 4:Copy();break;case 5:Modify();break;case 6:Replace();

8、break;case 7:Hello();break;圖3(5)-A 運行界面(見圖3(5)-BJ)主界面:圖3(5)-B查找文本中的字符或字符串:圖3(5)-C刪除文本中的字符或字符串:圖3(5)-D向文本中插入字符或字符串:圖3(5)-E從文本中復(fù)制字符或字符串:圖3(5)-F修改行內(nèi)容:圖3(5)-G替換字符或字符串:圖3(5)-H圖3(5)-I替換后的文本內(nèi)容:圖3(5)-J4 設(shè)計結(jié)果與分析 通過本次課程設(shè)計,實現(xiàn)了簡單的文本編輯器,可以對文本內(nèi)容輸入、顯示、統(tǒng)計、處理、保存等基本操作。當把程序?qū)懞貌⑦M行調(diào)試時,并不是一帆風(fēng)順的,總會遇到很多在調(diào)試時遇到的錯誤。 1.在程序中,變量的

9、類型有多種,如int型、char型、指針和指針數(shù)組,前后定義變量要統(tǒng)一。 2.對背景色和前景色設(shè)置的時候,當你輸入的顏色在內(nèi)存中不存在時,運行程序過后,系統(tǒng)會告訴你相應(yīng)的顏色符號常數(shù)及數(shù)值。在程序中我選擇“system(color 0F);”,背景色為黑色,前景色亮白色。 3.如果程序在運行的過程中,對于一個循環(huán)語句,如果你返回的值始終是真的,那么程序?qū)⑦M如死循環(huán)。 4.對應(yīng)該有花括弧的復(fù)合語句,忘記加花括弧,將會導(dǎo)致程序報錯。 5.所調(diào)用的函數(shù)在調(diào)用語句之后才定義,而又在調(diào)用前未加說明。5 源程序 text editing.cpp#include edit.h #include text.h

10、void main() Status s=1;system(color 0F);int i;for(i=0;i0) StrAssign(Tn,str);n+;if(nMAX_LEN) printf(文件太大n);return;fclose(fp);elseprintf(新文件n);void List() / 顯示文件內(nèi)容 system(cls); int i; for(i=0;in-1;i+) printf(%d: ,i+1);StrPrint(Ti+1);getchar();void CountWord() /文章內(nèi)容統(tǒng)計 system(cls); int WORD=0,word=0,spa

11、ce=0,num=0,punct=0,sum=0; int i,j; char ch; for(i=0;in;i+) for(j=0;j=A)&(ch=a)&(ch=0)&(chMAX_LEN) printf(插入行太多n);return;if(n=l-1&l0) for(i=n-1;i=l-1;i-)Ti+m=Ti;n+=m;printf(請順序輸入待插入內(nèi)容:n);for(i=l-1;i=l+m-1&l0) for(i=l-1+m;in;i+)Ti-m=Ti;for(i=n-m;iMAX_LEN) printf(拷貝行太多n);return;if(n=k-1&n=l-1+m&(k=l+m|

12、k=k-1;i-)Ti+m=Ti;n+=m;if(k=l)l+=m;for(i=l-1;i0&i=n) / 行號合法 printf(%d: ,i);StrPrint(Ti-1);printf(請輸入新內(nèi)容: );gets(str);StrAssign(Ti-1,str);elseprintf(行號超出范圍n); void Search() / 查找字符串 system(cls); int i,k,f=1; / f為繼續(xù)查找標志 char b; HString s; printf(請輸入待查找的字符串: ); scanf(%s%*c,str); InitString(s); StrAssign(

13、s,str); for(i=0;in&f;i+) / 逐行查找 k=1; / 由每行第1個字符起查找while(k)k=Index(Ti,s,k); / 由本行的第k個字符開始查找if(k) / 找到printf(第%d行: ,i+1);StrPrint(Ti);printf(第%d個字符處找到。繼續(xù)查找嗎(Y/N)? ,k);b=getchar();getchar();if(b!=Y&b!=y) / 中斷查找 f=0;break;elsek+;if(f)printf(沒找到n); void Replace() / 替換字符串 system(cls); int i,k,f=1; / f為繼續(xù)替

14、換標志 char b; HString s,t; printf(請輸入待替換的字符串: ); scanf(%s%*c,str); InitString(s); StrAssign(s,str); printf(替換為: ); scanf(%s%*c,str); InitString(t); StrAssign(t,str); for(i=0;in&f;i+) / 逐行查找、替換 k=1; / 由每行第1個字符起查找while(k) k=Index(Ti,s,k); / 由本行的第k個字符開始查找if(k) / 找到 printf(第%d行: ,i+1);StrPrint(Ti);printf(

15、第%d個字符處找到。是否替換(Y/N)? ,k);b=getchar();getchar();if(b=Y|b=y)StrDelete(Ti,k,StrLength(s);StrInsert(Ti,k,t);printf(繼續(xù)替換嗎(Y/N)?);b=getchar();getchar();if(b!=Y&b!=y) / 中斷查找、替換 f=0;break;elsek+=StrLength(t);if(f)printf(沒找到n);6 總結(jié) 在當今應(yīng)用市場下,應(yīng)用開發(fā)這個行業(yè)前景非??捎^。隨著科技發(fā)展,用戶對應(yīng)用的界面要求更加精致和細膩。這就要求應(yīng)用要有足夠的吸引,界面美觀,操作簡單。 在本課

16、程設(shè)計的設(shè)計過程中,我剛開始感覺到有點困難。要通過上學(xué)期數(shù)據(jù)結(jié)構(gòu)的學(xué)習(xí),將所學(xué)知識運用起來,起初對知識有點遺忘,但后來去看看數(shù)據(jù)結(jié)構(gòu)書后,對相關(guān)知識點,概念和算法有了更深入的理解。 在調(diào)試程序的過程中,我體會到了作為一名編程者的艱辛。編程者需要謹慎、認真的態(tài)度和作風(fēng),對每個細微的細節(jié)都必須十分注意,不能馬虎大意。 在開始編寫程序的時候,我看到別人的程序功能非常的詳細,而且界面非常美觀,總是希望自己的程序也非常的完善,但是,發(fā)現(xiàn)編一個好的程序不是一蹴而就的事情,需要經(jīng)過長期的編程經(jīng)驗積累。 在反反復(fù)復(fù)的調(diào)試過程中,我終于作出一個簡單的文本編輯器,雖然這個程序的功能非常簡單,而且在實際運用中還有些

17、不足。由于我現(xiàn)在知識淺薄,經(jīng)驗不足和閱歷尚淺,對這個文本編輯器設(shè)計得還有很多不足之處,比如界面沒有那么美觀,功能較單一等。我相信在以后的學(xué)習(xí)中,隨著知識的增長和經(jīng)驗的積累,我可以做出更好的成果。7 致謝 在這次數(shù)據(jù)結(jié)構(gòu)課程設(shè)計中,我的老師和同學(xué)給了我及大的幫助。特別是數(shù)據(jù)結(jié)構(gòu)的王源老師,還有負責(zé)審核課程設(shè)計的陳茅老師。在此,我對他們表示感謝!感謝他們在我面對困難時給了我?guī)椭椭С?。也感謝那些給我?guī)椭乃型瑢W(xué)!8 參考文獻 1嚴蔚敏,吳偉民編著 .數(shù)據(jù)結(jié)構(gòu)(C語言版) .北京清華大學(xué)出版社.1997 2徐孝凱編.數(shù)據(jù)結(jié)構(gòu)實用教程(C/C+描述).北京清華大學(xué)出版社.1999 3嚴蔚敏,吳偉民,米寧著.數(shù)據(jù)結(jié)構(gòu)題集.北京清華大學(xué)出版社.1999 4編.數(shù)據(jù)結(jié)構(gòu)課程設(shè)計.北京清華大學(xué)出版社.2010

展開閱讀全文
溫馨提示:
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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(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)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!