1、数据结构课程设计答辩课件,欢迎进入:,选题名称:文章编辑,静态存储一页文章,每行最多不超过80个字符,共N行;实现如下功能:(1)分别统计出其中英文字母数和空格数及整篇文章总字数;(2)统计某一字符串在文章中出现的次数,并输出该次数;(3)删除某一子串,并将后面的字符前移。,设计要求:,存储结构使用线性表,分别用几个子函数实现相应的功能;输入数据的形式和范围:可以输入大写、小写的英文字母、任何数字及标点符号。输出形式:(1)分行输出用户输入的各行字符;(2)分4行输出全部字母数、数字个数、空格个数、文章总字数(3)输出删除某一字符串后的文章;,相关理论知识:,线性表是最基本、最简单、也是最常用
2、的一种数据结构。线性表中数据元素之间的关系是一对一的关系,即除了第一个和最后一个数据元素之外,其它数据元素都是首尾相接的。线性表的逻辑结构简单,便于实现和操作。因此,线性表这种数据结构在实际应用中是广泛采用的一种数据结构。,在实现线性表数据元素的存储方面,一般可用顺序存储结构和链式存储结构两种方法。本程序中采用链式存储。本课程设计中用指针链表,配合循环语句,完成字符串比较功能,从而完成统计字符串,删除字符串,统计字符信息的功能。,算法流程图:,单链表的类定义:采用Struct 定义链表结点类 struct TextNode char text;TextNode*next;,对原文中的字符依次和
3、输入的字符串比较,有不相同的跳出,如果完全相同,则将P指针给H指针,从而达到删除的作用。然后,进行上述操作,完成删除操作。函数为 TextNode*DelStr()/删除某一字段,字符串删除:,统计字符信息:,统计字符信息用循环语句,如果有信息符合就让统计数字叠加,最后得出统计的字符数。函数为:void print2(int&p1,int&p2,int&p3,int&n)/统计字符信息 同时 在其中引用了两个函数进行数字和字符的统计,分别为 isalpha isdigit,通过这次课程设计,我对单链表的特点有了更深刻的了解:,单链表特点1、它是一种动态结构,整个存储空间 为多个链表共用2、不需预先分配空间3、指针占用额外存储空间4、不能随机存取,查找速度慢,在这次课程设计中,我学到了很多东西,有了很大进步,我会更加努力。,谢谢老师!,