C語言.課程設(shè)計(jì)-.簡單的行編輯器_第1頁
C語言.課程設(shè)計(jì)-.簡單的行編輯器_第2頁
C語言.課程設(shè)計(jì)-.簡單的行編輯器_第3頁
C語言.課程設(shè)計(jì)-.簡單的行編輯器_第4頁
C語言.課程設(shè)計(jì)-.簡單的行編輯器_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

可編輯版/語言程序設(shè)計(jì)報(bào)告姓名:班級(jí):學(xué)號(hào):指導(dǎo)教師:課題:簡單的行編輯器簡單的行編輯器題目要求設(shè)置一個(gè)簡單的行編輯器,每行以回車結(jié)束。數(shù)據(jù)以文件形式存儲(chǔ)。編輯器具有查找,替代,修改數(shù)據(jù)的功能。需求分析根據(jù)題目要求,數(shù)據(jù)以文件的形式存儲(chǔ),所以應(yīng)提供文件的輸入,輸出等操作;還需要文件具有查找,替換,修改數(shù)據(jù)的功能。總體設(shè)計(jì)根據(jù)上面的需求分析,可以將這個(gè)系統(tǒng)的設(shè)計(jì)分為如下七大模塊:編輯,查找,修改,,刪除,替換,保存,退出。簡單的行編輯器系統(tǒng)簡單的行編輯器系統(tǒng)編輯替換刪除修改保存退出查找詳細(xì)設(shè)計(jì)主函數(shù)為了各模塊的獨(dú)立性,主函數(shù)一般設(shè)計(jì)得比較簡單,本系統(tǒng)主要用主函數(shù)打開上次保存的數(shù)據(jù)和進(jìn)入主菜單函數(shù)打開上次保存文件流程圖打開上次保存文件進(jìn)入主菜單函數(shù)進(jìn)入主菜單函數(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ù)流程圖顯示一系列功能選項(xiàng)顯示一系列功能選項(xiàng)輸入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>;}各功能模塊設(shè)計(jì)編輯模塊流程圖程序/*****************************編輯*************************************/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'>{/*每行第一個(gè)字符作為標(biāo)志位空行可寫入*/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>;}刪除模塊流程圖刪除即在查找到某行的基礎(chǔ)上再刪掉,其具體流程圖可參照查找的流程圖查找行查找行刪除行程序/*******************************刪除***************************************/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>;}修改模塊流程圖刪除模塊的流程圖也是在查找模塊的基礎(chǔ)上稍加改動(dòng),在此不再贅述其流程圖可簡單寫為查找行查找行修改行程序/******************************修改**********************************//*在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)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論