- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
链式顺序表结构实现了章编辑
摘 要
本次课程设计是利用我们数据结构这门课程中所学习的线性表及与其相关的一些知识所完成的。通过使用双向链表来实现文章编辑的各项功能。文章编辑需要统计文章中的所有文字信息,需要分行显示,涉及到很多方面的知识,要使用链表来存储文章。文章编辑程序的主要功能是统计文章中的全部字母数、数字个数、空格个数和文章总字数,并且能准确的查找、删除字符串。主要应用的函数和语句有循环,查找,删除等。由程序开始运行后进行字符串的录入之后进行字符的输出,然后是利用循环和查找,进行字符的统计并输出已经找到的字符(包括字母、数字、空格)出现的次数以及总共的字符数。在这些运行完之后,根据要求还有一项功能--删除,对指定的字符进 行删除,同样,这里也需应用到循环,查找和删除。
关键词:C++、线性表、文章编辑
目 录
1 系统功能概述 1
1.1合同管理系统功能分析 1
1.2 系统结构图 1
2 数据库设计 1
2.1需求分析 2
2.2 E-R模型 2
2.3关系模型 4
2.4表结构设计 4
3.1用户登录 7
3.2主窗体界面 9
3.3添加修改删除页面 10
3.4查询页面 15
3.5注册新用户 18
4 课设总结 20
参考文献 21
一.本课程设计的目的和任务
1.提高对数据逻辑结构的特点以及存储表示方式的认识,培养在具体应用中选择合适的数据结构和存储结构的能力。
2.熟悉软件开发的基本过程,初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等阶段基本任务和技能方法。
3.培养自己的算法设计和算法分析能力,提高综合运用所学的理论知识和方法独立分析和解决问题的能力。
4.训练用系统的观点和软件开发一般规范进行软件开发,培养软件工作者所应具备的工作方法、作风和相互合作的精神。
5.综合运用链表的查找、插入和删除,理论结合实际,将其运用到文章编辑这一实验中。使这些知识得到进一步巩固、加深和拓展。利用模块的思想,模块之间用指针连接,减少了不必要的麻烦。巩固加深指针的用途,理解模块的优点。加深对链表的理解,全面认识链表操作的字符串的模式匹配操作。
二、 系统设计
2.1.输入模块
存储结构:采用单链表结构存储文章,每个结点存储一行,每行最长不超过80个字符。
结构定义:
typedef struct line{
char *data; //字符串指针需要时动态分配内存
struct line *next;
}LINE;
算法描述:用gets函数接收输入,每遇到一个回车换行就新建一个结点,将当前行存入其data域。当发现输入为^E时,在Data的最后加上字符串结束标志,并置当前结点的Next指针域为NULL。
2.2.统计模块
统计模块包括统计全部字母数,统计数字个数,统计空格个数,以及统计文章总字数,这四个部分的实现算法大体相同,四者的关系是:全部字母数+数字个数+空格个数=文章总字数,也就是说可以在统计出其中三者的前提下计算出第四个的数量。
另外一个重要的统计功能是统计某一字符串在整篇文章中出现的次数,这个需要用到串的模式匹配算法来实现。
2.3.删除模块
删除模块的算法思想类同统计字符串的算法思想,由于采用了链表的存储结构,使得删除算法的时间复杂度大大减少。
void Del_String(LINE * head,char *sch){ //删除指定的字符串
LINE *p=head;
do
{
while(strstr(p-data,sch)!=NULL)del_string_word(p-data,sch);
} while((p=p-next)!=NULL); //遍历链表
2.4、程序结构图
图
2.5程序设计流程图
图
三、源程序清单
#include iostream.h
#include string.h
#include stdio.h
#include stdlib.h
#include windows.h
typedef struct line{
char *data; //字符串指针需要时动态分配内存
struct line *next;
}LINE;
void CreateTXT(LINE * head); //创建一张列表,同时向里面输入文本数据
int Count_Space(LINE * head); //统计空格数
i
文档评论(0)