1、 C 语言课程设计语言课程设计 题目编号和名称 简单的行编辑器 教师姓名 学生姓名 学生学号 学生班级 所在院系 日期 2011 年 6 月 日 1.【 题 目 要 求 】 设计一个简单的行编辑器 【要求】 (1) 设置一个简单的行编辑器,每行以回车结束 (2) 数据以文件形式存储 (3) 编辑器具有查找、替换、修改数据的功能 2.【需求分析】 根据题目要求,行编辑器的数据以文本文件存放在文件中,故需要提供文件的输入、输 出等操作;在程序运行过程中要实现查找、替换、修改数据的功能应提供查找、替换、修改 数据等操作;另外还应提供键盘式选择菜单功能选择。 3.【总体设计】 根据上面的需求分析,可以
2、将这一系统的设计分为输入、查找、替换修改数据、退出等 四个模块(系统功能模块如图 1 所示) 图 1 行编辑器功能模块图 4.【详细设计】 1. 主函数 主函数的设计一般较简单,一般只提供输入、功能处理和输出部分的函数调用其中各 功能模块用菜单方式选择。主函数流程图如图 1-1 程序如下 void main() coutchoice; switch(choice) case 1: coutchk,chk!=# ) k+; chk=#; len=k; /下面的程序为:显示整个字符串。 void Str:print_str(Str for(int k=0;s1.chk!=#;k+) couts.l
3、en) coutss.chr,ss.chr!=# ) r+; ss.chr=#; ss.len=r; if(ss.lenMaxSize| ( s.len +ss.len )MaxSize) couts1.len) coutj; if(i+js1.len) cout“ttt 删除的太长无法删除.n“; else int p=0; for (int k=0;ki;k+) s.chp=s1.chk; p+; for (k=i+j;ks1.len;k+) s.chp=s1.chk; p+; s.len=p+1; s.chp+1=#; for(int q=0; s.chq!=#; q+) s1.chq=s.chq; s1.chq-1=#; s1.len=s.len-1; cout“ttt 删除成功.n“; s1.print_str(s1); 图 2-4 (3)查找模块 在字符串内寻找你想要的一段字符串,显示找到的位置。选择查找功能的菜单,通过键盘输 入所要查找字符串,回车即可找出其所在位置。程序如下,运行截图如图 2-5 void Str:find_position(Str ss.input_str(); int y=0; for(int i=0;is.len;i+) for(int j=i,k=0; s.chj