文档详情

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

发布:2017-02-05约7.89千字共19页下载文档
文本预览下载声明
语言程序设计报告 姓名: 班级: 学号: 指导教师: 课题:简单的行编辑器 简单的行编辑器 题目要求 设置一个简单的行编辑器,每行以回车结束。 数据以文件形式存储。 编辑器具有查找,替代,修改数据的功能。 需求分析 根据题目要求,数据以文件的形式存储,所以应提供文件的输入,输出等操作;还需要文件具有查找,替换,修改数据的功能。 总体设计 根据上面的需求分析,可以将这个系统的设计分为如下七大模块: 编辑,查找,修改,,删除,替换,保存,退出。 详细设计 主函数 为了各模块的独立性,主函数一般设计得比较简单,本系统主要用主函数打开上次保存的数据和进入主菜单函数 流程图 程序 /*********************************主函数**************************************/ 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
显示全部
相似文档