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

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/10242156.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主函数为了各模块的独立性,主函数一般设计得比较简单,本系统主要用主函数打开上次保存的数据和进入主菜单函数流程图程序/*主函数*/main() FILE *pfile; pfile=fopen(L

2、inedit.txt,a+); readfile(lines,pfile); fclose(pfile); menu(lines);int readfile(char (*lines)MAXC,FILE *pfile) int i=0;while(!feof(pfile)fgets(linesi,MAXC,pfile); /*if(!strstr(linesi,n) return 1;*/i+;return 0;2主菜单函数流程图程序void menu(char (*lines)MAXC)int selection;dosystem(cls);puts(tt*MUNU*nn);puts(tt1

3、.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 select a number:bbn);els

4、e 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)编辑模块流程图程序/*编辑*/void edit(char (*lines)MAXC) int i,

5、index; /*system(cls);*/ clrscr(); for(i=0,index=0;iMAXL;i+) if(linesi0!=0) index+; printf(%d: %s,index,linesi); printf(nnPlease type a new line:n); fflush(stdin); for(i=0;iMAXL;i+) if(linesi0=0) /*每行第一个字符作为标志位 空行可写入*/ fgets(linesi,MAXC,stdin); return; else continue; (2)替换模块流程图程序/*替换*/void replace(ch

6、ar (*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) return; else for(j=0,k=0;jMAXL;j+) if(linesj

7、0!=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 (*lines)MAXC) int i,index; int ind

8、line; 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 prefer to delete?(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) pr

9、intf(The line to be deleted is: n%sn,linesj); memset(linesj,0,MAXC); system(pause); break; while(true);(4)查找模块流程图程序/*查找*/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) index+; printf(%d: %s,index,linesi); print

10、f(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)修改模块流程图删除模块的流程图也是在查找模块的基础上稍加改动,在此不再赘述其流程图可简单写为

11、程序/*修改*/*在sSrc中用sReplaceStr替换sMatchStr */int modifystr(char *sSrc,char *sMatchStr,char *sReplaceStr) int StringLen; char caNewStringMAXC; char *FindPos = strstr(sSrc,sMatchStr); if(!FindPos)|(!sMatchStr) return -1; while(FindPos) memset(caNewString,0,sizeof(caNewString); StringLen=FindPos-sSrc; strn

12、cpy(caNewString,sSrc,StringLen); strcat(caNewString,sReplaceStr); strcat(caNewString,FindPos+strlen(sMatchStr); strcpy(sSrc,caNewString); FindPos = strstr(sSrc,sMatchStr); return 0;void modify(char (*lines)MAXC) int i,indline; char bufMAXC; int k; int j; char* token=0; char searchMAXC,replaceMAXC; d

13、o /*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 i

14、s: n%s,linesj); printf(nnInput the search string and the replace );printf(To quit please input q):); memset(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, ); str

15、cpy(search,token); token =strtok(NULL, ); strcpy(replace,token); modifystr(linesj,search,replace); break; while(true); (6)保存模块流程图程序void savetofile(char (*lines)MAXC) FILE *pfile; int i; pfile=fopen(Linedit.txt,w+); for(i=0;iMAXL;i+) if(linesi0!=0) fputs(linesi,pfile); fclose(pfile); printf(nThe lines has been saved.n); system(pause);(7)退出模块流程图程序void myexit(char (*lines)MAXC) char c; printf(Save the lines to the file?(y/n); fflush(stdin); c=getchar(); if(c=n) exit(1); savetofile(lines); exit(1);五上机操作1主菜单函数2编辑模块3替换模块4查找模块5修改模块6删除模块7保存模块8退出模块

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

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