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

  1. 1、本文档共19页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
语言程序设计报告 姓名: 班级: 学号: 指导教师: 课题:简单的行编辑器 简单的行编辑器 题目要求 设置一个简单的行编辑器,每行以回车结束。 数据以文件形式存储。 编辑器具有查找,替代,修改数据的功能。 需求分析 根据题目要求,数据以文件的形式存储,所以应提供文件的输入,输出等操作;还需要文件具有查找,替换,修改数据的功能。 总体设计 根据上面的需求分析,可以将这个系统的设计分为如下七大模块: 编辑,查找,修改,,删除,替换,保存,退出。 详细设计 主函数 为了各模块的独立性,主函数一般设计得比较简单,本系统主要用主函数打开上次保存的数据和进入主菜单函数 流程图 程序 /*********************************主函数**************************************/ main() {FILE *pfile; pfile=fopen(Linedit.txt,a+); readfile(lines,pfile); fclose(pfile); menu(lines); } int readfile(char (*lines)[MAXC],FILE *pfile) { int i=0; while(!feof(pfile)){ fgets(lines[i],MAXC,pfile); /*if(!strstr(lines[i],\n)) return 1;*/ i++; } return 0; } 主菜单函数 流程图 程序 void menu(char (*lines)[MAXC]){ int selection; do{ system(cls); puts(\t\t***********************MUNU******************\n\n); puts(\t\t1.Edit new line); puts(\t\t2.Replace line); puts(\t\t3.Delete line); puts(\t\t4.Search line); puts(\t\t5.Modify data); puts(\t\t6.Save); puts(\t\t0.Exit); puts(\n\n\t\t********************************************\n); printf(Please select a number:[ ]\b\b); do{ scanf(%d,selection); if(selection0||selection6) { printf(Invalid selection!Please try again ); printf(and select a number:[]\b\b\n); } 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); } 各功能模块设计 编辑模块 流程图 程序 /*****************************编辑*************************************/ void edit(char (*lines)[MAXC]) { int i,index; /*system(cls);*/ clrscr(); for(i=0,index=0;iMAXL;i++) if(lines[i][0]!=0) { index++; printf(%d: %s,index,lines[i]); } printf(\n\nPlease type a new line:\n); fflush(stdin); for(i=0;iMAXL;i++) { if(lines[i][0]==\0) { /*每行第一个字符作为标志位 空行可写入*/ fgets(lines[i],M

文档评论(0)

整理王 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档