C语言课程设计-简单的行编辑器.doc_第1页
C语言课程设计-简单的行编辑器.doc_第2页
C语言课程设计-简单的行编辑器.doc_第3页
C语言课程设计-简单的行编辑器.doc_第4页
C语言课程设计-简单的行编辑器.doc_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

中国地质大学c语言课程设计 题目编号和名称 16 简单的行编辑器 教师姓名 学生姓名 学生学号 学生班级 所在院系 日期 2010 年 7 月 16 日简单的行编辑器目录1.题目要求2.需求分析.3.总体设计4.详细设计5.总结. 1.【题目要求】设计一个简单的行编辑器 【要求】 (1) 设置一个简单的行编辑器,每行以回车结束 (2) 数据以文件形式存储 (3) 编辑器具有查找、替换、修改数据的功能2.【需求分析】根据题目要求,行编辑器的数据以文本文件存放在文件中,故需要提供文件的输入、输出等操作;在程序运行过程中要实现查找、替换、修改数据的功能应提供查找、替换、修改数据等操作;另外还应提供键盘式选择菜单功能选择。3.【总体设计】根据上面的需求分析,可以将这一系统的设计分为输入、查找、替换修改数据、退出等四个模块(系统功能模块如图1所示)简单的行编辑器输入数据修改替换数据替换 替换图换打印数据查找退出删除 图1 行编辑器功能模块图 4.【详细设计】1. 主函数主函数的设计一般较简单,一般只提供输入、功能处理和输出部分的函数调用其中各功能模块用菜单方式选择。主函数流程图如图1-1 程序如下void main()开始显示一系列功能选项coutttt 简单行编辑.n;str s1;输入n的值str s2; str ss;根据n的值调用各功能模块函数str ss1;str ss2;结束int 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)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: coutttt6: 查找一个字符串的位置.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,chk!=# ) 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 插入位置不存在.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.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) 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)查找模块在字符串内寻找你想要的一段字符串,显示找到的位置。选择查找功能的菜单,通过键盘输入所要查找字符串,回车即可找出其所在位置。程序如下,运行截图如图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)替换模块在字符串内,把某些小段字符串替换为你想要的字符串。先输入你要改变的小段字符串,程序先找到这些字符串,再输入想要替换成的/字符串,程序完成替换功能。其程序如下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; else 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.len=s2.len ; (5)退出当所要运行操作完成时,可通过主函数选择退出菜单,实现程序的退出。程序运行截图如图2-6 图2-6 5.【总结】通过为期一周的课程设计,我们对c语言这门课程有了更深一步的了解。它是计算机程序设

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论