數(shù)據(jù)結(jié)構(gòu)-課程設(shè)計-簡易文本編輯器講課教案_第1頁
數(shù)據(jù)結(jié)構(gòu)-課程設(shè)計-簡易文本編輯器講課教案_第2頁
數(shù)據(jù)結(jié)構(gòu)-課程設(shè)計-簡易文本編輯器講課教案_第3頁
數(shù)據(jù)結(jié)構(gòu)-課程設(shè)計-簡易文本編輯器講課教案_第4頁
數(shù)據(jù)結(jié)構(gòu)-課程設(shè)計-簡易文本編輯器講課教案_第5頁
已閱讀5頁,還剩19頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

課程名稱: 數(shù)據(jù)結(jié)構(gòu) 簡易文本編輯器項 目 評 價設(shè)計方案的合理性與創(chuàng)造性設(shè)計與調(diào)試結(jié)果設(shè)計說明書的質(zhì)量功能完善度綜合成績學 號

綜合成績計本班

鄧寅森教師評語 目 錄一、需求分析.............................................

3二、概要設(shè)計.............................................

3三、模塊設(shè)計.............................................

5四、詳細設(shè)計.............................................

7五、調(diào)試分析.............................................

8六、用戶使用說明........................................

12七、

參考文獻...........................................

12八、

對所設(shè)計的軟件進行自我評價,如創(chuàng)新點、未解決的問題等情況說明..................................................

12九、程序源代碼:........................................

131.1

問題描述方便等缺點。計算機信息管理為人們的生活、工作提供了方便,提高使用文本編輯的人員進行管理和分析的一種計算機應(yīng)用程序。1.2

基本任務(wù)通過用戶調(diào)查分析及實際需求,系統(tǒng)需要實現(xiàn)如下基本任務(wù):(1)輸入數(shù)據(jù)信息建立文本;(2)查詢文本中滿足要求的信息;(3)插入新的信息到文本中;(4)刪除不再需要的文本信息;(5)

查看所有的文本信息。為了完成需求分析的基本任務(wù),主要從以下3

個方面進行設(shè)計:2.1

主界面設(shè)計項的主控菜單模塊以操作系統(tǒng)的各項功能,以方便用戶使用系統(tǒng)。系統(tǒng)進入菜單運行界面如圖所示:簡易文本編輯器主菜單2.2

數(shù)據(jù)結(jié)構(gòu)設(shè)計系統(tǒng)采用線性表的順序存儲結(jié)構(gòu)表示和存儲“簡易文本編輯器”中的信息。實現(xiàn)文本的輸入,刪除,插入,查找,顯示功能。2.3

系統(tǒng)功能設(shè)計運行程序,提示進入菜單,按“回車鍵”進入主菜單,再可以在

鍵”新建文本,然后才可以進行其他操作,或者按“0

鍵”選擇退出。3.1

模塊設(shè)計 模塊調(diào)用示意圖3.2

系統(tǒng)子模塊及其功能設(shè)計本系統(tǒng)共設(shè)計了

16

1、/*由模式串

nextval

值*/void

GetNextval(SqVString

T,int

nextval[])2、/*模式匹配

KMP

算法*/int

KMPIndex(SqVString

S,int

pos,int

next[],SqVString

T)3、/*初始化串*/void

InitString(SqVString

*S,char

*str)4、/*串插入*/int

StrInsert(SqVString

*S,int

pos,SqVString

T)5、/*串刪除*/int

StrDelete(SqVString

*S,int

pos,int

len)6、/*求子串*/int

SubStr(SqVString

S,int

pos,int

len,SqVString

*T)7、/*串連接*/int

Concat(SqVString

*S,SqVString

T)8、/*串賦值*/int

StrAssign(SqVString

*S,char

*value)9、void

InputString()

10、void

DeleteString()//刪除11、void

DeleteSubstring()//刪除12、void

InsertSubstring()//查找13、void

14、void

cd()//進入界面15、void

16、void

3.3

系統(tǒng)模塊之間的調(diào)用關(guān)系系統(tǒng)的

16

個子模塊之間的主要調(diào)用關(guān)系所示:系統(tǒng)函數(shù)調(diào)用關(guān)系圖4.1

數(shù)據(jù)結(jié)構(gòu)設(shè)計系統(tǒng)采用線性表的順序存儲結(jié)構(gòu)存儲通訊錄信息。4.2

系統(tǒng)主要模塊設(shè)計(1)建立文本模塊,由

void

InitString(SqVString

*S,char*str)函數(shù)實現(xiàn)。該模塊的算法思想是:

eq

\o\ac(○,1)

按照給定的線性表存儲空間的初始化分配量分配存儲空間,若分配成功,則往下進行;eq

\o\ac(○,2)

令線性表長為

eq

\o\ac(○,3)

令線性表當前存儲容量為給定的線性表存儲空間的初始化分配量。該模塊的算法描述如下:見源程序(2)查看文本中得所有記錄,需要一個模式匹配intKMPIndex(SqVString

S,int

pos,int

next[],SqVString

T)函數(shù)實現(xiàn)。該模塊的算法思想是:在此略該模塊的算法描述如下:見源程序(其它模塊設(shè)計 略)5.1、調(diào)試方法:首先打開

Microsoft

Visual

C++

6.0

,運行程序,出現(xiàn)錯誤修改再運行,直至運行結(jié)果0

error

,0

warning

結(jié)束。接著進入程序界面,看程序能否實現(xiàn)所要求的各項功能,再作下一步的修改。5.2、調(diào)試結(jié)果主菜單新建顯示刪除查找插入退出5.3、程序出現(xiàn)的問題:還有幾個程序模塊未能成功調(diào)用。(

其他問題 見“第八項中未能解決的問題”

)當用戶打開程序,就會提示按【回車鍵】進入,按【回車鍵】則

鍵】,新建文本信息,編輯好后,按照程序中的文字提示,返回到主菜單,此時在主菜單選擇其他操作,當進入各項操作,均有提示。每一操作完成,按【回車鍵】返回主菜單,選擇【0

鍵】,安全退出程序!《數(shù)據(jù)結(jié)構(gòu)理論與實踐》——楊永斌了數(shù)據(jù)結(jié)構(gòu)的特點。繼續(xù)沿用了清屏函數(shù),是屏幕看起來很舒服,不至于那么雜亂。未解決的問題:

eq

\o\ac(○,1)

在完成插入,查找功能的時候,出現(xiàn)了問題,當程序執(zhí)行到此處時,程序未能進入下一步,而是直接退出了。eq

\o\ac(○,2)

當進入主菜單后,只能選擇【1

鍵】或者退出,這是未能得到優(yōu)化的。eq

\o\ac(○,3)

塊移動(行塊,列塊移動),正確存盤、取盤;正確顯示總行數(shù)等功能未能完成。

/*存儲結(jié)構(gòu)*/

值*/

算法*/

/*初始化串*/

}/*求

*sizeof(char));/*申請動態(tài)數(shù)組空間*/S->length=len;/*置串的當前長度*/S->ch[i]=str[i];/*賦值串值*//*串插入*/

插入位置不合法,其取值范圍應(yīng)該是[0,length]";

分配空間出錯,無法完成串插入操作";

/*串刪除*/

不合法,無法完成刪除操作";

length=pos;/*若

刪到串尾*/

分配空間出錯,無法完成串的刪除操作";

/*求子串*/

空串,無法完成求子串操作";

不合法,無法完成求子串操作";

len=S.length-pos+1;/*當子串長度超過主串長度,則只取到串尾即可*/free(T->ch);/*釋放

的原有空間*/

分配空間出錯,無法完成求子串操作";

/*串連接*/

分配空間出錯,無法完成串連接操作";

/*串賦值*/

free(S->ch);/*釋放

的原有空間*/}/*求

為空串*/

分配空間出錯,無法完成串賦值操作";

cout<<"\t\t[請輸入文本,每以回車結(jié)束,一段以#結(jié)束行]"<<endl;

請輸入要刪除行的行號:";

請輸入子串所在的行號:";

請輸入插入位置:";

請輸入子串值:";

請輸入子串所在的行號:";

請輸入刪除的起始位置:";

請輸入刪除的字符數(shù):";

請輸入要查找的子串:";

\t\t[子串"<<buffer<<"

行的"<<pos<<"位置上出現(xiàn)]"<<endl;

cd()//進入界面cout<<"\t\t"<<"♀ cout<<"\t\t"<<"♂————————————————————♂"<<endl;cout<<"\t\t"<<"→ cout<<"\t\t"<<"······················"<<endl;cout<<"\t\t"<<"↓ cout<<"\t\t"<<"↑ cout<<"\t\t"<<"♀

鄧寅森♀"<<endl;cout<<"\t\t"<<"∶

cout<<"\t\t"<<"♂————————

溫馨提示

  • 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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論