文章编辑课程设计报告

文章编辑课程设计报告

ID:6789343

大小:310.00 KB

页数:30页

时间:2018-01-25

文章编辑课程设计报告_第1页
文章编辑课程设计报告_第2页
文章编辑课程设计报告_第3页
文章编辑课程设计报告_第4页
文章编辑课程设计报告_第5页
资源描述:

《文章编辑课程设计报告》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、实验报告(课程设计)课程名称:数据结构实验项目名称:文章编辑学院:计算机与软件学院指导教师:报告人:实验时间实验报告提交时间:教务处制实验项目名称一、问题描述描述算法设计的内容、约束条件,要求达到的目标等内容。(由老师公布)输入一页文字,每行最多不超过80个字符,共N行;程序可以统计出文字、数字、空格的个数要求在光标下(与记事本相似)做插入、删除等操作要求能够存盘,并能对老文件打开进行修改操作采用的数据结构及其算法:线性结构[采用顺序存储方式];查找、插入、删除二、基本要求描述算法设计项目应达到

2、的基本要求。应该实现基本的删除插入查找打开文件以及存盘等操作.并能对打开的文件里的内容进行插入删除查找等操作,并且在进行完这些操作之后能够进行存盘.三、分析与实验分析算法设计方法,拟采用的数据结构(类结构)与主要算法实现原理等内容。拟采用链表进行操作,与字符串结合.主要运用了KMP算法进行查找操作,在删除中也有涉及.voidGetNext(stringp,intnext[])//求模式串p的next[j]的值{intj=0,k=-1;next[0]=-1;intlength=p.length()-

3、1;while(j

4、

5、p[j]==p[k]){k++;j++;next[j]=k;}elsek=next[k];}}intKMPFind(stringp,intnext[],stringq,intsearch[])//用KMP算法在主串中查找子串,p为主串,q为子串{inti=0,j=0,k=0,plength=p.length(),qlength=q.length(),flag=0,t=0;while(i

6、

7、p[i]==q[j

8、]){i++;j++;}elsej=next[j];if(j==qlength){flag++;search[t]=i-qlength;//flag存放的是每一次匹配到的字符的首位置t++;}}returnflag;}Search[]数组存放子串出现的位置.四、实验步聚详细介绍实验操作步骤(程序流程图及必要说明)。开始操作主界面5406321打开文件,默认在D盘调用系统函数,将文件存到D盘(D盘是代码编写时候的默认盘,可以更改)程序运行结束!输入5之后进入查找页面,输入要查找的字符(串),调用KM

9、P算法将要查找的字符(串)在主串中出现的位置存到定义的数组中,然后在输出的时候将其变色.根据输入的字符(串)进行删除操作,在此过程中调用了KMP算法,找到了要删除的字符(串)在主串中出现的位置,将其存到数组中,然后进行逐个的删除输入数字2之后进行文章的输入,文章输入中不允许输入汉字,其它字符均可,输入#输入停止.插入是根据输入的行和列的位置进行插入输入的字符(串),字符串的输入遇到回车就会停止.根据输入的位置将子串插到主串中.输入的时候,先是根据字符数组进行输入,然后存到链表中,并将输入的字符逐个

10、的存放到刚开始定义的空的字符串中,这样方便进行之后的插入删除查找操作,而且用的KMP算法的操作对象也是字符串,因此将输入的内容存放到字符串中对之后的操作有很大的便利.五、测试与结论粘贴算法设计程序运行的截图,并加以简单文字说明。程序运行必须覆盖算法的各种情况,最后说明算法设计程序是否满足算法设计实验目标和要求。主界面:先打开文件进行操作:删除操作:查找操作:查找一个字符的情况:查找两个字符的情况:查找两个以上字符的情况:删除操作:插入操作:存盘:退出:直接输入进行各种操作:查找操作:插入操作:删除

11、操作:存盘操作:存盘的时候每行存的是80个字符.六、实验总结主要说明算法的特点,特别是重点说明独创或创新部分,相关实验最有价值的内容,在哪些方面需要进一步了解或得到帮助,以及编程实现算法设计的感悟等内容。刚开始做的时候并没有考虑那么多,只是想实现查找某个字符出现的次数,但是那样太简单了与实验目的不符,最后用KMP算法实现各种个数的字符的查找,并且在此基础上进行各种操作(删除),存盘和打开文件的时候出现一些问题,也自行解决了.在此次试验中意识到数据结构算法的灵活性.之前学的KMP算法是进行子串和主串

12、的匹配,没有考虑那么多,在此次试验中实现了多个循环过程,从而达到实验目的.六、程序清单程序清单如下:#include#include#include#include#include#includeusingnamespacestd;#defineMaxstructLNode{chardata;LNode*next;};LNode*LinkList;HANDLEhout;s

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

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

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