版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
《數(shù)據(jù)結(jié)構(gòu)與算法分析》課程設(shè)計報告文本編輯課題名稱:文本編輯課題設(shè)計人(學(xué)號):劉佳玉4指導(dǎo)教師:朱宏評閱成績:!評閱意見:二提交報告時間:2013年12月22日十bianji.Showwenben();〃顯示文本10、當用戶選擇重置(new)功能時,五、源程序清單:該程序代碼分為3部分,分別是:1、模板類的代碼,文獻名"linklist.h",相應(yīng)代碼:#ifndefLINKLIST_H_#defineLINKLIST_H_#include<iostream>usingnamespacestd;template<classElemType>//隊列的模板類classLinkList{privatc:ElemTypewenben[256][256];〃創(chuàng)建一個二維數(shù)組作為存儲文本的空間inthang;〃數(shù)組的行intlie;〃數(shù)組的列public:LinkList()//構(gòu)造函數(shù)°{。hang=1;//初始化行數(shù)為1olie=l;//初始化列數(shù)為1-wenben[O][O]=,a';//初始化文本為匕'。?LinkList(){}//析構(gòu)函數(shù)voidXiugaiwenben(inthl,int11,inth2,int12)//修改文本,將文本中h2行12列的“〃字符賦給hl行11列wenbenfh1][11]=wenben[h2][12];)voidFuzhiwenben(inth,int1)〃給文本中h行1列賦一個字符。{^cin?wenben[h][l];)oE1emTypeFindwenben(inth,int1)〃返回h行1列的字符°{^rcturnwcnbcn[h][1];}0VoidSethang(inth)〃設(shè)定數(shù)組的行數(shù)(hang=h;ointGethang()〃得到數(shù)組的行數(shù)^returnhang;°)ovoidSetlie(int1)//設(shè)定數(shù)組的列數(shù)°(lie=l;}ointGet1ie()//得到數(shù)組的列數(shù){。return1ie;ovoidSetwenben()//設(shè)立一個文本°{°inti,j;ofor(i=0;i<hang;i++)°{gcoutvV”請輸入第”Wi+lW”行的文本:“VVendl;“for(j=0;j<lie;j++)°(coutvv”請輸入第”vvi+lvv”行第”vvj+lvV列的字符”vvend1;。cin?wenben[i][j];000])voidShowwenben()//顯示當前文本6(?cout?"當前文本是:“VVend1;°inti,j;“for(i=0;i<hang;i++)oofor(j=0;j<lie;j++)°(。?cout?wenben[i][j];6}?cout<<endl;}q};#endif2、編輯類的代碼,文獻名是“editor.h",相應(yīng)代碼:#includelink1ist,h”classEditor(private:linkList<char>bianji;〃模板類的char型對象,用來調(diào)用模板類中的函數(shù)intcount;〃在使用查找功能時用來判斷是否要查找的文本在當前文本中public:ovoidChushihua()//設(shè)立文本的函數(shù)。cout?na代表自己輸入文本,b代表使用電腦設(shè)立的文本”vvend1;ocout<<"請輸入你的選擇:"〈Vendl;ocharch;ocin?ch;switch(ch)//對用戶的不同選擇執(zhí)行不同的代碼°{6case匕'://當用戶選擇自行輸入文本時coutvv”請輸入文本的行數(shù):”;“nth;cin>>h;?6cout?endl;scoutVv”請輸入文本的列數(shù):”;inti;“cin?l;bianji.Sethang(h);〃設(shè)立文本的行數(shù)。由ianji.Set1ie(1);〃設(shè)立文本的列數(shù)gbianji.Setwenben();//輸入文本eobianji.Showwenben();〃顯示文本break;?case'b,:〃當用戶選擇使用電腦設(shè)立的文本時bianji.Showwenben();〃顯示初始化的文本obreak;ovoidEdite()〃編輯文本的函數(shù)“charch='sz;//初始化ch“whi1e(ch!-qf)//當ch!=q時,就不會退出循環(huán)(coutVv”i代表插入文本”;oocout?nR代表移除文本”;ocoutvv一代表替換文本”;coutvv”f代表查找文本”;“ocoutvv”S代表顯示當前文本”;。cout?"n代表重新建立一個文本”;bCoutVv”q代表退出"?endl;℃outVV”請輸入你的選擇:";“cin?ch;switch(ch)//根據(jù)用戶的不同選擇執(zhí)行不同的代碼“ocase,i':〃選擇插入(insert)功能bianji.Showwenben();//顯示當前文本。ocout?*'請問要插入到第幾行?:”;ointhO;gcin?h0;TOC\o"1-5"\h\zwowhile(hO>bianji.Gethang()||h0<1)〃假如要插入的行大于已有的最大行或者小于第一行就會規(guī)定重新輸入一個000{00c0UtVV”輸入錯誤,請重輸:”;cin>>hO;00)?!癰ianji.Sethang(bianji.Gethang()+l);//當前行數(shù)加1ointi,j;3ofbr(i=bianji.Gethang()—1;i>=h0;i—)//把要插入行及后面的行的文本往后一次移一行6{“for(j=0;j<bianji.Getlie();j++)000{3abianji.Xiugaiwenbcn(ij,i-l,j);00}“for(i=0;i<bianji.Getlie();i++)//輸入要插入的那一行的文本。cout?"請輸入第n?h0?"行第“vvi+lVV”個字符:“;3gbianji.Fuzhiwenben(hO-l,i);3cout<<endl;Odo}bbianji.Showwenben();//顯示文本“break;oocase'R:〃選擇移除(remove)功能o?bianji.Showwenben();-coutvv”請問要移除哪一行?:”;inthl;“cin>>hl;oowhilc(hl>bianji.Gethang()IIhlvl)〃假如要移除的行大于已有的最大行或者小于第一行就會規(guī)定重新輸入一個。{“coutVV”輸入有誤,請重輸:”;。cin>>hl;0)aabianji.Sethang(bianji.Gethang()-1),將當前行數(shù)減1“inti1,j1;ofor(il=hl-1;il<bianji.Gethang();il++)〃把要移除的行的后面的行一次往前移一行就順便把要移除的那一行給覆蓋00//了,從而達成移除的效果。。。for(j1=0;j1<bianji.Getlie();j1++)6(3o3bianji.Xiugaiwenben(il,j1,i1+1,j1);000}00}o。。bianji.Showwenben();fibreak;^caseT'://選擇替換(rep1ace)功能o“bianji.Showwenben();0。。COUt<<要替換哪一行?:";?!癷nth2;ofcin?h2;“inti2;g3for(i2=0;i2<bianji.Getlie();i2++)〃得到要替換的那一行的列數(shù),然后輸入新的文本6{。ocoutvv”請輸入第"vvh2vv”行第“vvi2+1vv”個字符:";gbianji.Fuzhiwenben(h2—1,i2);ocout<<endl;“。。bianji.Showwenben();0“break;“ocasef:〃選擇查找(find)功能bianji.Showwenben();“coutVv”請輸入要查找的文獻:"wend1;o。。。inti3,j3;count=O;。ofor(i3=0;i3<bianji.Getlie();i3++)//根據(jù)當前文本的列數(shù)來輸入要查找的文本006{-coutVV”請輸入第“vvi3+lvv”列的字符:”;a^bianji.Fuzhiwcnben(bianji.Gethang(),i3);〃將輸入的文本放到當前的最后一行,只是暫時的。。}//在這個功能完了后就會消失,由于沒有改變文本的行列/*cout〈v"第”vvh3〈V”行的文本是:"Vvendl;〃輸入行數(shù)就會將當前文本中那一行的文本輸出0for(i3=0;i3<bianji.Getlic();i3++)000{o。。。cout?bianji.Findwenben(h3-1,i3);0。}*/。。for(i3=0;i3<bianji.Gethang();i3++)//根據(jù)輸入的文本,一行一行的搜,將每一行的文本域輸入的文本進行匹配文本編輯器計算機科學(xué)與技術(shù)專業(yè)學(xué)生劉佳玉指導(dǎo)老師朱宏[摘要]文本編輯器(或稱文字編輯器)是用作編寫普通文字的應(yīng)用軟件,它與文檔編輯器(或稱文字解決器)不同之處在于它并非用作桌面排版(例如文檔格式解決)。它常用來編寫程序的源代碼。專業(yè)的計算機用戶使用的文本編輯器往往不限制打開文獻的大小。這樣的編輯器在編輯大文獻時,啟動仍然不久,并且它們還可以編輯超過內(nèi)存大小的文獻。而簡樸的文本編輯器通常直接把文獻讀至內(nèi)存。這樣在解決較大文獻時速度較慢,對于更大的文獻,則干脆無法解決。我所做的這個文本編輯器包含插入、移除、替換、查找、顯示和新建的功能,是一種簡樸的文本編輯器。關(guān)鍵詞:簡樸的文本編輯器插入移除替換查找顯示新建一、實驗名稱:文本編輯器二、實驗的目的和規(guī)定:.采用C++的ASCII碼文獻和串函數(shù)實現(xiàn);.純熟掌握串運算的應(yīng)用;.純熟掌握計算機系統(tǒng)的基本操作方法,了解如何編輯、編譯、鏈接000假如匹配成功就會輸出相應(yīng)的行數(shù)“呵3=0;o?whi1e(bianji.Findwenben(i3,j3)==bianji.Findwenben(bianji.Gethang(),j3)&&j3<bianji.Getlie())00{?“°j3++;〃相同就會在查下一列的字符是否相同,直到這一行完了0)if(j3==bianji.Getlie())°{“cout?n你要找的文本在第”v<i3+1vv”行”?endl;oocount+=l;TOC\o"1-5"\h\z00}000}“”f(count==0)000{3oocout?”你要找的文本不在現(xiàn)有文本中”<vend1;00}“cout?endl;reak;oeecase's':〃選擇顯示當前文本fibianji.Showwenben();obreak;3case'n7:〃選擇重置(new)功能oointh4,14;0。。C0Ut<<”請輸入新的行數(shù):";oecin>>h4;oooobianji.Sethang(h4);//新行coutw”請輸入新的列數(shù):”;ocin?14;。“bianji.Setlie(14);〃新列obianji.Setwenben();〃新文本bianji.Showwenben();〃顯示文本obreak;case*q*:obreak;};3、主函數(shù)的代碼,文獻名是“main.cpp",相應(yīng)代碼:#includeH1inklist.h"#include"editor.h"intmain()
Editore://編輯類的對象,用來調(diào)用類中的函數(shù)oe.Chushihua();//調(diào)用設(shè)立文本的函數(shù)e.Edite();//調(diào)用編輯文本的函數(shù)?return0;六、運營結(jié)果:1、選擇自己輸入文本(a),輸入文本為(3行2歹IJ):ty?*E:\devc++\cpp\test_editor2\Debug\test_editor2.exe"代表自己輸入文本,b代表使用電腦設(shè)置的文本請輸點爾的送擇:清輸入文本的行數(shù):3得仃才得仃才11章第^<入主R主R主0E得仃才11章第^<入主R主R主0E請輸入第得仃才11章第^<入主R主R主0E請輸入第2行第1列的字符:青輸入第2行第2列的字符學(xué)箴翻整葡岳字符儲輸入第3行第2列的字符y當前文本是:qtier進行插入操作(i),插入文本as到第2行:
2請輸入第2行第2個字符:當前文本是:qwaser進行移除操作(R),移除第3行文本:鱉表M2請輸入第2行第2個字符:當前文本是:qwaser進行移除操作(R),移除第3行文本:鱉表M弋RR1本:笨選:舒立你本饕人文N代表替換文本f代表查找文本s代表顯示當前文本n代表q,Ae:“曹qwast1衰要文回刖案顰3燙M弋臂手遭二代表替換文本£代表查找文本s代表顯示當前文本n代表.歌施黛拿代表乙雪箭文本意qwasa請輸入第1行第2個字符:f當前文本是:dfasty進行查找操作(f),查找文本as和qw:本套選:酚"你*-聚人文停表外£R1-本:「代表替換文本£代表查找文本s代表顯示當前文本n代表窗堂墓第的人人入我要本套選:酚"你*-聚人文停表外£R1-本:「代表替換文本£代表查找文本s代表顯示當前文本n代表窗堂墓第的人人入我要1S中青青青你進行顯示操作(S):進行重置操作(n):重置操作和自己輸入文本是同樣的,在這里就不演示了,有愛好可以自己嘗試。2、使用程序自身內(nèi)置的文本(b):內(nèi)置的文本是一行一列的文本a:唯表目且蒯△文本,b代表使用電腦設(shè)置的文本/輸X彳爾的施第:當前文本是:哈鬣尸代表替換文本f代表查找文本$代表顯示當前文本n代表其他操作和前面的操作時同樣的,在這里就不一一演示了,有愛好的話可以自己嘗試。七、實驗運營情況分析(涉及算法、運營結(jié)果、運營環(huán)境等問題的討論)。1、算法難點分析:該程序的難點不是算法有多難,而是它規(guī)定的功能比較多,會讓人覺得比較難,而不樂意去做,其實我們只要把它規(guī)定的功能寫成一個一個的函數(shù),然后將這些函數(shù)封裝在一個類里面就行了,在我們需要的時候就可以隨時調(diào)用。2.該程序代碼的缺陷:一是需要用戶輸入文本的行數(shù)和列數(shù),并且每一行文本的字數(shù)要相同,靈活性較低,并且沒有報錯功能,用戶輸錯后不會報錯,不是很人性化,尚有就是界面不太美觀,但是這些都可以改善,希望在以后的實驗中做得更好。3、運營環(huán)境分析:改程序的實現(xiàn)環(huán)境是Dev-C++,有些函數(shù)庫也許沒有,比如說<algorithm.h>,但是這都不是大問題,沒有的函數(shù)可以自己寫。參考文獻[1]唐寧九,游洪躍,朱宏,楊秋輝.數(shù)據(jù)結(jié)構(gòu)與算法分析(C++版).清華大學(xué)出版社,2023.2和運營一個C++程序;4.上機調(diào)試程序,掌握查錯、排錯使程序能對的運營。三、實驗的環(huán)境:指硬件和軟件環(huán)境.硬件環(huán)境:G405+4G內(nèi)存+320G硬盤+川大校園網(wǎng).軟件環(huán)環(huán)境:操作系統(tǒng):Windows7編譯系統(tǒng)的版本的特點:Dev—C++是一套用于開發(fā)C/C++的自由的集成開發(fā)環(huán)境(IDE),并以GPL作為散布許可。使用MinGW及GDB作為編譯系統(tǒng)與除錯系統(tǒng)。De\-C++的IDE是運用De1phi開發(fā)的o編輯軟件特點:包含強大的類和內(nèi)嵌WinAPI的MFC,具有可視化的編程界面。四、算法描述:1、用戶可以選擇自己輸入文本或者直接使用程序以初始化的文本,用switchcase語句就可以根據(jù)用戶不同的選擇執(zhí)行相應(yīng)的代碼。相應(yīng)代碼:cout?Ha代表自己輸入文本,b代表使用電腦設(shè)立的文本〃Gend1;co〃請輸入你的選擇:〃VVendl;charch;switch(ch)〃對用戶的不同選擇執(zhí)行不同的代碼(case'a'://當用戶選擇自行輸入文本時break;caseJbz://當用戶選擇使用電腦設(shè)立的文本時break;)2、當用戶選擇自己輸入文本時,就需要寫一些函數(shù)來存儲這些信息,可以將這些函數(shù)封裝在一個模板類中,只要定義一個之歌類的對象(bianji)就可以在需要的時候調(diào)用類的函數(shù)。在這個時候需要調(diào)用的函數(shù)有:bianji.Sethang(h);〃設(shè)立文本的行數(shù)bianji.Setlie(1);//設(shè)立文本的列數(shù)bianji.Setwenben();//輸入文本bianji.Showwenben();〃顯示文本3、單用戶選擇使用程序初始化的文本時,只要顯示文本即可。這個時候需要的函數(shù)有:bianji.Showwenben();//顯示文本4、該文本編輯器有插入,移除,替換,查找,顯示和重置的功能,通過輸出語句告知用戶文本編輯器的功能,并詢問用戶要使用哪個功能。相應(yīng)代碼:charch=,s';〃初始化chwhi1e(ch!='q')〃當ch!='q'時,就不會退出循環(huán)(coutV<〃i代表插入文本〃;ocoutV〈〃R代表移除文本〃;ocout<<,zr代表替換文本”;代表查找文本〃;cOUt<<Z,S代表顯示當前文本”;ocOUt<<°n代表重新建立一個文本〃;coutV<"q代表退出〃〈<end1;ocou〃請輸入你的選擇:〃;cin>>ch;)5、當用戶選擇插入(insert)功能時,就只需要將當前行數(shù)加1,將要插入的行及其后面的行的文本往后移一行,在輸入要插入的行的文本即可,相應(yīng)代碼:while(h0>bianji.Gethang()||h0<1)〃假如要插入的行大于已有的〃最大行或者小于第一行就會規(guī)定重新輸入一個(cout?〃輸入錯誤,請重輸:〃;ocin>>hO;}bianji.Sethang(bianji.Gethang()+1);〃當前行數(shù)加1inti,j;for(i=bianji.Gethang()T;i>=hO;i-)〃把要插入行及后面的行的〃文本往后一次移一行(for(j=0;j<bianji.Get1ie();j++)(^bianji.Xiugaiwenben(i,j,i-l,j);d)for(i=0;i<bianji.Getlie();i++)〃輸入要插入的那一行的文本(ocou〃請輸入第〃《hOV<”行第〃V<i+1<<〃個字符:〃;obianji.Fuzhiwenben(hO-1,i);cout<<end1;)bianji.Showwenben();〃顯示文本6、當用戶選擇移除(remove)功能時,只需要將要移除的行的后面的文本依次往前移一行,就會順便把要移除行的文本覆蓋了,相稱于達成了移除的效果,相應(yīng)代碼:while(h1>bianji.Gethang()||hl<l)//假如要移除的行大于己有的//最大行或者小于第一行就會規(guī)定重新輸入一個ocout<V〃輸入有誤,請重輸:〃;cin>>h1;)bianji.Sethang(bianji.Gethang()-1);//將當前行數(shù)減1inti1,jl;for(i1=hl-l;il<bianji.GethangO;il++)//把要移除的行的后面的〃行一次往前移一行就順便把要移除的那一行給覆蓋{〃了,從而達成移除的效果for(j1=0;jKbianji.Getlie();jl++)(obianji.Xiugaiwenbon(i1,j1,i1+1,jl);))bianji.Showwenben();7、當用戶選擇替換(replace)功能時,只需要重新輸入要替換行的文本即可,其他行的文本不變,相應(yīng)代碼:for(i2=0;i2<bianji.Get1ie0;i2++)//得到要替換的那一行的列//數(shù),然后輸入新的文本(ecoutv〈〃請輸入第〃0h2?!ㄐ械凇?lt;Vi2+l
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《GBT 35259-2017 紡織品 色牢度試驗 試樣顏色隨照明體變化的儀器評定方法(CMCCON02)》專題研究報告
- 《GB-T 35484.3-2021土方機械和移動式道路施工機械 工地數(shù)據(jù)交換 第3部分:遠程信息處理數(shù)據(jù)》專題研究報告
- 《GB-T 24117-2009針織物 疵點的描述 術(shù)語》專題研究報告
- 《儲能材料與器件分析測試技術(shù)》課件-表面積測試實訓(xùn)
- 2026年淮南聯(lián)合大學(xué)單招職業(yè)適應(yīng)性考試題庫參考答案詳解
- 《幼兒文學(xué)》課件-8.4幼兒戲劇改編
- 運輸公司調(diào)度崗實習合同
- 鐘表行業(yè)鐘表品牌營銷專員崗位招聘考試試卷及答案
- 2025城管協(xié)管員筆試題及答案
- 2025年氣浮電主軸項目建議書
- 2025江蘇鹽城東臺市消防救援綜合保障中心招聘16人筆試考試參考題庫及答案解析
- 2025年閔行區(qū)機關(guān)事業(yè)單位編外人員招聘(第二輪)歷年參考題庫帶答案解析
- 2025年廣東省第一次普通高中學(xué)業(yè)水平合格性考試(春季高考)數(shù)學(xué)試題(含答案詳解)
- 2026年企業(yè)內(nèi)容運營方案設(shè)計與品牌價值傳播指南
- 廣州市南沙區(qū)南沙街道社區(qū)專職招聘考試真題2024
- 2025年AI數(shù)據(jù)分析合作協(xié)議
- 2025年刑法學(xué)基礎(chǔ)知識綜合測試卷及答案
- 孤獨癥譜系障礙的神經(jīng)發(fā)育軌跡研究
- 2025年跨境電商運營營銷推廣考試題庫及答案
- 2023鐵路通信承載網(wǎng)工程檢測規(guī)程
- 廣東省領(lǐng)航高中聯(lián)盟2025-2026學(xué)年高三上學(xué)期12月聯(lián)考生物試卷(含答案)
評論
0/150
提交評論