九九热最新网址,777奇米四色米奇影院在线播放,国产精品18久久久久久久久久,中文有码视频,亚洲一区在线免费观看,国产91精品在线,婷婷丁香六月天

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

簡(jiǎn)易文本編輯器課程設(shè)計(jì)報(bào)告.doc

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

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

簡(jiǎn)易文本編輯器課程設(shè)計(jì)報(bào)告.doc

中北大學(xué)數(shù) 據(jù) 結(jié) 構(gòu)課 程 設(shè) 計(jì) 說 明 書學(xué)生姓名:張興凱學(xué) 號(hào):1021011547學(xué) 院:軟件學(xué)院專 業(yè):軟件工程題 目: 簡(jiǎn)易文本編輯器成績(jī)指導(dǎo)教師何志英2011年12月20日 1設(shè)計(jì)目的簡(jiǎn)易文本編輯器2設(shè)計(jì)內(nèi)容和要求1)具有圖形菜單界面;2)查找,替換(等長(zhǎng),不等長(zhǎng)),插入(插串,文本塊的插入)、塊移動(dòng)(行塊,列塊移動(dòng)),刪除3)可正確存盤、取盤;4)正確顯示總行數(shù)。3本設(shè)計(jì)所采用的數(shù)據(jù)結(jié)構(gòu) 本程序是對(duì)輸入的文字進(jìn)行操作,故使用的數(shù)據(jù)結(jié)構(gòu)為單鏈表操作線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)的特點(diǎn)是用一組任意的存儲(chǔ)單元存儲(chǔ)線性表的數(shù)據(jù)元素。它包括兩個(gè)域:其中存儲(chǔ)數(shù)據(jù)元素信息的域稱為數(shù)據(jù)域;存儲(chǔ)直接后繼存儲(chǔ)位置的域稱為指針域。另有全局變量*head,作為文章的頭指針。 在文章內(nèi)容創(chuàng)建部分中使用線性表的鏈?zhǔn)酱鎯?chǔ),并使用全局變量對(duì)文本的各種信息進(jìn)行存儲(chǔ); 文章的內(nèi)容統(tǒng)計(jì)、刪除、查找、插入都采用鏈表操作完成。4功能模塊詳細(xì)設(shè)計(jì)4.1 詳細(xì)設(shè)計(jì)思想本程序所定義函數(shù)的設(shè)計(jì)思想:CreatWord()文本內(nèi)容輸入函數(shù)定義LinkList指針變量*temp: LinkList *temp;定義文本輸入變量ch,記錄文本行數(shù)變量j,記錄每行字符數(shù)變量i;申請(qǐng)動(dòng)態(tài)存儲(chǔ)空間:head-next=(LinkList *)malloc(sizeof(LinkList);首行頭指針的前驅(qū)指針為空:head-pre=NULL;利用循環(huán)進(jìn)行文本輸入PrintWord()當(dāng)前文本輸出函數(shù)定義文本行數(shù)變量j,每行字符數(shù)i:int i,j;定義指針變量:LinkList *p;將指針p指向鏈表表頭: p=head-next;利用循環(huán)輸出鏈表中信息: for(j=0;j=NUM&p!=NULL;j+)=for(i=0;(idatai)!=#;i+)=printf(%c,p-datai);p=p-next; SearchWord( ) 文本內(nèi)容查找函數(shù)定義一個(gè)數(shù)組,用來記錄需要查找的字符內(nèi)容:char Data20;定義定義文本行數(shù)變量j,每行字符數(shù)i,記錄字符出現(xiàn)的次數(shù)變量:利用循環(huán)進(jìn)行查找操作,核心算法為:if(temp-datai)=Datak) k+;/將輸入的查找字符與鏈表中信息比較,找到第一個(gè)相同的字符 else if(Datak!=0)i=i-k; k=0; / /從主串第i-k個(gè)位置重新查找 if(Datak=0) sum+;/此字符出現(xiàn)的次數(shù)加1 i=i-k+1; /i記錄下該字符串出現(xiàn)的位置 printf(tt第%d次出現(xiàn)在第%d行第%d列n,l,j+1,i); l+; k=0;continue; temp=temp-next; /指向下一行DeleteWord( ) 文本內(nèi)容刪除函數(shù)定義一個(gè)數(shù)組用來存儲(chǔ)需要?jiǎng)h除的字符或者字符串:char Data20;定義指針變量:LinkList *temp,*term;使用VC+中拷貝函數(shù)講形參中需要?jiǎng)h除的字符或字符串賦值給已定義的數(shù)組:strcpy(Data,str2);使用循環(huán)進(jìn)行刪除操作:其核心算法為:for(j=0;j=NUM;j+) for(i=0;idatai)=Datak) k+; else if(Datak!=0) i=i-k;k=0; if(Datak=0) num=i;break; if(num80) break; 首先是使用循環(huán)查找到需要?jiǎng)h除字符或者字符串的字符數(shù)以及字符或者字符串的位置,以便于刪除; for(;j=NUM;j+) for(;i80;i+) if(i+1data80-k+num=temp-datai+1; /刪除的字符串不在最后一行,將下一行的字符(由temp指向)前移到前行else temp-datai-k+1=temp-datai+1; /當(dāng)要?jiǎng)h除的字符串在最后一行只要將最后一行的字符前移 term=temp; temp=temp-next; j=0;/在使用循環(huán),從查找到的字符或者字符串開始進(jìn)行刪除,在一行刪除完畢之后,轉(zhuǎn)至下一行進(jìn)行刪除。本程序所定義的函數(shù):1、HeadWord() 標(biāo)題函數(shù),即一個(gè)輸出標(biāo)題,永遠(yuǎn)出現(xiàn)在程序的最頂端。2、save() 文件存儲(chǔ)函數(shù)3、load() 文件讀取函數(shù)4、CreatWord() 文本輸入函數(shù)5、PrintWord() 當(dāng)前文本內(nèi)容輸出函數(shù)6、SearchWord() 文章內(nèi)容查找函數(shù)7、DelWord() 文章內(nèi)容刪除函數(shù)8、InsertWord() 文章內(nèi)容插入函數(shù)9、Replace() 文章內(nèi)容替換函數(shù)10、Bmenu() 第二子菜單函數(shù)11、menu() 主菜單函數(shù)12、main()主函數(shù)4.2 運(yùn)行結(jié)果(1)執(zhí)行完menu() 主菜單函數(shù)后的結(jié)果(2) 輸入文章內(nèi)容的結(jié)果(3)讀取當(dāng)前文本內(nèi)容信息(4) 進(jìn)入文本內(nèi)容處理菜單(5)查找文章中字符或者字符串(6)顯示當(dāng)前文章內(nèi)容(7)返回主菜單4.3 核心代碼#include stdafx.h#include stdio.h#include conio.h#includemalloc.h#includestring.h#includeiostream.h#includestdlib.h#define Link_Size 100int NUM,C,N,hang; /*定義全局變量,Num用來記錄行號(hào),C用來記錄子串在主串中出現(xiàn)的總次數(shù)*/#define MAXLEN 80char bufferMAXLEN,fname120;char *lineptrLink_Size;FILE *fp;int modified=0,/*正文被修改標(biāo)志*/ last;/*當(dāng)前正文行數(shù)*/char *chpt;/*輸入命令行字符指針*/typedef struct _list/*行表結(jié)構(gòu)*/ char data80;/*記錄一行字符*/int length;/*記錄一行字符長(zhǎng)度*/ struct _list *next;/* 后繼指針*/struct _list *pre;/*前趨指針*/int row;/*記錄整篇文章的行數(shù)*/LinkList;LinkList *head; /*定義全局變量*head,文章首行頭指針*/void HeadWord()printf(tt*n);printf(tt* 歡迎使用簡(jiǎn)單的文本編輯器 *n);printf(tt*n);int save(char *fname) int i; FILE *fp; char name80; if(!*fname) printf(filename:); gets(name); else strcpy(name,fname); if(fp=fopen(name,wb)=NULL) return 0; for(i=0;ilast;i+) fputs(lineptri,fp); free(lineptri); fclose(fp); printf(file %s already saved.,name); getch(); return 1;int load(char *fname) FILE *fp; char ch,*p; int i; if(fp=fopen(fname,rb)=NULL) return 0; while(!feof(fp) ch=getc(fp); if(ch=x09) for(i=0;inext=(LinkList *)malloc(sizeof(LinkList); head-pre=NULL;temp=head-next; temp-pre=NULL; temp-length=0; for(i=0;idatai=0;printf(開始創(chuàng)建文本,請(qǐng)輸入文章(按#結(jié)束):n);for(j=0;jLink_Size;j+) for(i=0;idatai=ch; temp-length+;if(ch=n)hang+; if(ch=#) NUM=j; break; if(ch=#) temp-length=i; temp-next=NULL; break; temp-next=(LinkList *)malloc(sizeof(LinkList) ; temp-next-pre=temp; temp=temp-next; for(i=0;idatai=0;temp-row=NUM+1;system(cls);return temp;void PrintWord()int i,j;/*記錄文本行數(shù)變量j,記錄每行字符數(shù)變量i*/LinkList *p;p=head-next;system(cls); HeadWord();printf(n當(dāng)前文章的內(nèi)容是:);for(j=0;j=NUM&p!=NULL;j+)for(i=0;(idatai)!=#;i+)printf(%c,p-datai);p=p-next; printf(n當(dāng)前文章行數(shù)為:%dn,hang);void SearchWord(char *str1,LinkList* temp) char Data20 ; int i,j,k=0,sum=0;int l=1; temp=head-next; strcpy(Data,str1); for(i=0;i=NUM;i+) for(j=0;jdataj)=Datak) k+; else if(Datak!=0)j=j-k;k=0; if(Datak=0) sum+;j=j-k+1;printf(tt第%d次出現(xiàn)在第%d行第%d列n,l,i+1,j+1);l+;k=0;continue; temp=temp-next; printf(ttt字符串總共出現(xiàn)次數(shù)為:%dnn,sum); C=sum;N=i*80+j; void DelWord(char *str2) char Data20; LinkList *temp,*term; int i,j,k,m,y,num;strcpy(Data,str2);for(y=0;yC;y+) num=80;k=0,m=0; temp=head; for(i=0;inext; for(j=0;jdataj)=Datak) k+; else if(Datak!=0) j=j-k;k=0; if(Datak=0) num=j;break; if(num80) break; for(;i=NUM;i+) for(;j80;j+) if(j+1data80-k+num=temp-dataj+1; elsetemp-dataj-k+1=temp-dataj+1; term=temp; temp=temp-next; j=0; LinkList * InsertWord(LinkList *temp) char Data20; int h,l;printf(ntt請(qǐng)輸入要插入的字符或字符串:);getchar();gets(Data);printf(ntt當(dāng)前文章內(nèi)容為:);PrintWord();printf(ntt請(qǐng)輸入要插入的行:);scanf(%d,&h);printf(ntt請(qǐng)輸入要插入的列:);scanf(%d,&l); int i=(h-1)*80+l; LinkList *a;int n=strlen(Data);int m ;int insertRow=i/80+1;int row=temp-row;int j;if(insertRow=row)for(m=temp-length-1;m=(i%80)&n0;m-)temp-datam+n=temp-datam;for(m=(i%80),j=0;mdatam=Dataj; elseint r=0;for(int p=insertRow; plength-1-r;m=0&n0;m-)temp-datam+n=temp-datam;a=temp;temp = temp-pre;temp-length = 80;for(m = temp-length-n,j=0;mlength;m+,j+)a-dataj=temp-datam;for(m=temp-length-n-1;m=(i%80);m-) temp-datam+n=temp-datam;for(m=(i%80),j=0;mdatam =Dataj;return temp;void Replace() int k,m,n,i,j; sscanf(chpt,%d%d%d,&k,&m,&n); /* 讀入?yún)?shù) */ if(mlast|n=Link_Size)/* 檢查參數(shù)合理性 */ printf(Error!n); return; /* 先完成刪除 */ if(nlast) n=last; /* 修正參數(shù) */ for(i=m;i=n;i+) /* 刪除正文 */ free(lineptri-1); for(i=m,j=n+1;j=m;i-) lineptri+k-1=lineptri-1; for(i=0;i6)&(t1) printf(對(duì)不起,無此功能,請(qǐng)輸入正確的功能序號(hào)!n);elseswitch(t) case 1: system(cls); HeadWord(); temp=CreatWord(); break; case 2: save(name); break;case 3: load(name); break; case 4: PrintWord(); printf(n); printf(按回車鍵繼續(xù)); getchar(); getchar(); system(cls); break; case 5: system(cls); Bmenu(temp); break;if(t=6) break;while(1);void main()head=(LinkList *)malloc(sizeof(LinkList);LinkList *temp;menu(temp);5課程設(shè)計(jì)心得及存在問題本程序是在線性表的基礎(chǔ)上改進(jìn)的,用到了雙向鏈表和一些c+里面的知識(shí)。線性表的操作數(shù)是浮點(diǎn)形,而文本編輯器的操作數(shù)是字符型,在線性表的程序上加進(jìn)插入刪除查找數(shù)據(jù)結(jié)構(gòu),然后建立一個(gè)文件保存線性表中的數(shù)據(jù),就是我寫的程序。本次課程設(shè)計(jì)還算順利,但是在設(shè)計(jì)過程中由于自己的不細(xì)心,忽略了一些關(guān)鍵的細(xì)節(jié),導(dǎo)致了在編寫過程中出現(xiàn)了一些錯(cuò)誤。例如:少了分號(hào),或忘了定義函數(shù),又如能運(yùn)行但輸出結(jié)果錯(cuò)誤,結(jié)果不正確。又由于自己打字時(shí)犯得小錯(cuò)誤,導(dǎo)致出現(xiàn)不易發(fā)現(xiàn)的錯(cuò)誤,最終在老師及編程能力比較強(qiáng)的同學(xué)幫助下,查找到并及時(shí)改正。該程序不僅可以利用線性表還可以利用串、單鏈表司實(shí)現(xiàn),通過做該程序,我又對(duì)課本做了新的解讀,加深了對(duì)所學(xué)知識(shí)的印象及了解,同時(shí)也了解了我還有許多不足,對(duì)許多所學(xué)過的知識(shí)掌握得不夠透徹,不夠深入,應(yīng)用不夠靈活,今后我會(huì)彌補(bǔ)這方面的不足,加深理解課本知識(shí),同時(shí)注重應(yīng)用。 通過這次課程設(shè)計(jì)讓我又學(xué)到了很多東西,加深了對(duì)數(shù)據(jù)結(jié)構(gòu)這門課程的理解和學(xué)會(huì)了如何在實(shí)際中應(yīng)用數(shù)據(jù)結(jié)構(gòu)編程。讓我了解到自己在這門課程上還存在很多缺陷,尤其是對(duì)文件操作問題。通過對(duì)線性表的應(yīng)用,查找課本資料加深了對(duì)線性表的了解,并學(xué)會(huì)了靈活運(yùn)用。通過調(diào)試,我學(xué)會(huì)了借助逐步調(diào)試功能和數(shù)據(jù)窗口,加快找到程序中的錯(cuò)誤點(diǎn),調(diào)試能力有所提高。 本程序中運(yùn)用了大量的循環(huán)結(jié)構(gòu)和條件結(jié)構(gòu),在編寫程序時(shí)要注意條件的判斷和循環(huán)條件的正確編寫。該程序中程序代碼較多,引用較多指針和定義的許多變量,理解起來較難。而且對(duì)于文件的存儲(chǔ)和讀取還是存在問題。有待于我自己進(jìn)一步再去研究這段程序,并且改進(jìn)它。我現(xiàn)在初步的解決辦法是定義一個(gè)類,類里包含一些靜態(tài)的屬性和動(dòng)態(tài)的函數(shù),然后在繼承這些函數(shù)。這樣可以簡(jiǎn)化程序代碼,然后精確存取的文件路徑,使之在文件的存取方面便于更好的理解,使程序功能更全面??傊ㄟ^本次課程設(shè)計(jì),不僅鍛煉了我的實(shí)際操作能力,而且培養(yǎng)了嚴(yán)密的思維能力和嚴(yán)謹(jǐn)?shù)膽B(tài)度。本次課程設(shè)計(jì)的確令我受益匪淺,而且增加了編程的興趣。23

注意事項(xiàng)

本文(簡(jiǎn)易文本編輯器課程設(shè)計(jì)報(bào)告.doc)為本站會(huì)員(good****022)主動(dòng)上傳,裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。 若此文所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng)(點(diǎn)擊聯(lián)系客服),我們立即給予刪除!

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




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

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

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


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