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

上传人:韩长文 文档编号:5089713 上传时间:2020-02-01 格式:DOC 页数:13 大小:126.50KB
返回 下载 相关 举报
C语言课程设计-简单的行编辑器 .doc_第1页
第1页 / 共13页
C语言课程设计-简单的行编辑器 .doc_第2页
第2页 / 共13页
C语言课程设计-简单的行编辑器 .doc_第3页
第3页 / 共13页
C语言课程设计-简单的行编辑器 .doc_第4页
第4页 / 共13页
C语言课程设计-简单的行编辑器 .doc_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《C语言课程设计-简单的行编辑器 .doc》由会员分享,可在线阅读,更多相关《C语言课程设计-简单的行编辑器 .doc(13页珍藏版)》请在三一文库上搜索。

1、中国地质大学C语言课程设计 题目编号和名称 16 简单的行编辑器 教师姓名 学生姓名 学生学号 学生班级 所在院系 日期 2010 年 7 月 16 日简单的行编辑器目录1.题目要求2.需求分析.3.总体设计4.详细设计5.总结. 1.【题目要求】设计一个简单的行编辑器 【要求】 (1) 设置一个简单的行编辑器,每行以回车结束 (2) 数据以文件形式存储 (3) 编辑器具有查找、替换、修改数据的功能2.【需求分析】根据题目要求,行编辑器的数据以文本文件存放在文件中,故需要提供文件的输入、输出等操作;在程序运行过程中要实现查找、替换、修改数据的功能应提供查找、替换、修改数据等操作;另外还应提供键

2、盘式选择菜单功能选择。3.【总体设计】根据上面的需求分析,可以将这一系统的设计分为输入、查找、替换修改数据、退出等四个模块(系统功能模块如图1所示)简单的行编辑器输入数据修改替换数据替换 替换图换打印数据查找退出删除 图1 行编辑器功能模块图 4.【详细设计】1. 主函数主函数的设计一般较简单,一般只提供输入、功能处理和输出部分的函数调用其中各功能模块用菜单方式选择。主函数流程图如图1-1 程序如下void main()开始显示一系列功能选项coutttt 简单行编辑.n;Str s1;输入N的值Str s2; Str ss;根据N的值调用各功能模块函数Str ss1;Str ss2;结束in

3、t n;s1.input_str();int choice=-1;while(choice!=0) 图1-1 行编辑器主函数流程/system(cls);coutttt *简单行编辑*n;coutttt *n;coutttt 1: 打印字符串.n; coutttt 2: 插入字符串.n; coutttt 3: 删除字符串.n;coutttt 4: 复制整个字符串.n; coutttt 5: 替换字符串.n; coutttt 6: 查找一个字符串的位置.n;coutttt 7: 继续输入. n;coutttt 0: 退出.n;coutttt *n;coutchoice;switch(choice

4、)case 1: coutttt1: 打印出字符串.n; s1.print_str(s1);break; case 2: coutttt2: 插入字符串.n; s1.insert_str(s1,s2,ss);break; case 3: coutttt3: 删除字符串.n; s1.delete_str(s1,s2);break;case 4: coutttt4: 复制整个字符串.n; s1.copy_str(s1,s2);break; /*case 5: coutttt5: 替换字符串.n; s1.instead_str(s1,s2,ss1,ss2,n);break;*/ case 6: co

5、utttt6: 查找一个字符串的位置.n; s1.find_position(s1,ss,n);break;case 7: coutttt7: 继续输入.n; s1.go_on_input(s1);break; case 0: coutttt0: 退出.n;break;default:coutttterror.n; break;2各功能模块的设计(1)输入、打印模块该程序需要输入一段字符串作为其待处理数据,所以通过键盘输入字符串作为待处理数据,以回车进入主函数界面。选择菜单1打印出该段字符串。其程序如下,程序运行截图如图2-1 2-2void Str:input_str() coutchk,c

6、hk!=# ) k+;chk=#;len=k;/下面的程序为:显示整个字符串。void Str:print_str(Str &s1)coutnttt整个字符串为:;for(int k=0;s1.chk!=#;k+)coutchk;coutnn; 图2-1 图2-2(2)数据修改模块该功能可通过数据插入与数据修改两部分完成对数据的修改。1】插入 完成插入操作时 须先输入要插入的位置,然后输入所要插入的字符串,以#结束,回车完成插入其程序如下,运行截图如图2-3void Str:insert_str(Str &s,Str s2,Str ss) couti;i-;if(is.len) coutttt

7、 插入位置不存在.n;else coutss.chr,ss.chr!=# ) r+; ss.chr=#; ss.len=r; if(ss.lenMaxSize| ( s.len +ss.len )MaxSize) coutttt插入字符串大于最大值无法插入.n; else int p=0; for (int k=0; k=i; k+) s2.chp=s.chk;p+; for(k=0;kss.len;k+) s2.chp=ss.chk; p+; for(k=i+1;ks.len;k+) s2.chp=s.chk; p+; s2.len=p; coutttt 新字符串的长度为s2.len; s2

8、.chp=#; for(int q=0; s2.chq!=#; q+) s.chq=s2.chq; s.chq=#; s.len=s2.len ; cout 插入成功.n; print_str(s); 图2-32】删除 删除操作是作为修改模块的一部分,同插入操作共同完成修改数据的功能。进行删除操作时,输入想从字符串上开始删除的位置,再输入删除的字符串长度。回车即可完成删除。其程序如下,运行截图如图2-4void Str:delete_str(Str &s1,Str s) couti; if(is1.len) coutttt 太大无法删除.n;else coutj; if(i+js1.len)

9、coutttt 删除的太长无法删除.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; coutttt 删除成功.n; s1.print_str(s1); 图2-4(3)查找模块在字符串内寻找你想要的一段字符串,显示找到的位置。选择查找功能的菜单,通过键盘输入所要查找字符串,回

10、车即可找出其所在位置。程序如下,运行截图如图2-5void Str:find_position(Str &s,Str &ss,int &n)coutttt 输入字符串:; ss.input_str(); int y=0; for(int i=0;is.len;i+) for(int j=i,k=0; s.chj=ss.chk; j+,k+) if(k=ss.len-1) coutttt 位置是 i+1 .n; positiony=i+1; y+;if(!y) coutttt 没有找到要字符n; positiony=-1; n=y; /n 图2-5(4)替换模块在字符串内,把某些小段字符串替换为

11、你想要的字符串。先输入你要改变的小段字符串,程序先找到这些字符串,再输入想要替换成的/字符串,程序完成替换功能。其程序如下void Str:instead_str(Str &s1,Str s2,Str ss1,Str ss2,int n)s1.find_position(s1,ss1,n);if(n!=0) coutttt 输入你想替代的字符.n; ss2.input_str(); coutttt 替换成功n; couts1.len=s1.lenn; coutss1.len=ss1.lenn; coutss2.len=ss2.lenn; coutn=nMaxSize) cout太长.n; el

12、se int p=0; positionn=s1.len+1; for(int i=0;iposition0-1;i+) s2.chp=s1.chi; p+; for(int nn=0;nnn;nn+) for(int j=0;j4;j+) s2.chp=ss2.chj; p+; for(int kk=(positionnn-1+ss1.len);kkpositionnn+1-1;kk+) s2.chp=s1.chkk; p+; s2.chp=#; s2.len=p; for(int qq=0; s2.chqq!=#; qq+) s1.chqq=s2.chqq; s1.chqq=#; s1.l

13、en=s2.len ; (5)退出当所要运行操作完成时,可通过主函数选择退出菜单,实现程序的退出。程序运行截图如图2-6 图2-6 5.【总结】通过为期一周的课程设计,我们对C语言这门课程有了更深一步的了解。它是计算机程序设计的重要理论技术基础,在我们专业的学习中占据着十分重要的地位。同时也使我们知道,要学好这门课程,仅学习书本上的知识是不够的,还要有较强的实践能力。因为我们学习知识就是为了实践。而只有多实践,多编写程序,才能更好的理解与掌握书本上的东西。 运用C语言中的算法思想作数据结构,结合C语言基本知识,编写一个简单的行编辑器。通过完成本课题,进一步熟悉C语言的基本知识,同时提升了自己的实践动手能力。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 绩效管理


经营许可证编号:宁ICP备18001539号-1