版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、目 录一、设计目的5二、设计内容5三、设计要求5四、主要数据结构与算法61、主要数据结构61.1主要数据结构61.2 程序流程图62、主要算法设计72.1 输入文本72.2 输出文本82.3输出删除某一字符串后的文章82.4统计某个字符串在文章中出现的次数9五、调试与分析101、菜单主界面102、输入函数103、输出文本114、统计文字、数字、空格的个数115、统计某个字符串在文章中出现的次数116、输出删除某一字符串后的文章12六、总结13七、参考文献13八、程序清单14课程设计(大作业)报告一、设计目的熟练使用 C语言实现文章编辑。二、设计内容静态存储一页文章,统计出文字、数字、空格的个数
2、。三、设计要求1、分别统计出其中英文字母数和空格数及整篇文章总字数;2、统计某一字符串在文章中出现的次数,并输出该次数;3、删除某一子串,并将后面的字符前移。4、实现功能:分行输出用户输入的各行字符;分4行输出“全部字母数”、“数字个数”、“空格个数”、“文章总字数”输出删除某一字符串后的文章。四、主要数据结构与算法1、主要数据结构1.1主要数据结构函 数 名实 现 功 能typedef struct DataType aMAXSIZE; int length;Article; 定义串的静态存储分配结构void input(Article *s)输入文本void ptint(Article *
3、s) 输出文本void letter_number(Article *s)输出全部字母个数void space_number(Article *s) 输出全部空格个数void digit_number(Article *s) 输出全部数字总数void size_number(Article *s) 输出文章总字数void dele_print(Article *p,Article *s)输出删除某一字符串后的文章void Counter(Article *p,Article *s) 统计某个字符串在文章中出现的次数 表1 主要数据结构1.2 程序流程图 图1 程序流程图2、主要算法设计2.1
4、输入文本输入一段文本,当输入的文本是回车符(“n”)时,将输入的文本最后一个字符赋成字符串的结束符0,然后修改输入文本的长度。void input(Article *s) /*输入文本*/int i;s-length=0;for(i=0;iai);s-length+;if(s-ai=n) s-ai=0;s-length-; break;2.2 输出文本将输入的文本,如果输入文本的长度为0,则以错误提示出现在屏幕上,若长度不为0,则以每行显示80个字符的格式输出在屏幕上。void ptint(Article *s) /*输出文本*/int i,j=0;if(!s-length) printf(n
5、错误!);elsefor(i=0;ilength;i+)printf(%c,s-ai);j+;if(j%80=0) printf(n);2.3输出删除某一字符串后的文章 此函数用到了串的简单模式匹配,即:设置一个标记succ,当正文串s与模式串匹配成功时,标记succ=1;当正文串s与模式串匹配不成功时,succ=0。最后根据标记的值来判断时候找到匹配的子串,最终实现删除操作。void dele_print(Article *p,Article *s) /*输出删除某一字符串后的文章*/int i,j,succ,flag=1;i=0;while(ilength-p-length+1)j=0;s
6、ucc=1; /*用j扫描模式p*/while(jlength-1) & succ)if(p-aj=s-ai+j) j+;else succ=0;if(j=p-length) flag=0;if(!succ)printf(%c,s-ai);else i=i+p-length-1;i+;printf(%sn,s-a+i);if(flag=1)printf(但找不到要删除的字符串!);2.4统计某个字符串在文章中出现的次数此函数也用到了串的简单模式匹配,即:设置一个标记succ,当正文串s与模式串匹配成功时,标记succ=1;当正文串s与模式串匹配不成功时,succ=0。最后根据标记的值来判断时候
7、找到匹配的子串。设置一个计数标记k,当匹配成功时,将匹配的结果记录保存下来后,最后输出统计特殊字符串出现的次数。void Counter(Article *p,Article *s) /*统计某个字符串在文章中出现的次数*/int i,j,succ,k=0;i=0;while(ilength-p-length+1)j=0;succ=1; while(jlength-1) & succ)if(p-aj=s-ai+j) j+;else succ=0;if(succ) k+;i=i+p-length-1;i+;if (k0)printf(n该字符串在文章中出现的次数为:%d次n,k);五、调试与分析
8、1、菜单主界面 图2 主界面2、输入函数由于程序的功能的不足,虽然可以输入中文,但是不能够统计中文字符的个数。 图3 输入文本3、输出文本在输入一段文本之后的显示输出文本如下图所示,每行最多输入80个字符。 图4 输出文本 4、统计文字、数字、空格的个数 图5 统计文字、数字、空格的个数5、统计某个字符串在文章中出现的次数图6 统计某个字符串在文章中出现的次数6、输出删除某一字符串后的文章 由于程序不够完善,不能进行连续的删除操作,只能进行一次删除操作后再返回主菜单,继续调用删除函数时,不能够接着第一次删除操作后得到的结果再删除字符串,运行结果如图8所示。同时在输出文章中没有出现过的字符串时,
9、由于程序功能的欠缺,程序功能还是会将原文章打印出来。不能很有效地提示删除不成功,或者提示重新输入之类的提示语。运行结果如图9所示。 图7 删除某一字符串后显示的文章图8 删除功能缺点一 图9 删除功能缺点二 六、总结通过五天的课程设计的内容,我完成了文章编辑题目的设计。但是程序还不够完善,因为有些功能还是不能够实现。例如:在执行菜单时,第一次选择删除删除特殊字符串的操作时,特殊字符串被删除了后,又返回主菜单,继续再选择删除功能时,第一次被删除后得到的结果,继续再删除就不能进行了。在设计过程中,设计删除函数时,其中用到串的模式匹配,在匹配时出现了错误,导致程序一直不能执行下去,通过老师和同学的帮
10、助下,也一一解决了,同时也锻炼了调试程序的能力。还有在用指针时,没开辟存储空间,程序也不能执行。但是通过这次的课程设计,加强了我的动手、思考和解决问题的能力。设计的结果固然重要,但是设计过程更为重要,在这次的作业中,我学到了很多的东西,也积累了关于做这样的课程设计的一些经验。通过这一次的课程设计,让我对数据结构以及其课程设计的知识也有了更深的理解和认识。所以,我们在理解书本知识的同时,应该尽可能多做一些算法题,提高自己分析问题和解决问题的能力,这也是学习这门课程最终的目的。七、参考文献1王震江,何英,吴绍兵.数据结构.云南:云南大学出版社,20082谭浩强.C程序设计(第四版). 北京:清华大
11、学出版社,20103王爱民,李杰,罗颖.数据结构(C语言描述).北京:清华大学出版社,2011八、程序清单#include #include #include #include #include #define MAXSIZE 1000typedef char DataType;typedef struct DataType strMAXSIZE;int length;Article;Article *s,*p,*t,*m;void input(Article *s) /*输入文本*/int i;s-length=0;for(i=0;istri);s-length+;if(s-stri=n)
12、s-stri=0;s-length-; break;void ptint(Article *s) /*输出文本*/int i,j=0;if(!s-length) printf(n错误!);elsefor(i=0;ilength;i+)printf(%c,s-stri);j+;if(j%80=0) printf(n);void letter_number(Article *s) /*全部字母个数*/int i,j=0;if(!s-length)printf(n错误!);elsefor(i=0;ilength;i+)if(s-stri=a& s-stristri=A& s-strilength)
13、printf(n错误!);elsefor(i=0;ilength;i+)if(s-stri= )j+;printf(%d,j);void digit_number(Article *s) /*全部数字总数*/int i,j=0;if(!s-length) printf(n错误!);elsefor(i=0;ilength;i+)if(s-stri=0& s-strilength);void dele_print(Article *p,Article *s) /*输出删除某一字符串后的文章*/int i,j,succ,flag=1;i=0;while(ilength-p-length+1)j=0;
14、succ=1; /*用j扫描模式p*/while(jlength-1) & succ)if(p-strj=s-stri+j) j+;else succ=0;if(j=p-length) flag=0;if(!succ)printf(%c,s-stri);else i=i+p-length-1;i+;printf(%sn,s-str+i);if(flag=1)printf(但找不到要删除的字符串!);void Counter(Article *p,Article *s) /*统计某个字符串在文章中出现的次数*/int i,j,succ,k=0;i=0;while(ilength-p-length
15、+1)j=0;succ=1; while(jlength-1) & succ)if(p-strj=s-stri+j) j+;else succ=0;if(succ) k+;i=i+p-length-1;i+;if (k0)printf(n该字符串在文章中出现的次数为:%d次n,k);void main()char n;Article *s,*t,*m;system( color 3F);printf(tn); printf(t* 设计题目:文章编辑 *n);printf(t*n);printf(t* 昆明学院 信息技术学院 *n);printf(t*n);printf(t* 2011级计科2班
16、 杨铄 4 *n);printf(t*n);printf(tn); system(PAUSE);system(cls);system(color 3f);printf( 菜单列表 n);printf(tn);printf(t*n);printf(t* * *n);printf(t* 0.退出 * 1.输入一段文字 *n);printf(t* * *n);printf(t*n);printf(t* * *n);printf(t* 2.显示输入的文字 * 3.统计字母、数字、空格 *n);printf(t* * *n);printf(t*n);printf(t* * *n);printf(t* 4
17、.统计特殊字符串出现频率 * 5.删除某一特殊字符串 *n);printf(t* * *n);printf(t*n);printf(tn);while (n=0)&(n=1)&(n=2)&(n=3)&(n=4)&(n=5)printf(n请选择你需要操作的步骤(05):);fflush(stdin);scanf(%s,&n);fflush(stdin);switch(n)case 0:exit(0); case 1:s=(Article *)malloc(sizeof(Article);printf(请输入一段文字:);input(s);break;case 2:printf(n文本录入完毕!输出的文本为:n);ptint(s); break;case 3:printf(n全部字母个数为:);letter_number(s);printf(n全部空格个数为:);space_number(s); printf(n全部数字个数为:);digi
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度特许经营合同:连锁加盟店特许经营协议
- 江苏省盐城市新洋第二实验校2024年中考一模数学试题含解析
- 04版硼硅玻璃进口合同
- 2024年林地转让合同范本
- 2024年度租赁期满后续租的写字楼办公室合同
- 仓库绩效表彰制度的建设计划
- 二零二四年度品质管理合同
- 2024年度光伏发电系统安装合同标的:某工业园区光伏发电项目
- 二零二四年度旅游服务与经营管理合同
- 针对不同岗位人才画像建立制度计划
- 安全培训教育效果评价表
- 歌曲《国家》课件
- Photoshop(PS)教学课件:第6章调色
- 幂函数评课稿
- 能你也能:IPD产品管理实践
- 幼儿园小班音乐教案《妈妈来抓兔兔》含反思
- 中原银行2023年招聘人员(郑州)笔试历年难、易错考点试题含答案附详解
- 心理健康主题班会《做个快乐的小学生》
- 一道新能 《2022年度环境、社会及治理(ESG)报告》
- 农村电商(农产品电商)运营PPT完整全套教学课件
- XMT-7000温控仪使用说明书
评论
0/150
提交评论