




已阅读5页,还剩8页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据结构课程设计报告题目:文本编辑和串查找统计学生姓名: XX 学 号: XXX 班 级: XXX 指导教师: XXX 20XX年 X 月 X 日121 需求分析: 问题重述:文本编辑和串查找统计任务:输入一页文字,程序可以统计出文字、数字、空格和其它标点符号的个数。静态存储一页文章,每行最多不超过80个字符,共N行;功能要求:1)、分别统计出其中英文字母数、空格数、标点符号及整篇文章总字数;2)、统计某一字符串在文章中出现的次数,并输出该次数;3)、删除某一子串,并将后面的字符前移。要求用菜单选择操作,分别用几个子函数实现相应的功能;输入数据的形式和范围:可以输入大写、小写的英文字母、任何数字及标点符号。输出形式:(1)分行输出用户输入的各行字符;(2)分5行输出全部字母数、数字个数、空格个数、“标点符号个数”文章总字数(3)输出删除某一字符串后的文章; 需求分析由于人工清点一篇文章的字母个数、数字个数、标点个数、文章字数、空格字数,需要花费大量的时间,而且容易出现误差。所以我们的任务就是创建一个文本编辑器的程序,以此来代替繁琐的人工操作,提高计算的效率。该程序需要实现的功能有: .输入功能:可以实现文本的输入。可以实现所有数字、大小写字母、任何标点符号的输入编辑。.输出功能:可以实现文本的输出。 可以实现文本有关字母、数字、标点,文章的输出。.统计功能:可以实现文本的统计。 可以实现对文本有关数字、字母,标点符号的总数统计,以及对文本总字数的统计。 可以实现对文本内某数字、字母、单词等(即字符串)在文章中出现的次数的统计。.删除功能:可以实现文本的删除。 可以实现对文本内某数字、字母、单词等(即字符串)的删除功能,并将后面的字符前移。2 总体设计: 程序的框架:文本编辑器输入功能删除功能统计功能输出功能删除后输出统计后输出输入后统计 程序说明: 该文本编辑器的所有功能都是基于输出功能而存在的。输入后,输出验证输入的正确性;统计后,输出需要统计的事件; 删除后,输出删除某字符串的文章。3 详细设计:首先,定义一个二维数组用来存储。(可以另外的添加一个文件,如果要永久保存的话。)输入功能: 定义一个输入函数,定义一个字符串,来实现字符的输入。并将输入的字符保存到设置的二维数组里。最后用一个while函数,实现对文章是否继续输入的控制,这里设置是否识别到“#”字符来判断,即当识别到“#”字符的时候,结束文章的输入,并弹出提示:“是否将输入的文章保存到文件中”输出功能: 定义一个输出函数,将二维数组里面的数据输出。统计功能: 定义五个整型变量来统计全部字母数、数字个数、空格个数、“标点符号个数”文章总字数。遍历二维数组,实现各个串的统计。 定义一个整型变量来统计一个串出现的次数。遍历二维数组,实现对该串出现的次数。删除功能: 定义一个删除函数,定义所需变量,遍历二维数组,发现匹配的串,删除,并将后面的字符串前移。若不匹配,继续查找,循环,直至找到需要删除的字符串,并将其删除,同时将后面字符串前移。接着,定义一个菜单函数,用一个whileif函数设置好每个功能的菜单列表,按下什么键实现什么功能。即用菜单函数调用所写的各个子函数,以此来实现对每个功能的实现。最后,在主函数里定义所需的变量,然后调用菜单函数。 4 实现部分:源代码:#include#include#define N 100 /最大行数using namespace std; char strN80; /存储 int lN; /每一行的实际字符个数int n; /n 是史记的行数char a80; /目标字符串void save()FILE *fp=fopen(income.txt,w);for(int i=0;in;i+) fputs(stri,fp); printf(保存完毕!); void shuru()char c=0; int i=0,j=0;n=0; while(c!=#)scanf(%c,&c);for(i=0;in;i+)for(j=0;jli;j+)strij=c; li+; if (c=n) n+;printf(输入完毕!);c=0;printf(是否将输入的文章保存到文本中(Y|y);getchar();scanf(%c,&c);if(c=Y|c=y)save();void input() /输入要统计的字符串int k;char c; k=0;while(1) scanf(%c,&c); /接受字符 换行中断 if(c=n)break; ak=c; /保存 k+; ak=0; / 0结尾void print() /输出用户输入的各行字符int i,j;for(i=0;i=n;i+) for(j=0;jli;j+) printf(%c,strij);printf(n);void tongji() /统计int i,j;int zm,kg,sz,bd,sum; /分别记录字母个数,空格个数,数字个数,标点数,总数zm=kg=sz=sum=0;bd=sum-zm-kg-sz;for(i=0;i=n;i+) for(j=0;jli;j+) if(strij!=n) /遍历 sum+; if(strij=a)|(strij=A) zm+; if(strij=0) sz+; if(strij= ) kg+; printf(n全部字母数为:%dn,zm);printf(数字个数为:%dn,sz);printf(空格个数为:%dn,kg);printf(标点个数为:%dn,bd);printf(文章总字数为:%dnn,sum);void chazhao() /统计某一字符串在文章中出现的次数int i,j,k,l1,y; /l1是目标字符穿长度 x是统计出现的次数 int x=0;l1=strlen(a);for(i=0;i=n;i+) /遍历 for(j=0;jli;j+) y=1; /标志为 if(j+l1=li)break; /超过最大长度 中断 for(k=0;kl1;k+) if(ak!=strij+k)y=0;break; if(y)x+; for(i=0;il1;i+) printf(%c,ai);printf( 在文中出现次数为:%dnn,x);void del() /删除某一字符串并输出int i,j,k,l1,y;bool bN81; /给每一个字符一个标志位l1=strlen(a); /目标长度memset(b,0,sizeof(b); /内存初始化 为0 b是起位置 b 的大小for(i=0;i=n;i+) for(j=0;jli;j+) y=1; if(j+l1=li)break; for(k=0;kl1;k+) if(ak!=strij+k&!bij+k)/如果不匹配,将y标记为0,并重新查找 y=0; break; if(y) /匹配成功 标志为1 for(k=0;kl1;k+) bij+k=1; /将bij+k标记为1,说明strij+k应删去 printf(n删除该字符串后文章:n); for(i=0;i=n;i+) for(j=0;j80)printf(errornn);break;menu();return 0;5 程序测试:主界面:输入功能:输出:统计文章字数(字母、数字等):统计功能(出现次数):删除功能:删除后文章为:结束:6 个人总结:通过一周的的努力,我的课程设计终于完成了,这意味着这一阶段艰苦的热烈的付出即将告一段落。在整个课程设计中,我在学习上和思想上都受益非浅,这除了自身的努力外,与指导的老师、同学和朋友的关心、支持和鼓励是分不开的。 在课程设计的编写过程中, 指导老师倾注了大量的心血
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 【正版授权】 IEC 60068-3-14:2025 EN Environmental testing – Part 3-14: Supporting documentation and guidance – Developing a climatic sequential test
- 校园师生消防知识培训课件
- 绝食减肥测试题及答案
- 甲乳外科考试题及答案
- 自律作息测试题及答案
- 桂林社工面试题及答案
- 胰腺炎考试试题及答案
- 锁骨护理试题及答案
- 茶艺绿茶考试题及答案
- 危重护理考试题及答案
- 2025年云南省高校大学《辅导员》招聘考试题库及答案
- 消费品市场2025年消费者对绿色包装认知及需求调研可行性研究报告
- 台球厅消防知识培训课件
- 充电桩运维服务协议
- 2025至2030中国防砸安全鞋行业运营态势与投资前景调查研究报告
- 2025年医疗器械仓库管理培训试题及答案
- 2024年湖南省古丈县事业单位公开招聘工作人员考试题含答案
- 卵巢性索间质肿瘤课件
- 2025甘肃行政执法资格考试模拟卷及答案(题型)
- 2025-2026年秋季第一学期学校德育工作安排表:德润心田、智启未来、行塑栋梁
- 成人零基础英语教学课件
评论
0/150
提交评论