简易文本编辑器课程设计报告说明书.

上传人:我** 文档编号:114488097 上传时间:2019-11-11 格式:DOCX 页数:23 大小:352.55KB
返回 下载 相关 举报
简易文本编辑器课程设计报告说明书._第1页
第1页 / 共23页
简易文本编辑器课程设计报告说明书._第2页
第2页 / 共23页
简易文本编辑器课程设计报告说明书._第3页
第3页 / 共23页
简易文本编辑器课程设计报告说明书._第4页
第4页 / 共23页
简易文本编辑器课程设计报告说明书._第5页
第5页 / 共23页
点击查看更多>>
资源描述

《简易文本编辑器课程设计报告说明书.》由会员分享,可在线阅读,更多相关《简易文本编辑器课程设计报告说明书.(23页珍藏版)》请在金锄头文库上搜索。

1、武汉理工大学数据结构课程设计说明书简易文本编辑器摘要:此次课程设计设计了一个简易的文本编辑器,该程序主要用于文本编辑的几个操作,主要由C语言实现。基于对文本编辑的需求该程序的功能在于:输入一页文字,程序可以统计出文字、数字、空格的个数统计某一字符串在文章中出现的次数,并输出该次数;删除某一子串,并将后面的字符前移。程序算法立足于书本并适当改良,能够实现文本的一些特定操作。关键词:文本编辑 C语言 程序算法Abstract: The curriculum designed a simple text editor, which is mainly used for text editing of

2、 several operations, mainly by the C programming language. Based on the needs of the program text editing ,the program can input a text, count the number of words numbers and spaces in the file, statistics the number of a string of in the article, and output the number of times; to remove a substrin

3、g, and the characters behind the forward. Program algorithm based on the book also have some improvement. Able to achieve some specific text operations.Key words: Text editing C programming language Program algorithm1 引言目前社会上文字编辑系统发展飞快,文本编辑软件在人们的日常生活和学习、科研、生产等各个方面有着重要的应用。因此开发一款使用的编辑器是很必要的。此次设计拟开发一个简

4、易文本编辑器,以提高对所学知识的掌握程度。在实际应用中往往需要在编辑不同的文本信息时可完成文字信息录入、统计出文字、数字、空格的个数等使用功能。因此,需要一个有类似功能的简易文字编辑器,以便实现对文本信息录入、统计文本中文字、数字、空格数,字符串出现次数、子串删除的功能。而随着计算机科学的日渐成熟,对于复杂的文字编辑,计算机已经能充分发挥其优越性。作为计算机应用的一部分,使用计算机对这些功能的实现可以大大提高工作的效率。因此,开发此类软件是一件很有必要的事情。通过根据现有的知识对软件所需的功能进行评估分析,编写算法最终编写出此程序,本系统实现在编辑不同的文本信息时可完成文字信息录入、统计出文字

5、、数字、空格的个数等使用功能,以方便使用。2需求分析2.1基本需求现需要一个简易文本编辑器以实现以下功能:(1)输入一页文字,程序可以统计出文字、数字、空格的个数。(2)统计某一字符串在文章中出现的次数,并输出该次数。(3)删除某一子串,并将后面的字符前移。2.2功能分析 输入:对文本信息进行录入,同时完成字符数目的统计工作,将文章储存到指定文件夹。 统计:在已生成的文章中查找指定的字符串,应用串的匹配。计算该字符串的出现次数,并输出。 删除:在已生成的文章中匹配到相应的字符串,并删除,然后保存剩余的字符。3 数据结构设计考虑到此次实现的是文件的输入与存储,采用线性表方式存储,按照线性表的存储

6、结构定义将其封装在结构体中,由此,定义如下数据结构:#define Max_Num 100typedef struct articlechar *s;/文章指针int space_num;/空格数int word_num;/文字数int number_num;/数字数int lenth;/字符串长度与文本长度无关 Article,*art;4 算法设计4.1输入函数考虑到文章长度的不确定性,为了防止空间浪费和溢出错误为其分配动态内存。该算法主要实现:对文章进行录入,并判断所录入的字符类型同时存储到文件中,并统计出各种字符的数目。算法采用字符单个录入并一次存储到动态数组中。void Input(

7、)int z=0;art Art;FILE *p;char c;int i=0,n=0;Art=(art)malloc(sizeof(Article);/分配内存空间Art-number_num=Art-space_num=Art-word_num=Art-lenth=0;/初始化Art-s=(char *)malloc(Max_Num);/分配内存空间Art-s0=0;/初始化printf(请输入文章,以连续两次回车结束(注:标点统一为英文标点)n);c=getchar();/录入文章while(1)if(c=n)/判断首次回车标识符n=1;else n=0;Art-si+1=Art-si;

8、/文章终止符后移Art-si+=c;/录入信息Art-lenth+;/长度+1if(c=a)|(cA)/判断C类型(字、数字、空格)Art-word_num+;else if(c=0)Art-number_num+;else if(c= )Art-space_num+;else if(csi-1=Art-si;Art-lenth-;break;if(strlen(Art-s)%Max_Num=Max_Num-1)/空间不足时分配内存空间Art-s=(char *)realloc(Art-s,Art-lenth+Max_Num);z=z/2;/汉字数Art-word_num+=z;/总字数pri

9、ntf(文字数:%dn数字数:%dn空格数:%dn,Art-word_num,Art-number_num,Art-space_num);p=fopen(a.txt,w);/建立文件fprintf(p,%d %d %d %d %s,Art-lenth,Art-number_num,Art-space_num,Art-word_num,Art-s);/将信息写入文件printf(文章储存在当前文件下的a.txtn);fclose(p);/关闭文件free(Art-s);/释放内存空间free(Art);/释放内存空间4.2查找函数该算法通过串的匹配实现对指定的字符串的查找工作,每当匹配成功出现次

10、数+1,最终将查找到的字符串在文章中出现的次数进行输出。void search()art Art;FILE *p;char cMax_Num;int i=0,j=0,count=0,k;Art=(art)malloc(sizeof(Article);p=fopen(a.txt,r);fscanf(p,%d %d %d %d ,&Art-lenth,&Art-number_num,&Art-space_num,&Art-word_num);/从文件中读取数据Art-s=(char*)malloc(Art-lenth+1)*sizeof(char);/根据Art-lenth分配内存空间Art-sA

11、rt-lenth=0;/输入文章终止符fread(Art-s,sizeof(char),Art-lenth,p);/读取文章printf(请输入要查询的字符串n);scanf(%s,c);k=j;while(js)/进行串的匹配if(ci=Art-sj)j+;i+;else i=0;j=+k;if(i=strlen(c)/当匹配成功时count+1count+;k=j;i=0;printf(该字符串出现过%d次n,count);fclose(p);free(Art-s);free(Art);4.3删除函数该算法实现将用户指定的字符串删除。首先将删除后的文章重新存储,然后将原文件动态内存释放实现

12、删除操作。void del()art Art;FILE *p;char cMax_Num;int k=0,j=0,i=0,z=0;Art=(art)malloc(sizeof(Article);p=fopen(a.txt,r);fscanf(p,%d %d %d %d ,&Art-lenth,&Art-number_num,&Art-space_num,&Art-word_num);Art-s=(char*)malloc(Art-lenth+1)*sizeof(char);Art-sArt-lenth=0;fread(Art-s,sizeof(char),Art-lenth,p);printf(请输入要删除的字符串n);scanf(%s,c);for(i=0;istrlen(c);i+)/删除后文章的字、数字、空格数目if(ci=a)|(ciA)Art-word_num-;else if(ci=0)Art-number_num-;else if(ci= )Art-space_num-;else if(ciword_num-=z/2;k=j;i=0;while(js)/字符串匹配if(ci=Art-sj)j+;i+;

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号