高级数据结构课程论文---文章编辑

高级数据结构课程论文---文章编辑

ID:9079425

大小:475.35 KB

页数:20页

时间:2018-04-16

高级数据结构课程论文---文章编辑_第1页
高级数据结构课程论文---文章编辑_第2页
高级数据结构课程论文---文章编辑_第3页
高级数据结构课程论文---文章编辑_第4页
高级数据结构课程论文---文章编辑_第5页
资源描述:

《高级数据结构课程论文---文章编辑》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、文章编辑1.课程设计目的和要求1.1设计目的数据结构课程设计是一门实践性非常强的课程,不但结合了C语言的基本知识,更加注重技能的培养:要求学生在数据结构的逻辑特性和物理表示、数据结构的选择和应用、算法的设计及其实现等方面,加深对课程基本内容的理解。同时,在程序设计方法以及上机操作等基本技能和科学作风方面受到比较系统和严格的训练。1、提高对数据逻辑结构的特点以及存储表示方式的认识,培养在具体应用中选择合适的数据结构和存储结构的能力。2、培养自己的算法设计和算法分析能力,提高综合运用所学的理论知识和方法独立分析和解决

2、问题的能力。3、熟悉软件开发的基本过程,初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等阶段基本任务和技能方法。4、训练用系统的观点和软件开发一般规范进行软件开发,培养软件工作者所应具备的工作方法、作风和相互合作的精神。1.2设计要求题目:文章编辑(字符串及基本操作、字符及单词统计算法、KMP算法)1、输入一页文字,每行最多不超过80个字符,共N行;2、程序可以统计出文字、数字、空格的个数;3、要求在光标下(与记事本类似)做插入、删除等操作;4、要求能够存盘,并能对老文件打开进行修改操作,能够进行指定字

3、符串的替换。要求:综合运用链表的查找、插入和删除,理论结合实际,将其运用到文章编辑这一实验中,使这些知识得到进一步巩固、加深和拓展。利用模块的思想,模块之间用指针连接,减少了不必要的麻烦。巩固加深指针的用途,理解模块的优点。加深对链表的理解,全面认识链表操作的字符串的模式匹配操作。2.需求分析针对本课程设计的题目和要求,做出如下分析:-1-1、输入要求:输入一页文字,每行最多不超过80个字符,共N行。2、统计要求:程序可以统计出文字(以英文字母为例)、数字、空格的个数。3、插入删除:要求在光标下做插入、删除等操作

4、,与记事本类似。4、查找替换:能够查找用户提供的字符串,并能进行指定字符串的替换。5、存盘取盘:要求能够正确存盘,并能对老文件打开进行修改操作。3.具体设计存储结构:每行为一个顺序表,存储一行,每行最长不超过80个字符;行与行之间用单链表进行链接。如下图所示:图1存储结构使用QT来设计界面,实现多窗口文本编辑器:1、新建文件:可实现新建多个文档。2、保存文档:保存格式采用txt,提示用户保存文档的类型和位置。-2-3、打开文档:可实现打开多个txt格式的文档。4、输入文本:在新建文档中输入汉字、英文、数字等,逐行

5、获取输入的文本,创建顺序表,每一行存储在一个结点中的顺序表中,行与行之间用链表连接。5、统计要求:统计模块包括统计全部字母数、统计数字个数、统计空格个数、以及统计文章总字数,这四个部分的实现算法大体相同,四者的关系是:全部字母数+数字个数+空格个数=文章总字数,也就是说可以在统计出其中三者的前提下计算出第四个的数量。数字、字母:汉字:-3-6、插入删除:用户在光标下做插入、删除等操作。7、查找替换:使用朴素字符串匹配算法,输入要查找的内容,然后遍历链表,找出每一个出现字符串的位置,最坏情况下时间复杂度较高,为O(

6、m*n)。4.程序代码链表代码#include"linklist.h"#include#include#include#includeusingnamespacestd;LinkList::LinkList(){head=newNode();head->next=NULL;size=0;}LinkList::~LinkList(){Node*p,*q=head;while(q->next!=NULL){p=q;q=q->next;

7、deletep;}size=0;}intLinkList::insertnum(intpos,chararray[])//插入模块{if(pos>size+1

8、

9、pos<1){cout<<"插入位置越界"<next;-4-intlength=strlen(array);for(i=0;idata[i]=array[i];q->next=p->

10、next;p->next=q;size++;return0;}intLinkList::search(charbrrby[])//查找模块{Node*p=head;intlb=strlen(brrby);intnrow=0;while(p->next){p=p->next;nrow++;intla=strlen(p->data);if(la

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。