欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

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

    • 资源ID:2384822       资源大小:104KB        全文页数:13页
    • 资源格式: DOC        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

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

    中国地质大学C语言课程设计 题目编号和名称 16 简单的行编辑器 教师姓名 学生姓名 学生学号 学生班级 所在院系 日期 2010 年 7 月 16 日简单的行编辑器目录1.题目要求2.需求分析.3.总体设计4.详细设计5.总结. 1.【题目要求】设计一个简单的行编辑器 【要求】 (1) 设置一个简单的行编辑器,每行以回车结束 (2) 数据以文件形式存储 (3) 编辑器具有查找、替换、修改数据的功能2.【需求分析】根据题目要求,行编辑器的数据以文本文件存放在文件中,故需要提供文件的输入、输出等操作;在程序运行过程中要实现查找、替换、修改数据的功能应提供查找、替换、修改数据等操作;另外还应提供键盘式选择菜单功能选择。3.【总体设计】根据上面的需求分析,可以将这一系统的设计分为输入、查找、替换修改数据、退出等四个模块(系统功能模块如图1所示)简单的行编辑器输入数据修改替换数据替换 替换图换打印数据查找退出删除 图1 行编辑器功能模块图 4.【详细设计】1. 主函数主函数的设计一般较简单,一般只提供输入、功能处理和输出部分的函数调用其中各功能模块用菜单方式选择。主函数流程图如图1-1 程序如下void main()开始显示一系列功能选项cout<<"ttt 简单行编辑.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");cout<<"ttt *简单行编辑*n"cout<<"ttt *n"cout<<"ttt 1: 打印字符串.n" cout<<"ttt 2: 插入字符串.n" cout<<"ttt 3: 删除字符串.n"cout<<"ttt 4: 复制整个字符串.n" cout<<"ttt 5: 替换字符串.n" cout<<"ttt 6: 查找一个字符串的位置.n"cout<<"ttt 7: 继续输入. n"cout<<"ttt 0: 退出.n"cout<<"ttt *n"cout<<"ttt 请选择 : "cin>>choice;switch(choice)case 1: cout<<"ttt1: 打印出字符串.n" s1.print_str(s1);break; case 2: cout<<"ttt2: 插入字符串.n" s1.insert_str(s1,s2,ss);break; case 3: cout<<"ttt3: 删除字符串.n" s1.delete_str(s1,s2);break;case 4: cout<<"ttt4: 复制整个字符串.n" s1.copy_str(s1,s2);break; /*case 5: cout<<"ttt5: 替换字符串.n" s1.instead_str(s1,s2,ss1,ss2,n);break;*/ case 6: cout<<"ttt6: 查找一个字符串的位置.n" s1.find_position(s1,ss,n);break;case 7: cout<<"ttt7: 继续输入.n" s1.go_on_input(s1);break; case 0: cout<<"ttt0: 退出.n"break;default:cout<<"ttterror.n" break;2各功能模块的设计(1)输入、打印模块该程序需要输入一段字符串作为其待处理数据,所以通过键盘输入字符串作为待处理数据,以回车进入主函数界面。选择菜单1打印出该段字符串。其程序如下,程序运行截图如图2-1 2-2void Str:input_str() cout<<"ttt 请输入字符串以#结束:" int k;k=0; chk='x' while( cin>>chk,chk!='#' ) k+;chk='#'len=k;/下面的程序为:显示整个字符串。void Str:print_str(Str &s1)cout<<"nttt整个字符串为:"for(int k=0;s1.chk!='#'k+)cout<<chk;cout<<"nn" 图2-1 图2-2(2)数据修改模块该功能可通过数据插入与数据修改两部分完成对数据的修改。1】插入 完成插入操作时 须先输入要插入的位置,然后输入所要插入的字符串,以#结束,回车完成插入其程序如下,运行截图如图2-3void Str:insert_str(Str &s,Str s2,Str ss) cout<<"ttt输入你要插入的位置:"int i;cin>>i;i-;if(i>s.len) cout<<"ttt 插入位置不存在.n"else cout<<"ttt 输入你要插入的字符串以#结束:" int r; r=0; ss.chr='x'while( cin>>ss.chr,ss.chr!='#' ) r+; ss.chr='#' ss.len=r; if(ss.len>MaxSize| ( s.len +ss.len )>MaxSize) cout<<"ttt插入字符串大于最大值无法插入.n" else int p=0; for (int k=0; k<=i; k+) s2.chp=s.chk;p+; for(k=0;k<ss.len;k+) s2.chp=ss.chk; p+; for(k=i+1;k<s.len;k+) s2.chp=s.chk; p+; s2.len=p; cout<<"ttt 新字符串的长度为"<<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) cout<<"ttt 输入你要开始删除的位置:"int i;cin>>i; if(i>s1.len) cout<<"ttt 太大无法删除.n"else cout<<"ttt 输入你要删除的长度:" int j; cin>>j; if(i+j>s1.len) cout<<"ttt 删除的太长无法删除.n" else int p=0; for (int k=0;k<i;k+) s.chp=s1.chk; p+; for (k=i+j;k<s1.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-5void Str:find_position(Str &s,Str &ss,int &n)cout<<"ttt 输入字符串:" ss.input_str(); int y=0; for(int i=0;i<s.len;i+) for(int j=i,k=0; s.chj=ss.chk; j+,k+) if(k=ss.len-1) cout<<"ttt 位置是 "<<i+1<< " .n" positiony=i+1; y+;if(!y) cout<<"ttt 没有找到要字符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) cout<<"ttt 输入你想替代的字符.n" ss2.input_str(); cout<<"ttt 替换成功"<<"n" cout<<"s1.len="<<s1.len<<"n" cout<<"ss1.len="<<ss1.len<<"n" cout<<"ss2.len="<<ss2.len<<"n" cout<<"n="<<n<<"nn" if( (s1.len-(ss1.len-ss2.len)*n)>MaxSize) cout<<"太长.n" else int p=0; positionn=s1.len+1; for(int i=0;i<position0-1;i+) s2.chp=s1.chi; p+; for(int nn=0;nn<n;nn+) for(int j=0;j<4;j+) s2.chp=ss2.chj; p+; for(int kk=(positionnn-1+ss1.len);kk<positionnn+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语言这门课程有了更深一步的了解。它是计算机程序设计的重要理论技术基础,在我们专业的学习中占据着十分重要的地位。同时也使我们知道,要学好这门课程,仅学习书本上的知识是不够的,还要有较强的实践能力。因为我们学习知识就是为了实践。而只有多实践,多编写程序,才能更好的理解与掌握书本上的东西。 运用C语言中的算法思想作数据结构,结合C语言基本知识,编写一个简单的行编辑器。通过完成本课题,进一步熟悉C语言的基本知识,同时提升了自己的实践动手能力。

    注意事项

    本文(C语言课程设计简单的行编辑器 .doc)为本站会员(文库蛋蛋多)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开