行编辑器——C语言

上传人:cn****1 文档编号:563911033 上传时间:2023-08-06 格式:DOCX 页数:20 大小:302.41KB
返回 下载 相关 举报
行编辑器——C语言_第1页
第1页 / 共20页
行编辑器——C语言_第2页
第2页 / 共20页
行编辑器——C语言_第3页
第3页 / 共20页
行编辑器——C语言_第4页
第4页 / 共20页
行编辑器——C语言_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《行编辑器——C语言》由会员分享,可在线阅读,更多相关《行编辑器——C语言(20页珍藏版)》请在金锄头文库上搜索。

1、简单的行编辑器1.1题目要求1设置一个简单的行编辑器,每行以回车完毕。2数据以文件形式存储。3编辑器具有查找,替代,修改数据的功能。 提示把一行字符调入数组处理。1.2需求分析根据题目要求,数据以文件的形式存储,所以应提供文件的输入,输出等操作。 还需要具有查找,替换,修改数据的功能。1.3总体设计根据上面的需求分析,可以将这个系统的设计分为如下七大模块: 编辑,查找,修改,删除,替换,保存,退出。图1.3系统功能模块图1.4详细设计1.4.1主函数为了各模块的独立性,主函数一般设计得比拟简单,本系统主要用主函数翻开上次 保存的数据和进入主菜单函数流程图:翻开上次保存文件进入主菜单函数程序:/

2、*主函数* *mai n() FILE *pfile;p(Li nedit.txt,a+); read);fclose(pfile);menu (li nes);in t read (*l in es)MAXC,FILE *pfile) int i=0;while(!feof(pfile) fgets(li nesi,MAXC,pfile);/*if(!strstr(li nesi,n) return 1;*/ i+;return 0;1 主菜单函数流程图:程序void menu(char (*lines)MAXC) int selection;do system(cls);puts(tt*M

3、UNU*nn);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);puts(nntt*n);printf(Please select a number: bb); doscanf(%d,&selection); if(selection6) printf(Invalid selection!Please try again ); printf(and

4、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:saveto);break;case 0:myexit(lines); while(true);2各功能模块设计1) 编辑模块 流程图:ixt i=0泌 炖 冏弭 cLracif);存MAXL

5、7 讪农HOT/iiidei-H-;piydKXd.: siiudeiTsH);ptin珥WtiPlease tyje a, iielinc ;ri) ”fflus 岭 tdi讥0;靱就 kne 取conintf;i+;程序/*编辑 *void edit(char (*l in es)MAXC)int i,i ndex;/*system(cls);*/clrscr();for(i=0,i ndex=0;iMAXL;i+) if(li nesi0!=0)in dex+;printf(%d: %s,index,linesi);prin tf(nnPlease type a new lin e:n)

6、; fflush(stdi n);for(i=0;iMAXL;i+)/*每行第一个字符作为标志位 if(li nesiO=O)行可写入*/fgets(li nesi,MAXC,stdi n); return;elsecon ti nue;2)替换模块 流程图int it mtindhiwecliscrO, IO;jrinlfr片d:捲:卄口血亚1);i+Kidded rtodline);j=:MhXL:Ires OlU 1=0;k+:I-_k=indhi /爾出所遼足行pmtH Pleue韓in堆悼 1 血:lti)meins elines|j ?0 ,MAXC);fliEKstdii),唇域

7、lines 血 TvIAXC? wtdi 事break;i卄程序/*替换 */void replace(char (*lines)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,&indline);if(indline=0)

8、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)删除模块流程图:删除即在查找到某行的根底上再删掉,其具体流程图可参照查找的流程图程序/*/void mydelete(char (*

9、li nes)MAXC) int i,i ndex;int in dli ne;int j,k;do/*system(cls);*/clrscr();for(i=0,i ndex=O;iMAXL;i+)if(li nesi0!=0)in dex+;printf(%d: %s,index,linesi);printf(nnWhich line do you prefer to delete?(To quit please input 0) bb);scan f(%d,&in dli ne);if(i ndli ne=0)return;elsefor(j=0,k=0;jMAXL;j+)if(li

10、nesj0!=0) k+;if(k=i ndli ne)prin tf(The line to be deleted is: n%sn,li nesj); memset(li nesj,0,MAXC);system(pause);break;while(true);(4)查找模块流程图:hi毗也0”/indfifi-H-,程序/*查找 */void search(char (*lines)MAXC) int i,index;int indline;int j,k;do/*system(cls);*/clrscr();for(i=0,index=0;iMAXL;i+)if(linesi0!=0)

11、index+;printf(%d: %s,index,linesi);printf(nnWhich line do you want to search?(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(The line to be searched is: n%sn,linesj); system(pause);break; while(true);( 5) 修改模块流程图:删除模块的流程图也是在查找模块的根底上稍加改动,在此不再赘述 其流程图可简单写为查找行修改行程序/*修尖改 */* 在 sSrc 中用 sReplaceStr替换 sMatchStr */int modifystr(char *sSrc,char *sMatchStr,char *sReplaceStr) int Stri ngLe n;char caNewStri ngMAXC;char *Fi ndPos = strstr(sSrc,sMatchStr);if(!Fi ndPos)|(!sMatchStr)return -1;w

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号