ImageVerifierCode 换一换
格式:DOCX , 页数:21 ,大小:383.47KB ,
资源ID:10850354      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/10850354.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C语言课程设计简单的行编辑器.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

C语言课程设计简单的行编辑器.docx

1、C语言课程设计简单的行编辑器语言程序设计报告姓名:班级:学号:指导教师:课题:简单的行编辑器简单的行编辑器题目要求1.设置一个简单的行编辑器,每行以回车结束。2.数据以文件形式存储。3.编辑器具有查找,替代,修改数据的功能。根据题目要求,数据以文件的形式存储, 所以应提供文件的输入, 输出等操作;还需要文件具有查找,替换,修改数据的功能。根据上面的需求分析,可以将这个系统的设计分为如下七大模块: 编辑,查找,修改,删除,替换,保存,退出。四.详细设计1.主函数为了各模块的独立性,主函数一般设计得比较简单,本系统主要用主函数打开上次保存的数 据和进入主菜单函数流程图打开上次保存文件程序/*mai

2、 n()*z主函数 * 进入主菜单函数FILE *pfiiepfile=fope n( L in edit.txt,a+); readfile(l in es,pfile);fclose(pfile);menu (I in es);int readfile(char (*lines)MAXC,FILE *pfile) int i=0;while(!feof(pfile)fgets(li nesi,MAXC,pfile);/*if(!strstr(li nesi,n) return 1;*/i+; return 0;2.主菜单函数流程图程序void men u(char (*li nes)MAX

3、C) int select ion;dosystem(cls);puts(tt*MUNU* puts(tt1.Edit new line);puts(tt2.Replace line);puts(tt3.Delete line); puts(tt4.Search line);puts(tt5.Modify data);puts(tt6.Save);puts(tt0.Exit);printf(Please select a number: bb); doscanf(%d,&selection); if(selection6) printf(Invalid selection!Please try

4、 again ); printf(and select a number:bbn);else break;while(true);switch(selection)case 1:edit(lines);break;case 5:modify(lines);break;case 3:mydelete(lines);break;case 4:search(lines);break;case 2:replace(lines);break; case 6:savetofile(lines);break;case 0:myexit(lines); while(true);3 各功能模块设计(1) 编辑模

5、块 流程图mt 1=0,0181=0清屏 clisciQ;iMAXLhnesg(U!=O经 7二.八iidBx+,pint旷兀d:pmtfij ynlnPlease type a new luteffliEhtstdin),i=0;iMAXL一-_ 晦MT: /辱 ts(liiue si) ,MAXCtdiicantiKiE,retEm;i+;程序/*编辑 *void edit(char (*li nes)MAXC)int i,i ndex;/*system(cls);*/clrscr();for(i=0,i ndex=O;iMAXL;i+) if(li nesi0!=0)in dex+;pr

6、intf(%d: %s,index,linesi);prin tf(nn Please type a new lin e:n); fflush(stdi n);for(i=0;iMAXL;i+)if(li nesiO=O)空行可写入*/ /*每行第一个字符作为标志位fgets(li nesi,MAXC,stdi n);return;elsecon ti nue;(2) 替换模块流程图niti; mtindEne,血tj,k,II1clisci();i=0;jMAXL:k-H-: | _ k-=indliiw /输由騎选定行pmtf Flease tj/pe youf new line :ln)

7、memseXlinesljl.OXC),fflush( stdin);堆tsOiite即,MAXQ stdii;breek;程序void replace(char (*li nes)MAXC)int i;int indline;int j,k;do/*system(cls); */clrscr();/* 打印所有 */for(i=0;iMAXL;i+)if(linesi0!=0)printf(%d: %s,i+1,linesi);printf(nnWhich line do you prefer to replace?(To quit please input 0) bb);scanf(%d,

8、&indline);if(indline=0)return;elsefor(j=0,k=0;jMAXL;j+)if(linesj0!=0) k+;if(k=indline)printf(nnThe line to be replaced is: n%s,linesj); printf(Please type your new line:n); memset(linesj,0,MAXC);fflush(stdin);fgets(linesj, MAXC, stdin);break;while(true);(3) 删除模块 流程图 删除即在查找到某行的基础上再删掉,其具体流程图可参照查找的流程图查

9、找行删除行do/*system(cls);*/clrscr();for(i=0,i ndex=O;iMAXL;i+)if(li nesi0!=0)in dex+;printf(%d: %s,index,linesi);prin tf(nnWhich line do you prefer to delete?(To quit please in put 0) bb);scan f(%d,&in dli ne);if(i ndli ne=O)return;else for(j=0,k=0;jMAXL;j+)if(linesj0!=0) k+;if(k=in dli ne)printf(The li

10、ne to be deleted is: n%sn,linesj); memset(li nesj,O,MAXC);system(pause);break;while(true);(4) 查找模块流程图查找 */void search(char (*lin es)MAXC)int i,index; int indline; int j,k;do/*system(cls);*/ clrscr();for(i=0,index=0;iMAXL;i+) if(linesi0!=0)index+;printf(%d: %s,index,linesi);printf(nnWhich line do you

11、 want to search?(To quit please input 0) bb);scanf(%d,&indline); if(indline=0)return; elsefor(j=0,k=0;jMAXL;j+)if(linesj0!=0) k+; if(k=indline)printf(The line to be searched is: n%sn,linesj); system(pause);break;while(true);(5)修改模块流程图 删除模块的流程图也是在查找模块的基础上稍加改动,在此不再赘述 其流程图可简单写为查找行修改行程序/* 修尖改 */* 在 sSrc

12、 中用 sReplaceStr 替换 sMatchStr */int modifystr(char *sSrc,char *sMatchStr,char *sReplaceStr)int Strin gLe n;char caNewStri ngMAXC;char *Fi ndPos = strstr(sSrc,sMatchStr);if(!Fi ndPos )| (!sMatchStr)return -1;while(Fi ndPos)memset(caNewStri ng,0,sizeof(caNewStri ng);Strin gLe n=Fin dPos-sSrc;strn cpy(c

13、aNewStri ng,sSrc,Stri ngLe n); strcat(caNewStri ng,sReplaceStr);strcat(caNewStri ng,Fi ndPos+strle n(sMatchStr); strcpy(sSrc,caNewStri ng);Fin dPos = strstr(sSrc,sMatchStr); return 0;void modify(char (*li nes)MAXC)int i,indline;char bufMAXC;int k;int j;char* token=0;char searchMAXC,replaceMAXC;do /*

14、system(cls); */ clrscr();for(i=0;iMAXL;i+) if(linesi0!=0) printf(%d: %s,i+1,linesi);printf(nnWhich line do you prefer to modify?(To quit please input 0) bb);scanf(%d,&indline); if(indline=0) return;else for(j=0,k=0;jMAXL;j+) if(linesj0!=0) k+; if(k=indline) printf(nnThe line to be replaced is: n%s,l

15、inesj);q):);printf(nnInput the search string and the replace );printf(To quit please inputmemset(buf,0,MAXC); fflush(stdin);fgets(buf, MAXC, stdin); k= strlen(buf)-1;if(bufk=n) bufk=0; if(*buf=q&*(buf+1)=0) return;memset(search,0,MAXC); memset(replace,0,MAXC);token =strtok(buf, ); strcpy(search,toke

16、n);token =strtok(NULL, ”); strcpy(replace,toke n);modifystr(l in esj,search,replace); break;while(true);(6)保存模块流程图FILE inti;i=0Xfputsflines i Tpfile),fclose(pfile)fpriiitf(The lilies liasbeensave tUti); 那协诚pa use);程序void savetofile(char (*lin es)MAXC)FILE *pfile;int i;pfile=fope n(Li nedit.txt,w+);f

17、or(i=0;iMAXL;i+)if(li nesiO!=O) fputs(li nesi,pfile);fclose(pfile);prin tf(nThe lines has bee n saved. n); system(pause);(7)退出模块流程图程序void myexit(char (*l in es)MAXC)char c;prin tf(Save the lines to the file?(y/n 门; fflush(stdi n);c=getchar();if(c=n) exit(1);savetofile(l in es);exit(1);五.上机操作1.主菜单函数邑

18、 C;DOCUME-1 ADMINI 1、梟 面TU E XE哄*JC JOCKNU 艮 X ;M 算 J*X;M 耳図 8t1.Edit new line2.Kepiace line Dftlete line 4.Searcli line5-Modif y data6.SausB.ExitPltae seLeet a nunber:f_2.编辑模块3 替换模块Mhiich line do you prefer to replace? CTa quit please input L 吓 C:DOCUME-1 ADMINI-1 桌面TCJE XEX1212Which line do prefer

19、 to* replace? CTo quit please input 11 JThe line to be replaced is: 1234567B9Please type your neu lime: 555556789.4查找模块.Which line do you prefer to* modji f y? To quit please liniput 2 JTlae line to be replaced is987654321Input the search string and the replace 12 i Ths lina to be daletsd is:Press *

20、ny keu to continue * ” *7 保存模块匡 C;DOCUMElADMINI-vl J 面TUFXEiMXlIHiKJfIgSOCXMEKHJtJitJMIXXX 胃 HXXNIUNII X 赳 NKXJMIKXX 宾?CiMXWiMNXX1.Edit new line2.6.SaveB.ExitReplace line 3delete line 4.Search line 5用odify data来:K X Mi K半耳壬 14 岳耳X Jt 胃 KIHt-ME MrSKHMX胃 梵汪水胃:HM:M KN来Please select 帚 number*(61Tlie lines Ttas been saved.Press 凰ny key to continus - &退出模块

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1