简单的行编辑器课程设计报告--学弟学妹们不用这么辛苦找了

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

长春工程学院C语言课程设计题目编号和名称简单的行编辑器教师姓名学生姓名学生学号学生班级所在院系日期2011年6月日简单的行编辑器目录1.题目要求…………………………………………2.需求分析………………………………………....3.总体设计…………………………………………4.详细设计…………………………………………5.总结……………………………………………….1.【题目要求】设计一个简单的行编辑器【要求】(1)设置一个简单的行编辑器,每行以回车结束(2)数据以文件形式存储(3)编辑器具有查找、替换、修改数据的功能2.【需求分析】根据题目要求,行编辑器的数据以文本文件存放在文件中,故需要提供文件的输入、输出等操作;在程序运行过程中要实现查找、替换、修改数据的功能应提供查找、替换、修改数据等操作;另外还应提供键盘式选择菜单功能选择。3.【总体设计】根据上面的需求分析,可以将这一系统的设计分为输入、查找、替换修改数据、退出等四个模块(系统功能模块如图1所示)图1行编辑器功能模块图简单的行编辑器输入数据修改替换数据替换替换图换打印数据查找退出删除4.【详细设计】1.主函数主函数的设计一般较简单,一般只提供输入、功能处理和输出部分的函数调用其中各功能模块用菜单方式选择。主函数流程图如图1-1程序如下voidmain(){cout\t\t\t简单行编辑.\n;Strs1;Strs2;Strss;Strss1;Strss2;intn;s1.input_str();intchoice=-1;while(choice!=0)图1-1行编辑器主函数流程{//system(cls);cout\t\t\t*******简单行编辑******\n;cout\t\t\t***********************\n;cout\t\t\t1:打印字符串.\n;cout\t\t\t2:插入字符串.\n;cout\t\t\t3:删除字符串.\n;cout\t\t\t4:复制整个字符串.\n;cout\t\t\t5:替换字符串.\n;cout\t\t\t6:查找一个字符串的位置.\n;cout\t\t\t7:继续输入.\n;cout\t\t\t0:退出.\n;cout\t\t\t************************\n;开始显示一系列功能选项输入N的值根据N的值调用各功能模块函数结束cout\t\t\t请选择:;cinchoice;switch(choice){case1:cout\t\t\t1:打印出字符串.\n;s1.print_str(s1);break;case2:cout\t\t\t2:插入字符串.\n;s1.insert_str(s1,s2,ss);break;case3:cout\t\t\t3:删除字符串.\n;s1.delete_str(s1,s2);break;case4:cout\t\t\t4:复制整个字符串.\n;s1.copy_str(s1,s2);break;/*case5:cout\t\t\t5:替换字符串.\n;s1.instead_str(s1,s2,ss1,ss2,n);break;*/case6:cout\t\t\t6:查找一个字符串的位置.\n;s1.find_position(s1,ss,n);break;case7:cout\t\t\t7:继续输入.\n;s1.go_on_input(s1);break;case0:cout\t\t\t0:退出.\n;break;default:cout\t\t\terror.\n;break;}}}2.各功能模块的设计(1)输入、打印模块该程序需要输入一段字符串作为其待处理数据,所以通过键盘输入字符串作为待处理数据,以回车进入主函数界面。选择菜单1打印出该段字符串。其程序如下,程序运行截图如图2-12-2voidStr::input_str(){cout\t\t\t请输入字符串以#结束:;intk;k=0;ch[k]='x';while(cinch[k],ch[k]!='#')k++;ch[k]='#';len=k;}//下面的程序为:显示整个字符串。voidStr::print_str(Str&s1){cout\n\t\t\t整个字符串为:;for(intk=0;s1.ch[k]!='#';k++)coutch[k];cout\n\n;}图2-1图2-2(2)数据修改模块该功能可通过数据插入与数据修改两部分完成对数据的修改。1】插入完成插入操作时须先输入要插入的位置,然后输入所要插入的字符串,以‘#’结束,回车完成插入其程序如下,运行截图如图2-3voidStr::insert_str(Str&s,Strs2,Strss){cout\t\t\t输入你要插入的位置:;inti;cini;i--;if(is.len)cout\t\t\t插入位置不存在.\n;else{cout\t\t\t输入你要插入的字符串以#结束:;intr;r=0;ss.ch[r]='x';while(cinss.ch[r],ss.ch[r]!='#')r++;ss.ch[r]='#';ss.len=r;if(ss.lenMaxSize||(s.len+ss.len)MaxSize)cout\t\t\t插入字符串大于最大值无法插入.\n;else{intp=0;for(intk=0;k=i;k++){s2.ch[p]=s.ch[k];p++;}for(k=0;kss.len;k++){s2.ch[p]=ss.ch[k];p++;}for(k=i+1;ks.len;k++){s2.ch[p]=s.ch[k];p++;}s2.len=p;cout\t\t\t新字符串的长度为s2.len;s2.ch[p]='#';for(intq=0;s2.ch[q]!='#';q++)s.ch[q]=s2.ch[q];s.ch[q]='#';s.len=s2.len;cout插入成功.\n;print_str(s);}}}图2-32】删除删除操作是作为修改模块的一部分,同插入操作共同完成修改数据的功能。进行删除操作时,输入想从字符串上开始删除的位置,再输入删除的字符串长度。回车即可完成删除。其程序如下,运行截图如图2-4voidStr::delete_str(Str&s1,Strs){cout\t\t\t输入你要开始删除的位置:;inti;cini;if(is1.len)cout\t\t\t太大无法删除.\n;else{cout\t\t\t输入你要删除的长度:;intj;cinj;if(i+js1.len)cout\t\t\t删除的太长无法删除.\n;else{intp=0;for(intk=0;ki;k++){s.ch[p]=s1.ch[k];p++;}for(k=i+j;ks1.len;k++){s.ch[p]=s1.ch[k];p++;}s.len=p+1;s.ch[p+1]='#';for(intq=0;s.ch[q]!='#';q++)s1.ch[q]=s.ch[q];s1.ch[q-1]='#';s1.len=s.len-1;cout\t\t\t删除成功.\n;s1.print_str(s1);}}}图2-4(3)查找模块在字符串内寻找你想要的一段字符串,显示找到的位置。选择查找功能的菜单,通过键盘输入所要查找字符串,回车即可找出其所在位置。程序如下,运行截图如图2-5voidStr::find_position(Str&s,Str&ss,int&n){cout\t\t\t输入字符串:;ss.input_str();inty=0;for(inti=0;is.len;i++){for(intj=i,k=0;s.ch[j]==ss.ch[k];j++,k++){if(k==ss.len-1){cout\t\t\t位置是i+1.\n;position[y]=i+1;y++;}}}if(!y){cout\t\t\t没有找到要字符\n;position[y]=-1;}n=y;//n}图2-5(4)替换模块在字符串内,把某些小段字符串替换为你想要的字符串。先输入你要改变的小段字符串,程序先找到这些字符串,再输入想要替换成的/字符串,程序完成替换功能。其程序如下voidStr::instead_str(Str&s1,Strs2,Strss1,Strss2,intn){s1.find_position(s1,ss1,n);if(n!=0){cout\t\t\t输入你想替代的字符.\n;ss2.input_str();cout\t\t\t替换成功\n;couts1.len=s1.len\n;coutss1.len=ss1.len\n;coutss2.len=ss2.len\n;coutn=n\n\n;if((s1.len-(ss1.len-ss2.len)*n)MaxSize)cout太长.\n;else{intp=0;position[n]=s1.len+1;for(inti=0;iposition[0]-1;i++){s2.ch[p]=s1.ch[i];p++;}for(intnn=0;nnn;nn++){for(intj=0;j4;j++){s2.ch[p]=ss2.ch[j];p++;}for(intkk=(position[nn]-1+ss1.len);kkposition[nn+1]-1;kk++){s2.ch[p]=s1.ch[kk];p++;}}s2.ch[p]='#';s2.len=p;for(intqq=0;s2.ch[qq]!='#';qq++)s1.ch[qq]=s2.ch[qq];s1.ch[qq]='#';s1.len=s2.len;}}}(5)退出当所要运行操作完成时,可通过主函数选择退出菜单,实现程序的退出。程序运行截图如图2-6图2-65.【总结】通过为期一周的课程设计,我们对《C语言》这门课程有了更深一步的了解。它是计算机程序设计的重要理论技术基础,在我们专业的学习中占据着十分重要的地位。同时也使我们知道,要学好这门课程,仅学习书本上的知识是不够的,还要有较强的实践能力。因为我们学习知识就是为了实践。而只有多实践,多编写程序,才能更好的理解与掌握书本上的东西。运用《C语言》中的算法思想作数据结构,结合C语言基本知识,编写一个简单的行编辑器。通过完成本课题,进一步熟悉C语言的基本知识,同时提升了自己的实践动手能力。

1 / 13
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功