版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
可編輯版/語言程序設計報告姓名:班級:學號:指導教師:課題:簡單的行編輯器簡單的行編輯器題目要求設置一個簡單的行編輯器,每行以回車結束。數(shù)據(jù)以文件形式存儲。編輯器具有查找,替代,修改數(shù)據(jù)的功能。需求分析根據(jù)題目要求,數(shù)據(jù)以文件的形式存儲,所以應提供文件的輸入,輸出等操作;還需要文件具有查找,替換,修改數(shù)據(jù)的功能。總體設計根據(jù)上面的需求分析,可以將這個系統(tǒng)的設計分為如下七大模塊:編輯,查找,修改,,刪除,替換,保存,退出。簡單的行編輯器系統(tǒng)簡單的行編輯器系統(tǒng)編輯替換刪除修改保存退出查找詳細設計主函數(shù)為了各模塊的獨立性,主函數(shù)一般設計得比較簡單,本系統(tǒng)主要用主函數(shù)打開上次保存的數(shù)據(jù)和進入主菜單函數(shù)打開上次保存文件流程圖打開上次保存文件進入主菜單函數(shù)進入主菜單函數(shù)程序/*********************************主函數(shù)**************************************/main<>{FILE*pfile;pfile=fopen<"Linedit.txt","a+">;readfile<lines,pfile>;fclose<pfile>;menu<lines>;}intreadfile<char<*lines>[MAXC],FILE*pfile>{inti=0;while<!feof<pfile>>{fgets<lines[i],MAXC,pfile>;/*if<!strstr<lines[i],"\n">>return1;*/i++;}return0;}主菜單函數(shù)流程圖顯示一系列功能選項顯示一系列功能選項輸入n,判斷n是否是0-6根據(jù)n的值調(diào)用各功能模塊函數(shù)是否程序voidmenu<char<*lines>[MAXC]>{intselection;do{system<"cls">;puts<"\t\t***********************MUNU******************\n\n">;puts<"\t\t1.Editnewline">;puts<"\t\t2.Replaceline">;puts<"\t\t3.Deleteline">;puts<"\t\t4.Searchline">;puts<"\t\t5.Modifydata">;puts<"\t\t6.Save">;puts<"\t\t0.Exit">;puts<"\n\n\t\t********************************************\n">;printf<"Pleaseselectanumber:[]\b\b">;do{scanf<"%d",&selection>;if<selection<0||selection>6>{printf<"Invalidselection!Pleasetryagain">;printf<"andselectanumber:[]\b\b\n">;}elsebreak;}while<true>;switch<selection>{case1:edit<lines>;break;case5:modify<lines>;break;case3:mydelete<lines>;break;case4:search<lines>;break;case2:replace<lines>;break;case6:savetofile<lines>;break;case0:myexit<lines>;}}while<true>;}各功能模塊設計編輯模塊流程圖程序/*****************************編輯*************************************/voidedit<char<*lines>[MAXC]>{inti,index;/*system<"cls">;*/clrscr<>;for<i=0,index=0;i<MAXL;i++>if<lines[i][0]!=0>{index++;printf<"%d:%s",index,lines[i]>;}printf<"\n\nPleasetypeanewline:\n">;fflush<stdin>;for<i=0;i<MAXL;i++>{if<lines[i][0]=='\0'>{/*每行第一個字符作為標志位空行可寫入*/fgets<lines[i],MAXC,stdin>;return;}elsecontinue;}}替換模塊流程圖程序/******************************替換****************************************/voidreplace<char<*lines>[MAXC]>{inti;intindline;intj,k;do{/*system<"cls">;*/clrscr<>;/*打印所有*/for<i=0;i<MAXL;i++>if<lines[i][0]!=0>printf<"%d:%s",i+1,lines[i]>;printf<"\n\nWhichlinedoyouprefertoreplace?<Toquitpleaseinput0>[]\b\b">;scanf<"%d",&indline>;if<indline==0>return;else{for<j=0,k=0;j<MAXL;j++>{if<lines[j][0]!=0>k++;if<k==indline>{printf<"\n\nThelinetobereplacedis:\n%s",lines[j]>;printf<"Pleasetypeyournewline:\n">;memset<lines[j],0,MAXC>;fflush<stdin>;fgets<lines[j],MAXC,stdin>;break;}}}}while<true>;}刪除模塊流程圖刪除即在查找到某行的基礎上再刪掉,其具體流程圖可參照查找的流程圖查找行查找行刪除行程序/*******************************刪除***************************************/voidmydelete<char<*lines>[MAXC]>{inti,index;intindline;intj,k;do{/*system<"cls">;*/clrscr<>;for<i=0,index=0;i<MAXL;i++>if<lines[i][0]!=0>{index++;printf<"%d:%s",index,lines[i]>;}printf<"\n\nWhichlinedoyouprefertodelete?<Toquitpleaseinput0>[]\b\b">;scanf<"%d",&indline>;if<indline==0>return;elsefor<j=0,k=0;j<MAXL;j++>{if<lines[j][0]!=0>k++;if<k==indline>{printf<"Thelinetobedeletedis:\n%s\n",lines[j]>;memset<lines[j],0,MAXC>;system<"pause">;break;}}}while<true>;}查找模塊流程圖程序/**************************查找****************************************/voidsearch<char<*lines>[MAXC]>{inti,index;intindline;intj,k;do{/*system<"cls">;*/clrscr<>;for<i=0,index=0;i<MAXL;i++>if<lines[i][0]!=0>{index++;printf<"%d:%s",index,lines[i]>;}printf<"\n\nWhichlinedoyouwanttosearch?<Toquitpleaseinput0>[]\b\b">;scanf<"%d",&indline>;if<indline==0>return;elsefor<j=0,k=0;j<MAXL;j++>{if<lines[j][0]!=0>k++;if<k==indline>{printf<"Thelinetobesearchedis:\n%s\n",lines[j]>;system<"pause">;break;}}}while<true>;}修改模塊流程圖刪除模塊的流程圖也是在查找模塊的基礎上稍加改動,在此不再贅述其流程圖可簡單寫為查找行查找行修改行程序/******************************修改**********************************//*在sSrc中用sReplaceStr替換sMatchStr*/intmodifystr<char*sSrc,char*sMatchStr,char*sReplaceStr>{intStringLen;charcaNewString[MAXC];char*FindPos=strstr<sSrc,sMatchStr>;if<<!FindPos>||<!sMatchStr>>return-1;while<FindPos>{memset<caNewString,0,sizeof<caNewString>>;StringLen=FindPos-sSrc;strncpy<caNewString,sSrc,StringLen>;strcat<caNewString,sReplaceStr>;strcat<caNewString,FindPos+strlen<sMatchStr>>;strcpy<sSrc,caNewString>;FindPos=strstr<sSrc,sMatchStr>;}return0;}voidmodify<char<*lines>[MAXC]>{inti,indline;charbuf[MAXC];intk;intj;char*token=0;charsearch[MAXC],replace[MAXC];do{/*system<"cls">;*/clrscr<>;for<i=0;i<MAXL;i++>if<lines[i][0]!='\0'>printf<"%d:%s",i+1,lines[i]>;printf<"\n\nWhichlinedoyouprefertomodify?<Toquitpleaseinput0>[]\b\b">;scanf<"%d",&indline>;if<indline==0>return;else{for<j=0,k=0;j<MAXL;j++>{if<lines[j][0]!=0>k++;if<k==indline>{printf<"\n\nThelinetobereplacedis:\n%s",lines[j]>;printf<"\n\nInputthesearchstringandthereplace">;printf<"<Toquitpleaseinputq>:">;memset<buf,0,MAXC>;fflush<stdin>;fgets<buf,MAXC,stdin>;k=strlen<buf>-1;if<buf[k]=='\n'>buf[k]='\0';if<*buf=='q'&&*<buf+1>=='\0'>return;memset<search,0,MAXC>;memset<replace,0,MAXC>;token=strtok<buf,"">;strcpy<search,tok
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度船舶修理與維護服務合同范本2篇
- 2025年度藝術展覽場地無償使用協(xié)議4篇
- 二零二五年度辭退合同范本:員工解除勞動合同協(xié)議范本4篇
- 二零二四年社區(qū)食堂配送與營養(yǎng)配餐服務協(xié)議3篇
- 2025年度船舶租賃市場預測分析合同4篇
- 2025年度個人入股分紅合作開發(fā)項目合同3篇
- 二零二五年度鋁板墻飾安裝工程合作協(xié)議3篇
- 2025至2030年中國三輥橡膠壓延機數(shù)據(jù)監(jiān)測研究報告
- 二零二四年度智慧社區(qū)物業(yè)管理服務合同3篇
- 手勢識別技術探討-深度研究
- 河北省邯鄲市永年區(qū)2024-2025學年九年級上學期期末考試化學試卷(含答案)
- 交通運輸行政執(zhí)法程序規(guī)定培訓課件
- 消防員證考試題庫2000題中級
- 海洋垃圾處理行業(yè)可行性分析報告
- 無人機培訓計劃表
- 2024屆高考英語詞匯3500左右
- 2024年-2025年海船船員考試-船舶人員管理考試題及答案
- 三兄弟分田地宅基地協(xié)議書范文
- DIC診治新進展課件
- 公路工程施工現(xiàn)場安全檢查手冊
- 1汽輪機跳閘事故演練
評論
0/150
提交評論